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

Disassembly:
sub esp, 0x1f0
mov eax, dword [0x10083028]
xor eax, esp
mov dword [esp + 0x1ec], eax
mov edx, dword [esp + 0x1f4]
xor ecx, ecx
push esi
mov esi, dword [esp + 0x200]
xor eax, eax
push edi
mov edi, dword [esp + 0x200]
movq xmm0, qword [edx + 0x5c]
push edi
sub esp, 0xc
mov dword [esp + 0xc0], ecx
mov ecx, esp
mov dword [esp + 0x60], eax
mov eax, dword [edx + 0x64]
movq qword [esp + 0x3c], xmm0
movq xmm0, qword [edx + 0x44]
mov dword [esp + 0x44], eax
mov eax, dword [edx + 0x4c]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
lea eax, [esp + 0x30]
push eax
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], edx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x80], 1
mov dword [esp + 0x84], 0
mov dword [esp + 0x78], 0
call fcn.1004ff30
movss xmm2, dword [esp + 0x170]
add esp, 0x14
movss xmm3, dword [esp + 0x14c]
xorps xmm6, xmm6
movss xmm5, dword [esp + 0x148]
xor ecx, ecx
movq xmm0, qword [eax]
mov edx, dword [eax + 8]
movss xmm1, dword [esp + 0x140]
movss xmm7, dword [esp + 0x138]
movss xmm4, dword [esp + 0x134]
movq qword [esp + 0x74], xmm0
movss xmm0, dword [esp + 0x158]
mov edi, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
movss dword [esp + 0x5c], xmm0
movss xmm0, dword [esp + 0x154]
movss dword [esp + 0x68], xmm0
movss xmm0, dword [esp + 0x150]
movss dword [esp + 0x84], xmm0
movss xmm0, dword [esp + 0x144]
movss dword [esp + 0x80], xmm0
movss xmm0, dword [esp + 0x13c]
mov dword [esp + 0xb4], edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0xb8], edi
mov dword [esp + 0x98], eax
movss dword [esp + 0x54], xmm2
movss dword [esp + 0xa0], xmm3
movss dword [esp + 0x9c], xmm5
movss dword [esp + 0xa4], xmm1
movss dword [esp + 0xa8], xmm0
movss dword [esp + 0x90], xmm7
movss dword [esp + 0x94], xmm4
cmp edi, edx
jge case.default.0x10053144
mov edx, dword [esp + 0xb8]
xor edi, edi
mov dword [esp + 0x60], 1
mov al, byte [eax + edx]
inc edx
movzx eax, al
mov dword [esp + 0xb8], edx
mov dword [esp + 0xac], edx
mov dword [esp + 0x78], edx
lea esi, [eax - 1]
mov dword [esp + 0x58], eax
mov dword [esp + 0x88], esi
cmp esi, 0x1e
mov esi, dword [esp + 0x48]
ja case.default.0x100525c3
mov eax, dword [esp + 0x88]
movzx eax, byte [eax + 0x100537d4]
jmp dword [eax*4 + 0x10053784]
cmp dword [esp + 0x6c], edi
je 0x100525e3
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x70]
sar eax, 1
add edx, eax
mov dword [esp + 0x70], edx
jmp 0x100525e7
mov edx, dword [esp + 0x70]
lea eax, [edx + 7]
mov dword [esp + 0x6c], edi
cdq
and edx, 7
lea edi, [edx + eax]
mov edx, dword [esp + 0xb4]
sar edi, 3
add edi, dword [esp + 0xac]
mov dword [esp + 0xb8], edi
cmp edi, edx
jg 0x10052619
test edi, edi
jns 0x10052b24
mov edi, edx
mov dword [esp + 0xb8], edi
jmp 0x10052b24
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add dword [esp + 0x70], eax
jmp 0x10052b16
mov dword [esp + 0x6c], edi
cmp ecx, 2
jl case.default.0x10053144
movss xmm0, dword [esp + ecx*4 + 0x130]
sub esp, 8
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + ecx*4 + 0x134]
movss dword [esp], xmm0
push esi
call fcn.100503f0
mov ecx, dword [esp + 0xbc]
add esp, 0xc
jmp 0x10052afb
mov dword [esp + 0x6c], edi
cmp ecx, 1
jl case.default.0x10053144
movss xmm3, dword [esi + 8]
lea edi, [esi + 0xc]
movss xmm1, dword [esi + 0x10]
ucomiss xmm3, xmm1
lahf
test ah, 0x44
jp 0x100526ae
movss xmm2, dword [esi + 0x14]
movss xmm0, dword [edi]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x100526dc
cvttss2si eax, dword [edi]
push 0
push 0
push 0
push 0
push eax
cvttss2si eax, xmm3
push eax
push 2
push esi
call fcn.10050490
movss xmm1, dword [esi + 0x10]
add esp, 0x20
movss xmm2, dword [esi + 0x14]
mov ecx, dword [esp + 0xb0]
addss xmm2, dword [esp + ecx*4 + 0x130]
addss xmm1, xmm6
push 0
push 0
cvttss2si eax, xmm2
push 0
push 0
movss dword [esi + 8], xmm1
push eax
cvttss2si eax, xmm1
movss dword [esi + 0x10], xmm1
push eax
push 1
push esi
movss dword [esi + 0x14], xmm2
movss dword [edi], xmm2
call fcn.10050490
movss xmm3, dword [esp + 0xc0]
add esp, 0x20
mov ecx, dword [esp + 0xb0]
jmp 0x10052b04
mov dword [esp + 0x6c], edi
cmp ecx, 1
jl case.default.0x10053144
movss xmm3, dword [esi + 8]
lea edi, [esi + 0xc]
movss xmm1, dword [esi + 0x10]
ucomiss xmm3, xmm1
lahf
test ah, 0x44
jp 0x10052763
movss xmm2, dword [esi + 0x14]
movss xmm0, dword [edi]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x10052791
cvttss2si eax, dword [edi]
push 0
push 0
push 0
push 0
push eax
cvttss2si eax, xmm3
push eax
push 2
push esi
call fcn.10050490
movss xmm1, dword [esi + 0x10]
add esp, 0x20
movss xmm2, dword [esi + 0x14]
mov ecx, dword [esp + 0xb0]
addss xmm1, dword [esp + ecx*4 + 0x130]
addss xmm2, xmm6
jmp 0x100526e9
cmp ecx, 2
jl case.default.0x10053144
mov dword [esp + 0xac], 1
lea edi, [esp + 0x138]
nop word [eax + eax]
movss xmm0, dword [edi]
addss xmm0, dword [esi + 0x14]
movss xmm1, dword [edi - 4]
addss xmm1, dword [esi + 0x10]
push 0
push 0
cvttss2si eax, xmm0
push 0
push 0
movss dword [esi + 0x10], xmm1
push eax
cvttss2si eax, xmm1
movss dword [esi + 0x14], xmm0
push eax
push 2
push esi
call fcn.10050490
mov eax, dword [esp + 0xcc]
add esp, 0x20
mov ecx, dword [esp + 0xb0]
add eax, 2
add edi, 8
mov dword [esp + 0xac], eax
cmp eax, ecx
jl 0x100527c0
jmp 0x10052b04
cmp ecx, 1
jge 0x1005288f
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x1ec]
xor ecx, esp
call fcn.10056f1d
add esp, 0x1f0
ret
cmp ecx, 1
jl case.default.0x10053144
cmp edi, ecx
jge 0x10052b04
movss xmm0, dword [esi + 0x14]
movss xmm1, dword [esp + edi*4 + 0x134]
addss xmm0, xmm6
addss xmm1, dword [esi + 0x10]
push 0
push 0
push 0
cvttss2si eax, xmm0
push 0
movss dword [esi + 0x10], xmm1
push eax
cvttss2si eax, xmm1
movss dword [esi + 0x14], xmm0
push eax
push 2
push esi
call fcn.10050490
mov ecx, dword [esp + 0xd0]
add esp, 0x20
inc edi
cmp edi, ecx
jge 0x10052b04
movss xmm0, dword [esp + edi*4 + 0x134]
addss xmm0, dword [esi + 0x14]
movss xmm1, dword [esi + 0x10]
push 0
push 0
push 0
cvttss2si eax, xmm0
push 0
addss xmm1, xmm6
movss dword [esi + 0x14], xmm0
push eax
cvttss2si eax, xmm1
movss dword [esi + 0x10], xmm1
push eax
push 2
push esi
call fcn.10050490
mov ecx, dword [esp + 0xd0]
add esp, 0x20
inc edi
jmp 0x10052841
cmp ecx, 4
jl case.default.0x10053144
jmp 0x1005299a
cmp ecx, 4
jl case.default.0x10053144
lea eax, [edi + 3]
cmp eax, ecx
jge 0x10052ed7
mov eax, ecx
sub eax, edi
cmp eax, 5
jne 0x10052918
movss xmm7, dword [esp + edi*4 + 0x144]
jmp 0x1005291b
movaps xmm7, xmm6
movss xmm4, dword [esp + edi*4 + 0x134]
addss xmm4, dword [esi + 0x14]
movss xmm5, dword [esi + 0x10]
addss xmm5, xmm6
movaps xmm0, xmm4
addss xmm0, dword [esp + edi*4 + 0x13c]
movaps xmm2, xmm5
addss xmm2, dword [esp + edi*4 + 0x138]
cvttss2si eax, xmm0
movaps xmm1, xmm0
movaps xmm3, xmm2
push eax
cvttss2si eax, xmm2
addss xmm3, dword [esp + edi*4 + 0x144]
push eax
cvttss2si eax, xmm4
addss xmm1, xmm7
movss dword [esi + 0x10], xmm3
push eax
cvttss2si eax, xmm5
movss dword [esi + 0x14], xmm1
push eax
cvttss2si eax, xmm1
push eax
cvttss2si eax, xmm3
push eax
push 4
push esi
call fcn.10050490
mov ecx, dword [esp + 0xd0]
add esp, 0x20
add edi, 4
lea eax, [edi + 3]
cmp eax, ecx
jge 0x10052ed7
mov eax, ecx
sub eax, edi
cmp eax, 5
jne 0x100529b9
movss xmm1, dword [esp + edi*4 + 0x144]
jmp 0x100529bc
movaps xmm1, xmm6
movss xmm4, dword [esi + 0x14]
movss xmm5, dword [esp + edi*4 + 0x134]
addss xmm4, xmm6
addss xmm5, dword [esi + 0x10]
movaps xmm0, xmm4
addss xmm0, dword [esp + edi*4 + 0x13c]
movaps xmm2, xmm5
addss xmm2, dword [esp + edi*4 + 0x138]
cvttss2si eax, xmm0
movaps xmm3, xmm2
push eax
cvttss2si eax, xmm2
addss xmm3, xmm1
movaps xmm1, xmm0
addss xmm1, dword [esp + edi*4 + 0x144]
push eax
cvttss2si eax, xmm4
movss dword [esi + 0x10], xmm3
push eax
cvttss2si eax, xmm5
movss dword [esi + 0x14], xmm1
push eax
cvttss2si eax, xmm1
push eax
cvttss2si eax, xmm3
push eax
push 4
push esi
call fcn.10050490
mov ecx, dword [esp + 0xd0]
add esp, 0x20
add edi, 4
jmp 0x100528f9
cmp ecx, 6
jl case.default.0x10053144
mov dword [esp + 0xac], 5
lea edi, [esp + 0x138]
nop dword [eax + eax]
movss xmm4, dword [edi]
addss xmm4, dword [esi + 0x14]
movss xmm5, dword [edi - 4]
addss xmm5, dword [esi + 0x10]
movaps xmm0, xmm4
addss xmm0, dword [edi + 8]
movaps xmm2, xmm5
addss xmm2, dword [edi + 4]
cvttss2si eax, xmm0
movaps xmm1, xmm0
movaps xmm3, xmm2
push eax
addss xmm1, dword [edi + 0x10]
cvttss2si eax, xmm2
addss xmm3, dword [edi + 0xc]
push eax
cvttss2si eax, xmm4
movss dword [esi + 0x10], xmm3
push eax
cvttss2si eax, xmm5
movss dword [esi + 0x14], xmm1
push eax
cvttss2si eax, xmm1
push eax
cvttss2si eax, xmm3
push eax
push 4
push esi
call fcn.10050490
mov eax, dword [esp + 0xcc]
add esp, 0x20
mov ecx, dword [esp + 0xb0]
add eax, 6
add edi, 0x18
mov dword [esp + 0xac], eax
cmp eax, ecx
jl 0x10052a60
movss xmm4, dword [esp + 0x94]
movss xmm5, dword [esp + 0x9c]
movss xmm3, dword [esp + 0xa0]
movss xmm0, dword [esp + 0xa8]
movss xmm1, dword [esp + 0xa4]
mov edi, dword [esp + 0xb8]
mov edx, dword [esp + 0xb4]
movss xmm2, dword [esp + 0x54]
xor eax, eax
cmp dword [esp + 0x60], eax
cmove eax, ecx
mov ecx, eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0xb0], ecx
jmp 0x10052568
cmp ecx, 8
jl case.default.0x10053144
lea eax, [ecx - 2]
mov dword [esp + 0x88], eax
cmp eax, 5
jle 0x10052c3d
mov dword [esp + 0xac], 5
nop
movss xmm4, dword [esp + edi*4 + 0x138]
addss xmm4, dword [esi + 0x14]
movss xmm5, dword [esp + edi*4 + 0x134]
addss xmm5, dword [esi + 0x10]
movaps xmm0, xmm4
addss xmm0, dword [esp + edi*4 + 0x140]
movaps xmm2, xmm5
addss xmm2, dword [esp + edi*4 + 0x13c]
cvttss2si eax, xmm0
movaps xmm1, xmm0
movaps xmm3, xmm2
push eax
addss xmm1, dword [esp + edi*4 + 0x14c]
cvttss2si eax, xmm2
addss xmm3, dword [esp + edi*4 + 0x148]
push eax
cvttss2si eax, xmm4
movss dword [esi + 0x10], xmm3
push eax
cvttss2si eax, xmm5
movss dword [esi + 0x14], xmm1
push eax
cvttss2si eax, xmm1
push eax
cvttss2si eax, xmm3
push eax
push 4
push esi
call fcn.10050490
mov eax, dword [esp + 0xcc]
add edi, 6
add eax, 6
add esp, 0x20
mov ecx, edi
mov dword [esp + 0xac], eax
cmp eax, dword [esp + 0x88]
jl 0x10052b70
lea eax, [ecx + 1]
cmp eax, dword [esp + 0xb0]
jge case.default.0x10053144
movss xmm4, dword [esp + 0x94]
movss xmm3, dword [esp + 0xa0]
movss xmm5, dword [esp + 0x9c]
movss xmm0, dword [esp + edi*4 + 0x138]
addss xmm0, dword [esi + 0x14]
movss xmm1, dword [esp + edi*4 + 0x134]
addss xmm1, dword [esi + 0x10]
push 0
push 0
cvttss2si eax, xmm0
push 0
push 0
movss dword [esi + 0x10], xmm1
push eax
cvttss2si eax, xmm1
movss dword [esi + 0x14], xmm0
push eax
push 2
push esi
call fcn.10050490
mov ecx, dword [esp + 0xd0]
add esp, 0x20
jmp 0x10052b04
cmp ecx, 8
jl case.default.0x10053144
lea eax, [ecx - 6]
mov dword [esp + 0x88], eax
cmp eax, 1
jle 0x10052d32
mov dword [esp + 0xac], 1
nop dword [eax]
nop word [eax + eax]
movss xmm0, dword [esp + edi*4 + 0x138]
addss xmm0, dword [esi + 0x14]
movss xmm1, dword [esp + edi*4 + 0x134]
addss xmm1, dword [esi + 0x10]
push 0
push 0
cvttss2si eax, xmm0
push 0
push 0
movss dword [esi + 0x10], xmm1
push eax
cvttss2si eax, xmm1
movss dword [esi + 0x14], xmm0
push eax
push 2
push esi
call fcn.10050490
mov eax, dword [esp + 0xcc]
add edi, 2
add eax, 2
add esp, 0x20
mov ecx, edi
mov dword [esp + 0xac], eax
cmp eax, dword [esp + 0x88]
jl 0x10052cc0
lea eax, [ecx + 5]
cmp eax, dword [esp + 0xb0]
jge case.default.0x10053144
movss xmm4, dword [esp + edi*4 + 0x138]
addss xmm4, dword [esi + 0x14]
movss xmm5, dword [esp + edi*4 + 0x134]
addss xmm5, dword [esi + 0x10]
movaps xmm0, xmm4
addss xmm0, dword [esp + edi*4 + 0x140]
movaps xmm2, xmm5
addss xmm2, dword [esp + edi*4 + 0x13c]
cvttss2si eax, xmm0
movaps xmm1, xmm0
movaps xmm3, xmm2
push eax
addss xmm1, dword [esp + edi*4 + 0x14c]
cvttss2si eax, xmm2
addss xmm3, dword [esp + edi*4 + 0x148]
push eax
cvttss2si eax, xmm4
movss dword [esi + 0x10], xmm3
push eax
cvttss2si eax, xmm5
movss dword [esi + 0x14], xmm1
push eax
cvttss2si eax, xmm1
push eax
cvttss2si eax, xmm3
push eax
push 4
push esi
call fcn.10050490
movss xmm4, dword [esp + 0xb4]
add esp, 0x20
movss xmm5, dword [esp + 0x9c]
movss xmm3, dword [esp + 0xa0]
mov ecx, dword [esp + 0xb0]
jmp 0x10052b04
cmp ecx, 4
jl case.default.0x10053144
mov edx, ecx
movaps xmm1, xmm6
and edx, 1
je 0x10052dee
movaps xmm1, xmm4
lea eax, [edx + 3]
mov dword [esp + 0xac], eax
cmp eax, ecx
jge 0x10052b0d
lea edi, [esp + 0x13c]
lea edi, [edi + edx*4]
nop word [eax + eax]
cmp dword [esp + 0x58], 0x1b
movss xmm7, dword [esi + 0x10]
movss xmm0, dword [esi + 0x14]
movss xmm2, dword [edi - 4]
movss xmm3, dword [edi]
movss xmm5, dword [edi - 8]
jne 0x10052e56
addss xmm5, xmm7
addss xmm0, xmm1
movaps xmm1, xmm5
addss xmm1, xmm2
movaps xmm2, xmm0
addss xmm2, xmm3
movaps xmm3, xmm1
addss xmm3, dword [edi + 4]
movaps xmm4, xmm2
addss xmm4, xmm6
jmp 0x10052e7e
addss xmm7, xmm1
addss xmm0, xmm5
movaps xmm1, xmm7
movaps xmm5, xmm7
addss xmm1, xmm2
movaps xmm2, xmm0
addss xmm2, xmm3
movaps xmm3, xmm1
movaps xmm4, xmm2
addss xmm3, xmm6
addss xmm4, dword [edi + 4]
cvttss2si eax, xmm2
movss dword [esi + 0x10], xmm3
push eax
cvttss2si eax, xmm1
movss dword [esi + 0x14], xmm4
push eax
cvttss2si eax, xmm0
push eax
cvttss2si eax, xmm5
push eax
cvttss2si eax, xmm4
push eax
cvttss2si eax, xmm3
push eax
push 4
push esi
call fcn.10050490
mov eax, dword [esp + 0xcc]
add esp, 0x20
mov ecx, dword [esp + 0xb0]
add eax, 4
add edi, 0x10
mov dword [esp + 0xac], eax
movaps xmm1, xmm6
cmp eax, ecx
jl 0x10052e10
movss xmm4, dword [esp + 0x94]
movss xmm7, dword [esp + 0x90]
jmp 0x10052af2
cmp dword [esp + 0x50], edi
jne case.0x100525c3.29
mov eax, dword [esp + 0x4c]
cmp dword [eax + 0x7c], edi
je 0x10052f20
push dword [esp + 0x38]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.10050100
add esp, 0xc
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [esp + 0x2c], xmm0
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x50], 1
cmp ecx, 1
jl case.default.0x10053144
mov edi, dword [esp + 0x64]
dec ecx
mov dword [esp + 0xb0], ecx
cmp edi, 0xa
jge case.default.0x10053144
movq xmm0, qword [esp + 0x74]
lea eax, [edi + edi*2]
mov edx, dword [esp + 0xb4]
inc edi
cmp dword [esp + 0x58], 0xa
movq qword [esp + eax*4 + 0xbc], xmm0
mov dword [esp + eax*4 + 0xc4], edx
mov dword [esp + 0x64], edi
jne 0x10052f7f
lea edi, [esp + 0x2c]
jmp 0x10052f86
mov edi, dword [esp + 0x4c]
add edi, 0x50
movq xmm0, qword [edi]
mov edi, dword [edi + 8]
movq qword [esp + 0x3c], xmm0
test edi, edi
js 0x10052fb2
xor eax, eax
mov dword [esp + 0x40], eax
test edi, edi
jle 0x10052fb8
mov eax, dword [esp + 0x3c]
mov dl, byte [eax]
mov eax, 1
mov dword [esp + 0x40], eax
jmp 0x10052fba
mov eax, edi
mov dword [esp + 0x40], eax
xor dl, dl
movzx edx, dl
cmp eax, edi
jl 0x10052fc5
xor al, al
jmp 0x10052fe6
mov ecx, dword [esp + 0x3c]
mov cl, byte [ecx + eax]
inc eax
mov byte [esp + 0x8f], cl
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x40], eax
mov al, byte [esp + 0x8f]
shl edx, 8
movzx eax, al
or edx, eax
mov eax, 0x6b
cmp edx, 0x846c
jb 0x10053002
mov eax, 0x8000
jmp 0x10053010
cmp edx, 0x4d8
mov esi, 0x46b
cmovae eax, esi
cvttss2si esi, dword [esp + ecx*4 + 0x134]
add eax, esi
js 0x10053057
cmp eax, edx
jge 0x10053057
movq xmm0, qword [esp + 0x3c]
push eax
sub esp, 0xc
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], edi
lea eax, [esp + 0x18]
push eax
call fcn.1004ff30
mov ecx, dword [esp + 0xc4]
add esp, 0x14
movq xmm0, qword [eax]
mov edx, dword [eax + 8]
movq qword [esp + 0x20], xmm0
jmp 0x1005306f
mov dword [esp + 0x20], 0
xor edx, edx
mov dword [esp + 0x24], 0
movq xmm0, qword [esp + 0x20]
mov dword [esp + 0xb4], edx
movq qword [esp + 0x74], xmm0
mov dword [esp + 0x7c], edx
test edx, edx
je case.default.0x10053144
mov eax, dword [esp + 0x74]
xor edi, edi
movss xmm0, dword [esp + 0xa8]
mov dword [esp + 0xb8], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x98], eax
jmp 0x10052b24
mov eax, dword [esp + 0x64]
test eax, eax
jle case.default.0x10053144
dec eax
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], eax
lea eax, [eax + eax*2]
movq xmm0, qword [esp + eax*4 + 0xbc]
mov edx, dword [esp + eax*4 + 0xc4]
movq qword [esp + 0x74], xmm0
mov edi, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
movss xmm0, dword [esp + 0xa8]
mov dword [esp + 0xb4], edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0xb8], edi
mov dword [esp + 0x98], eax
jmp 0x10052b24
mov eax, edx
cmp eax, dword [esp + 0xb4]
jl 0x10053121
mov edi, dword [esp + 0xb8]
xor dl, dl
jmp 0x10053135
mov edi, dword [esp + 0x98]
mov dl, byte [edi + edx]
lea edi, [eax + 1]
mov dword [esp + 0xb8], edi
movzx eax, dl
add eax, 0xffffffde
cmp eax, 3
ja case.default.0x10053144
jmp dword [eax*4 + 0x100537f4]
cmp ecx, 7
jl case.default.0x10053144
movaps xmm5, xmm4
movaps xmm2, xmm7
movss xmm4, dword [esi + 0x14]
movaps xmm3, xmm1
addss xmm5, dword [esi + 0x10]
addss xmm4, xmm6
addss xmm2, xmm5
addss xmm0, xmm4
addss xmm3, xmm2
cvttss2si eax, xmm0
movaps xmm1, xmm0
movss dword [esi + 0x10], xmm3
push eax
cvttss2si eax, xmm2
addss xmm1, xmm6
push eax
cvttss2si eax, xmm4
movss dword [esi + 0x14], xmm1
push eax
cvttss2si eax, xmm5
push eax
cvttss2si eax, xmm1
push eax
cvttss2si eax, xmm3
push eax
push 4
push esi
call fcn.10050490
movss xmm4, dword [esi + 0x14]
movss xmm3, dword [esp + 0xa0]
addss xmm4, xmm6
addss xmm3, dword [esi + 0x10]
movss xmm5, dword [esp + 0xbc]
movss xmm1, dword [esp + 0xc0]
movaps xmm0, xmm4
subss xmm0, dword [esp + 0xc8]
addss xmm5, xmm3
movaps xmm2, xmm0
addss xmm1, xmm5
addss xmm2, xmm6
jmp 0x100534e0
cmp ecx, 0xd
jl case.default.0x10053144
movaps xmm5, xmm4
movss xmm3, dword [esp + 0x80]
addss xmm5, dword [esi + 0x10]
movaps xmm4, xmm7
movaps xmm2, xmm0
addss xmm4, dword [esi + 0x14]
movaps xmm0, xmm1
movss xmm1, dword [esp + 0x9c]
addss xmm2, xmm5
addss xmm0, xmm4
addss xmm3, xmm2
cvttss2si eax, xmm0
addss xmm1, xmm0
movss dword [esi + 0x10], xmm3
push eax
cvttss2si eax, xmm2
movss dword [esi + 0x14], xmm1
push eax
cvttss2si eax, xmm4
push eax
cvttss2si eax, xmm5
push eax
cvttss2si eax, xmm1
push eax
cvttss2si eax, xmm3
push eax
push 4
push esi
call fcn.10050490
movss xmm3, dword [esp + 0xc0]
movss xmm4, dword [esp + 0xa4]
addss xmm3, dword [esi + 0x10]
addss xmm4, dword [esi + 0x14]
movss xmm5, dword [esp + 0x88]
movss xmm0, dword [esp + 0x7c]
movss xmm1, dword [esp + 0x74]
movss xmm2, dword [esp + 0x180]
addss xmm5, xmm3
addss xmm0, xmm4
addss xmm1, xmm5
addss xmm2, xmm0
jmp 0x100534e0
cmp ecx, 9
jl case.default.0x10053144
movaps xmm5, xmm4
movss xmm3, dword [esp + 0x80]
addss xmm5, dword [esi + 0x10]
movaps xmm4, xmm7
movaps xmm2, xmm0
addss xmm4, dword [esi + 0x14]
movaps xmm0, xmm1
addss xmm2, xmm5
addss xmm0, xmm4
addss xmm3, xmm2
cvttss2si eax, xmm0
movaps xmm1, xmm0
movss dword [esi + 0x10], xmm3
push eax
cvttss2si eax, xmm2
addss xmm1, xmm6
push eax
cvttss2si eax, xmm4
movss dword [esi + 0x14], xmm1
push eax
cvttss2si eax, xmm5
push eax
cvttss2si eax, xmm1
push eax
cvttss2si eax, xmm3
push eax
push 4
push esi
call fcn.10050490
movss xmm4, dword [esi + 0x14]
movss xmm0, dword [esp + 0xc4]
addss xmm4, xmm6
movss xmm3, dword [esp + 0xbc]
addss xmm0, xmm7
addss xmm3, dword [esi + 0x10]
movss xmm2, dword [esp + 0xa4]
movss xmm5, dword [esp + 0xc0]
movss xmm1, dword [esp + 0x88]
addss xmm2, xmm4
addss xmm0, dword [esp + 0xa4]
addss xmm5, xmm3
movss dword [esp + 0xa8], xmm2
subss xmm2, xmm0
movss xmm0, dword [esp + 0xa8]
addss xmm1, xmm5
jmp 0x100534e0
cmp ecx, 0xb
jl case.default.0x10053144
movaps xmm7, xmm2
movaps xmm2, xmm4
addss xmm2, xmm0
movss dword [esp + 0xac], xmm7
addss xmm2, dword [esp + 0x80]
addss xmm2, xmm3
movaps xmm3, xmm1
addss xmm3, dword [esp + 0x90]
addss xmm2, dword [esp + 0x68]
addss xmm3, xmm5
movaps xmm1, xmm2
addss xmm3, dword [esp + 0x84]
andps xmm1, xmmword [0x10078220]
addss xmm3, dword [esp + 0x5c]
movaps xmm0, xmm3
andps xmm0, xmmword [0x10078220]
comiss xmm1, xmm0
jbe 0x10053404
movaps xmm7, xmm3
xorps xmm7, xmmword [0x10078bf0]
jmp 0x10053417
movaps xmm0, xmm2
xorps xmm0, xmmword [0x10078bf0]
movss dword [esp + 0xac], xmm0
movss xmm0, dword [esp + 0xa4]
movaps xmm5, xmm4
movss xmm4, dword [esp + 0x90]
addss xmm4, dword [esi + 0x14]
addss xmm5, dword [esi + 0x10]
movss xmm2, dword [esp + 0xa8]
movss xmm1, dword [esp + 0x9c]
movss xmm3, dword [esp + 0x80]
addss xmm0, xmm4
addss xmm2, xmm5
cvttss2si eax, xmm0
addss xmm1, xmm0
push eax
cvttss2si eax, xmm2
addss xmm3, xmm2
movss dword [esi + 0x14], xmm1
push eax
cvttss2si eax, xmm4
movss dword [esi + 0x10], xmm3
push eax
cvttss2si eax, xmm5
push eax
cvttss2si eax, xmm1
push eax
cvttss2si eax, xmm3
push eax
push 4
push esi
call fcn.10050490
movss xmm4, dword [esp + 0xa4]
movss xmm3, dword [esp + 0xc0]
addss xmm4, dword [esi + 0x14]
addss xmm3, dword [esi + 0x10]
movss xmm0, dword [esp + 0x7c]
movss xmm5, dword [esp + 0x88]
addss xmm0, xmm4
addss xmm5, xmm3
movaps xmm2, xmm0
movaps xmm1, xmm5
addss xmm2, xmm7
addss xmm1, dword [esp + 0xcc]
movss xmm7, dword [esp + 0xb0]
add esp, 0x20
movss dword [esi + 0x10], xmm1
cvttss2si eax, xmm0
movss dword [esi + 0x14], xmm2
push eax
cvttss2si eax, xmm5
push eax
cvttss2si eax, xmm4
push eax
cvttss2si eax, xmm3
push eax
cvttss2si eax, xmm2
push eax
cvttss2si eax, xmm1
push eax
push 4
push esi
call fcn.10050490
movss xmm4, dword [esp + 0xb4]
add esp, 0x20
movss xmm0, dword [esp + 0xa8]
movss xmm1, dword [esp + 0xa4]
movss xmm3, dword [esp + 0xa0]
movss xmm5, dword [esp + 0x9c]
mov ecx, dword [esp + 0xb0]
jmp 0x10052b1d
mov eax, dword [esp + 0x58]
cmp eax, 0xff
je 0x100535c5
cmp eax, 0x1c
je 0x10053568
cmp eax, 0x20
jb case.default.0x10053144
mov eax, dword [esp + 0xb4]
dec edx
cmp edx, eax
jg 0x1005357c
mov dword [esp + 0x78], edx
test edx, edx
jns 0x10053580
mov dword [esp + 0x78], eax
lea eax, [esp + 0x74]
push eax
call fcn.10050010
mov edx, dword [esp + 0x80]
add esp, 4
mov edi, dword [esp + 0x78]
mov ecx, dword [esp + 0xb0]
cwde
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], edi
movd xmm0, eax
mov eax, dword [esp + 0x74]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x98], eax
jmp 0x1005367f
mov eax, edx
cmp eax, dword [esp + 0xb4]
jl 0x100535db
mov edi, dword [esp + 0xb8]
xor dl, dl
jmp 0x100535f1
mov edi, dword [esp + 0x98]
mov dl, byte [edi + edx]
lea edi, [eax + 1]
mov dword [esp + 0xb8], edi
mov eax, edi
movzx edx, dl
cmp eax, dword [esp + 0xb4]
jl 0x10053601
xor al, al
jmp 0x10053613
mov eax, dword [esp + 0x98]
mov al, byte [eax + edi]
inc edi
mov dword [esp + 0xb8], edi
shl edx, 8
movzx eax, al
or edx, eax
cmp edi, dword [esp + 0xb4]
jl 0x10053628
xor al, al
jmp 0x1005363a
mov eax, dword [esp + 0x98]
mov al, byte [eax + edi]
inc edi
mov dword [esp + 0xb8], edi
shl edx, 8
movzx eax, al
or edx, eax
cmp edi, dword [esp + 0xb4]
jl 0x1005364f
xor al, al
jmp 0x10053661
mov eax, dword [esp + 0x98]
mov al, byte [eax + edi]
inc edi
mov dword [esp + 0xb8], edi
shl edx, 8
movzx eax, al
or edx, eax
movd xmm0, edx
mov edx, dword [esp + 0xb4]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x1007ebe8]
cmp ecx, 0x30
jge case.default.0x10053144
movss dword [esp + ecx*4 + 0x134], xmm0
inc ecx
movss xmm0, dword [esp + 0x15c]
movss xmm3, dword [esp + 0x14c]
movss xmm5, dword [esp + 0x148]
movss xmm2, dword [esp + 0x144]
movss xmm1, dword [esp + 0x140]
movss xmm7, dword [esp + 0x138]
movss xmm4, dword [esp + 0x134]
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x158]
movss dword [esp + 0x5c], xmm0
movss xmm0, dword [esp + 0x154]
movss dword [esp + 0x68], xmm0
movss xmm0, dword [esp + 0x150]
movss dword [esp + 0x84], xmm0
movss xmm0, dword [esp + 0x13c]
mov dword [esp + 0x60], 0
movss dword [esp + 0xa0], xmm3
movss dword [esp + 0x9c], xmm5
movss dword [esp + 0x80], xmm2
movss dword [esp + 0xa4], xmm1
movss dword [esp + 0xa8], xmm0
movss dword [esp + 0x90], xmm7
movss dword [esp + 0x94], xmm4
jmp 0x10052b24
push esi
call fcn.100503a0
mov ecx, dword [esp + 0x1f8]
add esp, 4
mov eax, 1
pop edi
pop esi
xor ecx, esp
call fcn.10056f1d
add esp, 0x1f0
ret