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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2e4
mov edi, ecx
mov ecx, dword [esp + 0x2f8]
mov bl, byte [esp + 0x314]
call fcn.101219f0
mov eax, dword [edi + 4]
mov dword [esp + 8], edi
movzx eax, byte [eax + 4]
push eax
call fcn.100ceb6e
add esp, 4
lea ecx, [esp + 0x58]
mov dword [esp + 0x1c], eax
call fcn.100b8cf2
mov ebp, 0x20
lea edi, [esp + 0x244]
mov ecx, edi
call fcn.100b8cf2
add edi, 8
add ebp, 0xfffffff8
jne 0x1010c590
mov edi, 0xfffffff0
call fcn.1003b794
push 0
push eax
call fcn.1003b692
add esp, 8
mov dword [esp + edi + 0x244], eax
add edi, 4
jne 0x1010c5a4
movzx eax, bl
mov ebx, dword [esp + 8]
lea edx, [esp + 0x234]
lea edi, [esp + 0x244]
mov ecx, ebx
push eax
push edx
push dword [esp + 0x318]
lea esi, [esp + 0x64]
push esi
push edi
push dword [esp + 0x310]
call fcn.1010dbea
cmp dword [esp + 0x318], 4
mov ebp, dword [esp + 0x2f8]
jne 0x1010c672
lea esi, [esp + 0x1b8]
push dword [esp + 0x300]
push esi
call fcn.100b1bc2
add esp, 8
lea ecx, [esp + 0x74]
push dword [esi]
call fcn.1003dcb2
lea edi, [esp + 0x70]
lea esi, [esp + 0x1b4]
push dword [esp + 0x304]
push esi
call fcn.100b1bc2
add esp, 8
mov ecx, edi
push dword [esi]
call fcn.1003dcb2
lea edi, [esp + 0x6c]
lea esi, [esp + 0x1b0]
push dword [esp + 0x308]
push esi
call fcn.100b1bc2
add esp, 8
mov ecx, edi
push dword [esi]
call fcn.1003dcb2
jmp 0x1010d962
mov eax, dword [ebx + 4]
lea edx, [esp + 0x74]
mov ecx, ebx
mov eax, dword [eax + 8]
shr eax, 3
and eax, 7
push esi
push eax
push dword [esp + 0x308]
push edx
call fcn.1010df06
mov eax, dword [ebx + 4]
lea edx, [esp + 0x70]
mov ecx, ebx
mov eax, dword [eax + 8]
shr eax, 6
and eax, 7
push esi
push eax
push dword [esp + 0x30c]
push edx
call fcn.1010df06
mov eax, dword [ebx + 4]
lea edx, [esp + 0x6c]
mov ecx, ebx
mov eax, dword [eax + 8]
shr eax, 9
and eax, 7
push esi
push eax
push dword [esp + 0x310]
push edx
call fcn.1010df06
mov eax, dword [ebx + 4]
test byte [eax + 8], 7
je 0x1010d962
mov esi, 0x80
lea edi, [esp + 0x264]
mov ecx, edi
call fcn.101219f0
add edi, 0x10
add esi, 0xfffffff0
jne 0x1010c6ee
mov esi, 0xffffffe0
call fcn.1003ddac
push 0
push eax
call fcn.1003b692
add esp, 8
mov dword [esp + esi + 0x234], eax
add esi, 4
jne 0x1010c702
mov esi, 0xffffffe0
call fcn.1003ddac
push 0
push eax
call fcn.1003b692
add esp, 8
mov dword [esp + esi + 0x214], eax
add esi, 4
jne 0x1010c723
mov esi, 0xffffffe0
call fcn.1003ddac
push 0
push eax
call fcn.1003b692
add esp, 8
mov dword [esp + esi + 0x1f4], eax
add esi, 4
jne 0x1010c744
xor eax, eax
lea ebx, [esp + 0x214]
lea edx, [esp + 0x1f4]
lea ebp, [esp + 0x1d4]
mov dword [esp + 0x14], eax
lea eax, [eax + eax - 1]
xor esi, esi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x64], esi
lea esi, [esi + esi - 1]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x44], edx
mov dword [esp], edx
mov dword [esp + 0x68], ebx
mov dword [esp + 0xc], esi
mov esi, 0xffffffff
mov dword [esp + 4], ebp
mov ebp, dword [esp + 8]
mov edx, dword [esp + 0x310]
mov eax, dword [ebp + 4]
mov ecx, dword [eax + 8]
xor eax, eax
test cl, 0x38
mov ecx, ebp
sete al
push edx
push dword [esp + 0x2c]
push eax
push 0x50
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x88]
push eax
lea edi, [esp + 0x90]
push edi
call fcn.10109590
mov ecx, ebx
push edi
lea eax, [esp + 0xf4]
push eax
call fcn.1003df26
mov ecx, dword [ebp + 4]
xor eax, eax
test dword [ecx + 8], 0x1c0
mov ecx, ebp
sete al
push dword [esp + 0x310]
push dword [esp + 0x10]
push eax
push 0x58
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x84]
push eax
push edi
call fcn.10109590
mov edi, dword [esp]
lea eax, [esp + 0x78]
mov ecx, edi
push eax
lea eax, [esp + 0xf4]
push eax
call fcn.1003df26
mov ecx, dword [ebp + 4]
xor eax, eax
test dword [ecx + 8], 0xe00
mov ecx, ebp
mov ebp, dword [esp + 4]
sete al
push dword [esp + 0x310]
push esi
push eax
push 0x60
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x90]
push eax
call fcn.10109590
lea eax, [esp + 0x78]
mov ecx, ebp
push eax
lea eax, [esp + 0xf4]
push eax
call fcn.1003df26
add esi, 2
add edi, 4
add ebx, 4
add ebp, 4
cmp esi, 3
mov dword [esp], edi
jne 0x1010c7b1
mov esi, dword [esp + 0x64]
mov ebx, dword [esp + 0x68]
mov edx, dword [esp + 0x44]
mov ebp, dword [esp + 0x18]
inc esi
add ebx, 8
add edx, 8
add ebp, 8
cmp esi, 2
jne 0x1010c791
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
inc eax
add ebx, 0x10
add edx, 0x10
add ebp, 0x10
cmp eax, 2
jne 0x1010c777
lea ecx, [esp + 0x58]
call fcn.100b1880
lea edi, [esp + 0x1a8]
push 0x68
push eax
push edi
call fcn.10042ef9
add esp, 0xc
xor eax, eax
lea esi, [esp + 0x1cc]
inc eax
mov ecx, esi
push eax
push dword [edi]
call fcn.100bb686
mov edi, dword [esi + 4]
mov ecx, esi
call fcn.100b19e4
mov esi, eax
call fcn.1003ddac
xor ebp, ebp
push edi
push ebp
push eax
push esi
call fcn.1003be3a
add esp, 0x10
mov esi, eax
lea eax, [esp + 0x214]
lea edi, [esp + 0x1a4]
push eax
push edi
call fcn.100e25e5
add esp, 8
lea ebx, [esp + 0x1ac]
push esi
push dword [edi]
push ebx
call fcn.1003dff1
add esp, 0xc
lea ecx, [esp + 0x40]
push dword [ebx]
call fcn.1003de44
lea ecx, [esp + 0x58]
call fcn.100b1880
lea ebx, [esp + 0x19c]
push 0x70
push eax
push ebx
call fcn.10042ef9
add esp, 0xc
xor eax, eax
lea edi, [esp + 0x1c4]
inc eax
mov ecx, edi
push eax
push dword [ebx]
call fcn.100bb686
mov ebx, dword [edi + 4]
mov ecx, edi
call fcn.100b19e4
mov edi, eax
call fcn.1003ddac
push ebx
push ebp
push eax
push edi
call fcn.1003be3a
add esp, 0x10
mov edi, eax
lea eax, [esp + 0x1f4]
lea ebx, [esp + 0x198]
push eax
push ebx
call fcn.100e25e5
add esp, 8
lea esi, [esp + 0x1a0]
push edi
push dword [ebx]
push esi
call fcn.1003dff1
add esp, 0xc
lea ecx, [esp + 0x3c]
push dword [esi]
call fcn.1003de44
lea ecx, [esp + 0x58]
call fcn.100b1880
lea esi, [esp + 0x190]
push pe_nt_image_headers32
push eax
push esi
call fcn.10042ef9
add esp, 0xc
xor eax, eax
lea ebx, [esp + 0x1bc]
inc eax
mov ecx, ebx
push eax
push dword [esi]
call fcn.100bb686
mov esi, dword [ebx + 4]
mov ecx, ebx
call fcn.100b19e4
mov ebx, eax
call fcn.1003ddac
push esi
push ebp
push eax
push ebx
call fcn.1003be3a
add esp, 0x10
mov ebx, eax
lea eax, [esp + 0x1d4]
lea esi, [esp + 0x18c]
push eax
push esi
call fcn.100e25e5
add esp, 8
lea edi, [esp + 0x194]
push ebx
push dword [esi]
push edi
call fcn.1003dff1
add esp, 0xc
lea ebx, [esp + 0x54]
mov ecx, ebx
push dword [edi]
call fcn.1003de44
call fcn.1003ddac
push ebp
push ebp
push eax
lea eax, [esp + 0x4c]
push dword [eax]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x188]
push eax
push esi
call fcn.1003c781
add esp, 8
lea ecx, [esp + 0x50]
push dword [esi]
call fcn.1003de44
call fcn.1003ddac
push ebp
push ebp
push eax
lea eax, [esp + 0x48]
push dword [eax]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x184]
push eax
push esi
call fcn.1003c781
add esp, 8
lea ecx, [esp + 0x4c]
push dword [esi]
call fcn.1003de44
call fcn.1003ddac
push ebp
push ebp
push eax
push dword [ebx]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x180]
push eax
push esi
call fcn.1003c781
add esp, 8
lea ecx, [esp + 0x48]
push dword [esi]
call fcn.1003de44
mov esi, 0xffffffe0
call fcn.1003ddac
push 0
push eax
call fcn.1003b692
add esp, 8
mov dword [esp + esi + 0x98], eax
add esi, 4
jne 0x1010cb21
mov esi, 0xffffffe0
call fcn.1003ddac
push 0
push eax
call fcn.1003b692
add esp, 8
mov dword [esp + esi + 0x110], eax
add esi, 4
jne 0x1010cb42
call fcn.1003ddac
xor ebx, ebx
push ebx
push ebx
push eax
push dword [esp + 0x58]
call fcn.1003be3a
add esp, 0x10
mov esi, eax
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x5c]
call fcn.1003be3a
add esp, 0x10
lea edi, [esp + 0x17c]
push esi
push eax
push edi
call fcn.1003f2dd
add esp, 0xc
lea ecx, [esp + 0x94]
lea eax, [esp + 0x2c]
push dword [edi]
push eax
mov ebp, eax
call fcn.1003defe
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x58]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x4c]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x178]
push edi
push eax
push esi
call fcn.1003f2dd
add esp, 0xc
lea ecx, [esp + 0x84]
push dword [esi]
push ebp
call fcn.1003defe
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x48]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x5c]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x174]
push edi
push eax
push esi
call fcn.1003f2dd
add esp, 0xc
lea ecx, [esp + 0x8c]
push dword [esi]
push ebp
call fcn.1003defe
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x48]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x4c]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x170]
push edi
push eax
push esi
call fcn.1003f2dd
add esp, 0xc
lea ecx, [esp + 0x7c]
push dword [esi]
push ebp
call fcn.1003defe
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x58]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x5c]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x16c]
push edi
push eax
push esi
call fcn.1003f2dd
add esp, 0xc
lea ecx, [esp + 0x90]
push dword [esi]
push ebp
call fcn.1003defe
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x58]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x4c]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x168]
push edi
push eax
push esi
call fcn.1003f2dd
add esp, 0xc
lea ecx, [esp + 0x80]
push dword [esi]
push ebp
call fcn.1003defe
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x48]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x5c]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x164]
push edi
push eax
push esi
call fcn.1003f2dd
add esp, 0xc
lea ecx, [esp + 0x88]
push dword [esi]
push ebp
call fcn.1003defe
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x48]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x4c]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x160]
push edi
push eax
push esi
call fcn.1003f2dd
add esp, 0xc
lea ebp, [esp + 0x78]
mov ecx, ebp
push dword [esi]
lea eax, [esp + 0x30]
push eax
call fcn.1003defe
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x54]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [ebp + 0x1c]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x15c]
push edi
push eax
push esi
call fcn.1003f2dd
add esp, 0xc
lea ecx, [esp + 0x94]
push dword [esi]
lea eax, [esp + 0x30]
push eax
call fcn.1003defe
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x54]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [ebp + 0xc]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x158]
push edi
push eax
push esi
call fcn.1003f2dd
add esp, 0xc
lea ecx, [esp + 0x84]
push dword [esi]
lea eax, [esp + 0x30]
push eax
call fcn.1003defe
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x54]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [ebp + 0x14]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x154]
push edi
push eax
push esi
call fcn.1003f2dd
add esp, 0xc
lea ecx, [esp + 0x8c]
push dword [esi]
lea eax, [esp + 0x30]
push eax
call fcn.1003defe
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x54]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [ebp + 4]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x150]
push edi
push eax
push esi
call fcn.1003f2dd
add esp, 0xc
lea ecx, [esp + 0x7c]
push dword [esi]
lea eax, [esp + 0x30]
push eax
call fcn.1003defe
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x60]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [ebp + 0x18]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x14c]
push edi
push eax
push esi
call fcn.1003f2dd
add esp, 0xc
lea ecx, [esp + 0x90]
push dword [esi]
lea eax, [esp + 0x30]
push eax
call fcn.1003defe
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x60]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [ebp + 8]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x148]
push edi
push eax
push esi
call fcn.1003f2dd
add esp, 0xc
lea ecx, [esp + 0x80]
push dword [esi]
lea eax, [esp + 0x30]
push eax
call fcn.1003defe
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x60]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [ebp + 0x10]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x144]
push edi
push eax
push esi
call fcn.1003f2dd
add esp, 0xc
lea ecx, [esp + 0x88]
push dword [esi]
lea eax, [esp + 0x30]
push eax
call fcn.1003defe
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x60]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [ebp]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x140]
push edi
lea edi, [esp + 0x30]
push eax
push esi
call fcn.1003f2dd
add esp, 0xc
xor ebx, ebx
mov ecx, ebp
push dword [esi]
push edi
call fcn.1003defe
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
movzx eax, byte [eax + 4]
push ebx
push eax
call fcn.100cea38
add esp, 8
test al, al
je 0x1010d093
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
movzx eax, byte [eax + 4]
push 1
push eax
call fcn.100cea38
add esp, 8
test al, al
je 0x1010d093
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
movzx eax, byte [eax + 4]
push 2
push eax
call fcn.100cea38
add esp, 8
test al, al
je 0x1010d093
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
movzx eax, byte [eax + 4]
push 3
push eax
call fcn.100cea38
add esp, 8
test al, al
jne 0x1010d256
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x84]
call fcn.1003be3a
add esp, 0x10
xor ebp, ebp
lea esi, [esp + 0x13c]
inc ebp
push ebp
push eax
push esi
call fcn.1003d2a9
add esp, 0xc
lea ecx, [esp + 0xf0]
push dword [esi]
push edi
call fcn.1003dfa0
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x88]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x138]
push ebp
push eax
push esi
call fcn.1003d2a9
add esp, 0xc
lea ecx, [esp + 0xf4]
push dword [esi]
push edi
call fcn.1003dfa0
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x8c]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x134]
push ebp
push eax
push esi
call fcn.1003d2a9
add esp, 0xc
lea ecx, [esp + 0xf8]
push dword [esi]
push edi
call fcn.1003dfa0
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x90]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x130]
push ebp
push eax
push esi
call fcn.1003d2a9
add esp, 0xc
lea ecx, [esp + 0xfc]
push dword [esi]
push edi
call fcn.1003dfa0
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x94]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x12c]
push ebp
push eax
push esi
call fcn.1003d2a9
add esp, 0xc
lea ecx, [esp + 0x100]
push dword [esi]
push edi
call fcn.1003dfa0
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x98]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x128]
push ebp
push eax
push esi
call fcn.1003d2a9
add esp, 0xc
lea ecx, [esp + 0x104]
push dword [esi]
push edi
call fcn.1003dfa0
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0x9c]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x124]
push ebp
push eax
push esi
call fcn.1003d2a9
add esp, 0xc
lea ecx, [esp + 0x108]
push dword [esi]
push edi
call fcn.1003dfa0
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [esp + 0xa0]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x120]
push ebp
push eax
push esi
call fcn.1003d2a9
add esp, 0xc
lea ecx, [esp + 0x10c]
push dword [esi]
push edi
call fcn.1003dfa0
lea edi, [esp + 0x10c]
lea ebp, [esp + 0x264]
lea eax, [esp + 0x214]
lea ecx, [esp + 0x1f4]
lea edx, [esp + 0x1d4]
lea esi, [esp + 0x94]
mov dword [esp + 0x60], 0
mov dword [esp + 0xa0], ebp
mov dword [esp], ebp
xor ebp, ebp
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xac], edx
mov dword [esp + 0xa8], esi
mov dword [esp + 0xa4], edi
mov dword [esp + 0x9c], esi
mov dword [esp + 4], ecx
mov esi, ecx
mov dword [esp + 0x98], edi
mov dword [esp + 0xb8], ebp
or ebp, dword [esp + 0x60]
xor ebx, ebx
mov edi, eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0xbc], ebp
mov ebp, edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 8]
push dword [esp + 0x31c]
push dword [esp + 0x31c]
lea eax, [esp + 0x24c]
push eax
lea eax, [esp + 0x64]
push eax
push dword [esp + 0x31c]
mov dword [esp + 0x2c], ebp
push ebp
mov dword [esp + 0x7c], esi
push esi
mov dword [esp + 0x84], edi
push edi
lea eax, [esp + 0x4c]
mov edi, eax
push eax
call fcn.1010e3f8
mov ecx, dword [esp]
mov eax, edi
lea edi, [ecx + ebx]
mov ecx, edi
push eax
call fcn.10121bce
cmp dword [esp + 0x1c], 0
mov ebp, ebx
jle 0x1010d3dc
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
movzx eax, byte [eax + 4]
push 0
push eax
call fcn.100cea38
add esp, 8
test al, al
je 0x1010d3f7
call fcn.1003ddac
xor ecx, ecx
push ecx
push ecx
push eax
mov eax, dword [esp + 0x30]
push dword [eax]
call fcn.1003be3a
add esp, 0x10
mov ebx, eax
push edi
lea eax, [esp + 0xec]
push eax
call fcn.100e25e5
add esp, 8
push ebx
mov ebx, dword [esp + 0xc]
push dword [esp + 0xec]
lea eax, [esp + 0xf4]
push eax
call fcn.1003f2dd
add esp, 0xc
mov ecx, edi
push dword [esp + 0xec]
lea edi, [esp + 0x30]
push edi
call fcn.1003dfa0
jmp 0x1010d451
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x14], 0
xor ebx, ebx
jmp 0x1010d5f4
call fcn.1003ddac
xor esi, esi
push esi
push esi
push eax
mov eax, dword [esp + 0x2c]
push dword [eax]
call fcn.1003be3a
add esp, 0x10
mov ebx, eax
call fcn.1003ddac
push esi
push esi
push eax
mov eax, dword [esp + 0xc]
push dword [eax + ebp]
call fcn.1003be3a
add esp, 0x10
push ebx
mov ebx, dword [esp + 0xc]
push eax
lea eax, [esp + 0xec]
push eax
call fcn.1003e5f0
add esp, 0xc
mov ecx, edi
push dword [esp + 0xe4]
lea edi, [esp + 0x30]
push edi
call fcn.1003defe
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x18]
cmp dword [esp + 0x1c], 2
jl 0x1010d4dd
mov eax, dword [ebx + 4]
movzx eax, byte [eax + 4]
push 1
push eax
call fcn.100cea38
add esp, 8
test al, al
je 0x1010d4f4
call fcn.1003ddac
xor ecx, ecx
push ecx
push ecx
push eax
mov eax, dword [esp + 0x30]
push dword [eax]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
mov eax, dword [esp]
lea ebx, [eax + ebp + 4]
push ebx
lea eax, [esp + 0xe0]
push eax
call fcn.100e25e5
add esp, 8
push edi
push dword [esp + 0xe0]
lea eax, [esp + 0xe8]
push eax
call fcn.1003f2dd
add esp, 0xc
mov edi, dword [esp + 8]
mov ecx, ebx
push dword [esp + 0xe0]
lea eax, [esp + 0x30]
push eax
call fcn.1003dfa0
jmp 0x1010d554
mov dword [esp + 0x14], 0
xor ebx, ebx
mov dword [esp + 0x10], 0
jmp 0x1010d76f
call fcn.1003ddac
xor esi, esi
push esi
push esi
push eax
mov eax, dword [esp + 0x2c]
push dword [eax]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
mov eax, dword [esp]
lea ebx, [eax + ebp + 4]
call fcn.1003ddac
push esi
push esi
mov esi, dword [esp + 0x20]
push eax
push dword [ebx]
call fcn.1003be3a
add esp, 0x10
push edi
push eax
lea eax, [esp + 0xe0]
push eax
call fcn.1003e5f0
add esp, 0xc
mov edi, dword [esp + 8]
mov ecx, ebx
push dword [esp + 0xd8]
lea eax, [esp + 0x30]
push eax
call fcn.1003defe
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
cmp eax, 3
jl 0x1010d5ea
mov eax, dword [edi + 4]
movzx eax, byte [eax + 4]
push 2
push eax
call fcn.100cea38
add esp, 8
test al, al
je 0x1010d605
call fcn.1003ddac
xor ecx, ecx
push ecx
push ecx
push eax
mov eax, dword [esp + 0x30]
push dword [eax]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
mov eax, dword [esp]
lea ebx, [eax + ebp + 8]
push ebx
lea eax, [esp + 0xd4]
push eax
call fcn.100e25e5
add esp, 8
push edi
push dword [esp + 0xd4]
lea eax, [esp + 0xdc]
push eax
call fcn.1003f2dd
add esp, 0xc
mov ecx, ebx
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 8]
push dword [esp + 0xd4]
lea eax, [esp + 0x30]
push eax
call fcn.1003dfa0
jmp 0x1010d669
mov bl, 1
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
lea edi, [esp + 0x2c]
jmp 0x1010d76f
call fcn.1003ddac
xor esi, esi
push esi
push esi
push eax
mov eax, dword [esp + 0x2c]
push dword [eax]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
mov eax, dword [esp]
lea ebx, [eax + ebp + 8]
call fcn.1003ddac
push esi
push esi
mov esi, dword [esp + 0x20]
push eax
push dword [ebx]
call fcn.1003be3a
add esp, 0x10
push edi
push eax
lea eax, [esp + 0xd4]
push eax
call fcn.1003e5f0
add esp, 0xc
mov ecx, ebx
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 8]
push dword [esp + 0xcc]
lea eax, [esp + 0x30]
push eax
call fcn.1003defe
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
cmp ebx, 4
jl 0x1010d6eb
mov eax, dword [edi + 4]
movzx eax, byte [eax + 4]
push 3
push eax
call fcn.100cea38
add esp, 8
test al, al
je 0x1010d6fd
call fcn.1003ddac
xor ecx, ecx
push ecx
push ecx
push eax
mov eax, dword [esp + 0x30]
push dword [eax]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
mov eax, dword [esp]
lea ebx, [eax + ebp + 0xc]
push ebx
lea eax, [esp + 0xc8]
push eax
call fcn.100e25e5
add esp, 8
push edi
push dword [esp + 0xc8]
lea eax, [esp + 0xd0]
push eax
call fcn.1003f2dd
add esp, 0xc
mov ecx, ebx
push dword [esp + 0xc8]
lea edi, [esp + 0x30]
push edi
call fcn.1003dfa0
jmp 0x1010d759
mov al, 1
mov bl, 1
mov dword [esp + 0x14], 0
lea edi, [esp + 0x2c]
jmp 0x1010d76b
call fcn.1003ddac
xor esi, esi
push esi
push esi
push eax
mov eax, dword [esp + 0x2c]
push dword [eax]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
mov eax, dword [esp]
lea ebx, [eax + ebp + 0xc]
call fcn.1003ddac
push esi
push esi
mov esi, dword [esp + 0x20]
push eax
push dword [ebx]
call fcn.1003be3a
add esp, 0x10
push edi
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.1003e5f0
add esp, 0xc
mov ecx, ebx
push dword [esp + 0xc0]
lea edi, [esp + 0x30]
push edi
call fcn.1003defe
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov al, 1
mov bl, 1
mov dword [esp + 0x14], eax
mov al, 1
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xbc]
or eax, dword [esp + 0x44]
mov eax, dword [esp + 0x28]
je 0x1010d87c
cmp dword [esp + 0x1c], 0
jle 0x1010d7c2
call fcn.1003ddac
xor ecx, ecx
push ecx
push ecx
push eax
mov eax, dword [esp + 0xc]
push dword [eax + ebp]
call fcn.1003be3a
add esp, 0x10
push eax
lea eax, [esp + 0x268]
push eax
push edi
call fcn.1003e011
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
add esp, 0xc
test bl, bl
je 0x1010d7fe
call fcn.1003ddac
xor ecx, ecx
push ecx
push ecx
push eax
mov eax, dword [esp + 0xc]
push dword [eax + ebp + 4]
call fcn.1003be3a
add esp, 0x10
push eax
lea eax, [esp + 0x26c]
push eax
push edi
call fcn.1003e011
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
add esp, 0xc
cmp byte [esp + 0x10], 0
je 0x1010d83d
call fcn.1003ddac
xor ecx, ecx
push ecx
push ecx
push eax
mov eax, dword [esp + 0xc]
push dword [eax + ebp + 8]
call fcn.1003be3a
add esp, 0x10
push eax
lea eax, [esp + 0x270]
push eax
push edi
call fcn.1003e011
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
add esp, 0xc
cmp byte [esp + 0x14], 0
je 0x1010d87c
call fcn.1003ddac
xor ecx, ecx
push ecx
push ecx
push eax
mov eax, dword [esp + 0xc]
push dword [eax + ebp + 0xc]
call fcn.1003be3a
add esp, 0x10
push eax
lea eax, [esp + 0x274]
push eax
push edi
call fcn.1003e011
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
add esp, 0xc
add ebp, 0x10
add esi, 4
mov edi, dword [esp + 0x68]
inc dword [esp + 0x44]
add dword [esp + 0x20], 0xfffffffc
add dword [esp + 0x24], 0xfffffffc
mov ebx, ebp
mov ebp, esi
mov esi, dword [esp + 0x64]
add edi, 4
add esi, 4
cmp ebx, 0x20
jne 0x1010d309
mov ebp, dword [esp + 0xb8]
mov edi, dword [esp + 0x98]
mov esi, dword [esp + 0x9c]
add dword [esp], 0x20
add edx, 8
add ecx, 8
add eax, 8
inc ebp
add edi, 0xfffffff8
add esi, 0xfffffff8
cmp ebp, 2
jne 0x1010d2b7
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xa8]
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0xb4]
mov ebp, dword [esp + 0xa0]
inc ebx
add edi, 0xfffffff0
add esi, 0xfffffff0
add edx, 0x10
add ecx, 0x10
add eax, 0x10
add ebp, 0x40
cmp ebx, 2
mov dword [esp + 0x60], ebx
jne 0x1010d288
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x2f8]
lea edi, [esp + 0x2c]
test esi, esi
jle 0x1010d9aa
lea eax, [esp + 0x264]
mov ecx, ebp
push eax
push edi
call fcn.1003df26
cmp esi, 1
jne 0x1010d9b9
mov dword [esp + 4], 0
xor ebx, ebx
jmp 0x1010da04
lea eax, [esp + 0x6c]
lea edx, [esp + 0x70]
lea esi, [esp + 0x74]
lea edi, [esp + 0x264]
mov ecx, ebx
push dword [esp + 0x31c]
push dword [esp + 0x31c]
lea ebx, [esp + 0x24c]
push ebx
lea ebx, [esp + 0x64]
push ebx
push dword [esp + 0x31c]
push eax
push edx
push esi
push edi
call fcn.1010e3f8
mov ecx, ebp
push edi
call fcn.10121bce
mov eax, ebp
add esp, 0x2e4
pop esi
pop edi
pop ebx
pop ebp
ret 0x28
lea eax, [esp + 0x268]
lea ecx, [ebp + 4]
push eax
push edi
call fcn.1003df26
cmp esi, 3
jl 0x1010d9fa
lea eax, [esp + 0x26c]
lea ecx, [ebp + 8]
push eax
push edi
call fcn.1003df26
cmp esi, 3
jne 0x1010dbc6
mov al, 1
mov dword [esp], 0
mov bl, 1
mov dword [esp + 4], eax
jmp 0x1010da0b
mov dword [esp + 4], 0
mov bl, 1
mov dword [esp], 0
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
movzx eax, byte [eax + 4]
push 0
push eax
call fcn.100cea38
add esp, 8
test al, al
jne 0x1010da6f
call fcn.1003ddac
xor esi, esi
push esi
push esi
push eax
push dword [ebp]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
call fcn.1003ddac
push esi
push esi
push eax
push dword [ebp]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x11c]
push edi
lea edi, [esp + 0x30]
push eax
push esi
call fcn.1003e51e
add esp, 0xc
mov ecx, ebp
push dword [esi]
push edi
call fcn.1003defe
mov esi, dword [esp + 8]
test bl, bl
je 0x1010dade
mov eax, dword [esi + 4]
movzx eax, byte [eax + 4]
push 1
push eax
call fcn.100cea38
add esp, 8
test al, al
jne 0x1010dade
lea esi, [ebp + 4]
call fcn.1003ddac
xor ebx, ebx
push ebx
push ebx
push eax
push dword [ebp + 4]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [ebp + 4]
call fcn.1003be3a
add esp, 0x10
lea ebx, [esp + 0x118]
push edi
lea edi, [esp + 0x30]
push eax
push ebx
call fcn.1003e51e
add esp, 0xc
mov ecx, esi
push dword [ebx]
mov esi, dword [esp + 0xc]
push edi
call fcn.1003defe
cmp byte [esp + 4], 0
je 0x1010db4c
mov eax, dword [esi + 4]
movzx eax, byte [eax + 4]
push 2
push eax
call fcn.100cea38
add esp, 8
test al, al
jne 0x1010db4c
lea esi, [ebp + 8]
call fcn.1003ddac
xor ebx, ebx
push ebx
push ebx
push eax
push dword [ebp + 8]
call fcn.1003be3a
add esp, 0x10
mov edi, eax
call fcn.1003ddac
push ebx
push ebx
push eax
push dword [ebp + 8]
call fcn.1003be3a
add esp, 0x10
lea ebx, [esp + 0x114]
push edi
lea edi, [esp + 0x30]
push eax
push ebx
call fcn.1003e51e
add esp, 0xc
mov ecx, esi
push dword [ebx]
mov esi, dword [esp + 0xc]
push edi
call fcn.1003defe
cmp byte [esp], 0
je 0x1010d9aa
mov eax, dword [esi + 4]
movzx eax, byte [eax + 4]
push 3
push eax
call fcn.100cea38
add esp, 8
test al, al
jne 0x1010d9aa
lea eax, [ebp + 0xc]
mov dword [esp + 8], eax
call fcn.1003ddac
xor esi, esi
push esi
push esi
push eax
push dword [ebp + 0xc]
call fcn.1003be3a
add esp, 0x10
mov ebx, edi
mov edi, eax
call fcn.1003ddac
push esi
push esi
push eax
push dword [ebp + 0xc]
call fcn.1003be3a
add esp, 0x10
lea esi, [esp + 0x110]
push edi
push eax
push esi
call fcn.1003e51e
add esp, 0xc
mov ecx, dword [esp + 8]
push dword [esi]
push ebx
call fcn.1003defe
jmp 0x1010d9aa
lea eax, [esp + 0x270]
lea ecx, [ebp + 0xc]
push eax
push edi
call fcn.1003df26
mov al, 1
mov bl, 1
mov dword [esp + 4], eax
mov al, 1
mov dword [esp], eax
jmp 0x1010da0b