Function at 0x409e18
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x45f8e7
mov eax, dword fs:[0]
push eax
sub esp, 0x440
mov eax, dword [0x484084]
xor eax, esp
mov dword [esp + 0x438], eax
push edi
mov eax, dword [0x484084]
xor eax, esp
push eax
lea eax, [esp + 0x448]
mov dword fs:[0], eax
fld qword [0x47ecd0]
fstp qword [esp + 0xc]
fld qword [0x47ede0]
fstp qword [esp + 0x1c]
fld qword [0x47edd8]
fst qword [esp + 0x14]
fld qword [0x47edd0]
fstp qword [esp + 0x24]
fld qword [esp + 0x24]
fsub qword [0x47edf0]
fsub qword [esp + 0xc]
fstp qword [esp + 0x1c]
fld qword [esp + 0x14]
fmul qword [esp + 0xc]
fstp qword [esp + 0xc]
fld qword [esp + 0x14]
fld qword [esp + 0xc]
fmul qword [0x47edc8]
fsubp st(1)
fsub qword [esp + 0x14]
fsub qword [esp + 0xc]
fld qword [esp + 0x14]
fmul qword [0x47edc0]
fsubp st(1)
fadd qword [esp + 0x14]
fstp qword [esp + 0x24]
fld qword [esp + 0xc]
fadd qword [0x47edb8]
fsub qword [esp + 0x14]
fadd qword [esp + 0xc]
fsub qword [esp + 0x24]
fld qword [esp + 0x24]
fmulp st(2)
fsubrp st(1)
fld qword [esp + 0x1c]
fmul qword [0x47edb0]
faddp st(1)
fadd qword [esp + 0xc]
fld qword [esp + 0x1c]
fld qword [0x47eda8]
fmul st(1), st(0)
fld qword [esp + 0xc]
fmulp st(2)
fxch st(2)
faddp st(1)
fstp qword [esp + 0x1c]
fld qword [esp + 0x14]
fadd qword [esp + 0x1c]
fstp qword [esp + 0x24]
fld qword [esp + 0x14]
fld qword [esp + 0xc]
fucompp
fnstsw ax
test ah, 0x44
jp 0x409fba
fld qword [esp + 0x24]
fadd qword [0x47eda0]
fsub qword [esp + 0x14]
faddp st(1)
fsub qword [esp + 0x14]
fsub qword [0x47ed98]
fld qword [esp + 0x1c]
fmul qword [esp + 0xc]
faddp st(1)
fstp qword [esp + 0x1c]
fld qword [esp + 0xc]
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x409fbc
fld qword [esp + 0x24]
fmul qword [esp + 0x1c]
fsub qword [0x47ed90]
fadd qword [esp + 0x24]
fld qword [esp + 0x14]
fmul qword [0x47ed88]
fmul qword [0x47ed80]
fsubp st(1)
fadd qword [esp + 0x14]
fadd qword [0x47ed78]
fadd qword [esp + 0xc]
fsub qword [esp + 0x1c]
fadd qword [0x47ed70]
fadd qword [esp + 0x1c]
fld qword [esp + 0x1c]
fmul qword [0x47ed68]
fsubp st(1)
fstp qword [esp + 0x24]
jmp 0x409fbc
fstp st(0)
push 0x400
lea eax, [esp + 0x40]
push 0
push eax
call fcn.00413e50
lea eax, [ebp + 0xc]
push eax
push dword [ebp + 8]
lea eax, [esp + 0x50]
push 0x3ff
push eax
call fcn.004146cb
fld qword [0x47ece8]
fstp qword [esp + 0x40]
lea eax, [esp + 0x58]
fld qword [0x47ece0]
add esp, 0x1c
fstp qword [esp + 0x1c]
lea ecx, [esp + 0x30]
fld qword [esp + 0x1c]
fadd qword [esp + 0x24]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
fsub qword [esp + 0x1c]
fld qword [esp + 0x1c]
fld qword [0x47ecd8]
fdiv st(1), st(0)
fxch st(2)
faddp st(1)
fstp qword [esp + 0x24]
fld qword [esp + 0x1c]
fmul qword [esp + 0x24]
fsub qword [0x47ecd0]
fld qword [esp + 0x1c]
fmulp st(2)
fsubrp st(1)
fsub qword [esp + 0x24]
fstp qword [esp + 0x24]
fld qword [esp + 0x1c]
fadd qword [esp + 0x1c]
fsub qword [0x47ecc8]
fstp qword [esp + 0x24]
fld qword [esp + 0x24]
mov dword [esp + 0x2c], eax
fmul qword [0x47ecc0]
lea eax, [esp + 0x2c]
push eax
mov byte [esp + 0x43f], 0
fstp qword [esp + 0x20]
call fcn.00411e1a
and dword [esp + 0x450], 0
push eax
mov ecx, esi
call fcn.00411e41
or dword [esp + 0x450], 0xffffffff
lea ecx, [esp + 0x30]
call fcn.00411e76
mov dword [esp + 0xc], 0x46
mov dword [esp + 0x14], 0x37
mov eax, dword [esp + 0x14]
push 0xfffffffffffffffb
pop ecx
sub ecx, eax
add ecx, dword [esp + 0xc]
push 0x19
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
imul ecx, eax
mov eax, dword [esp + 0x10]
cdq
pop edi
idiv edi
add ecx, eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0xc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
imul eax, eax, 0x12
mov ecx, dword [esp + 0xc]
sub eax, ecx
mov ecx, dword [esp + 0xc]
shl eax, 2
sub eax, ecx
add eax, dword [esp + 0x14]
push 0xfffffffffffffff4
add eax, dword [esp + 0x10]
pop edi
add eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc]
imul eax, eax, 9
add eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
imul ecx, eax
mov eax, dword [esp + 0x14]
cdq
idiv edi
sub eax, ecx
mov ecx, dword [esp + 0xc]
sub eax, ecx
mov ecx, dword [esp + 0xc]
sub eax, ecx
mov ecx, dword [esp + 0xc]
sub eax, ecx
mov ecx, dword [esp + 0xc]
sub eax, ecx
mov ecx, dword [esp + 0x14]
sub eax, ecx
mov ecx, dword [esp + 0x14]
lea eax, [eax + ecx + 7]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
sub eax, ecx
add eax, dword [esp + 0xc]
add eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
sub eax, ecx
mov dword [esp + 0x14], eax
mov eax, esi
mov ecx, dword [esp + 0x448]
mov dword fs:[0], ecx
pop ecx
pop edi
mov ecx, dword [esp + 0x438]
xor ecx, esp
call fcn.00411d83
mov esp, ebp
pop ebp
ret