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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5ac4d8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x58
push ebx
push esi
push edi
lea eax, [esp + 0x24]
mov esi, ecx
mov ecx, dword [ebp + 0xc]
push eax
call fcn.0040c800
lea ecx, [esp + 0x24]
push ecx
mov ecx, esi
call fcn.004069a0
fstp dword [esp + 0x10]
lea ecx, [esp + 0x30]
call fcn.00431bc0
mov dword [esp + 0x34], eax
mov byte [eax + 0x15], 1
mov eax, dword [esp + 0x34]
mov dword [eax + 4], eax
mov eax, dword [esp + 0x34]
mov dword [eax], eax
mov eax, dword [esp + 0x34]
mov dword [eax + 8], eax
xor eax, eax
mov dword [esp + 0x38], eax
mov ebx, dword [0x621de0]
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0x6c], eax
mov eax, dword [ecx]
cmp eax, ecx
mov dword [esp + 0x14], eax
je 0x407d25
jmp 0x407c10
mov edi, dword [eax + 0x10]
cmp edi, esi
je 0x407d0d
push edi
mov ecx, esi
call fcn.004034f0
test al, al
je 0x407d0d
mov edx, dword [ebp + 8]
push edx
lea eax, [edi + 0x1dc]
push eax
lea ecx, [esi + 0x1dc]
call fcn.00481ca0
test eax, eax
je 0x407d0d
lea ecx, [esp + 0x3c]
push ecx
mov ecx, edi
call fcn.0040c800
lea edx, [esp + 0x3c]
push edx
mov ecx, esi
call fcn.00406dd0
fcomp dword [0x5bba50]
fnstsw ax
test ah, 5
jp 0x407c8c
lea eax, [esp + 0x48]
push eax
mov ecx, edi
call fcn.0040c800
lea ecx, [esp + 0x48]
push ecx
mov ecx, esi
call fcn.00406dd0
fstp dword [esp + 0xc]
jmp 0x407c94
mov dword [esp + 0xc], 0x447a0000
lea edx, [esp + 0x54]
push edx
mov ecx, edi
call fcn.0040c800
lea eax, [esp + 0x54]
push eax
mov ecx, esi
call fcn.004069a0
fld dword [esp + 0xc]
fmul dword [0x5bba58]
fsubr dword [0x5bba54]
fadd dword [0x5bba54]
fld dword [esp + 0x10]
fsub st(1)
fxch st(1)
fadd dword [esp + 0x10]
fstp dword [esp + 0x18]
fld st(1)
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 1
jne 0x407d0b
fcomp dword [esp + 0x18]
fnstsw ax
test ah, 0x41
jp 0x407d0d
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x28]
mov dword [esp + 0x20], ecx
push eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x28], edi
call fcn.004077c0
jmp 0x407d0d
fstp st(0)
lea ecx, [esp + 0x14]
call fcn.00498000
mov ecx, dword [ebx + 0x20]
mov eax, dword [esp + 0x14]
cmp eax, ecx
jne 0x407c10
mov eax, dword [esp + 0x34]
mov esi, dword [eax]
cmp esi, eax
mov edi, dword [ebp + 0x10]
je 0x407dcf
mov ecx, dword [edi + 4]
test ecx, ecx
lea ebx, [esi + 0x10]
jne 0x407d44
xor edx, edx
jmp 0x407d4c
mov edx, dword [edi + 8]
sub edx, ecx
sar edx, 2
test ecx, ecx
je 0x407d6b
mov eax, dword [edi + 0xc]
sub eax, ecx
sar eax, 2
cmp edx, eax
jae 0x407d6b
mov eax, dword [edi + 8]
mov ecx, dword [ebx]
mov dword [eax], ecx
add eax, 4
mov dword [edi + 8], eax
jmp 0x407d79
mov eax, dword [edi + 8]
push ebx
push 1
push eax
mov ecx, edi
call fcn.00405490
mov al, byte [esi + 0x15]
test al, al
jne 0x407dc3
mov eax, dword [esi + 8]
mov cl, byte [eax + 0x15]
test cl, cl
jne 0x407da2
mov esi, eax
mov eax, dword [esi]
mov cl, byte [eax + 0x15]
test cl, cl
jne 0x407dc3
mov esi, eax
mov eax, dword [esi]
mov cl, byte [eax + 0x15]
test cl, cl
je 0x407d95
jmp 0x407dc3
mov eax, dword [esi + 4]
mov cl, byte [eax + 0x15]
test cl, cl
jne 0x407dc1
lea esp, [esp]
cmp esi, dword [eax + 8]
jne 0x407dc1
mov esi, eax
mov eax, dword [eax + 4]
mov cl, byte [eax + 0x15]
test cl, cl
je 0x407db0
mov esi, eax
mov eax, dword [esp + 0x34]
cmp esi, eax
jne 0x407d36
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x407de2
mov edi, dword [edi + 8]
sub edi, ecx
sar edi, 2
test edi, edi
jne 0x407e1f
mov ecx, dword [eax]
push eax
push ecx
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x3c]
mov dword [esp + 0x78], 0xffffffff
call fcn.00407830
mov eax, dword [esp + 0x34]
push eax
call fcn.0057ad56
add esp, 4
xor al, al
mov ecx, dword [esp + 0x64]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [eax]
push eax
push ecx
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x3c]
mov dword [esp + 0x78], 0xffffffff
call fcn.00407830
mov edx, dword [esp + 0x34]
push edx
call fcn.0057ad56
mov ecx, dword [esp + 0x68]
add esp, 4
pop edi
pop esi
mov al, 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc