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

Disassembly:
sub esp, 0x64
mov eax, dword [0x4395c0]
xor eax, esp
mov dword [esp + 0x60], eax
push ebx
push ebp
push esi
push edi
fldz
fst dword [esp + 0x10]
mov dword [esp + 0x18], 0
fst dword [esp + 0x24]
mov esi, dword [esp + 0x78]
mov ebx, dword [esi + 4]
xor eax, eax
mov word [esp + 0x20], ax
fstp dword [esp + 0x20]
mov eax, dword [esi]
fld dword [esp + 0x10]
fld1
add ebx, ebx
mov ebp, dword [esp + 0x7c]
fadd st(1), st(0)
add ebx, ebx
fxch st(1)
mov ecx, eax
shr ecx, 0x1d
add ebx, ebx
or ebx, ecx
mov edx, ebx
shr edx, 0x18
mov byte [esp + 0x28], dl
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
lea ecx, [eax*8]
fld dword [0x437904]
fsubr qword [0x41f3e0]
mov dword [esp + 0x14], ecx
fcompp
fnstsw ax
test ah, 0x41
jne 0x403703
inc word [0x43789c]
fld dword [0x437524]
mov ax, word [0x43789c]
fadd qword [0x41f3d8]
mov edx, dword [esp + 0x18]
movsx ecx, ax
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
mov dword [esp + 0x1c], edx
faddp st(1)
fild dword [esp + 0x1c]
faddp st(1)
call fcn.0040b2f0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
fadd dword [0x437524]
fstp dword [0x437524]
jmp 0x403705
fstp st(0)
mov eax, ebx
shr eax, 0x10
mov byte [esp + 0x29], al
mov edx, ebx
shr edx, 8
mov byte [esp + 0x2a], dl
mov eax, ecx
shr eax, 0x18
mov byte [esp + 0x2c], al
mov edx, ecx
shr edx, 0x10
mov byte [esp + 0x2d], dl
mov byte [esp + 0x2f], cl
mov eax, ecx
mov ecx, dword [0x4376dc]
shr eax, 8
mov byte [esp + 0x2e], al
mov edx, 0xc3081301
sub edx, ecx
mov byte [esp + 0x2b], bl
mov dword [0x4375e8], edx
dec dword [0x4376dc]
mov eax, dword [esi]
and eax, 0x3f
mov edi, 0x38
cmp eax, 0x38
jb 0x403767
mov edi, 0x78
push 0x40
sub edi, eax
lea eax, [esp + 0x34]
push 0
push eax
call fcn.0040b8d0
fld dword [0x4374f8]
fadd qword [0x41f3d0]
push edi
lea ecx, [esp + 0x40]
push ecx
fstp dword [0x4374f8]
push esi
mov byte [esp + 0x48], 0x80
call fcn.00402bd0
push 8
lea edx, [esp + 0x44]
push edx
push esi
call fcn.00402bd0
mov eax, dword [0x437918]
mov ecx, dword [esp + 0x3c]
sub eax, 0x235209ac
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
mov dword [esp + 0x38], ecx
fild dword [esp + 0x38]
mov edi, 1
add esp, 0x24
fsub qword [0x4375a8]
fsub dword [esp + 0x10]
add dword [esp + 0x18], edi
fcompp
fnstsw ax
test ah, 5
jp 0x4037f4
fld dword [0x4378c4]
fsub dword [esp + 0x24]
fstp dword [0x4378c4]
fld qword [0x41f3c8]
lea ecx, [esi + 8]
fld qword [0x41f3c0]
lea edx, [ebp + 2]
mov esi, 8
mov al, byte [ecx + 3]
mov byte [edx - 2], al
fld qword [0x4373a0]
fld dword [0x4374b0]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x403838
fld qword [0x437550]
fsub st(2)
fadd st(1)
fmul dword [esp + 0x20]
fstp dword [esp + 0x20]
movzx eax, byte [ecx + 2]
mov byte [edx - 1], al
mov eax, dword [ecx]
shr eax, 8
mov byte [edx], al
movzx eax, byte [ecx]
mov byte [edx + 1], al
add ecx, 4
add edx, 4
sub esi, edi
jne 0x40380b
fstp st(1)
fstp st(0)
fld qword [0x437658]
fld1
fsub st(1), st(0)
fxch st(1)
fstp qword [0x437658]
fld qword [0x437658]
fadd dword [esp + 0x10]
fcomp qword [0x41f3b8]
fnstsw ax
fadd dword [esp + 0x10]
fstp dword [esp + 0x10]
test ah, 0x44
jnp 0x4038ba
add word [0x4378a8], di
mov cx, word [0x4378a8]
movsx edx, cx
cmp edx, 0xb1ee71c7
jle 0x4038ba
mov eax, dword [0x4376f4]
add eax, dword [0x437848]
mov dword [0x437848], eax
add dword [0x4376f4], edi
mov ecx, dword [esp + 0x70]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0040b542
add esp, 0x64
ret