Function at 0x414d00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x48
movd xmm0, edx
movd xmm1, ecx
mov esi, dword [ebp + 0x10]
punpckldq xmm1, xmm0
movq xmm0, qword [ebp + 8]
pshufd xmm1, xmm1, 0x44
pxor xmm1, xmmword [str.uespemosarenegylmodnarodsetybdet]
test esi, esi
pshufd xmm0, xmm0, 0x44
setne al
pxor xmm0, xmmword [0x589260]
movdqu xmmword [esp + 0x20], xmm1
pshufd xmm2, xmm0, 0xff
pshufd xmm3, xmm0, 0xee
movdqu xmmword [esp + 0x30], xmm0
movd ecx, xmm2
movd edx, xmm3
je 0x414f7b
mov eax, dword [ebp + 0x14]
xor edx, 1
movdqa xmm4, xmm0
movd xmm3, edx
psrlq xmm4, 0x33
xor ecx, eax
movd xmm2, ecx
mov ecx, eax
punpcklqdq xmm2, xmm3
movdqa xmm3, xmm0
psllq xmm0, 0xd
and ecx, 7
shufps xmm3, xmm2, 0x24
mov dword [esp + 0x18], ecx
xor ecx, ecx
movaps xmm2, xmm3
paddq xmm1, xmm3
psllq xmm3, 0x10
psrlq xmm2, 0x30
shufps xmm0, xmm3, 0xe4
shufps xmm4, xmm2, 0xe4
orps xmm0, xmm4
pxor xmm0, xmm1
pshufd xmm1, xmm1, 0x1e
movdqa xmm2, xmm0
movdqa xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x2f
psrlq xmm3, 0x2b
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0x15
psllq xmm2, 0x11
movsd xmm0, xmm2
pshufd xmm2, xmm1, 0x55
orpd xmm0, xmm3
pshufd xmm3, xmm1, 0xff
xorpd xmm0, xmm1
movd ebx, xmm3
movupd xmmword [esp + 0x30], xmm0
movd dword [esp + 0x2c], xmm1
pshufd xmm1, xmm1, 0xee
xor ebx, eax
movd dword [esp + 0x28], xmm2
movd edi, xmm1
mov dword [esp + 0x24], ebx
xor edi, 1
and eax, 0xfffffff8
mov dword [esp + 0x20], edi
je 0x414fa4
movdqu xmm1, xmmword [esp + 0x20]
lea ecx, [eax - 1]
and ecx, 0xfffffff8
mov dword [esp + 0xc], ecx
xor ecx, ecx
nop word cs:[eax + eax]
nop dword [eax]
mov ebx, dword [esi + ecx]
mov edx, dword [esi + ecx + 4]
pshufd xmm2, xmm0, 0xee
movdqa xmm4, xmm0
add ecx, 8
movd edi, xmm2
pshufd xmm2, xmm0, 0xff
psrlq xmm4, 0x33
xor edi, ebx
movd xmm3, edi
movd edi, xmm2
xor edi, edx
movd xmm2, edi
punpcklqdq xmm2, xmm3
movapd xmm3, xmm0
psllq xmm0, 0xd
shufps xmm3, xmm2, 0x24
movaps xmm2, xmm3
paddq xmm1, xmm3
psllq xmm3, 0x10
psrlq xmm2, 0x30
shufps xmm0, xmm3, 0xe4
shufps xmm4, xmm2, 0xe4
pshufd xmm2, xmm1, 0x1e
orps xmm0, xmm4
pxor xmm0, xmm1
paddq xmm2, xmm0
pshufd xmm3, xmm2, 0xee
pshufd xmm1, xmm2, 0xff
movd edi, xmm3
movdqa xmm3, xmm0
xor edi, ebx
movd ebx, xmm1
movdqa xmm1, xmm0
psrlq xmm3, 0x2b
psrlq xmm1, 0x2f
xor ebx, edx
cmp ecx, eax
movsd xmm3, xmm1
movdqa xmm1, xmm0
psllq xmm0, 0x15
psllq xmm1, 0x11
movsd xmm0, xmm1
movd xmm1, ebx
orpd xmm0, xmm3
movd xmm3, edi
punpcklqdq xmm1, xmm3
xorpd xmm0, xmm2
shufps xmm1, xmm2, 0x12
jb 0x414e50
mov edx, dword [esp + 0xc]
pshufd xmm1, xmm2, 0x55
movd eax, xmm2
movups xmmword [esp + 0x30], xmm0
movd ecx, xmm1
pshufd xmm1, xmm0, 0xff
pshufd xmm0, xmm0, 0xee
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
xor ecx, ecx
movd dword [esp + 0x14], xmm1
movd dword [esp + 0x10], xmm0
add edx, 8
cmp dword [esp + 0x18], 4
mov dword [esp + 0xc], edx
jb 0x414fc7
mov eax, dword [esi + edx]
xor edx, edx
mov ecx, 4
mov dword [esp + 8], eax
mov eax, ecx
or eax, 1
cmp eax, dword [esp + 0x18]
jb 0x414fdc
jmp 0x415021
mov dword [esp + 0x14], ecx
xor ecx, ecx
pshufd xmm0, xmm1, 0x55
mov cl, al
mov dword [esp + 0x10], edx
xor edx, edx
movd edi, xmm1
mov dword [esp + 8], ecx
movd ebx, xmm0
mov ecx, 4
jmp 0x415065
pshufd xmm1, xmm0, 0xff
pshufd xmm0, xmm0, 0xee
xor edx, edx
movd dword [esp + 0x14], xmm1
movd dword [esp + 0x10], xmm0
cmp dword [esp + 0x18], 4
mov dword [esp + 0xc], edx
jae 0x414f5d
mov dword [esp + 8], 0
xor edx, edx
mov eax, ecx
or eax, 1
cmp eax, dword [esp + 0x18]
jae 0x415021
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], ecx
mov dword [esp + 4], edx
xor edx, edx
add eax, ecx
mov ecx, dword [esp + 0x1c]
movzx eax, word [esi + eax]
mov esi, 0
lea ecx, [ecx*8]
shld edx, eax, cl
shl eax, cl
test cl, 0x20
mov ecx, dword [esp + 0x1c]
cmovne edx, eax
cmovne eax, esi
or dword [esp + 4], edx
or dword [esp + 8], eax
mov edx, dword [esp + 4]
or ecx, 2
mov eax, dword [ebp + 0x14]
add eax, 8
cmp ecx, dword [esp + 0x18]
jae 0x415062
mov dword [esp + 4], edx
mov edx, dword [esp + 0xc]
mov esi, dword [ebp + 0x10]
add edx, ecx
shl ecx, 3
movzx esi, byte [esi + edx]
xor edx, edx
shld edx, esi, cl
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne edx, esi
cmovne esi, ecx
or dword [esp + 4], edx
or dword [esp + 8], esi
mov edx, dword [esp + 4]
movzx ecx, al
shl ecx, 0x18
mov eax, dword [esp + 0x10]
movdqu xmm0, xmmword [esp + 0x28]
movd xmm3, edi
movd xmm5, ebx
or ecx, edx
mov edx, dword [esp + 8]
punpckldq xmm3, xmm5
movdqa xmm5, xmm0
xor eax, edx
psrlq xmm5, 0x33
movd xmm4, eax
movd xmm2, eax
mov eax, dword [esp + 0x14]
xor eax, ecx
movd xmm1, eax
punpckldq xmm2, xmm1
punpcklqdq xmm1, xmm4
punpcklqdq xmm2, xmm3
shufps xmm1, xmm0, 0xe2
movaps xmm4, xmm1
paddq xmm2, xmm0
psllq xmm1, 0x10
psllq xmm0, 0xd
pshufd xmm3, xmm2, 0xff
psrlq xmm4, 0x30
movsd xmm0, xmm1
movdqa xmm1, xmm2
movd eax, xmm3
movsd xmm5, xmm4
orpd xmm0, xmm5
movd xmm3, eax
shufps xmm1, xmm3, 0x4e
xorpd xmm0, xmm2
shufps xmm1, xmm2, 0x42
movapd xmm2, xmm0
movapd xmm3, xmm0
psrlq xmm2, 0x2b
psrlq xmm3, 0x2f
paddq xmm1, xmm0
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0x11
psllq xmm2, 0x15
movsd xmm0, xmm2
pshufd xmm2, xmm1, 0xff
orpd xmm0, xmm3
pshufd xmm3, xmm1, 0x55
movd eax, xmm3
xorpd xmm0, xmm1
xor eax, ecx
movd ecx, xmm1
xor ecx, edx
movd edx, xmm2
movd xmm4, eax
xor edx, 0xff
movd xmm3, ecx
movd xmm2, edx
punpcklqdq xmm4, xmm3
movapd xmm3, xmm0
shufpd xmm1, xmm2, 1
shufps xmm3, xmm4, 0x24
movapd xmm4, xmm0
shufps xmm1, xmm0, 0xe2
psrlq xmm4, 0x33
paddq xmm1, xmm3
pshufd xmm2, xmm1, 0xff
movd eax, xmm2
movaps xmm2, xmm0
psrlq xmm2, 0x30
movd xmm3, eax
movsd xmm4, xmm2
movaps xmm2, xmm0
psllq xmm0, 0xd
psllq xmm2, 0x10
movsd xmm0, xmm2
movdqa xmm2, xmm1
orpd xmm0, xmm4
shufps xmm2, xmm3, 0x4e
xorpd xmm0, xmm1
shufps xmm2, xmm1, 0x42
movapd xmm1, xmm0
movapd xmm3, xmm0
paddq xmm2, xmm0
psrlq xmm1, 0x2b
psrlq xmm3, 0x2f
movsd xmm3, xmm1
movdqa xmm1, xmm0
psllq xmm0, 0x11
psllq xmm1, 0x15
movsd xmm0, xmm1
pshufd xmm1, xmm2, 0xff
movd eax, xmm1
orpd xmm0, xmm3
movdqa xmm1, xmm2
movd xmm3, eax
xorpd xmm0, xmm2
shufps xmm1, xmm3, 0x4e
movapd xmm4, xmm0
shufps xmm1, xmm2, 0x42
psrlq xmm4, 0x33
paddq xmm1, xmm0
pshufd xmm2, xmm1, 0xff
movd eax, xmm2
movdqa xmm2, xmm0
psrlq xmm2, 0x30
movd xmm3, eax
movsd xmm4, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0xd
psllq xmm2, 0x10
movsd xmm0, xmm2
movdqa xmm2, xmm1
orpd xmm0, xmm4
shufps xmm2, xmm3, 0x4e
xorpd xmm0, xmm1
shufps xmm2, xmm1, 0x42
movapd xmm1, xmm0
movapd xmm3, xmm0
paddq xmm2, xmm0
psrlq xmm1, 0x2b
psrlq xmm3, 0x2f
movsd xmm3, xmm1
movdqa xmm1, xmm0
psllq xmm0, 0x11
psllq xmm1, 0x15
movsd xmm0, xmm1
pshufd xmm1, xmm2, 0xff
movd eax, xmm1
orpd xmm0, xmm3
movdqa xmm1, xmm2
movd xmm3, eax
xorpd xmm0, xmm2
shufps xmm1, xmm3, 0x4e
movapd xmm3, xmm0
shufps xmm1, xmm2, 0x42
movapd xmm2, xmm0
psrlq xmm3, 0x33
psrlq xmm2, 0x30
paddq xmm1, xmm0
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0xd
psllq xmm2, 0x10
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
pshufd xmm2, xmm0, 0xee
paddq xmm2, xmm1
pshufd xmm1, xmm2, 0x55
movd ecx, xmm2
movdqa xmm2, xmm0
movd eax, xmm1
movdqa xmm1, xmm0
psrlq xmm2, 0x2f
psrlq xmm1, 0x2b
xor ecx, eax
movsd xmm2, xmm1
movdqa xmm1, xmm0
psllq xmm0, 0x11
psllq xmm1, 0x15
movsd xmm0, xmm1
orpd xmm0, xmm2
pshufd xmm1, xmm0, 0xee
pxor xmm1, xmm0
pshufd xmm0, xmm1, 0x55
movd eax, xmm1
movd edx, xmm0
xor eax, ecx
xor edx, ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret