Function at 0x45f350
Capabilities:
Terminate process

Disassembly:
sub esp, 0x54
fldz
push ebx
fstp dword [esp + 4]
push ebp
fld dword [esp + 0x60]
push esi
fdiv dword [esp + 0x68]
push edi
fdivr qword [0x4a8838]
fadd qword [0x4a8830]
fnstcw word [esp + 0x68]
movzx eax, word [esp + 0x68]
or eax, 0xc00
mov dword [esp + 0x6c], eax
fldcw word [esp + 0x6c]
fistp qword [esp + 0x58]
mov ebp, dword [esp + 0x58]
cmp ebp, 0x14
fldcw word [esp + 0x68]
mov dword [esp + 0x68], ebp
jb 0x45f3a4
mov dword [esp + 0x68], 0x14
mov ecx, 0x4b2148
mov eax, 8
mov edi, edi
fld dword [eax + 0x4b65ac]
add eax, 0x20
fmul qword [ecx - 8]
add ecx, 0x40
cmp eax, 0x808
fstp dword [eax + 0x4b658c]
fld dword [eax + 0x4b6590]
fmul qword [ecx - 0x40]
fstp dword [eax + 0x4b6590]
fld dword [eax + 0x4b6594]
fmul qword [ecx - 0x38]
fstp dword [eax + 0x4b6594]
fld dword [eax + 0x4b6598]
fmul qword [ecx - 0x30]
fstp dword [eax + 0x4b6598]
fld dword [eax + 0x4b659c]
fmul qword [ecx - 0x28]
fstp dword [eax + 0x4b659c]
fld dword [eax + 0x4b65a0]
fmul qword [ecx - 0x20]
fstp dword [eax + 0x4b65a0]
fld dword [eax + 0x4b65a4]
fmul qword [ecx - 0x18]
fstp dword [eax + 0x4b65a4]
fld dword [eax + 0x4b65a8]
fmul qword [ecx - 0x10]
fstp dword [eax + 0x4b65a8]
jb 0x45f3b0
push 0x2000
call fcn.00484fe0
mov esi, eax
add esp, 4
test esi, esi
mov dword [esp + 0x6c], esi
jne 0x45f464
push str._nNot_enough_memory___
call fcn.0048577a
add esp, 4
push 1
call fcn.00484136
push esi
push 0x200
push 0x4b65b4
mov ecx, 0x4b65b0
call fcn.0045f740
mov eax, ebp
shl eax, 4
lea edi, [eax + esi]
lea esi, [esp + 0x14]
mov eax, edi
call fcn.0045fc50
mov eax, dword [esp + 0x14]
test eax, eax
je 0x45f4a3
push eax
sub esp, 8
fstp qword [esp]
call fcn.004855cc
add esp, 0xc
lea esi, [esp + 0x14]
fstp qword [esp + 0x30]
mov eax, edi
call fcn.0045fc50
mov eax, dword [esp + 0x14]
test eax, eax
je 0x45f4c9
push eax
sub esp, 8
fstp qword [esp]
call fcn.004855cc
add esp, 0xc
lea ebx, [edi - 0x10]
fstp qword [esp + 0x28]
lea esi, [esp + 0x14]
mov eax, ebx
call fcn.0045fc50
mov eax, dword [esp + 0x14]
test eax, eax
je 0x45f4f2
push eax
sub esp, 8
fstp qword [esp]
call fcn.004855cc
add esp, 0xc
lea esi, [esp + 0x14]
fstp qword [esp + 0x18]
mov eax, ebx
call fcn.0045fc50
mov eax, dword [esp + 0x14]
test eax, eax
je 0x45f518
push eax
sub esp, 8
fstp qword [esp]
call fcn.004855cc
add esp, 0xc
add edi, 0x10
fstp qword [esp + 0x20]
lea esi, [esp + 0x14]
mov eax, edi
call fcn.0045fc50
mov eax, dword [esp + 0x14]
test eax, eax
je 0x45f541
push eax
sub esp, 8
fstp qword [esp]
call fcn.004855cc
add esp, 0xc
lea esi, [esp + 0x14]
fstp qword [esp + 0x40]
mov eax, edi
call fcn.0045fc50
mov eax, dword [esp + 0x14]
test eax, eax
je 0x45f567
push eax
sub esp, 8
fstp qword [esp]
call fcn.004855cc
add esp, 0xc
mov ebx, dword [esp + 0x6c]
fstp qword [esp + 0x38]
lea ecx, [ebp - 2]
shl ecx, 4
lea edi, [ecx + ebx]
lea esi, [esp + 0x14]
mov eax, edi
call fcn.0045fc50
mov eax, dword [esp + 0x14]
test eax, eax
je 0x45f59a
push eax
sub esp, 8
fstp qword [esp]
call fcn.004855cc
add esp, 0xc
lea esi, [esp + 0x14]
fstp qword [esp + 0x50]
mov eax, edi
call fcn.0045fc50
mov eax, dword [esp + 0x14]
test eax, eax
je 0x45f5c0
push eax
sub esp, 8
fstp qword [esp]
call fcn.004855cc
add esp, 0xc
lea edx, [ebp + 2]
fstp qword [esp + 0x48]
shl edx, 4
lea edi, [edx + ebx]
lea esi, [esp + 0x14]
mov eax, edi
call fcn.0045fc50
mov eax, dword [esp + 0x14]
test eax, eax
je 0x45f5ef
push eax
sub esp, 8
fstp qword [esp]
call fcn.004855cc
add esp, 0xc
lea esi, [esp + 0x14]
fstp qword [esp + 0x58]
mov eax, edi
call fcn.0045fc50
mov eax, dword [esp + 0x14]
test eax, eax
je 0x45f615
push eax
sub esp, 8
fstp qword [esp]
call fcn.004855cc
add esp, 0xc
fld qword [esp + 0x20]
xor edi, edi
fmul qword [esp + 0x18]
fld qword [esp + 0x28]
fmul qword [esp + 0x30]
faddp st(1)
fld qword [esp + 0x38]
fmul qword [esp + 0x40]
faddp st(1)
fld qword [esp + 0x48]
fmul qword [esp + 0x50]
faddp st(1)
fxch st(1)
fmul qword [esp + 0x58]
faddp st(1)
fstp dword [esp + 0x20]
lea esp, [esp]
cmp edi, ebp
je 0x45f6c2
mov eax, dword [esp + 0x68]
mov ecx, ebp
sub ecx, eax
cmp edi, ecx
sbb edx, edx
add eax, ebp
neg edx
cmp eax, edi
sbb eax, eax
neg eax
or edx, eax
je 0x45f6c2
lea esi, [esp + 0x14]
mov eax, ebx
call fcn.0045fc50
mov eax, dword [esp + 0x14]
test eax, eax
je 0x45f690
push eax
sub esp, 8
fstp qword [esp]
call fcn.004855cc
add esp, 0xc
lea esi, [esp + 0x18]
fstp qword [esp + 0x58]
mov eax, ebx
call fcn.0045fc50
mov eax, dword [esp + 0x18]
test eax, eax
je 0x45f6b6
push eax
sub esp, 8
fstp qword [esp]
call fcn.004855cc
add esp, 0xc
fmul qword [esp + 0x58]
fadd dword [esp + 0x10]
fstp dword [esp + 0x10]
add edi, 1
add ebx, 0x10
cmp edi, 0x100
jb 0x45f650
mov ecx, dword [esp + 0x6c]
push ecx
call fcn.00484599
fldz
fst dword [esp + 0x6c]
add esp, 4
fld dword [esp + 0x20]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x45f730
fdivr dword [esp + 0x10]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
call fcn.0049b940
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
call fcn.0049bca0
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fmul qword [0x4a8828]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
pop edi
fstp st(0)
fld dword [esp + 0x64]
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8