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

Disassembly:
sub esp, 0x3c
mov eax, dword [esp + 0x4c]
push ebx
push ebp
mov ebp, dword [esp + 0x58]
xor ebx, ebx
cmp ebp, ebx
push esi
push edi
mov esi, ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ebx
mov edi, 1
je case.0x407a1f.1
mov bl, byte [esi + 0x15]
sub bl, byte [ebp + 0x15]
mov edx, dword [ebp + 4]
neg bl
sbb ebx, ebx
inc ebx
cmp edx, edi
jne case.0x407a1f.1
cmp eax, 0xa
je 0x407a0e
cmp eax, 0x10
je 0x407a0e
inc dword [ebp + 0xf54]
cmp dword [esi + 4], edi
jne case.0x407a1f.1
cmp ecx, 0x15
ja case.0x407a1f.1
movzx ecx, byte [ecx + 0x408140]
jmp dword [ecx*4 + 0x408134]
cmp eax, 0xa
je case.0x407a1f.1
cmp eax, 0x10
je case.0x407a1f.1
mov ecx, ebp
call fcn.004722d0
jmp case.0x407a1f.1
cmp eax, 0xa
je case.0x407a1f.1
cmp eax, 0x10
je case.0x407a1f.1
inc dword [ebp + 0xf5c]
cmp dword [esi + 4], edi
jne 0x407acb
mov ecx, esi
mov dword [esp + 0x10], esi
call fcn.004725d0
mov eax, dword [esp + 0x5c]
cmp eax, 0x12
jne 0x407a77
mov ecx, esi
call fcn.00482030
push 0x40a00000
mov ecx, esi
call fcn.00475df0
jmp 0x407a81
cmp eax, 0xa
je 0x407a87
cmp eax, 0x10
je 0x407a87
inc dword [esi + 0xf68]
mov eax, dword [esi + 0x690]
test eax, eax
je 0x407a99
mov dword [esp + 0x14], 1
mov edi, dword [esp + 0x64]
test edi, edi
je 0x407acb
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x30]
test eax, eax
jne 0x407ac3
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x2c]
test eax, eax
je 0x407acb
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x2c]
test eax, eax
jne 0x407acb
push edi
mov ecx, esi
call fcn.00475400
mov eax, dword [esi + 0x488]
test eax, eax
je 0x407b10
mov edx, dword [eax + 0x2f4]
mov ecx, 1
cmp edx, ecx
jne 0x407ae8
mov dword [esp + 0x18], ecx
test ebp, ebp
je 0x407b10
mov al, byte [ebp + 0x15]
cmp al, byte [esi + 0x15]
je 0x407b10
lea ecx, [esp + 0x28]
push ecx
mov ecx, ebp
call fcn.00401470
mov ecx, dword [esi + 0x488]
lea edx, [esp + 0x28]
push edx
call fcn.004225f0
push ebp
mov ecx, esi
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
call fcn.00404370
test ebp, ebp
je 0x407b50
test ebx, ebx
je 0x407b50
cmp dword [ebp + 4], 1
jne 0x407b50
mov eax, dword [ebp]
push 1
mov ecx, ebp
call dword [eax + 0x5c]
test eax, eax
je 0x40812a
mov ecx, dword [0x680098]
mov edx, dword [ecx + 0x10]
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x2e8], edx
mov eax, dword [ecx + 0x164]
test eax, eax
jne 0x407b88
add ecx, 0x108
mov eax, dword [ecx]
mov dword [esp + 0x34], eax
mov edx, dword [ecx + 4]
mov dword [esp + 0x38], edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x3c], eax
jmp 0x407b92
lea edx, [esp + 0x34]
push edx
call fcn.004d2520
fld dword [esi + 0x58]
fcomp dword [0x60477c]
fnstsw ax
test ah, 0x41
jp 0x407bbf
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
push eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00404430
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret 0x18
movzx edx, word [esp + 0x58]
mov eax, dword [esi]
mov dword [esp + 0x58], edx
mov ecx, esi
fild dword [esp + 0x58]
fstp dword [esp + 0x58]
call dword [eax + 0x2c]
test eax, eax
je 0x407bf0
mov ecx, dword [0x680128]
push 4
call fcn.004f5cd0
fmul dword [esp + 0x58]
fstp dword [esp + 0x58]
mov edi, dword [esp + 0x54]
mov edx, dword [esi]
push edi
mov ecx, esi
call dword [edx + 0x68]
fmul dword [esp + 0x58]
mov eax, dword [esi]
mov ecx, esi
fstp dword [esp + 0x58]
call dword [eax + 0x2c]
test eax, eax
je 0x407c22
cmp edi, 0x15
jne 0x407c22
fld dword [esp + 0x58]
fmul dword [0x5da2f8]
fstp dword [esp + 0x58]
mov eax, dword [edi*4 + 0x6085f0]
test eax, eax
mov ebx, dword [esp + 0x50]
je 0x407c3c
mov ecx, dword [esp + 0x10]
push ebx
push edi
call fcn.00404430
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x2c]
test eax, eax
jne 0x407c60
movzx eax, byte [esi + 0x15]
movsx ecx, byte [0x61b0ec]
lea edx, [ecx + eax*8]
mov eax, dword [edx*4 + 0x683fc8]
test eax, eax
jne 0x407c72
mov ecx, dword [esp + 0x58]
mov eax, dword [esi]
push ecx
push 1
mov ecx, esi
call dword [eax + 0x6c]
fstp dword [esp + 0x58]
fld dword [esp + 0x58]
push edi
fmul dword [0x5da728]
mov ecx, esi
fmul dword [0x5da74c]
fstp dword [esp + 0x64]
call fcn.00495ed0
test eax, eax
mov dword [esp + 0x64], eax
fild dword [esp + 0x64]
jge 0x407ca0
fadd dword [0x5da2fc]
fsubr dword [esp + 0x58]
fst dword [esp + 0x58]
fcomp dword [esp + 0x60]
fnstsw ax
test ah, 5
jp 0x407cbb
mov edx, dword [esp + 0x60]
mov dword [esp + 0x58], edx
mov ecx, esi
call fcn.00495fd0
test eax, eax
jne 0x407cca
mov dword [esp + 0x58], eax
lea eax, [esp + 0x40]
push eax
mov ecx, esi
call fcn.004ce0e0
mov ecx, dword [esp + 0x44]
push 0x43340000
push ebx
mov dword [esp + 0x68], ecx
call fcn.004bd690
fstp dword [esp + 4]
mov edx, dword [esp + 0x68]
add esp, 4
push edx
call fcn.004bd6d0
fadd dword [0x5da748]
add esp, 8
fmul dword [0x5da744]
call fcn.0058c3f0
mov ecx, dword [esp + 0x58]
push ebp
mov edi, eax
mov eax, dword [esi]
push ecx
mov ecx, esi
and edi, 3
call dword [eax + 0x4c]
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x2c]
test eax, eax
je 0x407d3e
mov ecx, dword [0x6800ec]
push 2
add ecx, 0x1890
call fcn.004b5bd0
fld dword [esi + 0x58]
fcomp dword [0x60477c]
fnstsw ax
test ah, 0x41
jp 0x407e6a
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x407d8d
mov eax, dword [esi]
push 0xa
mov ecx, esi
call dword [eax + 0x5c]
test eax, eax
jne 0x407d8d
mov ecx, esi
call fcn.00475000
test eax, eax
je 0x407d8d
cmp dword [esi + 0x688], 0x71
je 0x407d8d
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x407d8d
and dword [ebx + 0x139c], 0xffffefff
mov ebx, dword [esp + 0x5c]
cmp ebx, 0xa
je 0x407da3
cmp dword [esi + 4], 1
jne 0x407da3
mov ecx, esi
call fcn.004821f0
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x2c]
test eax, eax
mov ecx, dword [0x62f45c]
push 0
je 0x407dc1
push 9
call fcn.0041e120
push 7
jmp 0x407dca
push 5
call fcn.0041e120
push 6
mov ecx, dword [0x6800ec]
add ecx, 0x1890
call fcn.004b5bd0
mov eax, dword [esi]
push 0xa
mov ecx, esi
call dword [eax + 0x5c]
cmp eax, 1
jne 0x407df3
mov eax, 0x10
jmp 0x407ed2
cmp dword [esp + 0x54], 0x15
jne 0x407e04
mov eax, 0x14
jmp 0x407ed2
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x70]
test eax, eax
je 0x407e2c
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x74]
cmp eax, 0xffffffff
je 0x407e2c
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x78]
mov eax, 4
jmp 0x407ed2
lea eax, [ebx - 1]
cmp eax, 0xb
ja case.0x407e3b.2
movzx eax, byte [eax + 0x408164]
jmp dword [eax*4 + 0x408158]
mov ecx, dword [esi + 0x2e8]
mov edx, dword [0x680098]
mov ebx, dword [edx + 0x10]
add ecx, 0x1f4
cmp ecx, ebx
sbb eax, eax
and eax, 0xfffffff8
add eax, 0xc
jmp 0x407ed2
mov eax, 8
jmp 0x407ed2
mov eax, dword [esp + 0x10]
test eax, eax
je 0x407ed0
mov ebx, dword [esp + 0x5c]
cmp ebx, 0xa
je 0x407ec2
cmp ebx, 0x10
je 0x407ec2
cmp dword [ebp + 4], 1
jne 0x407eb9
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x2c]
test eax, eax
je 0x407eb9
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
call dword [edx + 0x2c]
test eax, eax
je 0x407eb9
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
push 1
call dword [eax + 0x5c]
test eax, eax
jne 0x407ec2
mov ecx, dword [esp + 0x10]
call fcn.00483460
jmp 0x407ec2
mov ecx, dword [esp + 0x10]
call fcn.00483290
cmp ebx, 0x12
jne 0x407ed0
mov ecx, dword [esp + 0x10]
call fcn.00482420
xor eax, eax
mov ecx, dword [esi + 4]
dec ecx
jne 0x407f23
add eax, edi
mov eax, dword [eax*4 + 0x608670]
cmp eax, 0xffffffff
je 0x407f23
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x80]
mov eax, dword [esi]
push 0xa
mov ecx, esi
call dword [eax + 0x5c]
cmp eax, 1
jne 0x408005
mov eax, dword [esi + 0x27c]
fld dword [esi + 0x1ec]
or eax, 8
fstp dword [esi + 0x284]
mov dword [esi + 0x27c], eax
jmp 0x408005
mov eax, dword [esp + 0x10]
test eax, eax
je 0x408005
mov ecx, eax
mov eax, dword [ecx + 0x690]
test eax, eax
jne 0x408005
mov edx, dword [esp + 0x54]
cmp dword [edx*4 + 0x5da660], 1
jne 0x408005
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
push eax
push ecx
call fcn.004bd6d0
mov eax, dword [esp + 0x20]
fmul dword [0x5da740]
add esp, 8
test eax, eax
fmul dword [0x5da6c4]
fstp dword [esp + 0x58]
jne 0x408005
fld dword [esp + 0x58]
fmul dword [0x5da740]
fmul dword [0x5da6c4]
fstp dword [esp + 0x5c]
mov edi, dword [esp + 0x5c]
push edi
call fcn.004beac0
fmul dword [0x5da73c]
mov edx, dword [esp + 0x5c]
push edx
fstp dword [esp + 0x64]
call fcn.004beaf0
mov eax, dword [esp + 0x5c]
fmul dword [eax*4 + 0x626bb8]
push edi
fmul dword [0x5da73c]
fstp dword [esp + 0x64]
call fcn.004beaf0
fmul dword [0x5da73c]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
add esp, 0xc
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x20], ecx
push eax
mov ecx, esi
mov dword [esp + 0x34], edx
mov dword [esp + 0x28], edx
call fcn.00496b70
fld dword [esi + 0x58]
fcomp dword [0x60477c]
fnstsw ax
test ah, 0x41
jne 0x40812a
cmp dword [esi + 0x2d0], 3
jae 0x40802b
push 3
mov ecx, esi
call fcn.00496a70
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x30]
test eax, eax
je 0x408114
push ebp
mov ecx, esi
call fcn.00403840
mov eax, dword [esi + 0x62c]
test eax, eax
jne 0x40807f
mov eax, dword [esi + 0x214]
test eax, eax
jne 0x40807f
mov eax, dword [esi]
push 0x4c
mov ecx, esi
call dword [eax + 0x80]
mov eax, dword [0x62fe00]
test eax, eax
je 0x40807f
mov ecx, dword [esi + 8]
lea edx, [esp + 0x58]
push edx
push 0x55
mov dword [esp + 0x60], ecx
call dword [eax + 8]
add esp, 8
test ebp, ebp
je 0x40812a
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0xc]
test eax, eax
je 0x40812a
mov ecx, esi
call fcn.004033b0
test eax, eax
jne 0x40812a
cmp dword [esi + 0x440], 0xa
je 0x40812a
mov eax, dword [esi + 0x62c]
test eax, eax
jne 0x40812a
mov edi, dword [esp + 0x10]
test edi, edi
je 0x4080e1
mov ecx, dword [edi + 0x690]
test ecx, ecx
je 0x4080e1
call fcn.00404050
test eax, eax
je 0x4080e1
push 0
push 0
push 0
mov ecx, edi
call fcn.00486d90
push ebp
mov ecx, esi
call fcn.00496180
test eax, eax
je 0x40812a
push ebp
mov ecx, esi
call fcn.00495f20
test eax, eax
jne 0x40812a
push ebp
mov ecx, esi
call fcn.00497190
push 4
mov ecx, esi
call fcn.00498560
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret 0x18
mov eax, dword [esi + 0x62c]
test eax, eax
je 0x408122
cmp eax, ebp
je 0x40812a
push ebp
mov ecx, esi
call fcn.004078b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret 0x18