Function at 0x10128bd0
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.100dcfa0
add esp, 0x1c
mov ebp, eax
mov dword [esp + 0x1c], ebp
cmp dword [esp + 0x18], ebx
jne 0x1012969c
push 2
push esi
call fcn.100db470
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x10129689
lea eax, [esp + 0x18]
push eax
push esi
call fcn.100db2f0
add esp, 8
movzx eax, ax
mov dword [esp + 0x5c], eax
cmp dword [esp + 0x18], ebx
jne 0x1012969c
lea eax, [esp + 0x18]
push eax
push esi
call fcn.100db2f0
add esp, 8
movzx eax, ax
mov dword [esp + 0x68], eax
cmp dword [esp + 0x18], ebx
jne 0x1012969c
lea eax, [esp + 0x18]
push eax
push esi
call fcn.100db2f0
add esp, 8
movzx eax, ax
mov dword [esp + 0x58], eax
cmp dword [esp + 0x18], ebx
jne 0x1012969c
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 0x10129690
mov eax, dword [edx + 0xc]
mov dword [esp + 0x54], 0x24
cmp dword [eax + 0xc], 0x24
jb 0x10129690
mov dword [esp + 0x50], ebx
add ebp, 8
nop dword [eax]
lea eax, [esp + 0x18]
push eax
push esi
call fcn.100db150
add esp, 8
mov dword [esp + 0x64], eax
cmp dword [esp + 0x18], ebx
jne 0x10129698
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 0x10129690
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 0x10128d20
test byte [esp + 0x5c], 1
mov ebp, dword [esp + 0x30]
je 0x10128db3
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 0x10129685
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.100dcfa0
mov ebp, dword [esp + 0x34]
add esp, 0x18
mov dword [esp + 0x28], eax
cmp dword [esp + 0x18], ebx
jne 0x1012969c
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.100dcfa0
add esp, 0x18
mov dword [esp + 0x20], eax
cmp dword [esp + 0x18], ebx
jne 0x1012969c
lea eax, [esp + 0x18]
push eax
push 0
push dword [esp + 0x38]
push 0
push 2
push dword [esp + 0xb8]
call fcn.100dcfa0
mov ecx, dword [esp + 0xb8]
add esp, 0x18
mov dword [ecx + 8], eax
cmp dword [esp + 0x18], ebx
jne 0x1012969c
xor ebx, ebx
mov dword [esp + 0x48], ebx
cmp dword [esp + 0x30], ebx
jbe 0x101296fe
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.100db430
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x10129681
lea eax, [esp + 0x18]
push eax
push esi
call fcn.100daea0
add esp, 8
cmp dword [esp + 0x18], ebp
jne 0x10129681
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.100db430
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x10129681
lea eax, [esp + 0x18]
push eax
push esi
call fcn.100db2f0
add esp, 8
movzx ecx, ax
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x18], ebp
jne 0x10129681
mov eax, dword [esp + 0x1c]
add dword [eax + 4], 2
mov eax, 0xffff
cmp cx, ax
jne 0x1012919d
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 0x101296e8
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.100db430
add esp, 8
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x101296e8
lea eax, [esp + 0x3c]
push eax
push esi
call fcn.100db2f0
movzx ebx, ax
add esp, 8
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x10128feb
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 0x10128fa0
add eax, 2
jmp 0x10128fb1
test bl, 0x40
je 0x10128faa
add eax, 4
jmp 0x10128fb1
test bl, bl
jns 0x10128fb1
add eax, 8
push eax
push esi
call fcn.100db470
add esp, 8
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x10128feb
test bl, 0x20
jne 0x10128f66
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 0x10128fef
mov bl, byte [esp + 0x12]
test eax, eax
jne 0x101296e8
test bl, bl
je 0x10129039
push dword [ebp + 0x28]
push esi
call fcn.100db430
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x101296e8
lea eax, [esp + 0x50]
push eax
push esi
call fcn.10126910
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x101296e8
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 0x1012907f
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.100dcfa0
add esp, 0x18
mov dword [esp + 0x20], eax
cmp dword [esp + 0x18], 0
jne 0x101296e8
mov dword [esp + 0x2c], edi
jmp 0x10129083
mov eax, dword [esp + 0x20]
mov word [eax], 0xffff
push dword [ebp + 0x40]
push esi
call fcn.100db430
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x101296e8
lea eax, [esp + 0x18]
push eax
push esi
call fcn.100db2f0
add esp, 8
movzx eax, ax
cmp dword [esp + 0x18], 0
mov dword [esp + 0x44], eax
jne 0x101296e8
push dword [ebp + 0x40]
push esi
call fcn.100db430
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x101296e8
mov eax, dword [esp + 0x20]
push 8
add eax, 2
push eax
push esi
call fcn.100dada0
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x101296e8
push dword [ebp + 0x34]
add dword [ebp + 0x40], 8
push esi
call fcn.100db430
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x101296e8
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x5c]
add eax, 0xa
push edi
push eax
push esi
call fcn.100dada0
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x101296e8
add dword [ebp + 0x34], edi
lea ebp, [edi + 0xa]
cmp byte [esp + 0x12], al
je 0x10129196
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.100db430
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x10129681
mov eax, dword [esp + 0x20]
push ebx
add eax, ebp
push eax
push esi
call fcn.100dada0
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x10129681
add dword [edi + 0x4c], ebx
add ebp, ebx
xor ebx, ebx
jmp 0x101295cc
test cx, cx
je 0x101295c0
mov eax, dword [esp + 0x60]
xor ebp, ebp
mov dword [esp + 0x64], ebp
mov byte [esp + 0x54], 0
test eax, eax
je 0x10129200
add eax, edi
push eax
push esi
call fcn.100db430
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x10129681
lea eax, [esp + 0x18]
push eax
push esi
call fcn.100daea0
add esp, 8
cmp dword [esp + 0x18], ebp
jne 0x10129681
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.100dcfa0
add esp, 0x18
mov ebx, eax
cmp dword [esp + 0x18], ebp
jne 0x10129683
mov ecx, dword [esp + 0x1c]
push dword [ecx + 0x10]
push esi
call fcn.100db430
add esp, 8
mov dword [esp + 0x18], eax
xor edi, edi
test eax, eax
jne 0x10129685
cmp word [esp + 0x24], di
je 0x10129292
nop
lea eax, [esp + 0x14]
push eax
push esi
call fcn.10126910
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x10129683
mov ax, word [esp + 0x14]
mov word [ebx + edi*2], ax
movzx eax, ax
add eax, ebp
cmp eax, ebp
jb 0x10129683
mov ecx, dword [esp + 0x24]
mov ebp, eax
inc edi
movzx eax, cx
mov dword [esp + 0x64], ebp
cmp edi, eax
jb 0x10129250
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 0x101296ee
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 0x10129683
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.100dcfa0
add esp, 0x18
mov edi, eax
cmp dword [esp + 0x18], 0
jne 0x10129698
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.1012a5e0
add esp, 0x18
test eax, eax
jne 0x10129685
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.100db430
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x10129685
lea eax, [esp + 0x40]
push eax
push esi
call fcn.10126910
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x10129685
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 0x10129685
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 0x10129401
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.100dcfa0
add esp, 0x18
mov ecx, eax
cmp dword [esp + 0x18], 0
mov dword [esp + 0x20], ecx
jne 0x10129698
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
jmp 0x10129405
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 0x1012948f
mov ebp, dword [esp + 0x1c]
push dword [ebp + 0x40]
push esi
call fcn.100db430
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x10129689
lea eax, [esp + 0x18]
push eax
push esi
call fcn.100db2f0
add esp, 8
movzx eax, ax
cmp dword [esp + 0x18], 0
mov dword [esp + 0x44], eax
jne 0x1012969c
push dword [ebp + 0x40]
push esi
call fcn.100db430
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x10129689
mov eax, dword [esp + 0x20]
push 8
add eax, 2
push eax
push esi
call fcn.100dada0
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x10129689
add dword [ebp + 0x40], 8
jmp 0x101294a7
lea eax, [esp + 0x50]
push eax
push ecx
push edi
push ebp
call fcn.10126cf0
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 0x10129508
mov dword [esp + 0x3c], 0xa
movzx eax, word [ebx + ebp*2]
add ecx, eax
cmp ecx, 0x10000
jge 0x10129685
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 0x101294d1
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.100db430
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x10129685
mov ecx, dword [esp + 0x40]
movzx eax, cx
push eax
mov eax, dword [esp + 0x24]
add eax, ebp
push eax
push esi
call fcn.100dada0
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x10129685
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.1012a380
add esp, 0x20
test eax, eax
jne 0x10129685
mov ebp, dword [esp + 0xa4]
push edi
push ebp
call fcn.100dce30
push ebx
push ebp
call fcn.100dce30
mov ebp, dword [esp + 0x6c]
add esp, 0x10
xor ebx, ebx
jmp 0x101295cc
xor ebx, ebx
cmp dword [esp + 0x3c], ebx
jne 0x10129681
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.1012e190
add esp, 0x18
test eax, eax
jne 0x10129685
push dword [esp + 0xa4]
lea eax, [esp + 0x50]
push eax
push dword [esp + 0xa0]
lea eax, [esp + 0x44]
push eax
call fcn.10127dc0
add esp, 0x10
test eax, eax
jne 0x10129685
push ebp
push dword [esp + 0x24]
call fcn.10126c50
mov ecx, dword [esp + 0x94]
add esp, 8
mov ebx, dword [esp + 0x48]
add dword [ecx], eax
cmp word [esp + 0x24], 0
jbe 0x10129665
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 0x101296f4
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x34], eax
jmp 0x10128e76
xor ebx, ebx
xor edi, edi
mov ebp, dword [esp + 0x1c]
cmp dword [esp + 0x18], 0
jne 0x1012969c
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.100dce30
push dword [esp + 0x30]
push ebp
call fcn.100dce30
push ebx
push ebp
call fcn.100dce30
push dword [esp + 0x38]
push ebp
call fcn.100dce30
push edi
push ebp
call fcn.100dce30
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 0x10129689
xor edi, edi
mov ebp, edx
jmp 0x10129689
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x34], edx
jmp 0x10129702
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.100dcea0
add esp, 0x18
mov ebp, eax
cmp dword [esp + 0x3c], 0
jne 0x10129847
xor esi, esi
mov edx, ebp
test edi, edi
je 0x101297ec
mov ebx, dword [esp + 0x28]
cmp word [esp + 0x58], si
je 0x101297c8
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 0x101297a0
jmp 0x101297e8
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 0x101297d0
mov ebx, dword [esp + 0x68]
push ebx
push ebp
call fcn.10126c50
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.1012e190
add esp, 0x20
test eax, eax
je 0x10129837
cmp dword [esp + 0x3c], 0
jne 0x10129847
mov dword [esp + 0x3c], 8
jmp 0x10129847
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.100dce30
xor ebx, ebx
add esp, 8
xor edi, edi
cmp dword [esp + 0x3c], ebx
jne 0x10129685
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.100dce30
push dword [esp + 0x30]
push esi
call fcn.100dce30
push edi
push esi
call fcn.100dce30
push dword [esp + 0x38]
push esi
call fcn.100dce30
push edi
push esi
call fcn.100dce30
mov eax, dword [esp + 0x40]
add esp, 0x28
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x74
ret