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

Disassembly:
sub esp, 0xa0
push ebx
mov ebx, dword [esp + 0xa8]
xor eax, eax
push ebp
mov ebp, dword [esp + 0xb0]
push esi
mov esi, dword [ebp]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x4c], eax
test dword [ebx + 0x98], 0x400000
push edi
mov dword [esp + 0x18], esi
jne 0x869208
push 0x640a08
call fcn.00926d3c
add esp, 4
mov eax, dword [ebp]
mov ecx, dword [eax + 0xc0]
mov dword [ebx + 0x30], ecx
mov edx, dword [eax + 0xc4]
mov dword [ebx + 0x34], edx
mov eax, dword [ebp]
mov cl, byte [eax + 0x15]
xor edi, edi
test cl, cl
jbe 0x869248
push ebp
mov eax, edi
call fcn.00863552
add esp, 4
test eax, eax
jne 0x869350
mov ecx, dword [ebp]
movzx edx, byte [ecx + 0x15]
inc edi
cmp edi, edx
jb 0x869229
test dword [ebx + 0x98], 0x400000
jne 0x869261
push 0x6409f0
call fcn.00926d3c
add esp, 4
mov eax, dword [ebx + 0x60]
xor edi, edi
mov dword [esp + 0x64], eax
test byte [esi + 0x1ec], 5
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x40], edi
jne 0x8692ad
mov eax, dword [ebp + 4]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
lea eax, [ecx + edx - 1]
call fcn.00863ce2
mov edi, eax
imul edi, dword [esi + 0xf0]
mov dword [esp + 0x40], edi
mov ecx, dword [esi + 0x180]
lea eax, [ebx + 0x568]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x110]
test eax, eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
jbe 0x8698f6
jmp 0x8692e2
mov ecx, dword [esp + 0x10]
lea eax, [ebx + ecx*4 + 0x468]
mov dword [esp + 0x68], eax
mov dword [eax], 0
mov eax, 1
xor edx, edx
call fcn.00924782
mov esi, dword [esp + 0x18]
mov ecx, dword [esi + 0x88]
mov edi, dword [esi + 0x8c]
and eax, ecx
and edx, edi
or eax, edx
jne 0x869385
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
movzx ecx, word [edx]
mov eax, edi
sub eax, ebx
mov edx, esi
mov edx, dword [edx + 0x68]
shl ecx, 2
sub eax, 0x568
sar eax, 2
lea esi, [edx + eax*4]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x8698bc
test dword [ebx + 0x98], 0x10000000
je 0x869369
push 0x5df350
call fcn.00926d3c
add esp, 4
push 0x6409d0
push ebx
call fcn.0077c6d2
add esp, 8
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0xa0
ret
inc dword [esp + 0x20]
mov ecx, dword [esp + 0x64]
mov dword [ebx + 0x60], ecx
xor eax, eax
lea edi, [ebx + 0x358]
mov ecx, 0x22
rep stosd dword es:[edi], eax
lea edi, [ebx + 0x3e0]
mov ecx, 0x22
rep stosd dword es:[edi], eax
test dword [ebx + 0x98], 0x400000
jne 0x8693cb
mov edx, dword [esp + 0x10]
inc edx
push edx
push 0x6409a4
call fcn.00926cd6
add esp, 8
mov eax, dword [esp + 0x14]
mov dx, word [eax + 2]
and dx, 0x80
je 0x8693de
inc dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
mov edi, dword [esi + 0x6c]
mov eax, dword [edi + ecx*8]
mov ecx, dword [edi + ecx*8 + 4]
mov edi, eax
and edi, ecx
cmp edi, 0xffffffff
jne 0x86940e
mov esi, dword [ebp + 4]
cmp dword [esi], 0
je 0x8698bc
test dx, dx
jne 0x8698bc
mov esi, dword [esp + 0x18]
mov edx, dword [ebp + 0x5c]
xor edi, edi
push edi
push edx
push 3
push ecx
push eax
mov eax, dword [esp + 0x28]
push eax
push ebp
call fcn.0087c0d2
add esp, 0x1c
test eax, eax
jne 0x86945c
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 0x6c]
lea ecx, [esp + 0x80]
push ecx
mov ecx, dword [edx + eax*8 + 4]
mov edx, dword [edx + eax*8]
push ecx
push edx
call fcn.00917942
push eax
push 0x64097c
push ebx
call fcn.0077c6d2
add esp, 0x18
jmp 0x869634
mov eax, dword [esp + 0x14]
movzx eax, word [eax + 6]
mov ecx, dword [ebx + 0x30]
cdq
add ecx, eax
mov dword [ebx + 0x30], ecx
adc dword [ebx + 0x34], edx
mov ecx, dword [esp + 0x68]
push 1
push ecx
mov dword [ebx + 0x40], edi
mov dword [ebx + 0x44], edi
mov dword [ebx + 0x38], edi
mov dword [ebx + 0x3c], edi
mov dword [ebx + 0x48], edi
mov dword [ebx + 0x4c], edi
mov dword [ebx + 0x94], edi
mov eax, dword [ebp + 0x5c]
lea edx, [esp + 0x24]
push edx
push eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], edi
mov ecx, dword [esi + 0x6c]
mov edx, dword [ecx + eax*8 + 4]
mov eax, dword [ecx + eax*8]
mov ecx, dword [esp + 0x24]
push edx
push eax
push ecx
push ebp
push ebx
call fcn.00866312
add esp, 0x24
test eax, eax
jne 0x869377
mov edx, dword [esp + 0x14]
test word [edx + 2], 0x480
jne 0x869546
mov eax, dword [ebp + 4]
mov eax, dword [eax]
cmp dword [esp + 0x1c], eax
je 0x869517
lea ecx, [esp + 0x98]
push ecx
push edi
push eax
call fcn.00917942
add esp, 0xc
push eax
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x84]
push edx
push edi
push eax
call fcn.00917942
add esp, 0xc
push eax
push 0x640968
push ebx
call fcn.0077c6d2
add esp, 0x10
jmp 0x869634
mov ecx, dword [esp + 0x20]
sub ecx, dword [esp + 0x3c]
cmp ecx, 1
jne 0x8695fd
test byte [esi + 0x1ec], 5
jne 0x86953f
mov eax, dword [ebx + 0x98]
test cl, ah
je 0x8695fd
mov edx, dword [ebx + 0x60]
mov dword [esp + 0x40], edx
mov edx, dword [esi + 0x114]
mov eax, dword [esp + 0x10]
dec edx
cmp edx, eax
jne 0x8696cc
mov eax, dword [ebp]
mov esi, dword [eax + 0x50]
mov edi, dword [eax + 0x54]
xor ecx, ecx
mov dword [eax + 0x50], ecx
mov dword [eax + 0x54], ecx
mov edx, dword [ebp + 0x6c]
mov eax, dword [esp + 0x10]
push edx
push ecx
push ecx
push ebp
mov dword [ebp + 0xe8], eax
call fcn.00872622
mov eax, dword [ebp + 0x6c]
push eax
push ebp
call fcn.008726a2
mov edx, dword [ebp]
mov ecx, dword [edx + 0x50]
mov eax, dword [edx + 0x54]
add esp, 0x18
cmp eax, edi
jb 0x8695d4
ja 0x8695a0
cmp ecx, esi
jbe 0x8695d4
lea edx, [esp + 0x80]
push edx
push eax
push ecx
call fcn.00917942
add esp, 0xc
push eax
lea eax, [esp + 0x9c]
push eax
push edi
push esi
call fcn.00917942
add esp, 0xc
push eax
push 0x64092c
push ebx
call fcn.0077c732
add esp, 0x10
test byte [ebx + 0x98], 1
je 0x869650
mov eax, dword [ebp]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + 0x54]
cmp esi, ecx
mov edx, dword [ebx]
ja 0x869659
jb 0x8695f5
mov esi, dword [eax + 0x50]
cmp esi, edx
jae 0x869659
mov dword [eax + 0x50], edx
mov dword [eax + 0x54], ecx
jmp 0x869659
mov eax, dword [esp + 0x40]
cmp eax, dword [ebx + 0x60]
je 0x869546
mov eax, dword [esp + 0x10]
cmp eax, edi
je 0x869626
mov ecx, eax
inc ecx
push ecx
push 0x6408fc
push ebx
call fcn.0077c6d2
add esp, 0xc
jmp 0x869634
push 0x6408d8
push ebx
call fcn.0077c6d2
add esp, 8
mov eax, dword [ebx + 0x98]
test ah, 0x20
je 0x869377
mov dword [esp + 0x50], 0xffffffff
jmp 0x8698bc
mov ecx, dword [ebp]
mov dword [ecx + 0x50], esi
mov dword [ecx + 0x54], edi
push 0
push 7
push ebp
call fcn.0085d822
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x18]
movzx ecx, word [eax + 8]
mov edi, dword [ebp + 0x60]
mov esi, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [edx + 0x18]
movzx edx, word [ecx + 8]
mov eax, dword [ebp + 0x60]
mov ecx, dword [esp + 0x1c]
push 0
push edx
mov edx, dword [ebp + 0x6c]
push eax
push ecx
push edx
push ebp
call fcn.0086e3f2
add esp, 0x24
test eax, eax
jne 0x8696bf
mov esi, dword [ebx + 0x80]
push 0x64089c
push ebx
call fcn.0077c732
add esp, 8
mov dword [ebx + 0x80], esi
push 0
push 8
push ebp
call fcn.0085d822
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x18]
cmp byte [ecx], 0
mov eax, dword [ebp]
mov eax, dword [eax + 0x1fc]
je 0x8696f0
nop
movzx edx, word [ecx + 8]
add ecx, 0x18
add eax, edx
cmp byte [ecx], 0
jne 0x8696e2
mul dword [esp + 0x1c]
mov ecx, dword [ebx + 0x48]
push 0
mov esi, eax
mov eax, dword [ebx + 0x4c]
push 2
push eax
push ecx
mov edi, edx
call fcn.00924872
add esi, eax
mov eax, dword [ebx + 0x98]
adc edi, edx
test ah, 0x20
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], edi
je 0x86982e
mov eax, dword [ebx + 0x40]
mov ecx, dword [ebx + 0x44]
or eax, ecx
je 0x86982e
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x86982e
test edi, edi
jl 0x869752
jg 0x869748
test esi, esi
jb 0x869752
fild qword [esp + 0x78]
fst qword [esp + 0x68]
jmp 0x869762
fild qword [esp + 0x78]
fld qword [0x5e0128]
fadd st(1)
fstp qword [esp + 0x68]
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
jl 0x869782
jg 0x86977c
mov edx, eax
test edx, edx
jb 0x869782
fild qword [esp + 0x48]
jmp 0x86978c
fild qword [esp + 0x48]
fadd qword [0x5e0128]
test edi, edi
fstp qword [esp + 0x5c]
jl 0x86979a
jg 0x8697a0
test esi, esi
jae 0x8697a0
fadd qword [0x5e0128]
test ecx, ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
jl 0x8697b8
jg 0x8697b2
test eax, eax
jb 0x8697b8
fild qword [esp + 0x70]
jmp 0x8697c2
fild qword [esp + 0x70]
fadd qword [0x5e0128]
mov eax, dword [ebx + 0x44]
test eax, eax
mov ecx, dword [ebx + 0x40]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], eax
jl 0x8697e0
jg 0x8697da
test ecx, ecx
jb 0x8697e0
fild qword [esp + 0x54]
jmp 0x8697ea
fild qword [esp + 0x54]
fadd qword [0x5e0128]
fld qword [esp + 0x68]
mov edx, dword [ebx + 0x94]
fsub qword [esp + 0x5c]
push edx
fdiv st(3)
fmul qword [0x640198]
call fcn.009247a2
fxch st(1)
fdiv st(1)
push eax
fmul qword [0x640198]
call fcn.009247a2
fstp st(0)
push eax
fstp st(0)
mov eax, dword [esp + 0x1c]
inc eax
push eax
push 0x640858
call fcn.00926cd6
add esp, 0x14
mov ecx, dword [ebx + 0x38]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
add edx, ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x34], edx
mov edx, dword [ebx + 0x3c]
adc eax, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x38], eax
mov eax, dword [ebx + 0x40]
add ecx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], ecx
mov ecx, dword [ebx + 0x44]
adc eax, ecx
mov ecx, dword [esp + 0x30]
add edx, esi
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x98]
adc ecx, edi
test eax, 0x2000000
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
je 0x8698bc
mov edi, dword [ebx + 0x1578]
mov ecx, dword [ebp + 4]
xor edx, edx
cmp edi, 2
setne dl
push 0
lea eax, [ebx + 0x3e0]
dec edx
and eax, edx
mov edx, dword [ecx]
mov ecx, dword [esp + 0x18]
push edx
push eax
lea eax, [ebx + 0x358]
push eax
mov eax, dword [esp + 0x54]
push eax
push ecx
call fcn.00866012
add esp, 0x18
mov ecx, dword [esp + 0x14]
movzx edx, word [ecx]
mov eax, dword [esp + 0x44]
add ecx, 0x38
lea edx, [eax + edx*4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x44], edx
mov edx, dword [ecx + 0x110]
inc eax
cmp eax, edx
mov dword [esp + 0x10], eax
jb 0x8692e2
mov edi, dword [esp + 0x40]
mov esi, ecx
mov eax, dword [ebx + 0x98]
test ah, 0x20
je 0x869a1b
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
or eax, edx
je 0x869a1b
mov eax, dword [esp + 0x20]
test eax, eax
jbe 0x869a00
mov ecx, dword [esp + 0x30]
test ecx, ecx
jl 0x86993d
jg 0x869933
mov eax, dword [esp + 0x2c]
test eax, eax
jb 0x86993d
fild qword [esp + 0x2c]
fst qword [esp + 0x48]
jmp 0x86994b
fild qword [esp + 0x2c]
fst qword [esp + 0x48]
fadd qword [0x5e0128]
mov eax, dword [esp + 0x38]
test eax, eax
jl 0x869967
jg 0x86995d
mov esi, dword [esp + 0x34]
test esi, esi
jb 0x869967
fild qword [esp + 0x34]
fst qword [esp + 0x5c]
jmp 0x869977
fild qword [esp + 0x34]
fld qword [0x5e0128]
fadd st(1)
fstp qword [esp + 0x5c]
test ecx, ecx
jl 0x86998b
jg 0x869985
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jb 0x86998b
fld qword [esp + 0x48]
jmp 0x869995
fld qword [esp + 0x48]
fadd qword [0x5e0128]
test eax, eax
fstp qword [esp + 0x54]
jl 0x8699a7
jg 0x8699ad
mov eax, dword [esp + 0x34]
test eax, eax
jae 0x8699ad
fadd qword [0x5e0128]
test edx, edx
jl 0x8699c1
jg 0x8699bb
mov eax, dword [esp + 0x24]
test eax, eax
jb 0x8699c1
fild qword [esp + 0x24]
jmp 0x8699cb
fild qword [esp + 0x24]
fadd qword [0x5e0128]
fxch st(2)
fsub qword [esp + 0x5c]
fdiv qword [esp + 0x54]
fmul qword [0x640198]
call fcn.009247a2
fdiv st(1)
push eax
fmul qword [0x640198]
call fcn.009247a2
fstp st(0)
push eax
push 0x640820
call fcn.00926cd6
add esp, 0xc
jmp 0x869a1b
mov ecx, dword [esi + 0x88]
or ecx, dword [esi + 0x8c]
je 0x869a1b
push 0x5df350
call fcn.00926d3c
add esp, 4
mov ebp, dword [ebp + 4]
mov edx, dword [ebx + 0x30]
cmp edx, dword [ebp + 0x18]
jne 0x869a2e
mov eax, dword [ebx + 0x34]
cmp eax, dword [ebp + 0x1c]
je 0x869a47
mov ecx, dword [ebx + 0x10]
and ecx, dword [ebx + 0x14]
cmp ecx, 0xffffffff
je 0x869a47
push 0x6407f8
push ebx
call fcn.0077c732
add esp, 8
mov edx, dword [esp + 0x20]
cmp edx, dword [esp + 0x3c]
je 0x869a67
sub edi, dword [esp + 0x64]
mov eax, dword [esp + 0x50]
mov dword [ebx + 0x60], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa0
ret
mov eax, dword [esp + 0x50]
pop edi
pop esi
pop ebp
mov dword [ebx + 0x60], 0
pop ebx
add esp, 0xa0
ret