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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x364
push ebx
push esi
push edi
mov eax, dword [0x77eab0]
xorps xmm0, xmm0
imul eax, eax, 0x343fd
add eax, 0x269ec3
mov ecx, eax
movss dword [0x9440a0], xmm0
movss dword [0x944090], xmm0
movss dword [0x944080], xmm0
movss dword [0x9440a4], xmm0
movss dword [0x944094], xmm0
movss dword [0x944074], xmm0
movss dword [0x9440a8], xmm0
movss dword [0x944088], xmm0
movss dword [0x944078], xmm0
movss dword [0x94409c], xmm0
movss dword [0x94408c], xmm0
movss dword [0x94407c], xmm0
movss xmm0, dword [0x7389bc]
shr ecx, 0x10
mov esi, dword [ebp + 8]
movss dword [0x944070], xmm0
movss dword [0x944084], xmm0
movss dword [0x944098], xmm0
movss dword [0x9440ac], xmm0
and ecx, 0x7fff
cvtsi2ss xmm0, ecx
mulss xmm0, dword [0x738a60]
mov dword [0x77eab0], eax
movss dword [esp + 0xc0], xmm0
lea ebx, [esi + 0x584]
mov dword [esp + 0x64], 8
test byte [ebx + 0xa5], 1
je 0x548209
lea edx, [ebx - 0x44]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x80], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x84], ecx
mov ecx, dword [edx + 0xc]
movss xmm6, dword [esp + 0x84]
mov dword [esp + 0x88], eax
lea edi, [ebx + 0x1c]
mov edx, edi
mov eax, dword [edx]
mov dword [esp + 0x8c], ecx
mov ecx, dword [edx + 4]
mov dword [esp + 0xa0], eax
fld dword [esp + 0xa0]
fsub dword [esp + 0x80]
mov eax, dword [edx + 8]
mov dword [esp + 0xa4], ecx
movss xmm4, dword [esp + 0xa4]
fstp dword [esp + 0x70]
mov dword [esp + 0xa8], eax
movss xmm5, dword [esp + 0xa8]
movaps xmm0, xmm4
subss xmm0, xmm6
movss dword [esp + 0x6c], xmm0
fld dword [esp + 0x6c]
movaps xmm1, xmm5
fmul dword [esp + 0x6c]
subss xmm1, dword [esp + 0x88]
movss dword [esp + 0x68], xmm1
fld dword [esp + 0x68]
mov ecx, dword [edx + 0xc]
fmul dword [esp + 0x68]
mov edx, dword [esp + 0x70]
movss dword [esp + 0x78], xmm1
mov dword [esp + 0xac], ecx
faddp st(1)
mov ecx, dword [esp + 0x78]
fld dword [esp + 0x70]
movss dword [esp + 0x74], xmm0
fmul dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x50], edx
movss xmm1, dword [esp + 0x50]
faddp st(1)
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x58], ecx
movss xmm3, dword [esp + 0x58]
fsqrt
movaps xmm0, xmm1
mulss xmm0, xmm1
movaps xmm2, xmm3
mulss xmm2, xmm3
addss xmm0, xmm2
mov dword [esp + 0x54], eax
movss xmm2, dword [esp + 0x54]
movaps xmm7, xmm2
mulss xmm7, xmm2
addss xmm0, xmm7
comiss xmm0, dword [0x738d48]
mov dword [esp + 0x5c], edx
movss dword [esp + 0xec], xmm0
fst dword [esp + 0xf4]
fstp dword [esp + 0x48]
jbe 0x547796
fld dword [esp + 0xec]
fsqrt
fdivr dword [0x7389bc]
fld dword [esp + 0x50]
fmul st(1)
fstp dword [esp + 0x50]
movss xmm1, dword [esp + 0x50]
fld dword [esp + 0x54]
fmul st(1)
fstp dword [esp + 0x54]
movss xmm2, dword [esp + 0x54]
fld dword [esp + 0x58]
fmul st(1)
fstp dword [esp + 0x58]
movss xmm3, dword [esp + 0x58]
fstp st(0)
movss xmm0, dword [esp + 0xf4]
mulss xmm0, dword [0x738a1c]
movss xmm7, dword [esp + 0x88]
mulss xmm2, xmm0
mulss xmm3, xmm0
mulss xmm1, xmm0
movaps xmm0, xmm3
movss xmm3, dword [esp + 0x80]
addss xmm1, xmm3
addss xmm2, xmm6
movss dword [esp + 0x104], xmm2
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x94], ecx
movss dword [esp + 0x100], xmm1
mov eax, dword [esp + 0x100]
mov dword [esp + 0x90], eax
movss xmm1, dword [esp + 0x90]
mov eax, dword [esp + 0x10c]
addss xmm0, xmm7
movss dword [esp + 0x108], xmm0
mov edx, dword [esp + 0x108]
movss xmm0, dword [esp + 0x94]
addss xmm0, dword [0x738b08]
mov dword [esp + 0x98], edx
lea ecx, [ebx - 0x34]
mov edx, dword [ecx]
mov dword [esp + 0x9c], eax
mov eax, dword [ecx + 4]
movaps xmm2, xmm1
subss xmm2, xmm3
movss dword [esp + 0x140], xmm2
mov dword [esp + 0x10], edx
mov edx, dword [ecx + 8]
movaps xmm2, xmm0
subss xmm2, xmm6
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x140]
movss dword [esp + 0x144], xmm2
movss xmm2, dword [esp + 0x98]
movaps xmm3, xmm2
subss xmm3, xmm7
movss dword [esp + 0x148], xmm3
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x144]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x148]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
fld dword [esp + 0x28]
fld dword [esp + 0x24]
mov dword [esp + 0x20], ecx
fld st(0)
movss xmm3, dword [esp + 0xa0]
fmul st(1)
mov ecx, dword [esp + 0x14c]
fld st(2)
subss xmm3, xmm1
fmul st(3)
movss dword [esp + 0x130], xmm3
mov edx, dword [esp + 0x130]
subss xmm4, xmm0
faddp st(1)
subss xmm5, xmm2
fld dword [esp + 0x20]
mov dword [esp + 0x2c], ecx
fmul dword [esp + 0x20]
movss dword [esp + 0x134], xmm4
mov eax, dword [esp + 0x134]
movss dword [esp + 0x138], xmm5
faddp st(1)
mov ecx, dword [esp + 0x138]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x13c]
fsqrt
movss dword [esp + 0x94], xmm0
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
fstp st(2)
fstp st(0)
movss xmm0, dword [esi + 0xb8]
fstp dword [esp + 0x16c]
fld dword [esp + 0x38]
mulss xmm0, dword [ebx + 0xa0]
fld dword [esp + 0x34]
mulss xmm0, dword [0x738b84]
fld st(0)
movss dword [esp + 0x4c], xmm0
fmul st(1)
mulss xmm0, dword [0x738ab8]
fld st(2)
lea eax, [esp + 0xe0]
fmul st(3)
push eax
lea ecx, [esp + 0xdc]
push ecx
faddp st(1)
push ecx
fld dword [esp + 0x3c]
movss dword [esp + 0x104], xmm0
fmul dword [esp + 0x3c]
faddp st(1)
fsqrt
fstp st(2)
fstp st(0)
fstp dword [esp + 0x17c]
fld dword [esp + 0x58]
fsin
fmul dword [0x738ec4]
fstp dword [esp]
call fcn.00403f60
fld dword [esp + 0x104]
movss xmm1, dword [esp + 0x2c]
fsin
movss xmm0, dword [esp + 0x34]
movss xmm4, dword [esp + 0xec]
movss xmm3, dword [esp + 0xe4]
add esp, 0xc
lea edx, [esp + 0xc4]
push edx
lea eax, [esp + 0xd4]
movaps xmm2, xmm0
movaps xmm5, xmm4
mulss xmm5, xmm1
push eax
mulss xmm2, xmm3
mulss xmm0, xmm4
mulss xmm1, xmm3
push ecx
addss xmm2, xmm5
subss xmm0, xmm1
movss dword [esp + 0x2c], xmm2
movss dword [esp + 0x34], xmm0
fmul dword [0x738ec4]
fstp dword [esp]
call fcn.00403f60
movss xmm0, dword [esp + 0x30]
movss xmm1, dword [esp + 0x34]
movss xmm3, dword [esp + 0xd0]
movss xmm4, dword [esp + 0xdc]
movaps xmm2, xmm0
movaps xmm5, xmm1
mulss xmm0, xmm3
mulss xmm5, xmm4
subss xmm0, xmm5
add esp, 0xc
movss dword [esp + 0x24], xmm0
mulss xmm1, xmm3
mulss xmm2, xmm4
movss xmm0, dword [esi + 0xb8]
mulss xmm0, dword [ebx + 0xa0]
mulss xmm0, dword [0x738b84]
movss dword [esp + 0x4c], xmm0
fld dword [esp + 0x4c]
mulss xmm0, dword [0x738fac]
fmul dword [0x738fb0]
lea ecx, [esp + 0xcc]
push ecx
lea edx, [esp + 0x100]
fcos
push edx
push ecx
addss xmm1, xmm2
movss dword [esp + 0x34], xmm1
movss dword [esp + 0xfc], xmm0
fmul dword [0x738b9c]
fstp dword [esp]
call fcn.00403f60
fld dword [esp + 0xfc]
movss xmm1, dword [esp + 0x3c]
fsin
movss xmm0, dword [esp + 0x44]
movss xmm4, dword [esp + 0xd8]
movss xmm3, dword [esp + 0x108]
add esp, 0xc
lea eax, [esp + 0xd4]
push eax
lea ecx, [esp + 0xec]
movaps xmm2, xmm0
movaps xmm5, xmm4
mulss xmm5, xmm1
push ecx
mulss xmm2, xmm3
mulss xmm0, xmm4
mulss xmm1, xmm3
push ecx
addss xmm2, xmm5
subss xmm0, xmm1
movss dword [esp + 0x3c], xmm2
movss dword [esp + 0x44], xmm0
fmul dword [0x738b9c]
fstp dword [esp]
call fcn.00403f60
movss xmm0, dword [esp + 0x40]
movss xmm1, dword [esp + 0x44]
movss xmm3, dword [esp + 0xe0]
movss xmm4, dword [esp + 0xf4]
mov eax, dword [ebx + 0x2c]
movaps xmm2, xmm0
movaps xmm5, xmm1
add esp, 0xc
dec eax
mulss xmm0, xmm3
mulss xmm5, xmm4
mulss xmm1, xmm3
mulss xmm2, xmm4
subss xmm0, xmm5
addss xmm1, xmm2
movss dword [esp + 0x34], xmm0
movss dword [esp + 0x38], xmm1
je 0x547e1e
sub eax, 3
je 0x547dac
dec eax
jne 0x547bc1
cmp dword [ebx + 0x30], 0xffffffff
jne 0x547bde
xorps xmm0, xmm0
movss xmm1, dword [0x7389c8]
movss dword [esp + 0x30], xmm0
movss dword [esp + 0x34], xmm1
movss dword [esp + 0x38], xmm0
movss xmm1, dword [esp + 0x14]
movss xmm0, dword [esp + 0x18]
movaps xmm2, xmm1
mulss xmm2, xmm1
movss xmm1, dword [esp + 0x10]
mulss xmm0, xmm0
addss xmm0, xmm2
movaps xmm2, xmm1
mulss xmm2, xmm1
addss xmm0, xmm2
xorps xmm2, xmm2
ucomiss xmm0, xmm2
lahf
test ah, 0x44
movss dword [esp + 0xdc], xmm0
jnp 0x547c59
fld dword [esp + 0xdc]
fsqrt
fdivr dword [0x7389bc]
fld dword [0x7599d4]
fmul dword [ebx + 0x38]
fmulp st(1)
fld dword [esp + 0x10]
fmul st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x14]
fmul st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fmul st(1)
fstp dword [esp + 0x18]
fstp st(0)
movss xmm1, dword [esp + 0x24]
movss xmm0, dword [esp + 0x28]
movaps xmm3, xmm1
mulss xmm3, xmm1
movss xmm1, dword [esp + 0x20]
mulss xmm0, xmm0
addss xmm0, xmm3
movaps xmm3, xmm1
mulss xmm3, xmm1
addss xmm0, xmm3
ucomiss xmm0, xmm2
lahf
test ah, 0x44
movss dword [esp + 0xbc], xmm0
jnp 0x547cd8
fld dword [esp + 0xbc]
fsqrt
fdivr dword [0x7389bc]
fld dword [0x7599d8]
fmul dword [ebx + 0x38]
fmul dword [esp + 0x16c]
fmulp st(1)
fld dword [esp + 0x20]
fmul st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x24]
fmul st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fmul st(1)
fstp dword [esp + 0x28]
fstp st(0)
movss xmm1, dword [esp + 0x34]
movss xmm0, dword [esp + 0x38]
movaps xmm3, xmm1
mulss xmm3, xmm1
movss xmm1, dword [esp + 0x30]
mulss xmm0, xmm0
addss xmm0, xmm3
movaps xmm3, xmm1
mulss xmm3, xmm1
addss xmm0, xmm3
ucomiss xmm0, xmm2
lahf
test ah, 0x44
movss dword [esp + 0xe4], xmm0
jnp 0x547d57
fld dword [esp + 0xe4]
fsqrt
fdivr dword [0x7389bc]
fld dword [0x7599d8]
fmul dword [ebx + 0x38]
fmul dword [esp + 0x170]
fmulp st(1)
fld dword [esp + 0x30]
fmul st(1)
fstp dword [esp + 0x30]
fld dword [esp + 0x34]
fmul st(1)
fstp dword [esp + 0x34]
fld dword [esp + 0x38]
fmul st(1)
fstp dword [esp + 0x38]
fstp st(0)
lea edi, [ebx + 0x3c]
lea esi, [esp + 0x10]
call fcn.0042e0f0
lea esi, [esp + 0x30]
call fcn.0042e0f0
mov eax, dword [ebx - 0x4c]
sub eax, 0
xorps xmm0, xmm0
movss dword [esp + 0xc], xmm0
je 0x547ec2
dec eax
je 0x547ed0
dec eax
jne 0x547eea
movss xmm1, dword [ebx - 0xc]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x547ea4
movss dword [esp + 0xc], xmm0
jmp 0x547eea
movss xmm0, dword [edi]
subss xmm0, dword [esi + 0xf0]
movss dword [esp + 0x110], xmm0
movss xmm0, dword [ebx + 0x20]
subss xmm0, dword [esi + 0xf4]
mov edx, dword [esp + 0x110]
movss dword [esp + 0x114], xmm0
movss xmm0, dword [ebx + 0x24]
subss xmm0, dword [esi + 0xf8]
mov eax, dword [esp + 0x114]
movss dword [esp + 0x118], xmm0
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x11c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
jmp 0x547bde
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
or eax, ecx
je 0x547bc1
mov edx, dword [ebx + 0xc]
push ecx
push edx
mov ecx, 0x8d68e0
call fcn.004013f0
mov esi, eax
test esi, esi
je 0x547bc1
call fcn.0042ecd0
push eax
mov ecx, esi
call fcn.00401340
cmp eax, 1
jne 0x547bc1
xorps xmm0, xmm0
lea eax, [esp + 0x174]
push eax
lea ecx, [esp + 0x184]
movss dword [esp + 0x34], xmm0
movss dword [esp + 0x38], xmm0
movss xmm0, dword [0x7389c8]
push ecx
mov eax, esi
movss dword [esp + 0x40], xmm0
call fcn.004d1500
lea edi, [esp + 0x174]
lea esi, [esp + 0x30]
call fcn.0042e0f0
jmp 0x547bde
movss xmm1, dword [ebx - 0x10]
divss xmm1, dword [ebx - 0xc]
movss xmm2, dword [0x7389bc]
subss xmm2, xmm1
movss dword [esp + 0xc], xmm2
jmp 0x547eea
movss xmm1, dword [ebx - 0xc]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x547eda
movss xmm1, dword [0x7389bc]
jmp 0x547ee4
movss xmm1, dword [ebx - 0x10]
divss xmm1, dword [ebx - 0xc]
movss dword [esp + 0xc], xmm1
fld dword [esp + 0xc]
fmul dword [0x738a80]
fadd dword [0x738a84]
fsin
fadd dword [0x7389bc]
fst dword [esp + 0xc]
fld dword [0x738a54]
fcompi st(1)
fstp st(0)
ja 0x547f2f
movss xmm6, dword [esp + 0xc]
movss xmm1, dword [0x7389bc]
comiss xmm6, xmm1
jbe 0x547f2a
movaps xmm6, xmm1
jmp 0x547f32
comiss xmm0, xmm6
jbe 0x547f32
movaps xmm6, xmm0
movaps xmm0, xmm6
mulss xmm0, dword [esp + 0x48]
mulss xmm0, dword [0x738ed0]
cvttss2si esi, xmm0
cmp esi, 0x1e
jg 0x547f58
cmp esi, 0xf
jge 0x547f5d
mov esi, 0xf
jmp 0x547f5d
mov esi, 0x1e
push 3
lea edx, [esp + 0x194]
push esi
push edx
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x8c]
call fcn.00547320
push 0x200000a6
mov eax, 3
call fcn.0063a3e0
mov eax, dword [ebp + 8]
mov ax, word [eax + 0xac]
add esp, 0x10
cmp ax, 0xffff
jne 0x547f9e
xor edi, edi
jmp 0x547ffa
mov ecx, dword [0x8cf1b4]
movsx edx, ax
imul edx, edx, 0x98
mov edi, dword [edx + ecx + 0x84]
test edi, edi
jne 0x547ffa
movsx edi, ax
cmp edi, 0xffffffff
jne 0x547fc4
xor edi, edi
jmp 0x547ffa
imul edi, edi, 0x98
mov edx, dword [edi + ecx + 0x84]
test edx, edx
lea eax, [edi + ecx]
jne 0x547ff3
mov edx, dword [0x8cf5c0]
test edx, edx
je 0x547ff3
push eax
push 0x8ce750
call fcn.0043adc0
mov ecx, dword [0x8cf1b4]
mov edi, dword [edi + ecx + 0x84]
mov eax, dword [0x84dc00]
test eax, eax
je 0x548009
call dword [0x7c5a74]
mov edi, dword [edi + 0x10]
mov eax, dword [edi*4 + 0x7c5cd8]
mov ecx, dword [0x80edd8]
mov edx, dword [ecx]
push eax
push 0
push ecx
mov dword [0x84dc0c], edi
mov dword [esp + 0x54], eax
call dword [edx + 0x104]
mov eax, dword [esp + 0x48]
mov dword [0x79decc], eax
mov eax, dword [0x80edd8]
test eax, eax
je 0x548054
mov edx, dword [edi*4 + 0x7c5cd8]
mov ecx, dword [eax]
push edx
push 0
push eax
call dword [ecx + 0x104]
movss xmm1, dword [esp + 0xc0]
movss xmm0, dword [0x7389bc]
push ecx
movss dword [esp + 0x168], xmm0
movaps xmm2, xmm1
addss xmm2, xmm0
xorps xmm0, xmm0
movss dword [esp + 0x160], xmm0
movss xmm0, dword [ebx + 0x6c]
mulss xmm0, dword [0x7599dc]
movss dword [esp], xmm0
lea edi, [ebx + 0x48]
push edi
lea eax, [esp + 0x168]
push eax
lea ecx, [esp + 0x164]
push ecx
lea edx, [esp + 0x1a0]
push esi
push edx
movss dword [esp + 0x178], xmm2
movss dword [esp + 0x170], xmm1
call fcn.0063b610
mov eax, dword [0x80edd8]
add esp, 0x18
test eax, eax
mov dword [0x84dc00], 0
je 0x54810b
call dword [0x7c5a74]
mov eax, dword [0x80edd8]
mov ecx, dword [eax]
push 1
push 7
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x80edd8]
mov edx, dword [eax]
push 0
push 0xc3
push eax
call dword [edx + 0xe4]
lea ecx, [esi - 2]
shl esi, 4
movss xmm0, dword [esp + esi + 0x180]
lea eax, [esp + esi + 0x180]
shl ecx, 4
subss xmm0, dword [esp + ecx + 0x190]
movss dword [esp + 0x120], xmm0
movss xmm0, dword [eax + 4]
subss xmm0, dword [esp + ecx + 0x194]
mov esi, dword [esp + 0x120]
lea ecx, [esp + ecx + 0x190]
movss dword [esp + 0x124], xmm0
movss xmm0, dword [eax + 8]
subss xmm0, dword [ecx + 8]
lea ecx, [ebx - 4]
mov edx, ecx
mov dword [edx], esi
mov esi, dword [esp + 0x124]
mov dword [edx + 4], esi
movss dword [esp + 0x128], xmm0
mov esi, dword [esp + 0x128]
mov dword [edx + 8], esi
mov esi, dword [esp + 0x12c]
mov dword [edx + 0xc], esi
movss xmm1, dword [ebx + 4]
movss xmm2, dword [ebx]
movss xmm0, dword [ecx]
movaps xmm3, xmm1
mulss xmm3, xmm1
mulss xmm0, xmm0
movaps xmm1, xmm2
addss xmm0, xmm3
mulss xmm1, xmm2
addss xmm0, xmm1
comiss xmm0, dword [0x738d48]
movss dword [esp + 0xc8], xmm0
jbe 0x5481ed
fld dword [esp + 0xc8]
fsqrt
fdivr dword [0x7389bc]
fld st(0)
fmul dword [ecx]
fstp dword [ecx]
fld st(0)
fmul dword [ebx]
fstp dword [ebx]
fmul dword [ebx + 4]
fstp dword [ebx + 4]
mov edx, dword [eax]
mov esi, dword [ebp + 8]
lea ecx, [ebx - 0x24]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x64]
add ebx, 0x100
dec eax
mov dword [esp + 0x64], eax
jne 0x547610
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4