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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x100
call fcn.004a4390
test al, al
fldz
jne 0x53fc72
add esp, 0x100
fstp st(0)
pop ebp
pop edi
pop esi
pop ebx
ret
fld dword [0x9b5f4c]
fsin
fnstsw ax
mov byte [0xa10b25], 0
test eax, 0x400
je 0x53fc91
call fcn.00642920
fsin
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fst st(1)
fstp dword [esp + 0x58]
fld dword [0x9b5f4c]
fcos
fnstsw ax
test eax, 0x400
je 0x53fcb7
call fcn.00642920
fcos
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fst st(1)
fstp dword [esp + 0x5c]
push 0
push 8
fstp st(0)
call fcn.00649ba0
pop ecx
pop ecx
push 0
push 6
call fcn.00649ba0
pop ecx
pop ecx
push 1
push 0xc
call fcn.00649ba0
pop ecx
pop ecx
push 2
push 0xa
call fcn.00649ba0
pop ecx
pop ecx
push 2
push 0xb
call fcn.00649ba0
pop ecx
pop ecx
call fcn.00577770
mov ax, word [0xa10a3c]
and eax, 0xffff
mov dword [esp + 0x60], eax
movzx eax, byte [0xa10b6b]
fldz
fild dword [esp + 0x60]
movzx ebx, ax
movzx eax, byte [0xa10b92]
fmul dword [0x695480]
imul ebx, ebx, 0x3c
add ebx, eax
mov dword [esp + 0x60], ebx
fiadd dword [esp + 0x60]
fsub dword [0x695484]
fst st(1)
fcomp dword [0x695468]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x53fd56
fchs
fld st(0)
fnstcw word [esp + 0x34]
mov eax, dword [esp + 0x34]
or byte [esp + 0x35], 0xc
fldcw word [esp + 0x34]
mov dword [esp + 0x34], eax
fistp dword [esp + 0x60]
fldcw word [esp + 0x34]
mov eax, dword [esp + 0x60]
cmp eax, 0xb4
jge 0x53ff03
fld dword [0x974be8]
mov ebx, 0xb4
fcomp dword [0x94ddc0]
sub ebx, eax
fnstsw ax
test ah, 0x45
jne 0x53fda6
fld dword [0x974be8]
jmp 0x53fdac
fld dword [0x94ddc0]
fstp st(1)
fld dword [0x695478]
mov dword [esp + 0x60], ebx
mov dword [esp + 0xd0], 0
fsub st(1)
fimul dword [esp + 0x60]
lea esi, [esp + 0xd0]
lea edi, [esp + 0x7c]
fnstcw word [esp + 0x34]
mov eax, dword [esp + 0x34]
or byte [esp + 0x35], 0xc
mov dword [esp + 0xd8], 0x41700000
mov dword [esp + 0xd4], 0xc2c80000
fldcw word [esp + 0x34]
mov dword [esp + 0x34], eax
mov eax, 0x7e46b8
fistp qword [esp + 0x60]
mov ebx, dword [esp + 0x60]
fldcw word [esp + 0x34]
movsd dword es:[edi], dword [esi]
push 0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [esp + 0x80]
fadd dword [eax]
lea esi, [esp + 0x7c]
lea ebp, [esp + 0x6c]
push esi
fstp dword [esp + 0x84]
fld dword [esp + 0x88]
fadd dword [eax + 4]
fstp dword [esp + 0x88]
fld dword [esp + 0x8c]
fadd dword [eax + 8]
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x88]
push ebp
push eax
fstp dword [esp + 0x98]
fstp st(0)
call fcn.005778b0
add esp, 0x14
test al, al
je 0x540e60
fld dword [0x695478]
fdiv dword [esp + 0x70]
mov edi, dword [0x695540]
fstp dword [esp + 0x38]
mov eax, dword [edi]
push eax
push 1
call fcn.00649ba0
mov al, bl
pop ecx
pop ecx
mov cl, bl
push 0xff
push dword [esp + 0x3c]
push 0xff
push ecx
push eax
mov eax, dword [0x695680]
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], eax
push ebx
fldz
fild qword [esp + 0x78]
push eax
fmul dword [0x695488]
fadd dword [0x695464]
fst st(1)
fmul dword [esp + 0x94]
fstp dword [esp]
fld st(0)
fmul dword [esp + 0x90]
push eax
fstp dword [esp]
push dword [esp + 0x90]
push dword [esp + 0x90]
push dword [esp + 0x90]
fstp st(0)
call fcn.00576fe0
add esp, 0x2c
fldz
cmp byte [0xa10b6b], 0x16
jae 0x53ff20
cmp byte [0xa10b6b], 5
jbe 0x53ff20
mov dword [esp + 0x18], 0
jmp 0x53ff81
cmp byte [0xa10b6b], 0x16
ja 0x53ff32
cmp byte [0xa10b6b], 5
jae 0x53ff40
mov dword [esp + 0x18], 0xff
jmp 0x53ff81
cmp byte [0xa10b6b], 0x16
jne 0x53ff52
movzx edx, byte [0xa10b92]
jmp 0x53ff60
movzx eax, byte [0xa10b92]
mov edx, 0x3c
sub edx, eax
imul edx, edx, 0xff
mov eax, 0x88888889
mov dword [esp + 0x18], edx
imul edx
add edx, dword [esp + 0x18]
shr dword [esp + 0x18], 0x1f
sar edx, 5
add dword [esp + 0x18], edx
cmp dword [esp + 0x18], 0
je 0x54033f
fld dword [0x974be8]
fcomp dword [0x94ddc0]
fnstsw ax
test ah, 0x45
jne 0x53ffa7
fld dword [0x974be8]
jmp 0x53ffad
fld dword [0x94ddc0]
fstp st(1)
mov eax, dword [esp + 0x18]
mov edx, dword [0x695538]
fld dword [0x695478]
mov dword [esp + 0x60], eax
fsub st(1)
fimul dword [esp + 0x60]
fnstcw word [esp + 0x34]
mov eax, dword [esp + 0x34]
or byte [esp + 0x35], 0xc
fldcw word [esp + 0x34]
mov dword [esp + 0x34], eax
fistp qword [esp + 0x60]
fldcw word [esp + 0x34]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x18], eax
mov eax, dword [edx]
push eax
push 1
fstp st(0)
call fcn.00649ba0
xor ebx, ebx
pop ecx
pop ecx
mov eax, eax
lea edi, [esp + 0x88]
mov dword [esp + 0xdc], 0x42c80000
lea esi, [esp + 0xdc]
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0x41200000
cmp ebx, 9
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jl 0x540047
fld dword [esp + 0x88]
fchs
fstp dword [esp + 0x88]
fld dword [esp + 0x88]
mov dword [esp + 0x20], 0x7e46b8
mov eax, dword [esp + 0x20]
fadd dword [eax]
mov edx, ebx
mov esi, ebx
mov ecx, edx
lea edi, [esp + 0x78]
fstp dword [esp + 0x88]
fld dword [esp + 0x8c]
fadd dword [eax + 4]
shr ecx, 0x1f
lea ebp, [esp + 0x68]
push 0
fstp dword [esp + 0x90]
fld dword [esp + 0x94]
fadd dword [eax + 8]
mov eax, 0x38e38e39
push edi
imul edx
fstp dword [esp + 0x98]
fld dword [0x69548c]
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x94]
push ebp
push eax
sar edx, 1
add ecx, edx
imul ecx, ecx, 9
sub esi, ecx
fmul dword [esi*4 + 0x6953f4]
fsubr dword [esp + 0xa0]
fstp dword [esp + 0xa0]
fld dword [0x695490]
fmul dword [esi*4 + 0x695418]
fadd dword [esp + 0xa4]
fstp dword [esp + 0xa4]
call fcn.005778b0
add esp, 0x14
test al, al
je 0x5401b6
fld dword [0x695478]
fdiv dword [esp + 0x70]
fstp dword [esp + 0x3c]
call fcn.006499f0
movzx eax, ax
fldz
push 0xff
and eax, 0x1f
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x1c]
fild dword [esp + 0x64]
mov dword [esp + 0x64], eax
push dword [esp + 0x40]
fmul dword [0x695494]
push 0xff
fsubr dword [0x695478]
fimul dword [esp + 0x6c]
fnstcw word [esp + 0x40]
mov eax, dword [esp + 0x40]
or byte [esp + 0x41], 0xc
fldcw word [esp + 0x40]
mov dword [esp + 0x40], eax
fistp dword [esp + 0x6c]
fldcw word [esp + 0x40]
fld dword [0x695498]
fmul dword [esi*4 + 0x69543c]
mov eax, dword [esp + 0x6c]
mov dl, al
mov cl, al
fstp st(1)
fld dword [esp + 0x84]
push ecx
push edx
push eax
push eax
fmul st(1)
fstp dword [esp]
fld dword [esp + 0x90]
push eax
fmul st(1)
fstp dword [esp]
push dword [esp + 0x90]
push dword [esp + 0x90]
push dword [esp + 0x90]
fstp st(0)
call fcn.00577350
add esp, 0x2c
inc ebx
cmp ebx, 0xb
jl 0x540000
call fcn.00577790
mov ecx, dword [0x695538]
mov eax, dword [ecx]
push eax
push 1
call fcn.00649ba0
lea edi, [esp + 0x9c]
pop ecx
mov dword [esp + 0xec], 0x42c80000
pop ecx
lea esi, [esp + 0xe8]
mov dword [esp + 0xec], 0x80000000
mov dword [esp + 0xf0], 0x41200000
movsd dword es:[edi], dword [esi]
push 0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x24]
lea edi, [esp + 0x7c]
fld dword [esp + 0x98]
fadd dword [eax]
mov eax, dword [esp + 0x24]
push edi
lea edx, [esp + 0x70]
fstp dword [esp + 0x9c]
fld dword [esp + 0xa0]
fadd dword [eax + 4]
mov eax, dword [esp + 0x28]
fstp dword [esp + 0xa0]
fld dword [esp + 0xa4]
fadd dword [eax + 8]
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0xa0]
fstp dword [esp + 0xa8]
fld dword [esp + 0xa4]
fsub dword [0x69548c]
push edx
push eax
fstp dword [esp + 0xac]
call fcn.005778b0
add esp, 0x14
test al, al
je 0x540e67
fld dword [0x695478]
fdiv dword [esp + 0x70]
fstp dword [esp + 0x40]
call fcn.006499f0
movzx eax, ax
push 0xff
push dword [esp + 0x44]
and eax, 0x7f
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x20]
fild dword [esp + 0x68]
mov dword [esp + 0x68], eax
push 0xff
fmul dword [0x69549c]
fadd dword [0x69547c]
fimul dword [esp + 0x6c]
fnstcw word [esp + 0x40]
mov eax, dword [esp + 0x40]
or byte [esp + 0x41], 0xc
fldcw word [esp + 0x40]
mov dword [esp + 0x40], eax
fistp qword [esp + 0x6c]
fldcw word [esp + 0x40]
fld dword [0x6954a0]
fmul dword [esp + 0x84]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x24], eax
mov cl, byte [esp + 0x24]
mov al, byte [esp + 0x24]
push ecx
push eax
push dword [esp + 0x2c]
push eax
fstp dword [esp]
fld dword [0x6954a0]
fmul dword [esp + 0x90]
push eax
fstp dword [esp]
push dword [esp + 0x90]
push dword [esp + 0x90]
push dword [esp + 0x90]
call fcn.00576fe0
add esp, 0x2c
fldz
fld dword [0x94ddc0]
fcomp dword [0x974be8]
fnstsw ax
test ah, 0x45
jne 0x540360
fld dword [0x94ddc0]
jmp 0x540366
fld dword [0x974be8]
fstp st(1)
fld dword [0x94dd84]
fcomp st(1)
fnstsw ax
test ah, 0x45
jne 0x540381
fld dword [0x94dd84]
fstp st(1)
jmp 0x5403a8
fld dword [0x94ddc0]
fcomp dword [0x974be8]
fnstsw ax
test ah, 0x45
jne 0x5403a0
fld dword [0x94ddc0]
jmp 0x5403a6
fld dword [0x974be8]
fstp st(1)
fld dword [0x695478]
fsub st(1)
fstp st(1)
fild dword [0xa106a0]
fmul st(1)
fnstcw word [esp + 0x34]
mov eax, dword [esp + 0x34]
or byte [esp + 0x35], 0xc
fldcw word [esp + 0x34]
mov dword [esp + 0x34], eax
fistp dword [esp + 0x60]
fldcw word [esp + 0x34]
fild dword [0xa10694]
mov ebx, dword [esp + 0x60]
fmul st(1)
fnstcw word [esp + 0x34]
mov eax, dword [esp + 0x34]
or byte [esp + 0x35], 0xc
fldcw word [esp + 0x34]
mov dword [esp + 0x34], eax
fistp dword [esp + 0x60]
fldcw word [esp + 0x34]
fild dword [0xa1092c]
mov eax, dword [esp + 0x60]
mov dword [esp], eax
fmul st(1)
fnstcw word [esp + 0x34]
mov eax, dword [esp + 0x34]
or byte [esp + 0x35], 0xc
fldcw word [esp + 0x34]
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], 0
fistp dword [esp + 0x60]
fldcw word [esp + 0x34]
mov eax, dword [esp + 0x60]
mov dword [esp + 0xc], eax
lea eax, [eax]
mov eax, dword [esp + 0x14]
mov esi, dword [eax*4 + 0xa0d22c]
mov eax, dword [esi]
push eax
fstp st(0)
push 1
call fcn.00649ba0
mov ebp, dword [esp + 0x1c]
pop ecx
cmp ebp, 0xc
pop ecx
jge 0x540569
mov esi, 0x7e46b8
lea edi, [esp + 0xa0]
movsd dword es:[edi], dword [esi]
push 0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [0x6954a4]
fmul dword [ebp*4 + 0x6951a8]
lea eax, [esp + 0x78]
lea edi, [esp + 0x7c]
lea edx, [esp + 0x6c]
push edi
fadd dword [esp + 0xa8]
push eax
push edx
fstp dword [esp + 0xb0]
fld dword [0x6954a4]
fmul dword [ebp*4 + 0x6951d8]
lea eax, [esp + 0xb0]
push eax
fadd dword [esp + 0xb8]
fstp dword [esp + 0xb8]
fld dword [0x6954a8]
fmul dword [ebp*4 + 0x695208]
fadd dword [0x6954ac]
fstp dword [esp + 0xbc]
call fcn.005778b0
add esp, 0x14
test al, al
fldz
je 0x540e70
fld dword [esp + 0x70]
fstp st(1)
fld dword [0x695478]
fdiv st(1)
push 0xff
push dword [0x978d30]
push eax
fstp dword [esp]
fld dword [0x6954ac]
fmul dword [esp + 0x84]
mov al, byte [esp + 0x18]
mov cl, byte [esp + 0xc]
push 0xff
push eax
mov al, bl
push ecx
push eax
push eax
fstp dword [esp]
fld dword [0x6954b0]
fmul dword [esp + 0x94]
push eax
fstp dword [esp]
push eax
fst dword [esp]
push dword [esp + 0x94]
push dword [esp + 0x94]
fstp st(0)
call fcn.005761f0
add esp, 0x30
add ebp, 3
cmp ebp, 0xc
jl 0x540466
call fcn.00577790
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
fldz
jl 0x540440
fld dword [0x94ddc0]
fcomp dword [0x94dd84]
fnstsw ax
test ah, 0x45
jne 0x5405a0
fld dword [0x94ddc0]
jmp 0x5405a6
fld dword [0x94dd84]
fstp st(1)
fld dword [0x6954b4]
fmul st(1)
fsubr dword [0x6954b4]
fnstcw word [esp + 0x34]
mov eax, dword [esp + 0x34]
or byte [esp + 0x35], 0xc
fldcw word [esp + 0x34]
mov dword [esp + 0x34], eax
fistp dword [esp + 0x60]
fldcw word [esp + 0x34]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x30], eax
cmp byte [esp + 0x30], 0
je 0x540e80
push 5
push 0xa
fstp st(0)
call fcn.00649ba0
pop ecx
pop ecx
push 6
push 0xb
call fcn.00649ba0
mov esi, dword [0xa0d23c]
pop ecx
mov eax, dword [esi]
pop ecx
push eax
push 1
call fcn.00649ba0
xor ebx, ebx
pop ecx
pop ecx
mov dword [esp + 0x2c], 0x7e46b8
mov eax, dword [esp + 0x2c]
lea esi, [eax]
lea edi, [esp + 0xac]
movsd dword es:[edi], dword [esi]
fldz
fldz
push 0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [0x695488]
fmul dword [ebx*4 + 0x6952cc]
lea eax, [esp + 0x78]
lea edi, [esp + 0x7c]
lea edx, [esp + 0x6c]
push edi
fstp st(2)
fld dword [0x695488]
fmul dword [ebx*4 + 0x695238]
push eax
push edx
fstp st(1)
fld dword [esp + 0x68]
fmul st(2)
fld dword [esp + 0x6c]
fmul st(2)
faddp st(1)
fadd dword [esp + 0xbc]
fstp dword [esp + 0xbc]
fld dword [esp + 0x6c]
fmul st(2)
fld dword [esp + 0x68]
fmul st(2)
fsubrp st(1)
fadd dword [esp + 0xc0]
lea eax, [esp + 0xbc]
push eax
fstp dword [esp + 0xc4]
fld dword [0x6954ac]
fmul dword [ebx*4 + 0x695360]
fadd dword [0x6954ac]
fstp dword [esp + 0xc8]
fcompp
call fcn.005778b0
add esp, 0x14
test al, al
fldz
fldz
fldz
fldz
je 0x540a34
fld dword [esp + 0x68]
fsub dword [0x9b48cc]
mov al, byte [0x97880c]
mov cl, byte [0x980034]
mov byte [esp + 0x24], al
mov al, byte [0x9b5f28]
fstp dword [esp + 0x48]
fld dword [esp + 0x6c]
fsub dword [0x9b48c8]
mov byte [esp + 0x1c], al
mov al, byte [0xa0d8a0]
mov byte [esp + 0x10], al
mov al, byte [0x97857c]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fmul st(0)
fld dword [esp + 0x48]
fmul st(0)
faddp st(1)
fsqrt
mov byte [esp + 8], al
mov al, byte [0x975090]
mov byte [esp + 4], al
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fstp st(4)
mov esi, dword [0x9b48e4]
mov eax, esi
fld st(3)
fstp dword [esp + 0x50]
lea eax, [eax + eax*2]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov ebp, eax
mov dword [esp + 0x60], ebp
fild dword [esp + 0x60]
fcomp st(4)
fnstsw ax
test ah, 0x45
jne 0x540970
mov dword [esp + 0x60], ebp
fild dword [esp + 0x60]
fdivr st(4)
fsubr dword [0x695478]
fstp dword [esp + 0x44]
fld dword [0x974be8]
fcomp dword [0x94ddc0]
fnstsw ax
test ah, 0x45
jne 0x5407a0
fld dword [0x974be8]
jmp 0x5407a6
fld dword [0x94ddc0]
fstp st(3)
fld dword [0x695478]
fsub st(3)
fmul dword [esp + 0x44]
and dword [esp + 0x24], 0xff
mov eax, dword [esp + 0x24]
mov dword [esp + 0x60], eax
and dword [esp + 0x1c], 0xff
fstp dword [esp + 0x44]
fld dword [0x695478]
fsub dword [esp + 0x44]
and dword [esp + 0x10], 0xff
and dword [esp + 8], 0xff
and dword [esp + 4], 0xff
and ecx, 0xff
fstp st(3)
fild dword [esp + 0x60]
mov edx, esi
shr esi, 0x1f
fmul st(3)
fld dword [0x6954b8]
fmul dword [esp + 0x44]
fstp st(2)
fadd st(1)
fnstcw word [esp + 0x34]
mov eax, dword [esp + 0x34]
or byte [esp + 0x35], 0xc
fldcw word [esp + 0x34]
mov dword [esp + 0x34], eax
fistp dword [esp + 0x60]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x60], eax
fldcw word [esp + 0x34]
fild dword [esp + 0x60]
fmul st(3)
fld dword [0x6954bc]
fmul dword [esp + 0x44]
fstp st(3)
fadd st(2)
fnstcw word [esp + 0x34]
mov eax, dword [esp + 0x34]
or byte [esp + 0x35], 0xc
fldcw word [esp + 0x34]
mov dword [esp + 0x34], eax
fistp dword [esp + 0x60]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x60], eax
fldcw word [esp + 0x34]
fild dword [esp + 0x60]
fmul st(3)
fadd st(2)
fnstcw word [esp + 0x34]
mov eax, dword [esp + 0x34]
or byte [esp + 0x35], 0xc
fldcw word [esp + 0x34]
mov dword [esp + 0x34], eax
fistp dword [esp + 0x60]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x60], eax
fldcw word [esp + 0x34]
fild dword [esp + 0x60]
fmul st(3)
fadd st(1)
fnstcw word [esp + 0x34]
mov eax, dword [esp + 0x34]
or byte [esp + 0x35], 0xc
fldcw word [esp + 0x34]
mov dword [esp + 0x34], eax
fistp dword [esp + 0x60]
mov eax, dword [esp + 0x60]
mov dword [esp + 8], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x60], eax
fldcw word [esp + 0x34]
fild dword [esp + 0x60]
fmul st(3)
fadd st(2)
fnstcw word [esp + 0x34]
mov eax, dword [esp + 0x34]
or byte [esp + 0x35], 0xc
fldcw word [esp + 0x34]
mov dword [esp + 0x34], eax
fistp dword [esp + 0x60]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x60], ecx
fldcw word [esp + 0x34]
fild dword [esp + 0x60]
mov dword [esp + 4], eax
fmul st(3)
fadd st(2)
fnstcw word [esp + 0x34]
mov eax, dword [esp + 0x34]
or byte [esp + 0x35], 0xc
fldcw word [esp + 0x34]
mov dword [esp + 0x34], eax
mov eax, 0x66666667
imul edx
fistp dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
fldcw word [esp + 0x34]
sar edx, 2
add esi, edx
mov dword [esp + 0x60], esi
fild dword [esp + 0x60]
fcomp st(4)
fnstsw ax
test ah, 0x45
jne 0x54097a
mov byte [0xa10b25], 1
jmp 0x54097a
fld dword [0x695468]
fstp dword [esp + 0x44]
mov edi, dword [0xa0fd74]
mov al, byte [esp + 0x30]
and edi, 0xffff
push eax
mov eax, edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], eax
fild qword [esp + 0x64]
push eax
fmul dword [0x6954c0]
fadd dword [0x978d30]
fstp dword [esp]
fld dword [esp + 0x78]
fstp st(4)
fld dword [0x695478]
fdiv st(4)
push eax
fstp dword [esp]
fld dword [0x6954c8]
mov al, byte [esp + 0x10]
mov dl, byte [esp + 0x14]
fmul dword [esp + 0x84]
push dword [0x6954c4]
push dword [0x695468]
push ecx
push eax
mov al, byte [esp + 0x2c]
push edx
mov cl, byte [esp + 0x3c]
push eax
mov al, byte [esp + 0x48]
push ecx
push eax
push eax
fstp dword [esp]
fld dword [0x6954c8]
fmul dword [esp + 0xa4]
push eax
fstp dword [esp]
push eax
fld st(3)
fstp dword [esp]
fcompp
fcompp
push dword [esp + 0xa4]
push dword [esp + 0xa4]
call fcn.00575820
add esp, 0x40
mov byte [ebx + 0x709204], 1
jmp 0x540a3f
fcompp
fcompp
mov byte [ebx + 0x709204], 0
inc ebx
cmp ebx, 0x25
jl 0x540612
call fcn.00577790
push 2
push 0xa
call fcn.00649ba0
pop ecx
pop ecx
push 2
push 0xb
call fcn.00649ba0
mov edx, dword [0xa0d238]
pop ecx
mov eax, dword [edx]
pop ecx
push eax
push 1
call fcn.00649ba0
xor ebp, ebp
pop ecx
pop ecx
mov eax, dword [esp + 0x2c]
lea edi, [esp + 0xb8]
lea esi, [eax]
movsd dword es:[edi], dword [esi]
fldz
fldz
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [0x695488]
fmul dword [ebp*4 + 0x6952cc]
cmp byte [ebp + 0x709204], 0
fstp st(2)
fld dword [0x695488]
fmul dword [ebp*4 + 0x695238]
fstp st(1)
fld dword [esp + 0x58]
fmul st(2)
fld dword [esp + 0x5c]
fmul st(2)
faddp st(1)
fadd dword [esp + 0xb8]
fstp dword [esp + 0xb8]
fld dword [esp + 0x5c]
fmul st(2)
fld dword [esp + 0x58]
fmul st(2)
fsubrp st(1)
fadd dword [esp + 0xbc]
fstp dword [esp + 0xbc]
fld dword [0x6954ac]
fmul dword [ebp*4 + 0x695360]
fadd dword [0x6954ac]
fstp dword [esp + 0xc0]
je 0x540e77
lea eax, [esp + 0x74]
lea esi, [esp + 0x78]
fcompp
lea edi, [esp + 0x68]
push 0
push esi
push eax
lea eax, [esp + 0xc4]
push edi
push eax
call fcn.005778b0
add esp, 0x14
test al, al
je 0x540c27
fld dword [esp + 0x44]
fcomp dword [0x695468]
fnstsw ax
test ah, 0x45
jne 0x540c27
push dword [esp + 0x4c]
push dword [esp + 0x4c]
call fcn.004a55e0
mov eax, 0x55555556
mov edx, dword [0x9b48e4]
pop ecx
pop ecx
mov ecx, edx
imul edx
shr ecx, 0x1f
fstp dword [esp + 0x54]
add ecx, edx
mov dword [esp + 0x60], ecx
fild dword [esp + 0x60]
fcomp dword [esp + 0x50]
fnstsw ax
test ah, 0x45
jne 0x540c27
fldz
fld dword [0x6954cc]
fsub dword [esp + 0x54]
push 0xff
push eax
fadd dword [0x978d30]
fstp dword [esp]
fld dword [esp + 0x78]
fstp st(1)
fld dword [0x695478]
fdiv st(1)
push eax
fstp dword [esp]
fld dword [0x6954d0]
fmul dword [esp + 0x50]
fnstcw word [esp + 0x40]
mov eax, dword [esp + 0x40]
or byte [esp + 0x41], 0xc
fldcw word [esp + 0x40]
mov dword [esp + 0x40], eax
fistp dword [esp + 0x6c]
fldcw word [esp + 0x40]
fld dword [0x6954d4]
fmul dword [esp + 0x84]
mov eax, dword [esp + 0x6c]
push 0xff
push 0
push 0
push eax
push eax
fstp dword [esp]
fld dword [0x6954d4]
fmul dword [esp + 0x94]
push eax
fstp dword [esp]
push eax
fst dword [esp]
push dword [esp + 0x94]
push dword [esp + 0x94]
fstp st(0)
call fcn.00576b30
add esp, 0x30
inc ebp
cmp ebp, 0x25
jl 0x540a78
call fcn.00577790
fld dword [0xa0d05c]
fcomp dword [0x695468]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x540e1c
mov edx, dword [0x695538]
mov eax, dword [edx]
push eax
push 1
call fcn.00649ba0
xor ebx, ebx
pop ecx
pop ecx
mov dword [esp + 0x60], ebx
lea edi, [esp + 0xc4]
fild dword [esp + 0x60]
mov dword [esp + 0xfc], 0x40a00000
mov dword [esp + 0xf8], 0x42c80000
mov eax, 0x7e46b8
fmul dword [0x6954d8]
push 0
fstp dword [esp + 0xf8]
lea esi, [esp + 0xf8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [esp + 0xc8]
fadd dword [eax]
lea esi, [esp + 0x7c]
lea edi, [esp + 0x6c]
push esi
fstp dword [esp + 0xcc]
fld dword [esp + 0xd0]
fadd dword [eax + 4]
fstp dword [esp + 0xd0]
fld dword [esp + 0xd4]
fadd dword [eax + 8]
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0xd0]
push edi
push eax
fstp dword [esp + 0xe0]
call fcn.005778b0
add esp, 0x14
test al, al
fldz
je 0x540e87
fld dword [esp + 0x70]
fstp st(1)
fld dword [0x695478]
fdiv st(1)
push 0xff
push eax
fstp dword [esp]
mov al, byte [ebx + 0x6951a0]
and eax, 0xff
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
push 0xff
fmul dword [0xa0d05c]
fnstcw word [esp + 0x40]
mov eax, dword [esp + 0x40]
or byte [esp + 0x41], 0xc
fldcw word [esp + 0x40]
mov dword [esp + 0x40], eax
mov al, byte [ebx + 0x695198]
and eax, 0xff
fistp dword [esp + 0x6c]
mov ecx, dword [esp + 0x6c]
fldcw word [esp + 0x40]
mov dword [esp + 0x6c], eax
push ecx
fild dword [esp + 0x70]
fmul dword [0xa0d05c]
fnstcw word [esp + 0x44]
mov eax, dword [esp + 0x44]
or byte [esp + 0x45], 0xc
fldcw word [esp + 0x44]
mov dword [esp + 0x44], eax
mov al, byte [ebx + 0x695190]
and eax, 0xff
fistp dword [esp + 0x70]
mov edx, dword [esp + 0x70]
fldcw word [esp + 0x44]
mov dword [esp + 0x70], eax
push edx
fild dword [esp + 0x74]
fmul dword [0xa0d05c]
fnstcw word [esp + 0x48]
mov eax, dword [esp + 0x48]
or byte [esp + 0x49], 0xc
fldcw word [esp + 0x48]
mov dword [esp + 0x48], eax
fistp dword [esp + 0x74]
fldcw word [esp + 0x48]
fld dword [0x6954dc]
fmul dword [esp + 0x8c]
mov eax, dword [esp + 0x74]
push eax
push eax
fstp dword [esp]
fld dword [0x695488]
fmul dword [esp + 0x90]
push eax
fstp dword [esp]
push eax
fst dword [esp]
push dword [esp + 0x90]
push dword [esp + 0x90]
fstp st(0)
call fcn.00577350
add esp, 0x2c
inc ebx
cmp ebx, 6
jl 0x540c64
call fcn.00577790
push 0
push 0xc
call fcn.00649ba0
pop ecx
pop ecx
push 1
push 8
call fcn.00649ba0
pop ecx
pop ecx
push 1
push 6
call fcn.00649ba0
pop ecx
pop ecx
push 5
push 0xa
call fcn.00649ba0
pop ecx
pop ecx
push 6
push 0xb
call fcn.00649ba0
pop ecx
pop ecx
add esp, 0x100
pop ebp
pop edi
pop esi
pop ebx
ret
fldz
jmp 0x53ff03
fldz
jmp 0x54033f
fstp st(0)
jmp 0x54055d
fcompp
jmp 0x540c27
fstp st(0)
jmp 0x540c36
fstp st(0)
jmp 0x540e0d