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

Disassembly:
push ebx
push esi
push edi
push ebp
mov ebp, ecx
sub esp, 0xb0
movsx edi, word [ebp + 0x5c]
movzx ebx, byte [0x95cd61]
fld dword [0x6004ec]
mov eax, dword [edi*4 + 0x83d408]
mov ecx, eax
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 0x1c]
mov dword [esp], eax
mov eax, dword [esp + 0x18]
imul ebx, ebx, 0x13c
fmul dword [eax + 0x60]
fstp dword [esp + 0x20]
mov dl, byte [ebp + 0x50]
shr dl, 3
movzx eax, dl
add ebx, 0x9412f0
test eax, eax
je 0x52d690
mov al, byte [ebp + 0x1f7]
shr al, 7
test al, al
je 0x52d67f
lea eax, [ebx + 8]
test eax, eax
je 0x52d5ab
fld dword [ebp + 0x46c]
fmul dword [ebp + 0x4fc]
mov edi, dword [eax + 0x44]
fsubr dword [edi + 8]
fstp dword [esp + 0x84]
fld dword [ebp + 0x470]
fmul dword [ebp + 0x500]
fsubr dword [edi + 0x28]
fstp dword [esp + 0x88]
fld dword [ebp + 0x474]
fmul dword [ebp + 0x504]
fsubr dword [edi + 0x48]
fstp dword [esp + 0x8c]
fld dword [ebp + 0x478]
fmul dword [ebp + 0x508]
fsubr dword [edi + 0x68]
fstp dword [esp + 0x90]
xor esi, esi
xor ecx, ecx
nop
mov eax, dword [ebp + 0x128]
fld dword [eax + 0xb8]
fsub dword [eax + 0xbc]
movzx edx, si
fstp dword [ebp + edx*4 + 0x4ec]
mov eax, dword [esp]
mov eax, dword [eax + 0x44]
fld dword [eax + ecx + 8]
fsub dword [eax + ecx + 0x18]
fstp dword [ebp + edx*4 + 0x4fc]
mov eax, dword [esp]
mov eax, dword [eax + 0x44]
fld dword [eax + ecx + 8]
fsub dword [esp + edx*4 + 0x84]
fdiv dword [ebp + edx*4 + 0x4fc]
fstp dword [ebp + edx*4 + 0x46c]
fld dword [ebp + edx*4 + 0x46c]
fcomp dword [0x6004f4]
fnstsw ax
test ah, 0x45
jne 0x52d61f
mov dword [ebp + edx*4 + 0x46c], 0x3f800000
inc esi
add ecx, 0x20
cmp si, 4
jb 0x52d5b0
mov ax, word [ebp + 0x4e2]
test ax, ax
jne 0x52d640
push dword [0x6004f8]
push 0x12
jmp 0x52d64e
cmp ax, 0x64
jb 0x52d65c
push dword [0x6004f8]
push 0x13
mov eax, dword [ebp + 0x64]
mov ecx, 0x95cdbe
push eax
call fcn.0057c840
cmp dword [ebx + 0x60], ebp
jne 0x52d668
mov dword [ebx + 0x60], 0
mov al, byte [ebp + 0x1f7]
and al, 0x7f
mov byte [ebp + 0x1f7], al
mov word [ebp + 0x4e2], 0
add esp, 0xb0
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [ebp + 0x128]
fld dword [eax + 0xb8]
fstp dword [esp + 0x24]
fld dword [eax + 0xbc]
fstp dword [esp + 0x28]
fld dword [esp + 0x24]
fsub dword [esp + 0x28]
fstp dword [esp + 0x2c]
fld dword [esp + 0x24]
fsub dword [0x6004fc]
fstp dword [esp + 0x30]
fld dword [esp + 0x28]
fsub dword [0x6004fc]
fstp dword [esp + 0x34]
fld dword [esp + 0x30]
fsub dword [esp + 0x34]
fstp dword [esp + 0x38]
mov al, byte [ebp + 0x1f7]
shr al, 7
test al, al
jne 0x52d9a0
mov edx, dword [ebx + 0x60]
test edx, edx
je 0x52d708
cmp edx, ebp
je 0x52d708
mov al, byte [edx + 0x1f7]
and al, 0x7f
mov byte [edx + 0x1f7], al
mov dword [ebx + 0x60], ebp
lea ecx, [ebx + 8]
push dword [esp]
call fcn.00411710
mov al, byte [ebp + 0x1f7]
add ebx, 8
and al, 0x7f
or al, 0x80
mov byte [ebp + 0x1f7], al
fld dword [ebp + 0x514]
fcomp dword [0x6004e8]
fnstsw ax
test ah, 0x45
jne 0x52d747
mov word [ebp + 0x4e2], 0x14
jmp 0x52d78e
mov word [ebp + 0x4e2], 0
mov ecx, 0x95cdbe
fld dword [esp + 0x24]
fadd dword [0x600500]
push dword [0x6004f8]
push 0x13
fstp dword [esp + 0x2c]
fld dword [esp + 0x30]
fadd dword [0x600504]
fstp dword [esp + 0x30]
fld dword [esp + 0x2c]
fsub dword [esp + 0x30]
fstp dword [esp + 0x34]
mov eax, dword [ebp + 0x64]
push eax
call fcn.0057c840
fld dword [esp + 0x2c]
fadd dword [esp + 0x20]
xor esi, esi
mov dword [esp + 0x14], 0
fstp dword [esp + 0x50]
movzx edi, word [esp + 0x14]
mov eax, dword [esp]
mov eax, dword [eax + 0x44]
fld dword [ebp + edi*4 + 0x46c]
fmul dword [ebp + edi*4 + 0x4fc]
fsubr dword [eax + esi + 8]
fstp dword [esp + edi*4 + 0x84]
movzx eax, word [esp + 0x14]
lea ecx, [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x1c]
push eax
call fcn.00520840
fld dword [esp + 0x9c]
fadd dword [esp + 0x24]
fstp dword [esp + 0x9c]
mov eax, dword [ebx + 0x44]
fld dword [esp + 0x94]
add eax, esi
fstp dword [eax]
fld dword [esp + 0x98]
fstp dword [eax + 4]
fld dword [esp + 0x9c]
fstp dword [eax + 8]
fld dword [esp + 0x9c]
fsub dword [esp + 0x50]
fstp dword [esp + 0x9c]
mov eax, dword [ebx + 0x44]
add eax, esi
fld dword [esp + 0x94]
add eax, 0x10
fstp dword [eax]
fld dword [esp + 0x98]
fstp dword [eax + 4]
fld dword [esp + 0x9c]
fstp dword [eax + 8]
fld dword [esp + 0x2c]
fstp dword [ebp + edi*4 + 0x4ec]
fld dword [esp + 0x50]
fstp dword [ebp + edi*4 + 0x4fc]
fld dword [ebp + edi*4 + 0x46c]
fcomp dword [0x6004f4]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x52d8b2
mov eax, dword [ebx + 0x44]
fld dword [eax + esi + 8]
fsub dword [esp + edi*4 + 0x84]
fdiv dword [ebp + edi*4 + 0x4fc]
fstp dword [ebp + edi*4 + 0x46c]
fld dword [ebp + edi*4 + 0x46c]
fcomp dword [0x6004f4]
fnstsw ax
test ah, 0x45
jne 0x52d8b2
mov dword [ebp + edi*4 + 0x46c], 0x3f800000
inc dword [esp + 0x14]
add esi, 0x20
cmp word [esp + 0x14], 4
jb 0x52d7a4
mov eax, dword [ebp + 0x64]
mov ecx, 0x95cdbe
push dword [0x6004f8]
push 0x13
push eax
call fcn.0057c840
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x18]
push eax
push 0
call fcn.00520840
fldz
fldz
fld dword [esp + 0x9c]
fadd dword [esp + 0x34]
fsub dword [esp + 0x20]
fstp st(2)
fld st(1)
fcomp dword [ebx + 0x1c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x52d917
fld st(1)
fstp dword [ebx + 0x1c]
fld dword [ebx + 0x24]
fstp st(2)
fld st(1)
fmul st(0)
fld dword [ebx + 0x20]
fstp st(3)
fld st(2)
fmul st(0)
faddp st(1)
fld dword [ebx + 0x28]
fstp st(3)
fld st(2)
fmul st(0)
faddp st(1)
fstp st(1)
fld dword [ebx + 0x18]
fstp st(2)
fld st(1)
fmul st(0)
fld dword [ebx + 0x14]
fstp st(3)
fld st(2)
fmul st(0)
faddp st(1)
fld dword [ebx + 0x1c]
fstp st(3)
fld st(2)
fmul st(0)
faddp st(1)
fstp st(2)
fld st(1)
fcomp st(1)
fnstsw ax
test ah, 0x45
jne 0x52d968
fld st(1)
jmp 0x52d96a
fld st(0)
fstp st(2)
fld st(1)
fsqrt
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(2)
fld dword [ebx + 0xc]
fcomp st(2)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x52d98e
fld st(1)
fstp dword [ebx + 0xc]
fcompp
add esp, 0xb0
pop ebp
pop edi
pop esi
pop ebx
ret
cmp byte [ebx + 0xd8], 0
je 0x52d9b4
add esp, 0xb0
pop ebp
pop edi
pop esi
pop ebx
ret
lea ebx, [ebx + 8]
mov byte [esp + 0x1c], 0
mov cx, word [ebp + 0x4e2]
cmp cx, 0x14
jae 0x52da60
fld dword [ebp + 0x514]
fcomp dword [0x6004fc]
fnstsw ax
test ah, 0x45
jne 0x52da60
test cx, cx
jne 0x52da57
mov word [ebp + 0x4e2], 0x14
mov ecx, 0x95cdbe
fld dword [ebp + 0x4b8]
fsub dword [0x600508]
fstp dword [ebp + 0x4b8]
fld dword [ebp + 0x4bc]
fsub dword [0x600508]
fstp dword [ebp + 0x4bc]
fld dword [ebp + 0x4c0]
fsub dword [0x600508]
fstp dword [ebp + 0x4c0]
fld dword [ebp + 0x4c4]
fsub dword [0x600508]
fstp dword [ebp + 0x4c4]
mov eax, dword [ebp + 0x64]
push dword [0x6004f8]
push 0x12
push eax
call fcn.0057c840
mov byte [esp + 0x1c], 1
jmp 0x52daa8
inc word [ebp + 0x4e2]
jmp 0x52daa8
test cx, cx
je 0x52daa8
cmp cx, 0x15
jae 0x52daa8
fld dword [ebp + 0x514]
fcomp dword [0x6004e8]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x52daa8
dec word [ebp + 0x4e2]
cmp word [ebp + 0x4e2], 0
jne 0x52daa8
mov eax, dword [ebp + 0x64]
mov ecx, 0x95cdbe
push dword [0x6004f8]
push 0x13
push eax
call fcn.0057c840
push 0
call fcn.00492f60
pop ecx
mov ecx, eax
call fcn.004933f0
test al, al
je 0x52ddf0
cmp word [ebp + 0x4e2], 0x64
jae 0x52dad4
mov word [ebp + 0x4e2], 0x64
jmp 0x52dafb
fld dword [ebp + 0x514]
fcomp dword [0x6004e8]
fnstsw ax
test ah, 0x45
jne 0x52daf2
mov word [ebp + 0x4e2], 0x14
jmp 0x52dafb
mov word [ebp + 0x4e2], 0
mov ax, word [ebp + 0x4e2]
cmp ax, 0x64
jb 0x52dc74
fld dword [esp + 0x38]
fadd dword [esp + 0x20]
xor esi, esi
mov dword [esp + 8], 0
fstp dword [esp + 0x54]
movzx edi, word [esp + 8]
mov eax, dword [ebx + 0x44]
fld dword [ebp + edi*4 + 0x46c]
fmul dword [ebp + edi*4 + 0x4fc]
fsubr dword [eax + esi + 8]
fstp dword [esp + edi*4 + 0x84]
movzx eax, word [esp + 8]
lea edx, [esp + 0x94]
mov ecx, dword [esp + 0x18]
push edx
push eax
call fcn.00520840
fld dword [esp + 0x9c]
fadd dword [esp + 0x30]
fstp dword [esp + 0x9c]
mov eax, dword [ebx + 0x44]
fld dword [esp + 0x94]
add eax, esi
fstp dword [eax]
fld dword [esp + 0x98]
fstp dword [eax + 4]
fld dword [esp + 0x9c]
fstp dword [eax + 8]
fld dword [esp + 0x9c]
fsub dword [esp + 0x54]
fstp dword [esp + 0x9c]
mov eax, dword [ebx + 0x44]
add eax, esi
fld dword [esp + 0x94]
add eax, 0x10
fstp dword [eax]
fld dword [esp + 0x98]
fstp dword [eax + 4]
fld dword [esp + 0x9c]
fstp dword [eax + 8]
fld dword [esp + 0x38]
fstp dword [ebp + edi*4 + 0x4ec]
fld dword [esp + 0x54]
fstp dword [ebp + edi*4 + 0x4fc]
fld dword [ebp + edi*4 + 0x46c]
fcomp dword [0x6004f4]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x52dc2d
mov eax, dword [ebx + 0x44]
fld dword [eax + esi + 8]
fsub dword [esp + edi*4 + 0x84]
fdiv dword [ebp + edi*4 + 0x4fc]
fstp dword [ebp + edi*4 + 0x46c]
fld dword [ebp + edi*4 + 0x46c]
fcomp dword [0x6004f4]
fnstsw ax
test ah, 0x45
jne 0x52dc2d
mov dword [ebp + edi*4 + 0x46c], 0x3f800000
mov byte [esp + 0x1c], 1
add esi, 0x20
fld dword [ebp + edi*4 + 0x4b8]
fsub dword [0x60050c]
fstp dword [ebp + edi*4 + 0x4b8]
inc dword [esp + 8]
cmp word [esp + 8], 4
jb 0x52db22
mov eax, dword [ebp + 0x64]
mov ecx, 0x95cdbe
push dword [0x6004f8]
push 0x12
push eax
call fcn.0057c840
jmp 0x52e5b7
test ax, ax
jne 0x52dca1
fld dword [esp + 0x24]
fadd dword [0x600500]
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fadd dword [0x600504]
fstp dword [esp + 0x28]
fld dword [esp + 0x24]
fsub dword [esp + 0x28]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fadd dword [esp + 0x20]
xor esi, esi
mov dword [esp + 4], 0
fstp dword [esp + 0x58]
movzx edi, word [esp + 4]
mov eax, dword [ebx + 0x44]
fld dword [ebp + edi*4 + 0x46c]
fmul dword [ebp + edi*4 + 0x4fc]
fsubr dword [eax + esi + 8]
fstp dword [esp + edi*4 + 0x84]
movzx eax, word [esp + 4]
lea ecx, [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x1c]
push eax
call fcn.00520840
fld dword [esp + 0x9c]
fadd dword [esp + 0x24]
fstp dword [esp + 0x9c]
mov eax, dword [ebx + 0x44]
fld dword [esp + 0x94]
add eax, esi
fstp dword [eax]
fld dword [esp + 0x98]
fstp dword [eax + 4]
fld dword [esp + 0x9c]
fstp dword [eax + 8]
fld dword [esp + 0x9c]
fsub dword [esp + 0x58]
fstp dword [esp + 0x9c]
mov eax, dword [ebx + 0x44]
add eax, esi
fld dword [esp + 0x94]
add eax, 0x10
fstp dword [eax]
fld dword [esp + 0x98]
fstp dword [eax + 4]
fld dword [esp + 0x9c]
fstp dword [eax + 8]
fld dword [esp + 0x2c]
fstp dword [ebp + edi*4 + 0x4ec]
fld dword [esp + 0x58]
fstp dword [ebp + edi*4 + 0x4fc]
fld dword [ebp + edi*4 + 0x46c]
fcomp dword [0x6004f4]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x52ddc2
mov eax, dword [ebx + 0x44]
fld dword [eax + esi + 8]
fsub dword [esp + edi*4 + 0x84]
fdiv dword [ebp + edi*4 + 0x4fc]
fstp dword [ebp + edi*4 + 0x46c]
fld dword [ebp + edi*4 + 0x46c]
fcomp dword [0x6004f4]
fnstsw ax
test ah, 0x45
jne 0x52ddc2
mov dword [ebp + edi*4 + 0x46c], 0x3f800000
inc dword [esp + 4]
add esi, 0x20
cmp word [esp + 4], 4
jb 0x52dcb7
mov eax, dword [ebp + 0x64]
mov ecx, 0x95cdbe
push dword [0x6004f8]
push 0x13
push eax
call fcn.0057c840
jmp 0x52e5c0
push 0
call fcn.00492f60
pop ecx
mov ecx, eax
call fcn.004930c0
movsx eax, ax
push 0
mov dword [esp + 0x7c], eax
fild dword [esp + 0x7c]
fstp dword [esp + 0x40]
call fcn.00492f60
pop ecx
mov ecx, eax
call fcn.00493070
movsx eax, ax
fldz
fldz
mov dword [esp + 0x78], eax
fldz
fldz
fild dword [esp + 0x78]
fstp st(2)
fld dword [0x6004f8]
fstp dword [esp + 0x4c]
fld dword [esp + 0x3c]
fmul dword [0x600510]
fstp st(4)
fld dword [0x600514]
fmul st(2)
fmul dword [0x600510]
fstp st(3)
fld st(2)
fsub st(4)
fstp st(1)
fld dword [0x6004f8]
fcomp st(1)
fnstsw ax
test ah, 0x45
jne 0x52de75
fld dword [0x6004f8]
fstp st(1)
fst dword [esp + 0xa0]
fld st(1)
fmul dword [0x600510]
fstp st(2)
fld st(1)
fsub st(4)
fstp st(1)
fld dword [0x6004f8]
fcomp st(1)
fnstsw ax
test ah, 0x45
jne 0x52dea3
fld dword [0x6004f8]
fstp st(1)
fst dword [esp + 0xa4]
fld st(2)
fadd st(4)
fstp st(3)
fld dword [0x6004f8]
fcomp st(3)
fnstsw ax
test ah, 0x45
jne 0x52dec7
fld dword [0x6004f8]
jmp 0x52dec9
fld st(2)
fstp st(3)
fld st(2)
fstp dword [esp + 0xa8]
fld st(1)
fadd st(4)
fstp st(4)
fld dword [0x6004f8]
fcomp st(4)
fnstsw ax
test ah, 0x45
jne 0x52def1
fld dword [0x6004f8]
jmp 0x52def3
fld st(3)
fstp st(4)
fld st(3)
fstp dword [esp + 0xac]
mov ax, word [ebp + 0x4e2]
cmp ax, 0x64
jb 0x52e180
cmp ax, 0x68
jae 0x52df64
inc word [ebp + 0x4e2]
fld dword [ebp + 0x4b8]
fsub dword [0x6004e8]
fstp dword [ebp + 0x4b8]
fld dword [ebp + 0x4bc]
fsub dword [0x6004e8]
fstp dword [ebp + 0x4bc]
fld dword [ebp + 0x4c0]
fsub dword [0x6004e8]
fstp dword [ebp + 0x4c0]
fld dword [ebp + 0x4c4]
fsub dword [0x6004e8]
fstp dword [ebp + 0x4c4]
fld dword [ebp + 0x514]
fcomp dword [0x6004e8]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x52dfa2
fld dword [esp + 0x24]
fadd dword [0x600500]
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fadd dword [0x600504]
fstp dword [esp + 0x28]
fld dword [esp + 0x24]
fsub dword [esp + 0x28]
fstp dword [esp + 0x2c]
fld dword [esp + 0x24]
fsub dword [esp + 0x30]
xor esi, esi
mov dword [esp + 0x10], 0
fstp dword [esp + 0x5c]
fld dword [esp + 0x2c]
fsub dword [esp + 0x38]
fstp dword [esp + 0x60]
fcompp
fstp st(0)
movzx edi, word [esp + 0x10]
fld dword [esp + edi*4 + 0xa0]
fcomp dword [0x6004f4]
fnstsw ax
test ah, 0x45
jne 0x52dfec
mov dword [esp + edi*4 + 0xa0], 0x3f800000
fld dword [esp + edi*4 + 0xa0]
fst st(1)
fmul dword [esp + 0x5c]
fadd dword [esp + 0x30]
fstp dword [esp + 0x40]
fld st(0)
fmul dword [esp + 0x60]
fadd dword [esp + 0x38]
fstp dword [esp + 0x44]
fld dword [ebp + edi*4 + 0x46c]
fmul dword [ebp + edi*4 + 0x4fc]
mov eax, dword [ebx + 0x44]
fsubr dword [eax + esi + 8]
fstp dword [esp + edi*4 + 0x84]
movzx eax, word [esp + 0x10]
lea edx, [esp + 0x94]
mov ecx, dword [esp + 0x18]
push edx
push eax
fstp st(0)
call fcn.00520840
fldz
fldz
fldz
fld dword [esp + 0x9c]
fadd dword [esp + 0x40]
fstp dword [esp + 0x9c]
mov eax, dword [ebx + 0x44]
fld dword [esp + 0x94]
add eax, esi
fstp dword [eax]
fld dword [esp + 0x98]
fstp dword [eax + 4]
fld dword [esp + 0x9c]
fstp dword [eax + 8]
fld dword [esp + 0x44]
fadd dword [esp + 0x20]
fstp st(1)
fld dword [esp + 0x9c]
fsub st(1)
fstp dword [esp + 0x9c]
fld dword [esp + 0x4c]
fabs
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
mov eax, dword [ebx + 0x44]
fstp st(3)
fld dword [esp + 0x9c]
fsub dword [eax + esi + 0x18]
fabs
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(2)
fld st(1)
fcomp st(3)
fnstsw ax
test ah, 0x45
jne 0x52e0df
fld dword [esp + 0x9c]
mov eax, dword [ebx + 0x44]
fsub dword [eax + esi + 0x18]
fstp dword [esp + 0x4c]
mov eax, dword [ebx + 0x44]
add eax, esi
fld dword [esp + 0x94]
add eax, 0x10
fstp dword [eax]
fld dword [esp + 0x98]
fstp dword [eax + 4]
fld dword [esp + 0x9c]
fstp dword [eax + 8]
fld dword [esp + 0x44]
fstp dword [ebp + edi*4 + 0x4ec]
fst dword [ebp + edi*4 + 0x4fc]
fld dword [ebp + edi*4 + 0x46c]
fcomp dword [0x6004f4]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x52e168
mov eax, dword [ebx + 0x44]
fld dword [eax + esi + 8]
fsub dword [esp + edi*4 + 0x84]
fdiv dword [ebp + edi*4 + 0x4fc]
fstp dword [ebp + edi*4 + 0x46c]
fld dword [ebp + edi*4 + 0x46c]
fcomp dword [0x6004f4]
fnstsw ax
test ah, 0x45
jne 0x52e168
mov dword [ebp + edi*4 + 0x46c], 0x3f800000
inc dword [esp + 0x10]
add esi, 0x20
cmp word [esp + 0x10], 4
jb 0x52e5a5
jmp 0x52e3ad
test ax, ax
jne 0x52e1ad
fld dword [esp + 0x24]
fadd dword [0x600500]
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fadd dword [0x600504]
fstp dword [esp + 0x28]
fld dword [esp + 0x24]
fsub dword [esp + 0x28]
fstp dword [esp + 0x2c]
fld dword [esp + 0x30]
fsub dword [esp + 0x24]
xor esi, esi
mov dword [esp + 0xc], 0
fstp dword [esp + 0x64]
fld dword [esp + 0x38]
fsub dword [esp + 0x2c]
fstp dword [esp + 0x68]
fcompp
fstp st(0)
movzx edi, word [esp + 0xc]
fld dword [esp + edi*4 + 0xa0]
fcomp dword [0x6004f4]
fnstsw ax
test ah, 0x45
jne 0x52e1f7
mov dword [esp + edi*4 + 0xa0], 0x3f800000
mov eax, dword [ebx + 0x44]
fld dword [eax + esi + 0x18]
fstp dword [esp + 0x48]
fld dword [esp + edi*4 + 0xa0]
fst st(1)
fmul dword [esp + 0x64]
fadd dword [esp + 0x24]
fstp dword [esp + 0x70]
fld st(0)
fmul dword [esp + 0x68]
fadd dword [esp + 0x2c]
fstp dword [esp + 0x74]
fld dword [ebp + edi*4 + 0x46c]
fmul dword [ebp + edi*4 + 0x4fc]
fsubr dword [eax + esi + 8]
fstp dword [esp + edi*4 + 0x84]
movzx eax, word [esp + 0xc]
lea ecx, [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x1c]
push eax
fstp st(0)
call fcn.00520840
fldz
fldz
fldz
fld dword [esp + 0x9c]
fadd dword [esp + 0x70]
fstp dword [esp + 0x9c]
mov eax, dword [ebx + 0x44]
fld dword [esp + 0x94]
add eax, esi
fstp dword [eax]
fld dword [esp + 0x98]
fstp dword [eax + 4]
fld dword [esp + 0x9c]
fstp dword [eax + 8]
fld dword [esp + 0x74]
fadd dword [esp + 0x20]
fstp st(1)
fld dword [esp + 0x9c]
fsub st(1)
fstp dword [esp + 0x9c]
fld dword [esp + 0x4c]
fabs
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
mov eax, dword [ebx + 0x44]
fstp st(3)
fld dword [esp + 0x9c]
fsub dword [eax + esi + 0x18]
fabs
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(2)
fld st(1)
fcomp st(3)
fnstsw ax
test ah, 0x45
jne 0x52e2f2
fld dword [esp + 0x9c]
mov eax, dword [ebx + 0x44]
fsub dword [eax + esi + 0x18]
fstp dword [esp + 0x4c]
mov eax, dword [ebx + 0x44]
add eax, esi
fld dword [esp + 0x94]
add eax, 0x10
fstp dword [eax]
fld dword [esp + 0x98]
fstp dword [eax + 4]
fld dword [esp + 0x9c]
fstp dword [eax + 8]
fld dword [esp + 0x74]
fstp dword [ebp + edi*4 + 0x4ec]
fst dword [ebp + edi*4 + 0x4fc]
fld dword [ebp + edi*4 + 0x46c]
fcomp dword [0x6004f4]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x52e39a
mov eax, dword [ebx + 0x44]
fld dword [eax + esi + 8]
fsub dword [esp + edi*4 + 0x84]
fdiv dword [ebp + edi*4 + 0x4fc]
fstp dword [ebp + edi*4 + 0x46c]
fld dword [ebp + edi*4 + 0x46c]
fcomp dword [0x6004f4]
fnstsw ax
test ah, 0x45
jne 0x52e37b
mov dword [ebp + edi*4 + 0x46c], 0x3f800000
fld dword [esp + 0x48]
mov eax, dword [ebx + 0x44]
fsub dword [eax + esi + 0x18]
fmul dword [0x6004dc]
fsubr dword [ebp + edi*4 + 0x4b8]
fstp dword [ebp + edi*4 + 0x4b8]
inc dword [esp + 0xc]
add esi, 0x20
cmp word [esp + 0xc], 4
jb 0x52e5b0
fstp st(0)
fld dword [esp + 0x34]
fsub dword [esp + 0x28]
fstp st(1)
fld dword [0x6004f8]
fcomp st(1)
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x52e5c7
fld dword [esp + 0x4c]
fdiv st(1)
fabs
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(2)
fld st(1)
fcomp qword [0x600518]
fnstsw ax
test ah, 0x45
jne 0x52e5d0
fld dword [esp + 0x4c]
fadd st(1)
fmul dword [0x6004ec]
fdiv st(1)
fstp dword [esp + 0x6c]
fld dword [esp + 0x6c]
fcomp dword [0x6004f8]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x52e422
fld dword [0x6004f8]
jmp 0x52e439
fld dword [esp + 0x6c]
fcomp dword [0x6004f4]
fnstsw ax
test ah, 0x45
jne 0x52e43d
fld dword [0x6004f4]
fstp dword [esp + 0x6c]
fcompp
mov eax, dword [ebp + 0x64]
mov ecx, 0x95cdbe
push dword [esp + 0x6c]
push 0x14
push eax
call fcn.0057c840
fld dword [esp + 0x6c]
fcomp dword [0x600520]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x52e478
fld dword [esp + 0x6c]
fcomp dword [0x600524]
fnstsw ax
test ah, 0x45
jne 0x52e47d
mov byte [esp + 0x1c], 1
fld dword [esp + 0x6c]
fcomp dword [0x600528]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x52e4b0
mov eax, dword [ebp + 0x64]
mov ecx, 0x95cdbe
push dword [0x6004f8]
push 0x13
push eax
call fcn.0057c840
jmp 0x52e5d7
fld dword [esp + 0x6c]
fcomp dword [0x60052c]
fnstsw ax
test ah, 0x45
jne 0x52e5e0
mov eax, dword [ebp + 0x64]
mov ecx, 0x95cdbe
push dword [0x6004f8]
push 0x12
push eax
call fcn.0057c840
fldz
cmp byte [esp + 0x1c], 0
je 0x52e598
fld dword [ebp + 0x4ec]
fdiv dword [ebp + 0x4fc]
fsubr dword [0x6004f4]
fstp st(1)
fld dword [ebp + 0x46c]
fsub st(1)
fld dword [0x6004f4]
fsub st(2)
fdivp st(1)
fstp dword [ebp + 0x47c]
fld dword [ebp + 0x4f0]
fdiv dword [ebp + 0x500]
fsubr dword [0x6004f4]
fstp st(1)
fld dword [ebp + 0x470]
fsub st(1)
fld dword [0x6004f4]
fsub st(2)
fdivp st(1)
fstp dword [ebp + 0x480]
fld dword [ebp + 0x4f4]
fdiv dword [ebp + 0x504]
fsubr dword [0x6004f4]
fstp st(1)
fld dword [ebp + 0x474]
fsub st(1)
fld dword [0x6004f4]
fsub st(2)
fdivp st(1)
fstp dword [ebp + 0x484]
fld dword [ebp + 0x4f8]
fdiv dword [ebp + 0x508]
fsubr dword [0x6004f4]
fstp st(1)
fld dword [ebp + 0x478]
fsub st(1)
fld dword [0x6004f4]
fsub st(2)
fdivp st(1)
fstp dword [ebp + 0x488]
add esp, 0xb0
fstp st(0)
pop ebp
pop edi
pop esi
pop ebx
ret
fcompp
jmp 0x52dfc8
fcompp
jmp 0x52e1d3
fldz
jmp 0x52e4dd
fldz
jmp 0x52e4dd
fstp st(0)
jmp 0x52e4dd
fstp st(0)
jmp 0x52e4dd
fldz
jmp 0x52e4dd
fldz
jmp 0x52e4dd