Function at 0x10089523
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xcc
push ebx
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx]
push esi
mov esi, dword [ebp + 0xc]
xor eax, eax
push edi
inc eax
xor edi, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], ecx
cmp esi, edi
je 0x1008a125
cmp byte [ecx + 0x1e], 0
jne 0x1008a125
cmp dword [ebx + 0x40], edi
jne 0x1008a125
push edi
push edi
push edi
push 0x15
mov eax, ebx
call fcn.1007b725
add esp, 0x10
test eax, eax
je 0x1008957d
xor eax, eax
inc eax
jmp 0x1008a125
push 0x2c
lea eax, [esp + 0x78]
push edi
push eax
call fcn.100c1480
mov eax, dword [esi + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x10]
add esp, 0xc
cmp byte [eax], 4
ja 0x100895a8
mov eax, 0xfffe
and word [esi + 6], ax
mov dword [esi + 0x18], edi
push edi
push esi
push ebx
call fcn.10089211
mov eax, dword [esi + 8]
mov ecx, dword [esi]
add esp, 0xc
mov dword [esp + 0x38], eax
cmp dword [ebx + 0x40], edi
jne 0x1008a0fe
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x1e], 0
jne 0x1008a0fe
mov eax, dword [esp + 0x18]
mov dword [esi + 0x18], eax
movzx eax, word [esi + 6]
shr eax, 2
and eax, 1
mov dword [esp + 0x3c], eax
cmp ecx, edi
je 0x1008a0fe
cmp dword [ebx + 0x40], edi
jg 0x1008a0fe
mov eax, dword [ebp + 0x10]
cmp byte [eax], 4
ja 0x10089605
mov dword [esp + 0x18], edi
mov edi, ebx
call fcn.10087329
mov dword [esp + 0xc], eax
test eax, eax
je 0x1008a0fe
and dword [esp + 0x14], 0
jmp 0x1008974e
mov eax, dword [esp + 0x38]
movsx eax, word [eax]
cmp dword [esp + 0x14], eax
jge 0x10089758
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
imul eax, eax, 0x38
lea eax, [eax + ecx + 8]
mov dword [esp + 0x2c], eax
mov eax, dword [eax + 0x10]
mov dword [esp + 0x28], eax
test eax, eax
je 0x1008974a
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x14], 0
jne 0x1008974a
and dword [esp + 0x1c], 0
lea eax, [esp + 0x1c]
mov ecx, esi
call fcn.10077260
mov eax, dword [esp + 0x1c]
add dword [ebx + 0x1b0], eax
mov eax, dword [esp + 0x28]
movzx edi, word [eax + 6]
shr edi, 2
and edi, 1
push edi
push dword [esp + 0x40]
mov eax, esi
push dword [esp + 0x1c]
push ebx
call fcn.10088759
add esp, 0x10
test eax, eax
je 0x100896bb
test edi, edi
je 0x100896b4
or word [esi + 6], 4
mov dword [esp + 0x3c], 1
or dword [esp + 0x14], 0xffffffff
jmp 0x10089702
mov edi, dword [esp + 0x2c]
mov eax, dword [edi + 0x18]
and dword [esp + 0xac], 0
and dword [esp + 0xb0], 0
mov dword [esp + 0xa8], eax
lea eax, [esp + 0xa4]
push eax
push dword [esp + 0x2c]
mov byte [esp + 0xac], 9
push ebx
mov byte [esp + 0xb1], 0
call fcn.10089523
add esp, 0xc
mov byte [edi + 0x14], 1
cmp dword [ebx + 0x40], 0
jne 0x1008a0fe
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x1e], 0
jne 0x1008a0fe
and dword [esp + 0x1c], 0
lea eax, [esp + 0x1c]
mov ecx, esi
call fcn.10077260
mov eax, dword [esp + 0x1c]
sub dword [ebx + 0x1b0], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x10]
cmp byte [eax], 4
jbe 0x1008974a
mov eax, dword [esi + 0x18]
mov dword [esp + 0x18], eax
inc dword [esp + 0x14]
cmp dword [esi + 0x1c], 0
je 0x10089622
mov ecx, dword [esi + 0xc]
movzx edi, word [esi + 6]
mov eax, dword [esi]
mov dword [esp + 0x48], ecx
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x10], ecx
mov ecx, dword [esi + 0x14]
and edi, 1
xor edx, edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x58], edi
cmp dword [esi + 0x1c], edx
je 0x100897d1
cmp dword [esi + 0x24], edx
jne 0x100897bf
xor ecx, ecx
mov eax, esi
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], esi
mov ecx, eax
mov eax, dword [eax + 0x1c]
inc edx
test eax, eax
jne 0x1008978e
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x60]
test eax, eax
je 0x100897bf
cmp edx, eax
jle 0x100897bf
push str.too_many_terms_in_compound_SELECT
mov edi, ebx
call fcn.10062232
pop ecx
jmp 0x10089575
push dword [ebp + 0x10]
mov eax, esi
push ebx
call fcn.100874a2
pop ecx
pop ecx
jmp 0x1008a125
cmp dword [eax], 1
mov ecx, dword [ebp + 0x10]
movzx ecx, byte [ecx]
jle 0x100897eb
push ecx
mov edi, ebx
call fcn.10086649
mov edi, dword [esp + 0x5c]
pop ecx
jmp 0x100897ed
xor eax, eax
test eax, eax
jne 0x1008a0fe
mov al, byte [esi + 6]
and al, 5
cmp al, 1
jne 0x10089823
cmp dword [esi + 0x10], 0
jne 0x10089823
push dword [esi]
push dword [esp + 0x34]
call fcn.10077825
mov dword [esi + 0x10], eax
mov dword [esp + 0x18], eax
mov eax, 0xfffe
and word [esi + 6], ax
pop ecx
pop ecx
xor edi, edi
cmp dword [esp + 0x18], 0
je 0x10089865
push dword [esp + 0x18]
push ebx
call fcn.100869ad
mov ecx, dword [esp + 0x20]
mov edx, dword [ebx + 0x44]
push 0xfffffffffffffff0
push eax
mov dword [ecx + 8], edx
inc dword [ebx + 0x44]
mov eax, dword [ecx]
push 0
inc eax
inc eax
push eax
push dword [ecx + 8]
push 0x74
push dword [esp + 0x2c]
call fcn.1006ef7e
add esp, 0x24
mov dword [esp + 0x34], eax
mov dword [esi + 0x40], eax
jmp 0x1008986a
or dword [esp + 0x34], 0xffffffff
mov eax, dword [ebp + 0x10]
cmp byte [eax], 9
jne 0x1008988c
mov eax, dword [esp + 0x54]
push dword [eax]
mov eax, dword [ebp + 0x10]
push dword [eax + 4]
mov eax, dword [esp + 0x14]
push 0x74
call fcn.1006ef67
add esp, 0xc
mov eax, dword [esp + 0xc]
call fcn.1006efae
mov dword [esp + 0xa0], eax
push eax
mov eax, esi
mov ecx, ebx
call fcn.1008734f
pop ecx
test edi, edi
je 0x100898d8
mov edi, dword [ebx + 0x44]
lea eax, [edi + 1]
mov dword [ebx + 0x44], eax
push dword [esi]
mov dword [esp + 0x5c], edi
push ebx
call fcn.100869ad
push 0xfffffffffffffff0
push eax
push 0
push 0
push edi
push 0x74
push dword [esp + 0x2c]
call fcn.1006ef7e
add esp, 0x24
jmp 0x100898dd
or dword [esp + 0x58], 0xffffffff
cmp dword [esp + 0x3c], 0
mov edx, dword [esp + 0x10]
jne 0x1008995c
test edx, edx
jne 0x10089960
push edx
push edx
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x54]
push dword [esp + 0x48]
push ebx
call fcn.1008f8cf
mov edi, eax
add esp, 0x18
test edi, edi
je 0x1008a0fe
cmp dword [esp + 0x34], 0
jl 0x10089930
cmp dword [esp + 0x18], 0
jne 0x10089930
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
push 1
call fcn.1006f2d5
or dword [esi + 0x40], 0xffffffff
pop ecx
push dword [edi + 0x18]
push dword [edi + 0x14]
push dword [ebp + 0x10]
push 0xffffffffffffffff
push dword [esp + 0x28]
push 0
push 0
push dword [esp + 0x70]
push esi
push ebx
call fcn.10086669
push edi
call fcn.1009001d
add esp, 0x2c
jmp 0x1008a0af
test edx, edx
je 0x10089994
mov esi, dword [esi]
mov eax, dword [esi]
mov esi, dword [esi + 0xc]
test eax, eax
jle 0x1008997b
lea ecx, [esi + 0xc]
xor esi, esi
mov word [ecx], si
dec eax
add ecx, 0x10
test eax, eax
jg 0x1008996e
mov eax, dword [edx]
mov ecx, dword [edx + 0xc]
test eax, eax
jle 0x10089994
add ecx, 0xc
xor edx, edx
mov word [ecx], dx
dec eax
add ecx, 0x10
test eax, eax
jg 0x10089987
mov eax, dword [esp + 0xc]
call fcn.1006efae
mov dword [esp + 0x40], eax
xor eax, eax
push 9
pop ecx
lea edi, [esp + 0xb4]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xb8], eax
lea eax, [esp + 0x74]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xb4], ebx
test eax, eax
je 0x100899e0
mov eax, dword [eax]
inc eax
mov dword [esp + 0x80], eax
jmp 0x100899e8
and dword [esp + 0x80], 0
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x54]
mov dword [esp + 0x7c], eax
lea eax, [esp + 0xb4]
push eax
call fcn.10079d4b
mov esi, dword [esp + 0x1c]
pop ecx
lea eax, [esp + 0xb4]
push eax
call fcn.10079d4b
xor edi, edi
pop ecx
cmp dword [esp + 0x4c], edi
je 0x10089a2d
push dword [esp + 0x4c]
lea eax, [esp + 0xb8]
call fcn.10079d24
pop ecx
cmp dword [esp + 0x98], edi
mov eax, dword [esp + 0x88]
mov dword [esp + 0x90], eax
mov dword [esp + 0x14], edi
jle 0x10089a77
mov eax, dword [esp + 0x94]
mov eax, dword [edi + eax]
mov esi, dword [eax + 0x10]
lea ecx, [esp + 0xb4]
push ecx
call fcn.10079d4b
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
add edi, 0x10
cmp eax, dword [esp + 0x9c]
pop ecx
jl 0x10089a48
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x1e], 0
jne 0x1008a0fe
mov esi, dword [esp + 0x10]
xor edi, edi
cmp esi, edi
je 0x10089f79
mov eax, dword [ebx + 0x44]
mov dword [esp + 0x78], eax
inc eax
push esi
push ebx
mov dword [ebx + 0x44], eax
call fcn.100869ad
push 0xfffffffffffffff0
push eax
push edi
push dword [esp + 0x94]
mov dword [esp + 0x80], eax
push dword [esp + 0x90]
push 0x74
push dword [esp + 0x2c]
call fcn.1006ef7e
mov dword [esp + 0x88], eax
mov eax, dword [ebx + 0x48]
add esp, 0x24
inc eax
mov dword [esp + 0x28], eax
inc eax
mov dword [esp + 0x5c], eax
inc eax
mov dword [esp + 0x34], eax
mov dword [ebx + 0x48], eax
mov eax, dword [esp + 0xc]
call fcn.1006efae
inc dword [ebx + 0x48]
mov dword [esp + 0x50], eax
mov eax, dword [ebx + 0x48]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xc]
call fcn.1006efae
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0x48]
lea ecx, [eax + 1]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esi]
add eax, ecx
lea ecx, [eax + 1]
push edi
push dword [esp + 0x60]
mov dword [ebx + 0x48], eax
mov dword [esp + 0x44], ecx
mov ecx, dword [esi]
add ecx, eax
mov eax, dword [esp + 0x14]
push edi
push 0x31
mov dword [ebx + 0x48], ecx
call fcn.1006eee1
mov eax, dword [esp + 0x1c]
push edi
push dword [esp + 0x3c]
push edi
push 0x31
call fcn.1006eee1
push dword [esp + 0x4c]
mov eax, dword [esp + 0x30]
push dword [esp + 0x40]
push 0x30
call fcn.1006ef67
add esp, 0x2c
push edi
push edi
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x54]
push dword [esp + 0x48]
push ebx
call fcn.1008f8cf
add esp, 0x18
mov dword [esp + 0x70], eax
cmp eax, edi
je 0x1008a0fe
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x10089ba2
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x10]
and dword [esp + 0x48], edi
mov dword [esp + 0x10], eax
jmp 0x10089d06
mov eax, dword [eax]
mov edx, dword [esp + 0x88]
mov dword [esp + 0x20], eax
inc eax
mov dword [esp + 0x48], 1
mov dword [esp + 0x44], eax
mov dword [esp + 0x24], eax
test edx, edx
jle 0x10089bdd
mov ecx, dword [esp + 0x84]
add ecx, 0xc
cmp dword [ecx], eax
jl 0x10089bd7
inc dword [esp + 0x24]
inc eax
add ecx, 0x18
dec edx
jne 0x10089bce
push dword [esp + 0x24]
mov esi, ebx
call fcn.10079dad
pop ecx
mov edi, eax
mov eax, dword [esp + 0x10]
push 0
push edi
mov ecx, ebx
mov dword [esp + 0x68], edi
call fcn.100794a2
mov eax, dword [esp + 0x28]
add eax, edi
push eax
push dword [esp + 0x84]
mov eax, dword [esp + 0x1c]
push 6
call fcn.1006ef67
and dword [esp + 0x28], 0
mov esi, dword [esp + 0x58]
add esp, 0x14
cmp dword [esp + 0x88], 0
jle 0x10089c9d
and dword [esp + 0x20], 0
lea eax, [edi + esi]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x20]
add eax, ecx
cmp dword [eax + 0xc], esi
jl 0x10089c87
mov ebx, dword [eax]
mov edi, dword [ebp + 8]
push 0
push dword [esp + 0x48]
push dword [eax + 4]
push dword [eax + 8]
call fcn.1007855b
add esp, 0x10
cmp dword [esp + 0x44], eax
je 0x10089c7c
push dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x14]
push 9
call fcn.1006ef67
add esp, 0xc
inc esi
inc dword [esp + 0x44]
mov ebx, edi
mov edi, dword [esp + 0x60]
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
add dword [esp + 0x20], 0x18
cmp eax, dword [esp + 0x88]
jl 0x10089c38
mov eax, ebx
call fcn.10079d71
mov esi, eax
mov eax, dword [esp + 0xc]
push esi
push dword [esp + 0x28]
push edi
push 0x5a
call fcn.1006eee1
mov eax, dword [esp + 0x1c]
push esi
push dword [esp + 0x8c]
push 0x6c
call fcn.1006ef67
add esp, 0x1c
mov eax, ebx
call fcn.10079d8c
mov ecx, dword [esp + 0x24]
push edi
mov eax, ebx
call fcn.10079df3
pop ecx
push dword [esp + 0x70]
call fcn.1009001d
mov eax, dword [esp + 0x10]
pop ecx
push dword [esp + 0x40]
push dword [esp + 0x7c]
push 0x14
call fcn.1006ef67
add esp, 0xc
mov byte [esp + 0x75], 1
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x60], eax
xor eax, eax
cmp dword [ecx], eax
mov dword [esp + 0x24], eax
jle 0x10089d80
mov dword [esp + 0x20], eax
cmp dword [esp + 0x48], 0
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x24]
je 0x10089d4d
add ecx, eax
push ecx
push eax
push dword [esp + 0x80]
mov eax, dword [esp + 0x18]
push 3
call fcn.1006eee1
add esp, 0x10
jmp 0x10089d6b
lea esi, [eax + ecx]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x74], 1
mov eax, dword [eax + 0xc]
push dword [eax + ecx]
mov edi, ebx
call fcn.10079366
pop ecx
inc dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add dword [esp + 0x20], 0x10
cmp ecx, dword [eax]
jl 0x10089d23
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0xc]
push 0xfffffffffffffffa
push dword [esp + 0x6c]
push dword [esi]
push dword [esp + 0x48]
push dword [esp + 0x7c]
push 0x60
push edi
call fcn.1006ef7e
mov eax, dword [edi + 0xc]
add esp, 0x1c
mov dword [esp + 0x68], eax
inc eax
push eax
push 0
push eax
push 0x81
mov eax, edi
call fcn.1006eee1
push dword [esi]
mov edi, dword [esp + 0x50]
push dword [esp + 0x80]
mov esi, ebx
call fcn.100786c9
push dword [esp + 0x68]
mov esi, dword [esp + 0x28]
push dword [esp + 0x50]
mov eax, esi
push 0x30
call fcn.1006ef67
add esp, 0x24
push dword [esp + 0x40]
mov eax, esi
push dword [esp + 0x60]
push 0x7f
call fcn.1006ef67
add esp, 0xc
push dword [esp + 0x2c]
mov eax, esi
push dword [esp + 0x20]
push 0x30
call fcn.1006ef67
mov edx, dword [esi + 0xc]
mov eax, dword [esp + 0x74]
add esp, 0xc
mov ecx, esi
call fcn.1006f223
lea eax, [esp + 0x74]
push eax
push ebx
call fcn.100893ab
push 0
push dword [esp + 0x34]
mov eax, esi
push 1
push 0x31
call fcn.1006eee1
add esp, 0x18
cmp dword [esp + 0x48], 0
je 0x10089e59
push dword [esp + 0x60]
mov eax, esi
push dword [esp + 0x7c]
push 0x6b
call fcn.1006ef67
add esp, 0xc
jmp 0x10089e71
push dword [esp + 0x70]
call fcn.1009001d
pop ecx
mov ecx, dword [esp + 0x64]
push 1
mov eax, esi
call fcn.1006f2d5
pop ecx
push dword [esp + 0x50]
mov eax, esi
push dword [esp + 0x38]
push 0x30
call fcn.1006ef67
add esp, 0xc
xor edi, edi
push edi
push dword [esp + 0x44]
mov eax, esi
push edi
push 0x61
call fcn.1006eee1
mov eax, dword [esi + 0xc]
push edi
push dword [esp + 0x70]
mov dword [esp + 0x7c], eax
push 1
push 0x31
mov eax, esi
call fcn.1006eee1
push dword [esp + 0x54]
mov eax, esi
push 0x1a
call fcn.1006ef50
mov edx, dword [esp + 0x78]
mov ecx, esi
call fcn.1006effc
mov eax, dword [esi + 0xc]
mov dword [esp + 0x78], eax
add eax, 2
push eax
push dword [esp + 0x54]
mov eax, esi
push 0x7f
call fcn.1006ef67
add esp, 0x34
push dword [esp + 0x34]
mov eax, esi
push 0x1a
call fcn.1006ef50
pop ecx
pop ecx
lea edi, [esp + 0x74]
mov eax, ebx
call fcn.10089360
cmp dword [esp + 0x4c], 0
je 0x10089f16
mov eax, dword [esp + 0x50]
push 8
inc eax
push eax
push dword [esp + 0x54]
push ebx
call fcn.10079770
add esp, 0x10
push dword [esp + 0x64]
mov eax, dword [esp + 0x54]
inc eax
push eax
push dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
push dword [esp + 0x64]
push dword [esp + 0x28]
push 0
push 0
push dword [eax]
push eax
push ebx
call fcn.10086669
push dword [esp + 0x5c]
mov eax, esi
push 0x1a
call fcn.1006ef50
mov edx, dword [esp + 0x5c]
mov ecx, esi
call fcn.1006effc
push ebx
lea ebx, [esp + 0xa8]
call fcn.1008929d
mov eax, dword [esp + 0x40]
add esp, 0x34
push dword [esp + 0x1c]
push 0x1a
call fcn.1006ef50
pop ecx
pop ecx
jmp 0x1008a09c
mov esi, dword [ebp + 0xc]
mov eax, esi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x28], edi
call fcn.10088bde
mov byte [esp + 0x2c], al
test al, al
je 0x10089fd1
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
push dword [eax + 0x10]
mov esi, dword [esp + 0x34]
push esi
call fcn.10077825
pop ecx
pop ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], eax
cmp eax, edi
je 0x10089fd1
cmp byte [esi + 0x1e], 0
jne 0x10089fd1
cmp byte [esp + 0x2c], 1
mov edx, dword [eax + 0xc]
setne cl
mov byte [edx + 8], cl
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov byte [eax], 0x97
push ebx
lea ebx, [esp + 0x78]
call fcn.1008929d
mov esi, dword [ebp + 8]
pop ecx
xor ebx, ebx
push ebx
push dword [esp + 0x30]
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x54]
push dword [esp + 0x48]
push esi
call fcn.1008f8cf
mov edi, eax
add esp, 0x18
cmp edi, ebx
jne 0x1008a015
push dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
call fcn.10077c4c
pop ecx
jmp 0x1008a0fe
lea eax, [esp + 0x74]
push eax
push esi
call fcn.100893ab
pop ecx
pop ecx
cmp dword [esp + 0x1c], ebx
jne 0x1008a041
cmp byte [esp + 0x2c], bl
je 0x1008a041
mov eax, dword [esp + 0xc]
push ebx
push dword [edi + 0x18]
push ebx
push 0x61
call fcn.1006eee1
add esp, 0x10
push edi
call fcn.1009001d
pop ecx
lea edi, [esp + 0x74]
mov eax, esi
call fcn.10089360
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x4c], ebx
je 0x1008a070
push 8
push dword [esp + 0x44]
push dword [esp + 0x54]
push esi
call fcn.10079770
add esp, 0x10
push dword [esp + 0x40]
mov eax, dword [ebp + 0xc]
push dword [esp + 0x44]
push dword [ebp + 0x10]
push 0xffffffffffffffff
push ebx
push ebx
push ebx
push dword [eax]
push eax
push esi
call fcn.10086669
push dword [esp + 0x58]
mov esi, dword [esp + 0x54]
call fcn.10077c4c
add esp, 0x2c
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
call fcn.1006effc
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
cmp dword [esp + 0x18], 0
je 0x1008a0d0
push dword [ebp + 0x10]
mov eax, dword [esp + 0x58]
push dword [eax]
push esi
push ebx
mov ebx, dword [esp + 0x1c]
call fcn.10086a4c
mov ebx, dword [ebp + 8]
add esp, 0x10
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0xc]
call fcn.1006effc
mov eax, dword [ebp + 0x10]
and dword [esp + 0x20], 0
cmp byte [eax], 5
jne 0x1008a0fe
push dword [esp + 0x54]
push dword [esp + 0x3c]
push ebx
call fcn.10086eb5
add esp, 0xc
push dword [esp + 0x84]
push dword [esp + 0x34]
call fcn.10060799
push dword [esp + 0x9c]
push dword [esp + 0x3c]
call fcn.10060799
mov eax, dword [esp + 0x30]
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret