	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_micro_oled_init                ## -- Begin function micro_oled_init
	.p2align	4, 0x90
_micro_oled_init:                       ## @micro_oled_init
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%rbx
	pushq	%rax
	.cfi_offset %rbx, -24
	xorl	%eax, %eax
	callq	_i2c_init
	movq	_I2C_ADDRESS_SA0_1@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_i2c_start
	movq	_DISPLAYOFF@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_send_command
	movq	_SETDISPLAYCLOCKDIV@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_send_command
	movl	$128, %edi
	callq	_send_command
	movq	_SETMULTIPLEX@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_send_command
	movq	_LCDHEIGHT@GOTPCREL(%rip), %rbx
	movl	(%rbx), %edi
	decl	%edi
	callq	_send_command
	movq	_SETDISPLAYOFFSET@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_send_command
	xorl	%edi, %edi
	callq	_send_command
	movq	_SETSTARTLINE@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_send_command
	movq	_CHARGEPUMP@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_send_command
	movl	$20, %edi
	callq	_send_command
	movq	_NORMALDISPLAY@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_send_command
	movq	_DISPLAYALLONRESUME@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_send_command
	movq	_SEGREMAP@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	orl	$1, %edi
	callq	_send_command
	movq	_COMSCANDEC@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_send_command
	movq	_MEMORYMODE@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_send_command
	movl	$16, %edi
	callq	_send_command
	movq	_SETCOMPINS@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_send_command
	xorl	%edi, %edi
	cmpl	$33, (%rbx)
	setge	%dil
	shll	$4, %edi
	orl	$2, %edi
	callq	_send_command
	movq	_SETCONTRAST@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_send_command
	movl	$143, %edi
	callq	_send_command
	movq	_SETPRECHARGE@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_send_command
	movl	$241, %edi
	callq	_send_command
	movq	_SETVCOMDESELECT@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_send_command
	movl	$64, %edi
	callq	_send_command
	movq	_DISPLAYON@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_send_command
	xorl	%eax, %eax
	callq	_clear_screen
	xorl	%eax, %eax
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	jmp	_send_buffer                    ## TAILCALL
	.cfi_endproc
                                        ## -- End function
	.comm	_I2C_ADDRESS_SA0_1,4,2          ## @I2C_ADDRESS_SA0_1
	.comm	_DISPLAYOFF,4,2                 ## @DISPLAYOFF
	.comm	_SETDISPLAYCLOCKDIV,4,2         ## @SETDISPLAYCLOCKDIV
	.comm	_SETMULTIPLEX,4,2               ## @SETMULTIPLEX
	.comm	_LCDHEIGHT,4,2                  ## @LCDHEIGHT
	.comm	_SETDISPLAYOFFSET,4,2           ## @SETDISPLAYOFFSET
	.comm	_SETSTARTLINE,4,2               ## @SETSTARTLINE
	.comm	_CHARGEPUMP,4,2                 ## @CHARGEPUMP
	.comm	_NORMALDISPLAY,4,2              ## @NORMALDISPLAY
	.comm	_DISPLAYALLONRESUME,4,2         ## @DISPLAYALLONRESUME
	.comm	_SEGREMAP,4,2                   ## @SEGREMAP
	.comm	_COMSCANDEC,4,2                 ## @COMSCANDEC
	.comm	_MEMORYMODE,4,2                 ## @MEMORYMODE
	.comm	_SETCOMPINS,4,2                 ## @SETCOMPINS
	.comm	_SETCONTRAST,4,2                ## @SETCONTRAST
	.comm	_SETPRECHARGE,4,2               ## @SETPRECHARGE
	.comm	_SETVCOMDESELECT,4,2            ## @SETVCOMDESELECT
	.comm	_DISPLAYON,4,2                  ## @DISPLAYON
	.comm	_COMSCANINC,4,2                 ## @COMSCANINC
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_micro_oled_init                ; -- Begin function micro_oled_init
	.p2align	2
_micro_oled_init:                       ; @micro_oled_init
	.cfi_startproc
