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

Disassembly:
sub esp, 0x174
mov eax, dword [0x73d6e0]
xor eax, esp
mov dword [esp + 0x170], eax
push ebx
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x94], 0
push edi
mov dword [esp + 0x58], esi
mov dword [esp + 0x9c], 0
mov eax, dword [esi + 4]
mov dword [esp + 0xa0], eax
mov eax, dword [esi + 8]
mov dword [esp + 0xa4], eax
lea eax, [esp + 0x160]
push eax
mov eax, dword [esp + 0x18c]
push dword [eax + 0xc]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
call fcn.005382b0
lea eax, [esp + 0x160]
test eax, eax
je 0x538c01
lea eax, [esp + 0x98]
test eax, eax
je 0x538c01
lea eax, [esp + 0x160]
push eax
lea ecx, [esp + 0xac]
call fcn.005397a0
test al, al
je 0x538c01
lea ecx, [esp + 0xa8]
call fcn.005393b0
lea eax, [esp + 0x98]
push eax
lea ecx, [esp + 0xf4]
call fcn.005392b0
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0x114]
call fcn.005397a0
test al, al
je 0x538c01
lea eax, [esp + 0x110]
push eax
lea ecx, [esp + 0xac]
call fcn.005395b0
movss xmm1, dword [0x6bdc5c]
movss xmm2, dword [0x6f8778]
movss xmm0, dword [esp + 0xa8]
mulss xmm0, xmm1
mov ebx, dword [esi + 8]
mov ebp, dword [esi + 0x18]
dec ebx
mov dword [esp + 0x3c], ebx
addss xmm0, xmm2
mov dword [esp + 0x1c], ebp
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0xac]
mulss xmm0, xmm1
mov dword [esp + 0x6c], eax
addss xmm0, xmm2
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0xb0]
mulss xmm0, xmm1
mov dword [esp + 0x68], eax
addss xmm0, xmm2
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0xb4]
mulss xmm0, xmm1
mov dword [esp + 0x88], eax
addss xmm0, xmm2
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0xb8]
mulss xmm0, xmm1
mov dword [esp + 0x48], eax
addss xmm0, xmm2
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0xbc]
mulss xmm0, xmm1
mov dword [esp + 0x5c], eax
addss xmm0, xmm2
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0xc0]
mulss xmm0, xmm1
mov dword [esp + 0x7c], eax
addss xmm0, xmm2
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0xc4]
mulss xmm0, xmm1
mov dword [esp + 0x78], eax
addss xmm0, xmm2
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0xc8]
mulss xmm0, xmm1
mov dword [esp + 0x70], eax
addss xmm0, xmm2
cvttss2si eax, xmm0
mov dword [esp + 0x94], eax
mov eax, dword [esi + 4]
dec eax
mov dword [esp + 0x50], eax
lea ecx, [eax*4]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x74], ecx
imul ecx, ebx
cdq
and edx, 7
add eax, edx
sar eax, 3
push ecx
push 0
push ebp
mov dword [esp + 0x1c], eax
call fcn.00549c70
mov edi, dword [esp + 0x174]
add esp, 0xc
cmp dword [esp + 0x160], edi
mov ecx, edi
mov edx, dword [esp + 0x170]
mov eax, edx
cmovl ecx, dword [esp + 0x160]
mov ebx, dword [esp + 0x178]
cmp ecx, edx
cmovl eax, ecx
cmp eax, ebx
jge 0x538d73
cmp ecx, edx
mov eax, edx
cmovl eax, ecx
jmp 0x538d75
mov eax, ebx
test eax, eax
jns 0x538d81
xor ebp, ebp
mov dword [esp + 0x40], ebp
jmp 0x538d9f
cmp ecx, edx
mov eax, edx
cmovl eax, ecx
cmp eax, ebx
jge 0x538d99
cmp ecx, edx
mov ebp, edx
cmovl ebp, ecx
mov dword [esp + 0x40], ebp
jmp 0x538d9f
mov ebp, ebx
mov dword [esp + 0x40], ebx
mov esi, dword [esp + 0x16c]
mov ebx, esi
cmp dword [esp + 0x164], esi
mov ecx, dword [esp + 0x174]
mov eax, ecx
cmovl ebx, dword [esp + 0x164]
cmp ebx, ecx
cmovl eax, ebx
cmp eax, dword [esp + 0x17c]
jge 0x538dd7
cmp ebx, ecx
mov eax, ecx
cmovl eax, ebx
jmp 0x538dde
mov eax, dword [esp + 0x17c]
test eax, eax
jns 0x538de6
xor ebx, ebx
jmp 0x538e08
cmp ebx, ecx
mov eax, ecx
cmovl eax, ebx
cmp eax, dword [esp + 0x17c]
jge 0x538e01
cmp ebx, ecx
mov eax, ecx
cmovl eax, ebx
mov ebx, eax
jmp 0x538e08
mov ebx, dword [esp + 0x17c]
cmp dword [esp + 0x160], edi
mov eax, edx
cmovg edi, dword [esp + 0x160]
cmp edi, edx
cmovg eax, edi
cmp eax, dword [esp + 0x178]
jle 0x538e30
cmp edi, edx
mov eax, edx
cmovg eax, edi
jmp 0x538e37
mov eax, dword [esp + 0x178]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x50]
cmp eax, dword [esp + 0x20]
jge 0x538e4d
mov edx, eax
mov dword [esp + 0x30], eax
jmp 0x538e6f
cmp edi, edx
mov eax, edx
cmovg eax, edi
cmp eax, dword [esp + 0x178]
jle 0x538e64
cmp edi, edx
cmovg edx, edi
jmp 0x538e6b
mov edx, dword [esp + 0x178]
mov dword [esp + 0x30], edx
cmp dword [esp + 0x164], esi
mov eax, ecx
mov edi, dword [esp + 0x17c]
cmovg esi, dword [esp + 0x164]
cmp esi, ecx
cmovg eax, esi
cmp eax, edi
jle 0x538e99
cmp esi, ecx
mov eax, ecx
cmovg eax, esi
jmp 0x538e9b
mov eax, edi
cmp dword [esp + 0x3c], eax
jge 0x538ea7
mov ecx, dword [esp + 0x3c]
jmp 0x538ebb
cmp esi, ecx
mov eax, ecx
cmovg eax, esi
cmp eax, edi
jle 0x538eb9
cmp esi, ecx
cmovg ecx, esi
jmp 0x538ebb
mov ecx, edi
mov eax, ebx
imul eax, dword [esp + 0x74]
add dword [esp + 0x1c], eax
cmp ebx, ecx
jge 0x539294
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x5c]
movss xmm5, dword [0x6b7e70]
imul eax, ebx
imul esi, ebx
imul edi, ebx
sub ecx, ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x60], edi
cmp ebp, edx
jge 0x539269
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x78]
mov edx, dword [esp + 0x1c]
imul esi, ebp
add edx, 2
imul ebx, ebp
add esi, edi
mov edi, dword [esp + 0x6c]
add esi, dword [esp + 0x7c]
add ebx, eax
add ebx, dword [esp + 0x94]
mov eax, ebp
imul eax, dword [esp + 0x10]
imul edi, ebp
add edx, eax
mov eax, dword [esp + 0x30]
add edi, dword [esp + 0x20]
add edi, dword [esp + 0x88]
sub eax, ebp
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x44], edx
mov dword [esp + 0x64], eax
lea ebx, [ebx]
movd xmm0, ebx
movaps xmm1, xmm5
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x38], 0
mov dword [esp + 0x54], 0
movd xmm3, edi
divss xmm1, xmm0
movd xmm4, esi
cvtdq2ps xmm3, xmm3
cvtdq2ps xmm4, xmm4
mulss xmm3, xmm1
mulss xmm4, xmm1
movss dword [esp + 0x158], xmm3
movss dword [esp + 0x15c], xmm4
fld dword [esp + 0x158]
fistp dword [esp + 0x38]
fld dword [esp + 0x15c]
fistp dword [esp + 0x54]
mov eax, dword [esp + 0x38]
test eax, eax
js 0x539231
cmp eax, dword [esp + 0x50]
jge 0x539231
mov ebp, dword [esp + 0x54]
test ebp, ebp
js 0x53922d
cmp ebp, dword [esp + 0x3c]
jge 0x53922d
movd xmm0, dword [esp + 0x38]
movaps xmm2, xmm5
cvtdq2ps xmm0, xmm0
mov edx, eax
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x15c], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x2c], 0
movss xmm6, dword [0x6bdc5c]
movaps xmm1, xmm5
subss xmm3, xmm0
movss xmm7, dword [0x6f8778]
movd xmm0, ebp
cvtdq2ps xmm0, xmm0
mov ecx, dword [ecx + 0x10]
mov eax, ecx
mov dword [esp + 0x28], 0
imul edx, dword [esp + 0x10]
subss xmm1, xmm3
subss xmm4, xmm0
imul eax, ebp
movaps xmm0, xmm4
subss xmm2, xmm4
mulss xmm0, xmm3
add edx, eax
mov eax, dword [esp + 0x58]
mulss xmm0, xmm6
add edx, dword [eax + 0x14]
mov eax, dword [esp + 0x10]
add eax, edx
mov dword [esp + 0x8c], edx
addss xmm0, xmm7
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
add edx, ecx
add eax, edx
mov dword [esp + 0x18], eax
movss dword [esp + 0x158], xmm0
movaps xmm0, xmm2
mulss xmm0, xmm3
mulss xmm0, xmm6
addss xmm0, xmm7
movss dword [esp + 0x90], xmm0
movaps xmm0, xmm1
mulss xmm0, xmm4
mulss xmm1, xmm2
mulss xmm0, xmm6
mulss xmm1, xmm6
addss xmm0, xmm7
addss xmm1, xmm7
movss dword [esp + 0x80], xmm0
movss dword [esp + 0x84], xmm1
fld dword [esp + 0x158]
fistp dword [esp + 0x15c]
fld dword [esp + 0x90]
fistp dword [esp + 0x24]
fld dword [esp + 0x80]
fistp dword [esp + 0x2c]
fld dword [esp + 0x84]
fistp dword [esp + 0x28]
mov ebp, dword [esp + 0x8c]
movzx eax, byte [edx]
inc edx
imul eax, dword [esp + 0x2c]
mov dword [esp + 0x158], edx
movzx ecx, byte [ebp]
imul ecx, dword [esp + 0x28]
add ecx, eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax]
imul eax, dword [esp + 0x15c]
add ecx, eax
mov eax, dword [esp + 0x14]
inc dword [esp + 0x14]
movzx eax, byte [eax]
imul eax, dword [esp + 0x24]
add ecx, eax
mov eax, dword [esp + 0x44]
sar ecx, 0x10
mov byte [eax - 2], cl
mov eax, dword [esp + 0x18]
movzx ecx, byte [ebp + 1]
inc eax
imul ecx, dword [esp + 0x28]
mov dword [esp + 0x18], eax
movzx eax, byte [eax]
imul eax, dword [esp + 0x15c]
add ecx, eax
movzx eax, byte [edx]
imul eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x44]
inc dword [esp + 0x158]
add ecx, eax
mov eax, dword [esp + 0x14]
inc dword [esp + 0x14]
movzx eax, byte [eax]
imul eax, dword [esp + 0x24]
add ecx, eax
mov eax, dword [esp + 0x18]
inc eax
sar ecx, 0x10
mov byte [edx - 1], cl
movzx ecx, byte [ebp + 2]
imul ecx, dword [esp + 0x28]
mov dword [esp + 0x18], eax
movzx eax, byte [eax]
imul eax, dword [esp + 0x15c]
add ecx, eax
mov eax, dword [esp + 0x158]
movzx eax, byte [eax]
imul eax, dword [esp + 0x2c]
add ecx, eax
mov eax, dword [esp + 0x14]
movzx eax, byte [eax]
imul eax, dword [esp + 0x24]
add ecx, eax
sar ecx, 0x10
cmp dword [esp + 0x10], 4
mov byte [edx], cl
jne 0x53922d
mov eax, dword [esp + 0x158]
movzx ecx, byte [ebp + 3]
imul ecx, dword [esp + 0x28]
movzx eax, byte [eax + 1]
imul eax, dword [esp + 0x2c]
add ecx, eax
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 1]
imul eax, dword [esp + 0x24]
add ecx, eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 1]
imul eax, dword [esp + 0x15c]
add ecx, eax
sar ecx, 0x10
mov byte [edx + 1], cl
mov ebp, dword [esp + 0x10]
add ebx, dword [esp + 0x78]
add edx, ebp
add edi, dword [esp + 0x6c]
add esi, dword [esp + 0x48]
dec dword [esp + 0x64]
mov dword [esp + 0x44], edx
jne 0x538f60
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x40]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x74]
add edi, dword [esp + 0x5c]
add esi, dword [esp + 0x68]
add eax, dword [esp + 0x70]
dec ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x60], edi
mov dword [esp + 0x20], esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x34], ecx
jne 0x538f01
mov ecx, dword [esp + 0x180]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005472b9
add esp, 0x174
ret 4