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

Disassembly:
sub esp, 0x60
mov eax, dword [0x425fa0]
xor eax, esp
mov dword [esp + 0x5c], eax
fldz
xor eax, eax
fstp dword [esp]
push ebx
push ebp
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x10], edx
mov word [esp + 0xc], ax
mov dword [esp + 0x14], edx
mov word [esp + 0x18], cx
fld dword [0x425cf8]
fld1
push esi
mov esi, dword [esp + 0x70]
fadd st(1), st(0)
mov eax, dword [esi + 4]
fxch st(1)
mov ecx, dword [esi]
add eax, eax
add eax, eax
add eax, eax
push edi
mov edi, ecx
shr edi, 0x1d
or eax, edi
mov ebx, eax
shr ebx, 0x18
mov byte [esp + 0x24], bl
fstp dword [0x425cf8]
fld dword [esp + 0x10]
mov ebx, eax
fsub qword [0x41f5d8]
shr ebx, 0x10
mov ebp, dword [esp + 0x78]
add ecx, ecx
fadd dword [0x425cf8]
add ecx, ecx
add ecx, ecx
fmul dword [0x423690]
fstp dword [0x423690]
fadd dword [esp + 0x10]
mov byte [esp + 0x25], bl
mov ebx, eax
shr ebx, 8
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
mov di, word [0x4230dc]
movsx edi, di
mov byte [esp + 0x27], al
add edi, 0x71e55604
mov dword [esp + 0x10], edi
mov byte [esp + 0x26], bl
mov ebx, 1
fisub dword [esp + 0x10]
fstp dword [esp + 0x10]
mov ax, word [esp + 0x14]
cwde
sub dword [esp + 0x18], eax
add dword [esp + 0x14], ebx
mov eax, dword [esp + 0x18]
add eax, 0x45515ba5
mov dword [esp + 0x14], eax
mov eax, ecx
shr eax, 0x18
fild dword [esp + 0x14]
fmul qword [0x425bf8]
mov byte [esp + 0x28], al
mov eax, ecx
shr eax, 0x10
fstp qword [0x425bf8]
fld dword [0x4246f0]
fadd dword [esp + 0x10]
mov byte [esp + 0x29], al
mov eax, ecx
shr eax, 8
fstp dword [esp + 0x10]
mov byte [esp + 0x2b], cl
mov cx, word [0x424708]
mov byte [esp + 0x2a], al
movsx eax, cx
mov ecx, dword [esp + 0x1c]
sub ecx, eax
add ecx, dword [esp + 0x18]
mov dword [0x425de4], ecx
add dword [esp + 0x1c], ebx
mov eax, dword [0x425570]
mov ecx, dword [esp + 0x1c]
sub eax, ecx
mov ecx, dword [0x425d1c]
add dword [0x425570], ebx
sub eax, ecx
cmp eax, 0x26718922
jg 0x40499b
fld dword [esp + 0x10]
fld dword [0x425cf8]
fsub qword [0x41f5d0]
fsub qword [0x41f5c8]
fsubp st(1)
fstp dword [esp + 0x10]
mov eax, dword [esi]
and eax, 0x3f
mov edi, 0x38
cmp eax, 0x38
jb 0x4049af
mov edi, 0x78
push 0x40
push edx
lea edx, [esp + 0x34]
push edx
sub edi, eax
call fcn.0040b5e0
push edi
lea eax, [esp + 0x3c]
push eax
push esi
mov byte [esp + 0x44], 0x80
call fcn.004045c0
add dword [esp + 0x30], 0xa6c54bc7
push 8
lea ecx, [esp + 0x40]
push ecx
push esi
call fcn.004045c0
fld dword [0x41f5c0]
fld1
lea ecx, [esi + 8]
add esp, 0x24
lea edx, [ebp + 2]
mov esi, 8
mov edi, 0xf1722648
jmp 0x404a03
fxch st(1)
fxch st(1)
fst dword [0x424738]
movzx eax, byte [ecx + 3]
mov byte [edx - 2], al
movzx eax, byte [ecx + 2]
mov byte [edx - 1], al
mov ax, word [0x4246c8]
cwde
fld qword [0x425680]
mov ebp, dword [esp + 0x1c]
add eax, 0xc90d21ca
add ebp, eax
mov dword [esp + 0x14], ebp
fild dword [esp + 0x14]
fsubp st(1)
fstp qword [0x425680]
mov eax, dword [ecx]
shr eax, 8
mov byte [edx], al
movzx eax, byte [ecx]
mov byte [edx + 1], al
fld dword [0x425db0]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fucompp
fnstsw ax
fld dword [0x425db0]
fadd st(2)
fstp dword [0x425db0]
test ah, 0x44
jnp 0x404a7d
mov dword [esp + 0x1c], edi
jmp 0x404aaf
mov eax, dword [0x425c3c]
add eax, 0x6fb818f3
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fadd qword [0x425ce8]
fstp dword [0x425c2c]
fld qword [0x425ce8]
fsub st(2)
fstp qword [0x425ce8]
add dword [0x425c3c], ebx
add ecx, 4
add edx, 4
sub esi, ebx
jne 0x404a01
mov ecx, dword [esp + 0x6c]
fstp st(1)
pop edi
fstp st(0)
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0040b65a
add esp, 0x60
ret