; %bb.0:
	stp	x20, x19, [sp, #-32]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 32
	stp	x29, x30, [sp, #16]             ; 16-byte Folded Spill
	add	x29, sp, #16
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	bl	_i2c_init
Lloh0:
	adrp	x8, _I2C_ADDRESS_SA0_1@GOTPAGE
Lloh1:
	ldr	x8, [x8, _I2C_ADDRESS_SA0_1@GOTPAGEOFF]
Lloh2:
	ldr	w0, [x8]
	bl	_i2c_start
Lloh3:
	adrp	x8, _DISPLAYOFF@GOTPAGE
Lloh4:
	ldr	x8, [x8, _DISPLAYOFF@GOTPAGEOFF]
Lloh5:
	ldr	w0, [x8]
	bl	_send_command
Lloh6:
	adrp	x8, _SETDISPLAYCLOCKDIV@GOTPAGE
Lloh7:
	ldr	x8, [x8, _SETDISPLAYCLOCKDIV@GOTPAGEOFF]
Lloh8:
	ldr	w0, [x8]
	bl	_send_command
	mov	w0, #128
	bl	_send_command
Lloh9:
	adrp	x8, _SETMULTIPLEX@GOTPAGE
Lloh10:
	ldr	x8, [x8, _SETMULTIPLEX@GOTPAGEOFF]
Lloh11:
	ldr	w0, [x8]
	bl	_send_command
Lloh12:
	adrp	x19, _LCDHEIGHT@GOTPAGE
Lloh13:
	ldr	x19, [x19, _LCDHEIGHT@GOTPAGEOFF]
	ldr	w8, [x19]
	sub	w0, w8, #1
	bl	_send_command
Lloh14:
	adrp	x8, _SETDISPLAYOFFSET@GOTPAGE
Lloh15:
	ldr	x8, [x8, _SETDISPLAYOFFSET@GOTPAGEOFF]
Lloh16:
	ldr	w0, [x8]
	bl	_send_command
	mov	w0, #0
	bl	_send_command
Lloh17:
	adrp	x8, _SETSTARTLINE@GOTPAGE
Lloh18:
	ldr	x8, [x8, _SETSTARTLINE@GOTPAGEOFF]
Lloh19:
	ldr	w0, [x8]
	bl	_send_command
Lloh20:
	adrp	x8, _CHARGEPUMP@GOTPAGE
Lloh21:
	ldr	x8, [x8, _CHARGEPUMP@GOTPAGEOFF]
Lloh22:
	ldr	w0, [x8]
	bl	_send_command
	mov	w0, #20
	bl	_send_command
Lloh23:
	adrp	x8, _NORMALDISPLAY@GOTPAGE
Lloh24:
	ldr	x8, [x8, _NORMALDISPLAY@GOTPAGEOFF]
Lloh25:
	ldr	w0, [x8]
	bl	_send_command
Lloh26:
	adrp	x8, _DISPLAYALLONRESUME@GOTPAGE
Lloh27:
	ldr	x8, [x8, _DISPLAYALLONRESUME@GOTPAGEOFF]
Lloh28:
	ldr	w0, [x8]
	bl	_send_command
Lloh29:
	adrp	x8, _SEGREMAP@GOTPAGE
Lloh30:
	ldr	x8, [x8, _SEGREMAP@GOTPAGEOFF]
Lloh31:
	ldr	w8, [x8]
	orr	w0, w8, #0x1
	bl	_send_command
Lloh32:
	adrp	x8, _COMSCANDEC@GOTPAGE
Lloh33:
	ldr	x8, [x8, _COMSCANDEC@GOTPAGEOFF]
Lloh34:
	ldr	w0, [x8]
	bl	_send_command
Lloh35:
	adrp	x8, _MEMORYMODE@GOTPAGE
Lloh36:
	ldr	x8, [x8, _MEMORYMODE@GOTPAGEOFF]
Lloh37:
	ldr	w0, [x8]
	bl	_send_command
	mov	w0, #16
	bl	_send_command
Lloh38:
	adrp	x8, _SETCOMPINS@GOTPAGE
Lloh39:
	ldr	x8, [x8, _SETCOMPINS@GOTPAGEOFF]
Lloh40:
	ldr	w0, [x8]
	bl	_send_command
	ldr	w8, [x19]
	mov	w9, #2
	mov	w10, #18
	cmp	w8, #32
	csel	w0, w10, w9, gt
	bl	_send_command
Lloh41:
	adrp	x8, _SETCONTRAST@GOTPAGE
Lloh42:
	ldr	x8, [x8, _SETCONTRAST@GOTPAGEOFF]
Lloh43:
	ldr	w0, [x8]
	bl	_send_command
	mov	w0, #143
	bl	_send_command
Lloh44:
	adrp	x8, _SETPRECHARGE@GOTPAGE
Lloh45:
	ldr	x8, [x8, _SETPRECHARGE@GOTPAGEOFF]
Lloh46:
	ldr	w0, [x8]
	bl	_send_command
	mov	w0, #241
	bl	_send_command
Lloh47:
	adrp	x8, _SETVCOMDESELECT@GOTPAGE
Lloh48:
	ldr	x8, [x8, _SETVCOMDESELECT@GOTPAGEOFF]
Lloh49:
	ldr	w0, [x8]
	bl	_send_command
	mov	w0, #64
	bl	_send_command
Lloh50:
	adrp	x8, _DISPLAYON@GOTPAGE
Lloh51:
	ldr	x8, [x8, _DISPLAYON@GOTPAGEOFF]
Lloh52:
	ldr	w0, [x8]
	bl	_send_command
	bl	_clear_screen
	ldp	x29, x30, [sp, #16]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp], #32             ; 16-byte Folded Reload
	b	_send_buffer
	.loh AdrpLdrGotLdr	Lloh50, Lloh51, Lloh52
	.loh AdrpLdrGotLdr	Lloh47, Lloh48, Lloh49
	.loh AdrpLdrGotLdr	Lloh44, Lloh45, Lloh46
	.loh AdrpLdrGotLdr	Lloh41, Lloh42, Lloh43
	.loh AdrpLdrGotLdr	Lloh38, Lloh39, Lloh40
	.loh AdrpLdrGotLdr	Lloh35, Lloh36, Lloh37
	.loh AdrpLdrGotLdr	Lloh32, Lloh33, Lloh34
	.loh AdrpLdrGotLdr	Lloh29, Lloh30, Lloh31
	.loh AdrpLdrGotLdr	Lloh26, Lloh27, Lloh28
	.loh AdrpLdrGotLdr	Lloh23, Lloh24, Lloh25
	.loh AdrpLdrGotLdr	Lloh20, Lloh21, Lloh22
	.loh AdrpLdrGotLdr	Lloh17, Lloh18, Lloh19
	.loh AdrpLdrGotLdr	Lloh14, Lloh15, Lloh16
	.loh AdrpLdrGot	Lloh12, Lloh13
	.loh AdrpLdrGotLdr	Lloh9, Lloh10, Lloh11
	.loh AdrpLdrGotLdr	Lloh6, Lloh7, Lloh8
	.loh AdrpLdrGotLdr	Lloh3, Lloh4, Lloh5
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.cfi_endproc
                                        ; -- End function
	.comm	_I2C_ADDRESS_SA0_1,4,2          ; @I2C_ADDRESS_SA0_1
	.comm	_DISPLAYOFF,4,2                 ; @DISPLAYOFF
	.comm	_SETDISPLAYCLOCKDIV,4,2         ; @SETDISPLAYCLOCKDIV
	.comm	_SETMULTIPLEX,4,2               ; @SETMULTIPLEX
	.comm	_LCDHEIGHT,4,2                  ; @LCDHEIGHT
	.comm	_SETDISPLAYOFFSET,4,2           ; @SETDISPLAYOFFSET
	.comm	_SETSTARTLINE,4,2               ; @SETSTARTLINE
	.comm	_CHARGEPUMP,4,2                 ; @CHARGEPUMP
	.comm	_NORMALDISPLAY,4,2              ; @NORMALDISPLAY
	.comm	_DISPLAYALLONRESUME,4,2         ; @DISPLAYALLONRESUME
	.comm	_SEGREMAP,4,2                   ; @SEGREMAP
	.comm	_COMSCANDEC,4,2                 ; @COMSCANDEC
	.comm	_MEMORYMODE,4,2                 ; @MEMORYMODE
	.comm	_SETCOMPINS,4,2                 ; @SETCOMPINS
	.comm	_SETCONTRAST,4,2                ; @SETCONTRAST
	.comm	_SETPRECHARGE,4,2               ; @SETPRECHARGE
	.comm	_SETVCOMDESELECT,4,2            ; @SETVCOMDESELECT
	.comm	_DISPLAYON,4,2                  ; @DISPLAYON
	.comm	_COMSCANINC,4,2                 ; @COMSCANINC
.subsections_via_symbols
