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

Disassembly:
mov eax, 0x100d7b9a
call fcn.100cece0
sub esp, 0x1ac
push ebx
push esi
mov esi, ecx
mov eax, 0x4000
push edi
mov dword [ebp - 0x30], esi
mov ecx, dword [esi + 4]
mov dword [ebp - 0x10], esp
cmp ecx, eax
jae 0x100893c1
xor edi, edi
push eax
mov dword [esi + 8], edi
mov ecx, esi
mov dword [esi + 0xc], edi
call fcn.100872c7
cmp dword [esi], edi
jne 0x100893c1
mov eax, 0x8007000e
jmp 0x1008a0bc
and byte [esi + 0x20], 0
and byte [ebp - 0x13], 0
xor edi, edi
cmp byte [esi + 0x83], 0
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], edi
je 0x1008972e
cmp byte [esi + 0x84], 0
je 0x1008972e
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x4c]
add eax, 4
adc ecx, edi
push ecx
push eax
push dword [esi + 0x68]
mov ecx, esi
call fcn.1006a3b2
mov eax, dword [esi + 0x24]
and byte [esi + 0x22], 0
cmp eax, 0x6064b50
jne 0x1008957b
mov ecx, esi
mov byte [esi + 0x79], 1
call fcn.1006a3b2
mov edi, edx
mov ebx, eax
test edi, edi
ja 0x10089448
jb 0x1008965f
cmp ebx, 0x2c
jb 0x1008965f
cmp edi, 0x40000000
jb 0x1008945e
ja 0x1008965f
test ebx, ebx
jae 0x1008965f
lea eax, [ebp - 0x1b8]
push 0x2c
push eax
mov ecx, esi
call fcn.1006a3b2
push 0x30
lea eax, [ebp - 0x100]
push 0
push eax
call sub.msvcrt.dll_memset
and byte [ebp - 0x100], 0
add esp, 0xc
lea eax, [ebp - 0x1b8]
lea ecx, [ebp - 0x100]
push eax
call fcn.100869a8
cmp dword [ebp - 0xf8], 0
jne 0x1008965f
cmp dword [ebp - 0xf4], 0
jne 0x1008965f
mov eax, dword [ebp - 0xf0]
or eax, dword [ebp - 0xec]
jne 0x1008965f
mov eax, dword [ebp - 0xe8]
or eax, dword [ebp - 0xe4]
jne 0x1008965f
mov eax, dword [ebp - 0xe0]
or eax, dword [ebp - 0xdc]
jne 0x1008965f
mov eax, dword [ebp - 0xd8]
or eax, dword [ebp - 0xd4]
jne 0x1008965f
sub ebx, 0x2c
push 0
sbb edi, 0
mov ecx, esi
push edi
push ebx
call fcn.1006a3b2
test eax, eax
jne 0x1008a0bc
mov ecx, esi
call fcn.1008763a
cmp dword [esi + 0x24], 0x7064b50
jne 0x1008965f
lea eax, [ebp - 0xbc]
push 0x10
push eax
mov ecx, esi
call fcn.1006a3b2
cmp dword [ebp - 0xbc], 0
jne 0x1008965f
cmp dword [ebp - 0xb0], 0
jne 0x1008965f
mov eax, dword [ebp - 0xb8]
or eax, dword [ebp - 0xb4]
jne 0x1008965f
mov ecx, esi
call fcn.1008763a
mov eax, dword [esi + 0x24]
cmp eax, 0x6054b50
je 0x10089582
jmp 0x1008965f
cmp eax, 0x6054b50
jne 0x100895ed
lea eax, [ebp - 0xbc]
push 0x12
push eax
mov ecx, esi
call fcn.1006a3b2
lea eax, [ebp - 0xbc]
lea ecx, [ebp - 0x18c]
push eax
call fcn.10086921
lea ecx, [ebp - 0x18c]
call fcn.10086f12
test al, al
je 0x1008965f
push dword [esi + 0x4c]
mov eax, dword [esi + 0x40]
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x44]
push dword [esi + 0x48]
mov ecx, esi
mov dword [esi + 0x3c], eax
mov byte [esi + 0x78], 1
push dword [esi + 0x68]
call fcn.1006a3b2
test eax, eax
jne 0x1008a0bc
mov ecx, esi
call fcn.1008763a
xor edi, edi
jmp 0x10089761
lea ecx, [ebp - 0x178]
call fcn.10087bde
and byte [ebp - 0x104], 0
and dword [ebp - 4], 0
lea eax, [ebp - 0x178]
push eax
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.1006a3b2
test al, al
je 0x10089650
lea eax, [ebp - 0x54]
mov ecx, esi
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x4c]
push eax
mov dword [ebp - 4], 1
push dword [ebp + 8]
mov byte [esi + 0x78], 1
call fcn.1006a3b2
test eax, eax
mov dword [ebp - 0x18], eax
jne 0x10089677
mov ecx, esi
call fcn.1008763a
jmp 0x10089677
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x178]
call fcn.10085046
push 1
pop eax
jmp 0x1008a0bc
push 1
xor ecx, ecx
pop eax
mov dword [ebp - 4], ecx
cmp dword [ebp - 0x18], eax
je 0x1008971a
cmp dword [ebp - 0x18], ecx
je 0x100896a4
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x178]
call fcn.10085046
mov eax, dword [ebp - 0x18]
jmp 0x1008a0bc
mov ebx, dword [ebp + 8]
cmp dword [ebx + 4], ecx
jne 0x100896b1
mov dword [ebp - 0x18], eax
jmp 0x1008971a
mov eax, dword [esi + 0x4c]
mov edx, dword [esi + 0x3c]
mov ecx, dword [esi + 0x48]
mov edi, dword [esi + 0x38]
cmp eax, edx
jg 0x100896d0
jl 0x100896c7
cmp ecx, edi
jae 0x100896d0
mov dword [ebp - 0x18], 1
jmp 0x1008971a
sub ecx, edi
sbb eax, edx
mov dword [ebp - 0x130], ecx
lea edx, [ebp - 0x178]
mov ecx, ebx
mov dword [ebp - 0x12c], eax
call fcn.1008a0cd
cmp eax, 0xffffffff
je 0x100896c7
mov ecx, dword [ebx]
mov edx, dword [ecx + eax*4]
lea ecx, [ebp - 0x178]
call fcn.10087c40
test al, al
je 0x100896c7
mov byte [esi + 0x6c], 1
mov eax, dword [ebx]
mov eax, dword [eax]
mov ecx, dword [eax + 0x48]
mov dword [esi + 0x60], ecx
mov eax, dword [eax + 0x4c]
mov dword [esi + 0x64], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x178]
call fcn.10085046
jmp 0x100895e6
lea eax, [ebp - 0x54]
mov ecx, esi
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x4c]
push eax
mov byte [esi + 0x78], 1
push dword [ebp + 8]
call fcn.1006a3b2
cmp eax, edi
mov dword [ebp - 0x18], eax
jne 0x10089758
mov ecx, esi
call fcn.1008763a
jmp 0x10089761
cmp eax, 1
jne 0x1008a0bc
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x40], edi
mov eax, dword [ebp + 8]
and byte [ebp - 0x1d], 0
cmp dword [ebp - 0x18], edi
mov dword [ebp - 4], 5
mov eax, dword [eax + 4]
mov dword [ebp - 0x24], eax
je 0x1008999d
mov edi, dword [ebp + 8]
mov ecx, edi
call fcn.10085461
and byte [esi + 0x7a], 0
and byte [esi + 0x7b], 0
and byte [esi + 0x7c], 0
and byte [esi + 0x20], 0
xor ebx, ebx
mov byte [ebp - 0x13], 1
cmp byte [esi + 0x83], bl
mov dword [esi + 8], ebx
mov dword [esi + 0x38], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x3c], ebx
jne 0x100897ec
cmp byte [esi + 0x85], bl
jne 0x100897cb
push 1
pop edi
jmp 0x10089fac
cmp dword [esi + 0xac], ebx
jne 0x100897c3
push dword [esi + 0x4c]
push dword [esi + 0x48]
push ebx
mov ecx, esi
call fcn.1006a3b2
cmp eax, ebx
je 0x1008980b
mov edi, eax
jmp 0x10089fac
mov eax, dword [esi + 0x40]
or eax, dword [esi + 0x44]
je 0x10089800
mov eax, dword [esi + 0x48]
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x3c], eax
push dword [esi + 0x4c]
push dword [esi + 0x48]
push dword [esi + 0x68]
jmp 0x100897da
mov dword [esi + 0x18], ebx
mov ecx, esi
mov dword [esi + 0x1c], ebx
call fcn.1008763a
push edi
mov ecx, esi
mov byte [esi + 0x7e], 1
call fcn.1008881c
cmp eax, ebx
jne 0x100897e5
cmp dword [esi + 0x24], 0x2014b50
je 0x10089848
cmp dword [edi + 4], ebx
je 0x100897c3
mov byte [esi + 0x80], 1
mov byte [esi + 0x7a], 1
xor edi, edi
jmp 0x10089fac
mov eax, dword [esi + 0x10]
mov byte [esi + 0x20], 1
mov ecx, dword [esi + 0xc]
xor edx, edx
sub eax, ecx
mov ecx, dword [esi + 0x14]
sbb ecx, edx
mov edx, dword [esi + 8]
xor edi, edi
add eax, edx
adc ecx, edi
sub eax, 4
mov ebx, dword [esi + 0x18]
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 0x9c]
sbb ecx, edi
mov dword [ebp - 0x4c], eax
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x28], ecx
lea ecx, [ebp - 0x178]
mov dword [ebp - 0xc4], eax
call fcn.10087bde
and byte [ebp - 0x104], 0
lea eax, [ebp - 0x178]
mov ecx, esi
push eax
mov byte [ebp - 4], 6
call fcn.1006a3b2
mov edi, eax
test edi, edi
jne 0x1008993b
lea eax, [ebp - 0x178]
lea ecx, [ebp - 0x48]
push eax
call fcn.1008a70d
mov ecx, dword [esi + 0x34]
test ecx, ecx
je 0x10089905
test word [ebp - 0x44], 0xfff
jne 0x10089905
mov eax, dword [ebp + 8]
and dword [ebp - 0x30], edi
lea edx, [ebp - 0xb4]
mov eax, dword [eax + 4]
push edx
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0x18]
mov dword [ebp - 0xb4], eax
mov eax, dword [esi + 0x1c]
lea edx, [ebp - 0x34]
mov dword [ebp - 0xb0], eax
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0x10]
mov edi, eax
test edi, edi
jne 0x1008993b
mov ecx, esi
call fcn.1008763a
cmp dword [esi + 0x24], 0x2014b50
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x178]
jne 0x1008994f
call fcn.10085046
lea ecx, [ebp - 0x178]
call fcn.10087bde
and byte [ebp - 0x104], 0
jmp 0x10089896
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 5
call fcn.10085046
jmp 0x10089fac
call fcn.10085046
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
sub eax, ebx
mov edx, dword [ebp - 0x28]
sbb ecx, dword [ebp - 0xc4]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x44]
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x2c]
sub ecx, dword [esi + 0x38]
mov dword [ebp - 0x24], eax
sbb edx, dword [esi + 0x3c]
mov dword [ebp - 0x3c], ecx
test eax, eax
mov dword [ebp - 0x38], edx
je 0x1008999d
mov eax, dword [ebp - 0x48]
mov byte [esi + 0x6c], 1
mov eax, dword [eax]
mov ecx, dword [eax + 0x48]
mov dword [esi + 0x60], ecx
mov eax, dword [eax + 0x4c]
mov dword [esi + 0x64], eax
xor edi, edi
push 0x30
lea eax, [ebp - 0xa8]
push edi
push eax
call sub.msvcrt.dll_memset
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
and byte [ebp - 0xa8], 0
and byte [ebp - 0x12], 0
add esp, 0xc
xor ebx, ebx
xor ecx, ecx
sub eax, edx
sbb ecx, ebx
add eax, dword [esi + 0x10]
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x58], edi
adc ecx, dword [esi + 0x14]
sub eax, 4
mov dword [ebp - 0x1c], eax
sbb ecx, edi
or dword [ebp - 0x30], 0xffffffff
cmp dword [esi + 0x24], 0x6064b50
mov dword [ebp - 0x18], ecx
jne 0x10089aaa
mov eax, dword [esi + 0x9c]
mov ecx, esi
mov dword [ebp - 0x30], eax
mov byte [ebp - 0x12], 1
mov byte [esi + 0x79], 1
call fcn.1006a3b2
mov edi, edx
mov ebx, eax
test edi, edi
ja 0x10089a17
cmp ebx, 0x2c
jb 0x10089a74
cmp edi, 0x40000000
ja 0x10089a74
jb 0x10089a25
test ebx, ebx
jae 0x10089a74
lea eax, [ebp - 0x1b8]
push 0x2c
push eax
mov ecx, esi
call fcn.1006a3b2
lea eax, [ebp - 0x1b8]
lea ecx, [ebp - 0xa8]
push eax
call fcn.100869a8
mov eax, dword [ebp + 8]
sub ebx, 0x2c
sbb edi, 0
mov ecx, esi
push dword [eax + 4]
push edi
push ebx
call fcn.1006a3b2
test eax, eax
jne 0x100897e5
mov ecx, esi
call fcn.1008763a
cmp dword [esi + 0x24], 0x7064b50
je 0x10089a7f
xor edi, edi
mov byte [esi + 0x7a], 1
jmp 0x10089fac
lea eax, [ebp - 0xd0]
push 0x10
push eax
mov ecx, esi
call fcn.1006a3b2
mov eax, dword [ebp - 0xcc]
mov ecx, esi
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x58], eax
call fcn.1008763a
xor edi, edi
cmp dword [esi + 0x24], 0x6054b50
mov bl, byte [ebp - 0x12]
jne 0x1008a0aa
and byte [esi + 0x22], 0
lea eax, [ebp - 0xd0]
push 0x12
push eax
mov ecx, esi
call fcn.1006a3b2
lea eax, [ebp - 0xd0]
lea ecx, [ebp - 0x78]
push eax
call fcn.10086921
test bl, bl
je 0x10089ae9
cmp word [ebp - 0x78], 0xffff
je 0x10089af3
movzx eax, word [ebp - 0x78]
mov dword [ebp - 0xa0], eax
test bl, bl
je 0x10089aff
cmp word [ebp - 0x76], 0xffff
je 0x10089b09
movzx eax, word [ebp - 0x76]
mov dword [ebp - 0x9c], eax
test bl, bl
je 0x10089b15
cmp word [ebp - 0x74], 0xffff
je 0x10089b26
movzx eax, word [ebp - 0x74]
cdq
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], edx
test bl, bl
je 0x10089b32
cmp word [ebp - 0x72], 0xffff
je 0x10089b43
movzx eax, word [ebp - 0x72]
cdq
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], edx
test bl, bl
je 0x10089b4d
cmp dword [ebp - 0x70], 0xffffffff
je 0x10089b5c
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x88], eax
test bl, bl
je 0x10089b66
cmp dword [ebp - 0x6c], 0xffffffff
je 0x10089b6f
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], eax
mov ecx, dword [ebp - 0x54]
mov byte [ebp - 0x11], 1
cmp dword [ebp - 0x88], ecx
je 0x10089b82
and byte [ebp - 0x11], 0
test bl, bl
je 0x10089bb2
mov edx, dword [ebp - 0x90]
xor eax, eax
cmp edx, dword [ebp - 0x24]
jne 0x10089bae
cmp dword [ebp - 0x8c], eax
jne 0x10089bae
cmp dword [ebp - 0x88], ecx
jne 0x10089bae
mov eax, dword [ebp - 0x84]
cmp eax, dword [ebp - 0x50]
je 0x10089bb2
and byte [ebp - 0x11], 0
cmp byte [esi + 0x85], 0
je 0x10089bdc
mov eax, dword [ebp - 0x9c]
cmp dword [ebp - 0x4c], eax
je 0x10089bca
mov byte [esi + 0x7a], 1
mov ebx, dword [ebp + 8]
cmp byte [ebp - 0x11], 0
jne 0x10089d1a
jmp 0x10089d16
cmp byte [ebp - 0x1d], 0
je 0x10089bca
cmp byte [ebp - 0x11], 0
je 0x10089d13
mov edi, dword [esi + 0x38]
mov edx, dword [esi + 0x3c]
test bl, bl
mov dword [ebp - 0xb4], edi
mov dword [ebp - 0xb0], edx
je 0x10089c5f
mov eax, dword [ebp - 0x30]
cmp eax, dword [esi + 0xa8]
jne 0x10089cc9
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x5c]
sbb eax, dword [ebp - 0x58]
cmp eax, dword [ebp - 0x18]
jg 0x10089cc9
jl 0x10089c31
cmp ecx, dword [ebp - 0x1c]
ja 0x10089cc9
cmp byte [ebp - 0x13], 0
je 0x10089c47
cmp eax, dword [esi + 0x4c]
jl 0x10089c47
jg 0x10089cc5
cmp ecx, dword [esi + 0x48]
ja 0x10089cc5
mov edx, dword [ebp - 0x2c]
mov dword [esi + 0x38], ecx
sub edx, ecx
mov ecx, dword [ebp - 0x28]
sbb ecx, eax
mov dword [esi + 0x3c], eax
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], ecx
jmp 0x10089cc9
cmp dword [ebp - 0x24], 0
je 0x10089cc9
mov eax, dword [ebp - 0x4c]
cmp eax, dword [esi + 0xa8]
jne 0x10089cc9
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
sub ecx, dword [ebp - 0x80]
sbb eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x28]
jg 0x10089cc5
jl 0x10089c88
cmp ecx, dword [ebp - 0x2c]
ja 0x10089cc5
cmp byte [ebp - 0x13], 0
je 0x10089cb1
cmp eax, dword [esi + 0x4c]
jl 0x10089cb1
jg 0x10089c9a
cmp ecx, dword [esi + 0x48]
jbe 0x10089cb1
sub ecx, edi
sbb eax, edx
test ecx, ecx
mov dword [ebp - 0xc4], eax
jne 0x10089cc5
mov byte [esi + 0x81], 1
jmp 0x10089cc9
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], eax
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x38], eax
jmp 0x10089cc9
and byte [ebp - 0x11], 0
cmp byte [ebp - 0x13], 0
je 0x10089bca
mov edx, dword [ebp - 0xb4]
mov edi, dword [ebp - 0xb0]
sub edx, dword [esi + 0x38]
sbb edi, dword [esi + 0x3c]
mov eax, edx
or eax, edi
je 0x10089bca
mov ebx, dword [ebp + 8]
xor ecx, ecx
cmp dword [ebx + 4], ecx
jbe 0x10089bcd
mov eax, dword [ebx]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x48], edx
adc dword [eax + 0x4c], edi
inc ecx
cmp ecx, dword [ebx + 4]
jb 0x10089cfd
jmp 0x10089bcd
mov ebx, dword [ebp + 8]
mov byte [esi + 0x7a], 1
mov eax, dword [ebp - 0xa0]
cmp byte [esi + 0x85], 0
mov dword [esi + 0x88], eax
jne 0x10089d90
xor edi, edi
cmp eax, edi
jne 0x10089d5e
cmp byte [esi + 0xa6], 0
lea ecx, [esi + 0xa6]
je 0x10089d5e
cmp byte [esi + 0xa2], 0
je 0x10089d5e
lea eax, [esi + 0xc4]
mov dword [eax + 4], edi
mov eax, dword [eax]
mov word [eax], di
and byte [ecx], 0
cmp byte [ebp - 0x13], 0
je 0x10089d87
cmp dword [esi + 0x88], edi
je 0x10089d87
xor ecx, ecx
cmp dword [ebx + 4], edi
jbe 0x10089d87
mov eax, dword [ebx]
mov edx, dword [esi + 0x88]
mov eax, dword [eax + ecx*4]
inc ecx
mov dword [eax + 0x20], edx
cmp ecx, dword [ebx + 4]
jb 0x10089d73
mov byte [esi + 0x86], 1
jmp 0x10089d92
xor edi, edi
cmp byte [ebp - 0x12], 0
je 0x10089e12
cmp dword [ebp - 0xa0], edi
jne 0x10089dbe
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x3c]
add eax, dword [ebp - 0x5c]
adc ecx, dword [ebp - 0x58]
cmp dword [ebp - 0x1c], eax
jne 0x1008a0aa
cmp dword [ebp - 0x18], ecx
jne 0x1008a0aa
mov ecx, dword [ebp - 0x90]
xor eax, eax
cmp ecx, dword [ebp - 0x24]
jne 0x1008a0aa
cmp dword [ebp - 0x8c], eax
jne 0x1008a0aa
mov eax, dword [ebp - 0x88]
cmp eax, dword [ebp - 0x54]
jne 0x1008a0aa
mov eax, dword [ebp - 0x84]
cmp eax, dword [ebp - 0x50]
jne 0x1008a0aa
mov eax, dword [ebp - 0x80]
cmp eax, dword [ebp - 0x3c]
jne 0x10089e09
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x38]
je 0x10089e12
cmp dword [ebx + 4], edi
jne 0x1008a0aa
cmp byte [ebp - 0x11], 0
je 0x10089ff2
cmp dword [ebp - 0x44], edi
je 0x10089ff2
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x58], edi
mov byte [ebp - 4], 7
mov dword [ebp - 0x30], edi
mov byte [esi + 0x7f], 1
mov dword [ebp - 0x18], edi
jbe 0x10089fbf
mov ecx, dword [esi + 0x34]
test ecx, ecx
je 0x10089e84
test word [ebp - 0x18], 0x3fff
jne 0x10089e84
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x5c]
and dword [ebp - 0xc4], 0
mov eax, dword [eax + 4]
add eax, edx
lea edx, [esi + 0x18]
push edx
lea edx, [ebp - 0xc8]
mov dword [ebp - 0xc8], eax
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0x10]
mov edi, eax
test edi, edi
jne 0x10089fa3
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x18]
or dword [ebp - 0x28], 0xffffffff
mov edi, dword [eax + ecx*4]
mov eax, dword [ebp - 0x30]
cmp eax, 0xffffffff
je 0x10089eec
mov ecx, dword [ebp + 8]
cmp eax, dword [ecx + 4]
jae 0x10089eec
mov ecx, dword [ecx]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ecx + 0x20]
cmp eax, dword [edi + 0x20]
jne 0x10089ee0
mov edx, dword [edi + 0x48]
mov eax, dword [ecx + 0x48]
mov ebx, dword [edi + 0x4c]
cmp eax, edx
jne 0x10089ec2
mov eax, dword [ecx + 0x4c]
cmp eax, ebx
je 0x10089ed8
cmp byte [esi + 0x81], 0
je 0x10089ee0
mov ecx, dword [ecx + 0x48]
xor eax, eax
cmp ecx, edx
jne 0x10089ee0
cmp eax, ebx
jne 0x10089ee0
mov eax, dword [ebp - 0x30]
inc dword [ebp - 0x30]
jmp 0x10089ee7
or dword [ebp - 0x30], 0xffffffff
mov eax, dword [ebp - 0x28]
cmp eax, 0xffffffff
jne 0x10089f1e
mov ecx, dword [ebp + 8]
mov edx, edi
call fcn.1008a0cd
cmp eax, 0xffffffff
jne 0x10089f1e
push dword [ebp - 0x18]
lea ecx, [ebp - 0x60]
call fcn.10003380
mov byte [esi + 0x7a], 1
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x44]
jb 0x10089e42
jmp 0x10089fbf
mov ecx, dword [ebp + 8]
lea edx, [edi + 0x24]
mov ecx, dword [ecx]
mov ebx, dword [ecx + eax*4]
lea ecx, [ebx + 0x24]
call fcn.10065c7c
test al, al
jne 0x10089f06
mov eax, dword [ebx + 0x10]
cmp eax, dword [edi + 0x10]
jne 0x10089f06
mov eax, dword [ebx + 0x14]
cmp eax, dword [edi + 0x14]
jne 0x10089f06
mov eax, dword [ebx + 8]
cmp eax, dword [edi + 8]
jne 0x10089f06
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi + 0xc]
jne 0x10089f06
mov edx, edi
mov ecx, ebx
call fcn.10087ce5
test al, al
je 0x10089f06
mov eax, dword [ebx + 0x1c]
cmp eax, dword [edi + 0x1c]
jne 0x10089f06
mov ax, word [edi + 0x40]
lea ecx, [ebx + 0x50]
mov word [ebx + 0x40], ax
lea eax, [edi + 0x50]
push eax
call fcn.10087da6
mov ax, word [edi + 0x42]
lea ecx, [ebx + 0x60]
mov word [ebx + 0x42], ax
mov eax, dword [edi + 0x44]
mov dword [ebx + 0x44], eax
lea eax, [edi + 0x60]
push eax
call fcn.1002d18a
mov al, byte [edi + 0x69]
mov byte [ebx + 0x69], al
jmp 0x10089f0a
push dword [ebp - 0x60]
call fcn.100034b3
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.10085410
mov eax, edi
jmp 0x1008a0bc
xor edi, edi
cmp dword [ebp - 0x5c], edi
jbe 0x10089fe0
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x48]
mov eax, dword [eax + edi*4]
push dword [ecx + eax*4]
mov ecx, dword [ebp + 8]
call fcn.1008a70d
inc edi
cmp edi, dword [ebp - 0x5c]
jb 0x10089fc6
push dword [ebp - 0x60]
mov byte [ebp - 4], 5
call fcn.100034b3
mov ebx, dword [ebp + 8]
pop ecx
xor edi, edi
mov cx, word [ebp - 0x72]
cmp cx, word [ebp - 0x74]
jae 0x1008a000
mov byte [esi + 0x7a], 1
cmp word [ebp - 0x78], di
jne 0x1008a010
cmp cx, word [ebp - 0x74]
je 0x1008a010
mov byte [esi + 0x7a], 1
cmp byte [ebp - 0x12], 0
mov eax, dword [ebx + 4]
je 0x1008a041
xor ecx, ecx
cmp dword [ebp - 0x90], eax
jne 0x1008a03b
cmp dword [ebp - 0x8c], ecx
jne 0x1008a03b
movzx ecx, word [ebp - 0x72]
cmp ecx, eax
je 0x1008a071
cmp word [ebp - 0x72], 0xffff
je 0x1008a071
mov byte [esi + 0x7a], 1
jmp 0x1008a071
movzx ecx, cx
cmp ecx, eax
jbe 0x1008a04c
mov byte [esi + 0x7a], 1
mov ecx, dword [ebp - 0x24]
xor eax, eax
cmp dword [ebp - 0x90], ecx
jne 0x1008a061
cmp dword [ebp - 0x8c], eax
je 0x1008a071
cmp word [ebp - 0x90], cx
jne 0x1008a03b
mov byte [esi + 0x82], 1
movzx eax, word [ebp - 0x68]
push eax
lea eax, [esi + 0x70]
push eax
mov ecx, esi
call fcn.100875e2
mov ax, word [ebp - 0x24]
and byte [esi + 0x20], 0
cmp word [ebp - 0x90], ax
jne 0x1008a0aa
mov eax, dword [ebp - 0x88]
cmp eax, dword [ebp - 0x54]
jne 0x1008a0aa
mov eax, dword [ebp - 0x80]
cmp eax, dword [ebp - 0x3c]
je 0x1008a0ae
cmp dword [ebx + 4], edi
je 0x1008a0ae
mov byte [esi + 0x7a], 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.10085410
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 4