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

Disassembly:
sub esp, 0x54
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x74]
mov ecx, dword [edi + 8]
cmp dword [ecx + 0xc], 4
jne 0x408000
mov eax, dword [esp + 0x78]
mov edx, dword [edi + 0xc]
push eax
push 1
push edx
push ecx
call fcn.00407e70
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
mov eax, dword [ecx + 0x10]
cmp eax, 0x4d
jge 0x408477
cmp eax, 7
jle 0x408020
lea eax, [eax + eax*2]
mov eax, dword [eax*8 + 0x62e39c]
cmp eax, 7
jg 0x408011
xor edx, edx
cmp eax, 7
sete dl
mov eax, edx
test eax, eax
je 0x408477
xor ebp, ebp
push ebp
lea eax, [esp + 0x44]
push eax
mov eax, dword [esp + 0x74]
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.004b0070
mov ecx, dword [edi + 8]
mov edx, ecx
fld qword [edx + 0x110]
add esp, 0x14
fcomp qword [0x62c6f8]
mov dword [esp + 0x18], edx
fnstsw ax
test ah, 0x44
jnp 0x4080da
fld qword [edx + 0x120]
fabs
fcomp qword [0x650ca8]
fnstsw ax
test ah, 0x41
je 0x4080da
fld qword [0x650cd0]
mov dword [esp + 0x14], ebp
fdiv qword [edx + 0x110]
cmp dword [edi + 0xc], ebp
fabs
je 0x408097
fchs
fadd qword [esp + 0x40]
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x14]
push eax
fstp qword [esp + 0x50]
push 1
push 1
push ecx
xor eax, eax
call fcn.00406720
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4081c7
fld qword [esp + 0x48]
fld qword [esp + 0x30]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x4080f0
mov eax, 1
jmp 0x4080f2
fld qword [0x650cd0]
mov dword [esp + 0x14], 1
fdiv qword [edx + 0x118]
jmp 0x40808e
xor eax, eax
xor ecx, ecx
cmp dword [edi + 0xc], ecx
sete cl
cmp ecx, eax
jne 0x408184
cmp esi, dword [esp + 0x70]
je 0x408184
cmp esi, dword [esp + 0x68]
je 0x408184
fsubrp st(1)
mov eax, esi
fabs
call fcn.0045b7a0
mov ebx, dword [esp + 0x10]
mov edx, eax
xor eax, eax
cmp dword [esi + 8], eax
setne al
test ebp, ebp
mov edi, eax
je 0x408139
cmp ebx, dword [esp + 0x1c]
je 0x408151
mov eax, ebx
test eax, eax
je 0x40817e
mov dword [esp + 0x2c], edi
fstp qword [esp + 0x50]
mov edi, dword [esp + 0x74]
mov ebp, esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], edx
jmp 0x408188
mov eax, dword [esp + 0x2c]
cmp edi, eax
jne 0x408135
cmp edx, dword [esp + 0x20]
je 0x408163
mov eax, edx
jmp 0x408135
push ebp
push esi
call fcn.00407f40
add esp, 8
test eax, eax
jne 0x40817e
fld qword [esp + 0x50]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x408139
mov edi, dword [esp + 0x74]
jmp 0x408186
fstp st(0)
fstp st(0)
mov eax, dword [edi + 8]
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x14]
push edx
push 1
push 1
push eax
mov eax, esi
call fcn.00406720
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4080c2
test ebp, ebp
je 0x4081c7
mov eax, dword [esp + 0x78]
mov ecx, ebp
call fcn.00407d20
test eax, eax
jne 0x4082d8
xor ebp, ebp
mov ebx, dword [esp + 0x68]
mov edi, dword [edi + 8]
push ebx
push edi
call fcn.00440a80
add esp, 8
test eax, eax
je 0x4082d4
mov eax, dword [ebx + 0xac]
test eax, eax
mov ecx, dword [0x691ca8]
jne 0x4081f4
xor esi, esi
jmp 0x408204
cmp word [eax + ecx + 2], 0
ja 0x408200
xor esi, esi
jmp 0x408204
mov esi, dword [eax + ecx + 4]
mov eax, dword [edi + 0xac]
test eax, eax
je 0x40821e
cmp word [eax + ecx + 2], 0
ja 0x40821a
xor eax, eax
jmp 0x40821e
mov eax, dword [eax + ecx + 4]
mov ecx, dword [esi + 0xf0]
mov dword [esp + 0x30], ecx
mov edx, dword [esi + 0xf4]
mov dword [esp + 0x34], edx
mov ecx, dword [esi + 0xf8]
mov dword [esp + 0x38], ecx
mov edx, dword [esi + 0xfc]
mov ecx, dword [esp + 0x74]
mov edi, dword [ecx + 0xc]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edi
fld qword [eax + 0x118]
fld qword [eax + 0x110]
call fcn.0060312a
fst qword [esp + 0x50]
cmp edi, 1
jne 0x408296
fld qword [0x62c6f8]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x40828a
fsub qword [0x650d28]
fstp qword [esp + 0x50]
jmp 0x408298
fadd qword [0x650d28]
fstp qword [esp + 0x50]
jmp 0x408298
fstp st(0)
mov edx, dword [esp + 0x78]
push 1
push edx
lea eax, [esp + 0x58]
push eax
push 0
lea ecx, [esp + 0x40]
push ecx
push esi
call fcn.00407fd0
add esp, 0x18
test eax, eax
je 0x4082d4
mov edx, dword [esp + 0x78]
xor ecx, ecx
cmp dword [esp + 0x7c], ecx
push edx
sete cl
push ecx
push eax
mov eax, ebx
call fcn.00407dc0
add esp, 0xc
mov ebp, eax
mov edi, dword [esp + 0x74]
cmp dword [esp + 0x7c], 0
jne 0x40846d
test ebp, ebp
jne 0x40846d
cmp dword [esp + 0x14], ebp
mov edx, dword [esp + 0x18]
je 0x4082fd
fld qword [edx + 0x118]
jmp 0x408303
fld qword [edx + 0x110]
mov eax, dword [0x696098]
lea ecx, [eax*8]
sub ecx, eax
fld dword [ecx*4 + 0x695434]
mov ecx, dword [edi + 0xc]
test ecx, ecx
fmul qword [0x6510e8]
fxch st(1)
fabs
fdivp st(1)
je 0x40832d
fchs
mov eax, dword [edx + 0x10]
fadd qword [esp + 0x40]
lea edx, [eax + eax*2]
mov eax, dword [edx*8 + 0x62e3a0]
sub eax, 0xd
fst qword [esp + 0x20]
je 0x408361
sub eax, 1
jne 0x40837a
fld1
fcom st(1)
fnstsw ax
test ah, 5
jp 0x40835f
fstp st(1)
fst qword [esp + 0x20]
jmp 0x40837a
fstp st(0)
fld qword [0x62c6f8]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x408378
fstp st(1)
fst qword [esp + 0x20]
jmp 0x40837a
fstp st(0)
fcomp qword [esp + 0x48]
fnstsw ax
test ah, 0x41
jne 0x40838c
mov eax, 1
jmp 0x40838e
xor eax, eax
xor edx, edx
test ecx, ecx
sete dl
cmp edx, eax
jne 0x40846d
push 1
lea ecx, [esp + 0x78]
mov eax, 1
call fcn.004cce40
add esp, 4
test eax, eax
je 0x40846d
mov eax, dword [edi + 8]
mov ecx, dword [eax + 0x10]
mov esi, dword [esp + 0x74]
mov edx, dword [0x691ca8]
mov dword [esi + edx + 4], eax
lea eax, [ecx + ecx*2]
mov esi, dword [eax*8 + 0x62e3a4]
shl esi, 6
add esi, 0x62c700
movzx eax, word [esi]
push eax
lea ecx, [esp + 0x1c]
call fcn.004cce40
add esp, 4
test eax, eax
je 0x408464
mov ecx, dword [0x691ca8]
mov edx, dword [esp + 0x18]
lea eax, [edx + ecx + 4]
mov edx, dword [edi + 8]
push eax
mov eax, dword [esi + 0x2c]
lea ecx, [esp + 0x24]
push ecx
push edx
call eax
mov edx, dword [esp + 0x24]
add esp, 0xc
lea ecx, [esp + 0x2c]
push ecx
push 0
push 1
push edx
mov edx, dword [esp + 0x84]
xor eax, eax
push 0
lea ecx, [eax + 0xf]
call fcn.00440390
mov ebp, eax
add esp, 0x14
test ebp, ebp
mov dword [esp + 0x14], ebp
je 0x40846d
mov eax, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x7c]
lea esi, [esp + 0x18]
call fcn.0048c110
mov ebp, dword [esp + 0x18]
add esp, 4
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
lea edi, [esp + 0x74]
call fcn.004cce70
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret