Function at 0x1011f4d0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x74
mov eax, dword [esp + 0x84]
push ebx
push ebp
push esi
mov eax, dword [eax]
mov esi, dword [esp + 0x84]
push edi
push esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x3c], eax
call sym.project.dll_cairo_surface_get_type
mov dword [esp + 0x4c], eax
xor edi, edi
xor eax, eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x64], eax
xor ebx, ebx
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x24], ebx
mov eax, dword [eax]
mov dword [esp + 0x84], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x50], eax
lea eax, [esp + 0x1c]
push eax
push edi
push 7
push edi
push 0xc
push dword [esp + 0xbc]
call fcn.100d3890
add esp, 0x1c
mov ebp, eax
mov dword [esp + 0x1c], ebp
cmp dword [esp + 0x18], ebx
jne 0x1011ff9c
push 2
push esi
call fcn.100d1d60
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ff89
lea eax, [esp + 0x18]
push eax
push esi
call fcn.100d1be0
add esp, 8
movzx eax, ax
mov dword [esp + 0x5c], eax
cmp dword [esp + 0x18], ebx
jne 0x1011ff9c
lea eax, [esp + 0x18]
push eax
push esi
call fcn.100d1be0
add esp, 8
movzx eax, ax
mov dword [esp + 0x68], eax
cmp dword [esp + 0x18], ebx
jne 0x1011ff9c
lea eax, [esp + 0x18]
push eax
push esi
call fcn.100d1be0
add esp, 8
movzx eax, ax
mov dword [esp + 0x58], eax
cmp dword [esp + 0x18], ebx
jne 0x1011ff9c
mov edx, dword [esp + 0xa0]
xor ecx, ecx
mov eax, dword [esp + 0x68]
mov word [edx + 4], ax
movzx eax, ax
mov dword [esp + 0x30], eax
inc eax
cmp word [esp + 0x58], cx
setne cl
lea ecx, [ecx*2 + 2]
imul ecx, eax
mov eax, dword [edx + 0x10]
cmp dword [eax + 8], ecx
jne 0x1011ff90
mov eax, dword [edx + 0xc]
mov dword [esp + 0x54], 0x24
cmp dword [eax + 0xc], 0x24
jb 0x1011ff90
mov dword [esp + 0x50], ebx
add ebp, 8
nop dword [eax]
lea eax, [esp + 0x18]
push eax
push esi
call fcn.100d1a40
add esp, 8
mov dword [esp + 0x64], eax
cmp dword [esp + 0x18], ebx
jne 0x1011ff98
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x54]
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0xc]
sub ecx, edx
cmp eax, ecx
ja 0x1011ff90
mov eax, dword [esp + 0x48]
add eax, edx
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
mov eax, dword [esp + 0x64]
add edx, eax
mov dword [ebp], eax
add ebp, 0xc
mov eax, dword [esp + 0x50]
inc eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], eax
cmp eax, 7
jb 0x1011f620
test byte [esp + 0x5c], 1
mov ebp, dword [esp + 0x30]
je 0x1011f6b3
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0xc]
lea eax, [ebp + 7]
sub ecx, edx
shr eax, 3
cmp eax, ecx
ja 0x1011ff85
mov eax, dword [esp + 0x48]
add eax, edx
mov dword [esp + 0x60], eax
lea eax, [esp + 0x18]
push eax
push 0
lea eax, [ebp + 1]
push eax
push 0
push 4
push dword [esp + 0xb8]
call fcn.100d3890
mov ebp, dword [esp + 0x34]
add esp, 0x18
mov dword [esp + 0x28], eax
cmp dword [esp + 0x18], ebx
jne 0x1011ff9c
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x18]
mov edx, dword [ebp + 0x40]
push eax
push 0
lea ecx, [ecx + 0x1f]
mov dword [esp + 0x74], edx
push 0x1400
shr ecx, 3
push 0
and ecx, 0x1ffffffc
mov dword [esp + 0x3c], 0x1400
push 1
push dword [esp + 0xb8]
add ecx, edx
mov dword [ebp + 0x40], ecx
call fcn.100d3890
add esp, 0x18
mov dword [esp + 0x20], eax
cmp dword [esp + 0x18], ebx
jne 0x1011ff9c
lea eax, [esp + 0x18]
push eax
push 0
push dword [esp + 0x38]
push 0
push 2
push dword [esp + 0xb8]
call fcn.100d3890
mov ecx, dword [esp + 0xb8]
add esp, 0x18
mov dword [ecx + 8], eax
cmp dword [esp + 0x18], ebx
jne 0x1011ff9c
xor ebx, ebx
mov dword [esp + 0x48], ebx
cmp dword [esp + 0x30], ebx
jbe 0x1011fffe
xor eax, eax
mov edi, ebx
mov dword [esp + 0x44], eax
xor ebp, ebp
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x6c]
shr edi, 3
add eax, edi
push eax
push esi
call fcn.100d1d20
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ff81
lea eax, [esp + 0x18]
push eax
push esi
call fcn.100d1790
add esp, 8
cmp dword [esp + 0x18], ebp
jne 0x1011ff81
mov ecx, ebx
movzx eax, al
and ecx, 7
mov ebx, 0x80
sar ebx, cl
mov ecx, dword [esp + 0x1c]
and eax, ebx
mov dword [esp + 0x3c], eax
push dword [ecx + 4]
push esi
call fcn.100d1d20
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ff81
lea eax, [esp + 0x18]
push eax
push esi
call fcn.100d1be0
add esp, 8
movzx ecx, ax
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x18], ebp
jne 0x1011ff81
mov eax, dword [esp + 0x1c]
add dword [eax + 4], 2
mov eax, 0xffff
cmp cx, ax
jne 0x1011fa9d
xor edi, edi
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x1c]
xor bl, bl
mov byte [esp + 0x12], bl
mov dword [esp + 0x5c], edi
cmp dword [esp + 0x3c], edi
je 0x1011ffe8
mov ecx, dword [ebp + 0x34]
xor al, al
push ecx
push esi
mov dword [esp + 0x44], edi
mov dword [esp + 0x6c], ecx
mov byte [esp + 0x1b], al
call fcn.100d1d20
add esp, 8
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x1011ffe8
lea eax, [esp + 0x3c]
push eax
push esi
call fcn.100d1be0
movzx ebx, ax
add esp, 8
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x1011f8eb
mov eax, ebx
shr eax, 8
and al, 1
or byte [esp + 0x13], al
mov eax, ebx
and eax, 1
lea eax, [eax*2 + 4]
test bl, 8
je 0x1011f8a0
add eax, 2
jmp 0x1011f8b1
test bl, 0x40
je 0x1011f8aa
add eax, 4
jmp 0x1011f8b1
test bl, bl
jns 0x1011f8b1
add eax, 8
push eax
push esi
call fcn.100d1d60
add esp, 8
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x1011f8eb
test bl, 0x20
jne 0x1011f866
push esi
call sym.project.dll_cairo_surface_get_type
mov edi, eax
add esp, 4
mov al, byte [esp + 0x13]
sub edi, dword [esp + 0x64]
mov bl, al
mov byte [esp + 0x12], al
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x5c], edi
jmp 0x1011f8ef
mov bl, byte [esp + 0x12]
test eax, eax
jne 0x1011ffe8
test bl, bl
je 0x1011f939
push dword [ebp + 0x28]
push esi
call fcn.100d1d20
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ffe8
lea eax, [esp + 0x50]
push eax
push esi
call fcn.1011d210
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ffe8
push esi
call sym.project.dll_cairo_surface_get_type
add esp, 4
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x50]
add edi, 0xc
movzx ebx, ax
mov eax, dword [esp + 0x2c]
add edi, ebx
cmp eax, edi
jae 0x1011f97f
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x24]
push ecx
push edi
push eax
push 1
push dword [esp + 0xb8]
call fcn.100d3890
add esp, 0x18
mov dword [esp + 0x20], eax
cmp dword [esp + 0x18], 0
jne 0x1011ffe8
mov dword [esp + 0x2c], edi
jmp 0x1011f983
mov eax, dword [esp + 0x20]
mov word [eax], 0xffff
push dword [ebp + 0x40]
push esi
call fcn.100d1d20
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ffe8
lea eax, [esp + 0x18]
push eax
push esi
call fcn.100d1be0
add esp, 8
movzx eax, ax
cmp dword [esp + 0x18], 0
mov dword [esp + 0x44], eax
jne 0x1011ffe8
push dword [ebp + 0x40]
push esi
call fcn.100d1d20
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ffe8
mov eax, dword [esp + 0x20]
push 8
add eax, 2
push eax
push esi
call fcn.100d1690
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ffe8
push dword [ebp + 0x34]
add dword [ebp + 0x40], 8
push esi
call fcn.100d1d20
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ffe8
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x5c]
add eax, 0xa
push edi
push eax
push esi
call fcn.100d1690
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ffe8
add dword [ebp + 0x34], edi
lea ebp, [edi + 0xa]
cmp byte [esp + 0x12], al
je 0x1011fa96
mov ecx, dword [esp + 0x50]
mov eax, ecx
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
shr eax, 8
mov byte [edx + ebp], al
mov byte [edx + ebp + 1], cl
add ebp, 2
push dword [edi + 0x4c]
push esi
call fcn.100d1d20
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ff81
mov eax, dword [esp + 0x20]
push ebx
add eax, ebp
push eax
push esi
call fcn.100d1690
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ff81
add dword [edi + 0x4c], ebx
add ebp, ebx
xor ebx, ebx
jmp 0x1011fecc
test cx, cx
je 0x1011fec0
mov eax, dword [esp + 0x60]
xor ebp, ebp
mov dword [esp + 0x64], ebp
mov byte [esp + 0x54], 0
test eax, eax
je 0x1011fb00
add eax, edi
push eax
push esi
call fcn.100d1d20
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ff81
lea eax, [esp + 0x18]
push eax
push esi
call fcn.100d1790
add esp, 8
cmp dword [esp + 0x18], ebp
jne 0x1011ff81
test al, bl
mov ecx, 1
movzx eax, byte [esp + 0x54]
cmovne eax, ecx
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x54], al
movzx eax, cx
lea ecx, [esp + 0x18]
push ecx
push 0
push eax
push 0
push 2
push dword [esp + 0xb8]
call fcn.100d3890
add esp, 0x18
mov ebx, eax
cmp dword [esp + 0x18], ebp
jne 0x1011ff83
mov ecx, dword [esp + 0x1c]
push dword [ecx + 0x10]
push esi
call fcn.100d1d20
add esp, 8
mov dword [esp + 0x18], eax
xor edi, edi
test eax, eax
jne 0x1011ff85
cmp word [esp + 0x24], di
je 0x1011fb92
nop
lea eax, [esp + 0x14]
push eax
push esi
call fcn.1011d210
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ff83
mov ax, word [esp + 0x14]
mov word [ebx + edi*2], ax
movzx eax, ax
add eax, ebp
cmp eax, ebp
jb 0x1011ff83
mov ecx, dword [esp + 0x24]
mov ebp, eax
inc edi
movzx eax, cx
mov dword [esp + 0x64], ebp
cmp edi, eax
jb 0x1011fb50
push esi
call sym.project.dll_cairo_surface_get_type
mov edx, dword [esp + 0x20]
add esp, 4
mov dword [edx + 0x10], eax
cmp ebp, dword [edx + 0x20]
ja 0x1011ffee
mov ecx, dword [esi]
mov eax, dword [edx + 0x1c]
add eax, ecx
mov dword [esp + 0x78], ecx
mov ecx, dword [edx + 0x24]
mov dword [esp + 0x7c], eax
mov eax, dword [edx + 0x28]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x70], eax
sub eax, ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x74], edx
cmp edx, eax
jb 0x1011ff83
lea eax, [esp + 0x18]
mov dword [esp + 0x5c], 0
push eax
push 0
push ebp
push 0
push 0xc
push dword [esp + 0xb8]
call fcn.100d3890
add esp, 0x18
mov edi, eax
cmp dword [esp + 0x18], 0
jne 0x1011ff98
lea eax, [esp + 0x5c]
push eax
mov eax, dword [esp + 0x48]
sub eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
push edi
push ebp
push eax
mov eax, dword [esp + 0x88]
add eax, dword [esp + 0x80]
push eax
push dword [esp + 0x90]
call fcn.10120ee0
add esp, 0x18
test eax, eax
jne 0x1011ff85
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x5c]
add dword [ecx + 0x28], eax
push dword [ecx + 0x28]
add dword [ecx + 0x1c], ebp
push esi
call fcn.100d1d20
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ff85
lea eax, [esp + 0x40]
push eax
push esi
call fcn.1011d210
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ff85
push esi
call sym.project.dll_cairo_surface_get_type
mov ecx, dword [esp + 0x20]
add esp, 4
mov dword [ecx + 0x28], eax
cmp ebp, 0x8000000
jae 0x1011ff85
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x24]
movzx eax, cx
add eax, ebp
movzx ecx, dx
lea eax, [eax + ebp*4]
lea eax, [eax + ecx*2]
add eax, 0xc
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x2c], eax
jae 0x1011fd01
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x24]
push ecx
push eax
push dword [esp + 0x38]
push 1
push dword [esp + 0xb8]
call fcn.100d3890
add esp, 0x18
mov ecx, eax
cmp dword [esp + 0x18], 0
mov dword [esp + 0x20], ecx
jne 0x1011ff98
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
jmp 0x1011fd05
mov ecx, dword [esp + 0x20]
mov eax, edx
mov byte [ecx + 1], dl
shr eax, 8
cmp dword [esp + 0x3c], 0
mov byte [ecx], al
je 0x1011fd8f
mov ebp, dword [esp + 0x1c]
push dword [ebp + 0x40]
push esi
call fcn.100d1d20
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ff89
lea eax, [esp + 0x18]
push eax
push esi
call fcn.100d1be0
add esp, 8
movzx eax, ax
cmp dword [esp + 0x18], 0
mov dword [esp + 0x44], eax
jne 0x1011ff9c
push dword [ebp + 0x40]
push esi
call fcn.100d1d20
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ff89
mov eax, dword [esp + 0x20]
push 8
add eax, 2
push eax
push esi
call fcn.100d1690
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ff89
add dword [ebp + 0x40], 8
jmp 0x1011fda7
lea eax, [esp + 0x50]
push eax
push ecx
push edi
push ebp
call fcn.1011d5f0
mov eax, dword [esp + 0x60]
add esp, 0x10
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x20]
xor ebp, ebp
mov esi, dword [esp + 0x88]
add edx, 0xa
or ecx, 0xffffffff
mov dword [esp + 0x3c], 0xa
cmp word [esp + 0x24], bp
je 0x1011fe08
mov dword [esp + 0x3c], 0xa
movzx eax, word [ebx + ebp*2]
add ecx, eax
cmp ecx, 0x10000
jge 0x1011ff85
mov esi, dword [esp + 0x24]
mov eax, ecx
add dword [esp + 0x3c], 2
inc ebp
sar eax, 8
mov byte [edx], al
movzx eax, si
mov esi, dword [esp + 0x88]
mov byte [edx + 1], cl
add edx, 2
cmp ebp, eax
jb 0x1011fdd1
mov ecx, dword [esp + 0x40]
mov eax, ecx
mov ebp, dword [esp + 0x3c]
shr eax, 8
add ebp, 2
mov byte [edx], al
mov eax, dword [esp + 0x1c]
mov byte [edx + 1], cl
push dword [eax + 0x4c]
push esi
call fcn.100d1d20
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ff85
mov ecx, dword [esp + 0x40]
movzx eax, cx
push eax
mov eax, dword [esp + 0x24]
add eax, ebp
push eax
push esi
call fcn.100d1690
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1011ff85
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x1c]
movzx ecx, dx
add dword [eax + 0x4c], ecx
lea eax, [ecx + ebp]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x5c]
push eax
push dword [esp + 0x30]
push dword [esp + 0x28]
push dword [esp + 0x60]
push edx
push dword [esp + 0x38]
push edi
push dword [esp + 0x80]
call fcn.10120c80
add esp, 0x20
test eax, eax
jne 0x1011ff85
mov ebp, dword [esp + 0xa4]
push edi
push ebp
call fcn.100d3720
push ebx
push ebp
call fcn.100d3720
mov ebp, dword [esp + 0x6c]
add esp, 0x10
xor ebx, ebx
jmp 0x1011fecc
xor ebx, ebx
cmp dword [esp + 0x3c], ebx
jne 0x1011ff81
push dword [esp + 0xa4]
mov eax, dword [esp + 0x4c]
mov edi, ebx
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
sub ecx, dword [esp + 0x84]
push ebp
push dword [esp + 0x28]
mov dword [edx + eax*4], ecx
lea eax, [esp + 0x58]
push eax
push dword [esp + 0xa8]
lea eax, [esp + 0x4c]
push eax
call fcn.10124a90
add esp, 0x18
test eax, eax
jne 0x1011ff85
push dword [esp + 0xa4]
lea eax, [esp + 0x50]
push eax
push dword [esp + 0xa0]
lea eax, [esp + 0x44]
push eax
call fcn.1011e6c0
add esp, 0x10
test eax, eax
jne 0x1011ff85
push ebp
push dword [esp + 0x24]
call fcn.1011d550
mov ecx, dword [esp + 0x94]
add esp, 8
mov ebx, dword [esp + 0x48]
add dword [ecx], eax
cmp word [esp + 0x24], 0
jbe 0x1011ff65
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x44]
mov eax, dword [eax + 8]
mov word [eax + ebx*2], cx
inc ebx
mov dword [esp + 0x48], ebx
cmp ebx, dword [esp + 0x30]
jae 0x1011fff4
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x34], eax
jmp 0x1011f776
xor ebx, ebx
xor edi, edi
mov ebp, dword [esp + 0x1c]
cmp dword [esp + 0x18], 0
jne 0x1011ff9c
mov dword [esp + 0x18], 8
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x38]
push ebp
mov ebp, dword [esp + 0xa8]
push ebp
mov dword [ecx], eax
call fcn.100d3720
push dword [esp + 0x30]
push ebp
call fcn.100d3720
push ebx
push ebp
call fcn.100d3720
push dword [esp + 0x38]
push ebp
call fcn.100d3720
push edi
push ebp
call fcn.100d3720
mov eax, dword [esp + 0x40]
add esp, 0x28
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x74
ret
xor ebx, ebx
xor edi, edi
jmp 0x1011ff89
xor edi, edi
mov ebp, edx
jmp 0x1011ff89
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x34], edx
jmp 0x10120002
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0xa0]
mov eax, edx
mov esi, dword [esp + 0x28]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x60], edx
mov ecx, dword [ebx + 0xc]
sub eax, dword [ecx + 0x1c]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 0x10]
mov dword [eax + 0x1c], edx
mov eax, dword [esp + 0x68]
movzx ecx, ax
mov eax, dword [ebx + 0xc]
xor ebx, ebx
cmp word [esp + 0x58], bx
setne bl
lea edi, [ecx + 1]
mov eax, dword [eax + 8]
mov dword [esi + ecx*4], eax
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0xa4]
lea ebx, [ebx*2 + 2]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x3c]
push eax
imul ebx, edi
push 0
push ebx
push 0
push 1
push esi
mov dword [esp + 0x80], ebx
call fcn.100d3790
add esp, 0x18
mov ebp, eax
cmp dword [esp + 0x3c], 0
jne 0x10120147
xor esi, esi
mov edx, ebp
test edi, edi
je 0x101200ec
mov ebx, dword [esp + 0x28]
cmp word [esp + 0x58], si
je 0x101200c8
nop dword [eax]
mov ecx, dword [ebx + esi*4]
lea edx, [edx + 4]
mov eax, ecx
inc esi
shr eax, 0x18
mov byte [edx - 4], al
mov eax, ecx
shr eax, 0x10
mov byte [edx - 3], al
mov eax, ecx
shr eax, 8
mov byte [edx - 2], al
mov byte [edx - 1], cl
cmp esi, edi
jb 0x101200a0
jmp 0x101200e8
xor esi, esi
nop word [eax + eax]
mov ecx, dword [ebx + esi*4]
lea edx, [edx + 2]
mov eax, ecx
inc esi
shr eax, 9
shr ecx, 1
mov byte [edx - 2], al
mov byte [edx - 1], cl
cmp esi, edi
jb 0x101200d0
mov ebx, dword [esp + 0x68]
push ebx
push ebp
call fcn.1011d550
mov ecx, dword [esp + 0x98]
mov esi, dword [esp + 0xac]
push esi
push ebx
mov dword [ecx], eax
lea eax, [esp + 0x70]
push ebp
push eax
push dword [esp + 0xb0]
lea eax, [esp + 0x80]
push eax
call fcn.10124a90
add esp, 0x20
test eax, eax
je 0x10120137
cmp dword [esp + 0x3c], 0
jne 0x10120147
mov dword [esp + 0x3c], 8
jmp 0x10120147
mov eax, dword [esp + 0x64]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x34], eax
mov eax, esi
push ebp
push eax
call fcn.100d3720
xor ebx, ebx
add esp, 8
xor edi, edi
cmp dword [esp + 0x3c], ebx
jne 0x1011ff85
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x34]
push dword [esp + 0x1c]
mov ecx, dword [eax + 0x10]
mov eax, edx
push esi
sub eax, dword [ecx + 0x1c]
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x40]
mov dword [ecx], eax
mov eax, dword [esp + 0xa4]
mov dword [eax], edx
call fcn.100d3720
push dword [esp + 0x30]
push esi
call fcn.100d3720
push edi
push esi
call fcn.100d3720
push dword [esp + 0x38]
push esi
call fcn.100d3720
push edi
push esi
call fcn.100d3720
mov eax, dword [esp + 0x40]
add esp, 0x28
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x74
ret