Function at 0x47e96f
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x34
mov ebx, ecx
movzx edi, byte [ebp + 0x14]
mov esi, ebx
mov ecx, edx
mov edx, eax
mov eax, dword [0x52cfb4]
and esi, 3
movss xmm0, dword [edi*4 + 0x54a030]
xor eax, esp
mov dword [esp + 0x30], eax
movss xmm4, dword [edi*4 + 0x549a40]
pxor xmm5, xmm5
movss dword [esp + 4], xmm0
xor edi, edi
shr ebx, 2
je 0x47e78a
movss dword [esp + 8], xmm4
mov eax, edi
movss dword [esp + 0xc], xmm5
mov dword [esp], esi
add eax, 0x10
movss xmm0, dword [esp + 8]
lea esi, [ecx + eax]
movss xmm7, dword [esi - 0x10]
movss xmm3, dword [esi - 8]
movss xmm1, dword [esi - 0xc]
movss xmm2, dword [esi - 4]
mulss xmm7, xmm0
mulss xmm3, xmm0
mulss xmm1, xmm0
mulss xmm2, xmm0
movaps xmm5, xmm7
movaps xmm4, xmm3
unpcklps xmm5, xmm1
unpcklps xmm4, xmm2
movlhps xmm5, xmm4
cvttps2dq xmm6, xmm5
movd edi, xmm6
movdqa xmm0, xmm6
psrldq xmm0, 4
movdqa xmm4, xmm6
psrldq xmm4, 8
movdqa xmm5, xmm6
psrldq xmm5, 0xc
addss xmm7, dword [edi*4 + 0x541a00]
movd edi, xmm0
addss xmm1, dword [edi*4 + 0x541a00]
movd edi, xmm4
addss xmm3, dword [edi*4 + 0x541a00]
movd edi, xmm5
addss xmm2, dword [edi*4 + 0x541a00]
movss dword [esp + 0x10], xmm7
movss dword [esp + 0x14], xmm1
movss dword [esp + 0x18], xmm3
movss dword [esp + 0x1c], xmm2
unpcklps xmm7, xmm1
unpcklps xmm3, xmm2
movlhps xmm7, xmm3
cvttps2dq xmm1, xmm7
movd edi, xmm1
movdqa xmm3, xmm1
psrldq xmm3, 4
movdqa xmm0, xmm1
psrldq xmm0, 8
movdqa xmm6, xmm1
psrldq xmm6, 0xc
movss xmm4, dword [edi*4 + 0x54a440]
movd edi, xmm3
movss xmm5, dword [esp + 4]
movss xmm3, dword [eax + edx - 8]
mulss xmm4, xmm5
movss xmm7, dword [edi*4 + 0x54a440]
movd edi, xmm0
andps xmm3, xmmword [0x4ca510]
movss xmm2, dword [eax + edx - 0x10]
andps xmm2, xmmword [0x4ca510]
movss xmm0, dword [edi*4 + 0x54a440]
subss xmm2, xmm4
mulss xmm0, xmm5
mulss xmm7, xmm5
movd edi, xmm6
subss xmm3, xmm0
movss xmm6, dword [edi*4 + 0x54a440]
mulss xmm6, xmm5
movaps xmm5, xmm2
mulss xmm5, xmm2
movss xmm0, dword [eax + edx - 4]
andps xmm0, xmmword [0x4ca510]
movdqu xmmword [esp + 0x20], xmm1
subss xmm0, xmm6
movss xmm1, dword [eax + edx - 0xc]
movaps xmm4, xmm0
andps xmm1, xmmword [0x4ca510]
mulss xmm4, xmm0
subss xmm1, xmm7
addss xmm4, xmm5
movaps xmm6, xmm1
movaps xmm7, xmm3
mulss xmm6, xmm1
mulss xmm7, xmm3
addss xmm4, xmm6
movss xmm5, dword [esp + 0xc]
addss xmm4, xmm7
addss xmm5, xmm4
movss dword [esp + 0xc], xmm5
dec ebx
jne 0x47e5be
movss xmm4, dword [esp + 8]
mov ecx, esi
xor edi, edi
mov esi, dword [esp]
add edx, eax
movss dword [esp + 0x1c], xmm0
movss dword [esp + 0x18], xmm3
movss dword [esp + 0x14], xmm1
movss dword [esp + 0x10], xmm2
test esi, esi
je 0x47e947
mov dword [esp + 0x1c], edi
cmp esi, 3
je 0x47e7d5
mov dword [esp + 0x18], edi
cmp esi, 2
je 0x47e7cc
mov dword [esp + 0x14], edi
cmp esi, 1
jne 0x47e7b9
cmp esi, 3
pxor xmm0, xmm0
movaps xmm1, xmm0
jmp 0x47e7f3
mov dword [esp + 0x10], edi
cmp esi, 3
pxor xmm4, xmm4
movaps xmm0, xmm4
movaps xmm1, xmm0
jmp 0x47e801
cmp esi, 3
pxor xmm1, xmm1
jmp 0x47e7e4
movss xmm1, dword [ecx + 8]
mulss xmm1, xmm4
movss dword [esp + 0x18], xmm1
movss xmm0, dword [ecx + 4]
mulss xmm0, xmm4
movss dword [esp + 0x14], xmm0
movss xmm2, dword [ecx]
mulss xmm4, xmm2
movss dword [esp + 0x10], xmm4
cvttps2dq xmm2, xmmword [esp + 0x10]
movdqa xmm6, xmm2
movdqa xmm3, xmm2
psrldq xmm6, 8
movdqa xmm7, xmm2
psrldq xmm3, 4
movd eax, xmm2
movd ecx, xmm3
movd ebx, xmm6
psrldq xmm7, 0xc
addss xmm4, dword [eax*4 + 0x541a00]
movd eax, xmm7
addss xmm0, dword [ecx*4 + 0x541a00]
addss xmm1, dword [ebx*4 + 0x541a00]
movd xmm2, dword [eax*4 + 0x541a00]
movss dword [esp + 0x10], xmm4
movss dword [esp + 0x14], xmm0
movss dword [esp + 0x18], xmm1
unpcklps xmm4, xmm0
unpcklps xmm1, xmm2
movlhps xmm4, xmm1
cvttps2dq xmm0, xmm4
movdqu xmmword [esp + 0x20], xmm0
mov dword [esp + 0x1c], edi
je 0x47e8b5
mov dword [esp + 0x18], edi
cmp esi, 2
je 0x47e8af
mov dword [esp + 0x14], edi
cmp esi, 1
jne 0x47e89c
pxor xmm1, xmm1
movaps xmm2, xmm1
jmp 0x47e907
mov dword [esp + 0x10], edi
pxor xmm3, xmm3
movaps xmm1, xmm3
movaps xmm2, xmm1
jmp 0x47e92f
pxor xmm2, xmm2
jmp 0x47e8de
mov eax, dword [esp + 0x28]
movss xmm2, dword [edx + 8]
andps xmm2, xmmword [0x4ca510]
movss xmm0, dword [eax*4 + 0x54a440]
mulss xmm0, dword [esp + 4]
subss xmm2, xmm0
movss dword [esp + 0x18], xmm2
mov eax, dword [esp + 0x24]
movss xmm1, dword [edx + 4]
andps xmm1, xmmword [0x4ca510]
movss xmm0, dword [eax*4 + 0x54a440]
mulss xmm0, dword [esp + 4]
subss xmm1, xmm0
movss dword [esp + 0x14], xmm1
mov eax, dword [esp + 0x20]
movss xmm3, dword [edx]
andps xmm3, xmmword [0x4ca510]
movss xmm0, dword [eax*4 + 0x54a440]
mulss xmm0, dword [esp + 4]
subss xmm3, xmm0
movss dword [esp + 0x10], xmm3
mulss xmm3, xmm3
mulss xmm1, xmm1
mulss xmm2, xmm2
addss xmm3, xmm1
addss xmm3, xmm2
addss xmm5, xmm3
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x30], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x47e96f
movss dword [esp], xmm5
fld dword [esp]
add esp, 0x34
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
call fcn.00497ce0
nop dword [eax + eax]
nop dword [eax]
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0xf4
mov ecx, dword [ebp + 8]
mov eax, dword [0x52cfb4]
xor eax, esp
mov dword [esp + 0xec], eax
mov eax, dword [ecx + 0x10]
mov edx, dword [ecx + 0xc]
mov dword [esp + 0xc], edx
mov edx, dword [ecx + 0x14]
mov dword [esp + 8], edx
mov edx, dword [eax + 0x1300]
test edx, edx
jle 0x47ec44
cmp edx, 4
jl 0x47f47e
mov esi, dword [ebp + 0xc]
and esi, 0xf
je 0x47e9e4
test esi, 3
jne 0x47f47e
neg esi
add esi, 0x10
shr esi, 2
lea ecx, [esi + 4]
cmp edx, ecx
jl 0x47f47e
mov edi, edx
xor ebx, ebx
sub edi, esi
xor ecx, ecx
and edi, 3
neg edi
add edi, edx
mov dword [esp + 0x10], ecx
test esi, esi
jbe 0x47ea71
mov dword [esp], 0
mov dword [esp + 0x44], edx
mov dword [esp + 4], edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], eax
mov edx, dword [esp]
mov esi, dword [ebp + 0xc]
mov edi, dword [esp + 0x10]
mov eax, dword [esi + edx*4]
neg eax
add eax, dword [ebp + 0x14]
cmp eax, edi
cmovge edi, eax
mov dword [esp + 0x10], edi
movzx edi, byte [edx + 0x4ca560]
inc edx
lea esi, [edi + edi + 0x38]
neg esi
add esi, eax
cmp esi, ebx
cmovge ebx, esi
lea esi, [edi*4 + 0x38]
sub eax, esi
cmp eax, ecx
cmovge ecx, eax
cmp edx, dword [esp + 0x18]
jb 0x47ea20
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
movd xmm0, dword [ebp + 0x14]
movd xmm5, ebx
movd xmm6, dword [esp + 0x10]
movd xmm4, ecx
pshufd xmm0, xmm0, 0
pshufd xmm6, xmm6, 0
pshufd xmm5, xmm5, 0
pshufd xmm4, xmm4, 0
movdqu xmm3, xmmword [str.8888]
movdqu xmmword [esp + 0x20], xmm0
mov ecx, dword [ebp + 0xc]
movdqu xmm2, xmmword [esp + 0x20]
movdqa xmm7, xmm6
psubd xmm2, xmmword [ecx + esi*4]
movdqa xmm0, xmm2
pxor xmm7, xmm2
pcmpgtd xmm0, xmm6
pand xmm0, xmm7
movd xmm1, dword [esi + 0x4ca560]
pxor xmm7, xmm7
punpcklbw xmm1, xmm7
pxor xmm6, xmm0
punpcklwd xmm1, xmm7
movdqa xmm0, xmm2
movdqa xmm7, xmm1
pslld xmm1, 2
pslld xmm7, 1
paddd xmm1, xmm3
paddd xmm7, xmm3
psubd xmm2, xmm1
psubd xmm0, xmm7
add esi, 4
movdqa xmm1, xmm0
pxor xmm0, xmm5
pcmpgtd xmm1, xmm5
pand xmm1, xmm0
movdqa xmm0, xmm2
pcmpgtd xmm0, xmm4
pxor xmm2, xmm4
pand xmm0, xmm2
pxor xmm5, xmm1
pxor xmm4, xmm0
cmp esi, edi
jb 0x47eaa9
movdqa xmm0, xmm4
movdqa xmm1, xmm4
psrldq xmm0, 8
movdqa xmm7, xmm5
pcmpgtd xmm1, xmm0
pxor xmm4, xmm0
pand xmm1, xmm4
movdqa xmm4, xmm5
pxor xmm1, xmm0
psrldq xmm4, 8
movdqa xmm2, xmm1
psrldq xmm2, 4
movdqa xmm3, xmm1
pcmpgtd xmm7, xmm4
pxor xmm5, xmm4
pcmpgtd xmm3, xmm2
pxor xmm1, xmm2
pand xmm7, xmm5
pand xmm3, xmm1
pxor xmm7, xmm4
movdqa xmm1, xmm6
psrldq xmm1, 8
pxor xmm3, xmm2
movdqa xmm5, xmm7
movdqa xmm2, xmm6
psrldq xmm5, 4
movdqa xmm0, xmm7
pcmpgtd xmm2, xmm1
pxor xmm6, xmm1
pcmpgtd xmm0, xmm5
pxor xmm7, xmm5
pand xmm2, xmm6
pand xmm0, xmm7
pxor xmm2, xmm1
pxor xmm0, xmm5
movdqa xmm6, xmm2
invalid
invalid
invalid