Function at 0x403cb0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
movd xmm0, edx
movd xmm1, ecx
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
xor edx, edx
punpckldq xmm1, xmm0
movq xmm0, qword [esp + 0x28]
pshufd xmm1, xmm1, 0x44
pxor xmm1, xmmword [str.uespemosarenegylmodnarodsetybdet]
mov ecx, eax
pshufd xmm0, xmm0, 0x44
and ecx, 7
pxor xmm0, xmmword [0x501340]
mov dword [esp + 4], ecx
mov ecx, eax
and ecx, 0xfffffff8
je 0x403e23
lea eax, [ecx - 1]
xor esi, esi
and eax, 0xfffffff8
mov dword [esp], eax
nop dword [eax]
mov ebx, dword [edi + esi]
mov ebp, dword [edi + esi + 4]
pshufd xmm2, xmm0, 0xee
movdqa xmm4, xmm0
add esi, 8
movd edx, xmm2
pshufd xmm2, xmm0, 0xff
psrlq xmm4, 0x33
movd eax, xmm2
xor eax, ebp
xor edx, ebx
movd xmm2, edx
movd xmm3, eax
punpcklqdq xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0xd
shufps xmm2, xmm3, 0x24
movaps xmm3, xmm2
paddq xmm1, xmm2
psllq xmm2, 0x10
psrlq xmm3, 0x30
shufps xmm0, xmm2, 0xe4
pshufd xmm2, xmm1, 0x1e
shufps xmm4, xmm3, 0xe4
orps xmm0, xmm4
pxor xmm0, xmm1
movdqa xmm1, xmm0
movdqa xmm3, xmm0
paddq xmm2, xmm0
psrlq xmm1, 0x2f
psrlq xmm3, 0x2b
movsd xmm3, xmm1
movdqa xmm1, xmm0
psllq xmm0, 0x15
psllq xmm1, 0x11
movsd xmm0, xmm1
pshufd xmm1, xmm2, 0xff
movd eax, xmm1
pshufd xmm1, xmm2, 0xee
orpd xmm0, xmm3
movd edx, xmm1
xor eax, ebp
xorpd xmm0, xmm2
xor edx, ebx
movd xmm3, eax
cmp esi, ecx
movd xmm4, edx
movdqa xmm1, xmm3
punpcklqdq xmm1, xmm4
shufps xmm1, xmm2, 0x12
jb 0x403d10
pshufd xmm1, xmm2, 0x55
mov ebp, dword [esp]
movd ecx, xmm2
movd esi, xmm1
movd xmm1, ecx
movd xmm2, esi
punpckldq xmm2, xmm1
movd xmm1, edx
xor edx, edx
punpckldq xmm1, xmm3
add ebp, 8
punpcklqdq xmm1, xmm2
mov eax, dword [esp + 4]
cmp eax, 4
jb 0x403e2e
mov ecx, dword [edi + ebp]
xor esi, esi
mov edx, 4
mov dword [esp + 0xc], ecx
jmp 0x403e38
xor ebp, ebp
mov eax, dword [esp + 4]
cmp eax, 4
jae 0x403e13
mov dword [esp + 0xc], 0
xor esi, esi
mov ecx, edx
mov dword [esp], ebp
or ecx, 1
cmp ecx, eax
jae 0x403e93
lea ecx, [edi + edx]
mov ebx, edx
movzx edx, word [ebp + ecx]
lea ecx, [ebx*8]
xor ebp, ebp
shld ebp, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne ebp, edx
cmovne edx, ecx
or esi, ebp
mov ebp, dword [esp + 0xc]
mov dword [esp + 8], esi
or ebp, edx
mov edx, ebx
or edx, 2
cmp edx, eax
jb 0x403e9f
mov esi, dword [esp + 8]
test eax, eax
jne 0x403ecb
xor esi, esi
mov ebx, 0xff
jmp 0x403fb7
mov ebp, dword [esp + 0xc]
mov dword [esp + 8], esi
cmp edx, eax
jae 0x403e7f
mov ebx, dword [esp]
mov ecx, edx
mov esi, dword [esp + 8]
shl ecx, 3
add ebx, edx
movzx edx, byte [edi + ebx]
mov ebx, ebp
xor ebp, ebp
xor edi, edi
shld ebp, edx, cl
shl edx, cl
test cl, 0x20
cmovne ebp, edx
cmovne edx, edi
or esi, ebp
mov ebp, ebx
or ebp, edx
lea ecx, [eax*8]
mov ebx, 0xff
xor edi, edi
mov edx, eax
xor eax, eax
shld edi, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne edi, ebx
cmovne ebx, eax
or edi, esi
or ebx, ebp
cmp edx, 7
jne 0x403fb5
pshufd xmm2, xmm0, 0xee
movdqa xmm4, xmm0
xor esi, esi
movd ecx, xmm2
pshufd xmm2, xmm0, 0xff
psrlq xmm4, 0x33
movd edx, xmm2
xor ecx, ebx
xor edx, edi
movd xmm2, ecx
movd xmm3, edx
punpcklqdq xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0xd
shufps xmm2, xmm3, 0x24
movaps xmm3, xmm2
paddq xmm1, xmm2
psllq xmm2, 0x10
psrlq xmm3, 0x30
shufps xmm0, xmm2, 0xe4
pshufd xmm2, xmm1, 0x1e
shufps xmm4, xmm3, 0xe4
orps xmm0, xmm4
pxor xmm0, xmm1
movdqa xmm1, xmm0
movdqa xmm3, xmm0
paddq xmm2, xmm0
psrlq xmm1, 0x2f
psrlq xmm3, 0x2b
movsd xmm3, xmm1
movdqa xmm1, xmm0
psllq xmm0, 0x15
psllq xmm1, 0x11
movsd xmm0, xmm1
pshufd xmm1, xmm2, 0xff
movd ecx, xmm1
pshufd xmm1, xmm2, 0xee
orpd xmm0, xmm3
movd edx, xmm1
xor ecx, edi
xorpd xmm0, xmm2
xor edx, ebx
movd xmm1, ecx
xor ebx, ebx
movd xmm3, edx
punpcklqdq xmm1, xmm3
shufps xmm1, xmm2, 0x12
jmp 0x403fb7
mov esi, edi
mov ebp, dword [esp + 0x34]
pshufd xmm2, xmm1, 0xff
movd edx, xmm0
mov dword [esp + 0x10], ebx
movd ecx, xmm2
pshufd xmm2, xmm1, 0xee
movd eax, xmm2
pshufd xmm2, xmm0, 0xee
movd edi, xmm2
pshufd xmm2, xmm0, 0xff
shl ebp, 0x18
xor edi, ebx
add ebp, 0x1000000
mov ebx, edi
or ebp, esi
movd esi, xmm2
pshufd xmm2, xmm0, 0x55
paddq xmm0, xmm1
xor esi, ebp
add eax, edi
mov dword [esp + 8], ebp
mov ebp, edx
pshufd xmm1, xmm0, 0x55
adc ecx, esi
mov dword [esp], eax
movd eax, xmm1
shld ebx, esi, 0x10
shrd edi, esi, 0x10
movd esi, xmm0
mov dword [esp + 4], ecx
movd ecx, xmm2
mov dword [esp + 0xc], eax
shld ebp, ecx, 0xd
shld ecx, edx, 0xd
mov edx, dword [esp]
xor ecx, eax
mov eax, dword [esp + 4]
xor ebp, esi
xor ebx, edx
xor edi, eax
add edx, ebp
adc eax, ecx
mov dword [esp], edx
mov edx, ebp
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc]
add eax, ebx
adc esi, edi
shld edx, ecx, 0x11
shrd ebp, ecx, 0xf
mov ecx, ebx
shrd ebx, edi, 0xb
xor ebx, esi
xor esi, dword [esp + 8]
shld ecx, edi, 0x15
xor edx, dword [esp]
xor ecx, eax
xor eax, dword [esp + 0x10]
mov edi, esi
mov esi, dword [esp + 4]
xor ebp, esi
xor esi, 0xff
add eax, edx
adc edi, ebp
add esi, ecx
mov dword [esp + 8], edi
mov edi, edx
adc dword [esp], ebx
mov dword [esp + 4], esi
mov esi, ecx
shrd edx, ebp, 0x13
shrd ecx, ebx, 0x10
shld edi, ebp, 0xd
shld esi, ebx, 0x10
mov ebx, dword [esp]
mov ebp, eax
xor edx, dword [esp + 8]
xor edi, eax
mov eax, dword [esp + 4]
xor ecx, ebx
xor esi, eax
add eax, edi
adc ebx, edx
add dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, esi
mov dword [esp], ebx
mov ebx, edi
adc ebp, ecx
shld ebx, edx, 0x11
shrd esi, ecx, 0xb
shrd edi, edx, 0xf
shld eax, ecx, 0x15
mov edx, dword [esp]
mov ecx, dword [esp + 8]
xor ebx, dword [esp + 4]
xor esi, ebp
xor edi, edx
xor eax, ecx
add ecx, ebx
adc ebp, edi
add edx, eax
mov dword [esp + 8], ecx
mov ecx, ebx
mov dword [esp], edx
mov edx, dword [esp + 4]
mov dword [esp + 0xc], ebp
adc edx, esi
shrd ebx, edi, 0x13
shld ecx, edi, 0xd
mov edi, eax
shrd eax, esi, 0x10
xor ebx, ebp
mov ebp, dword [esp + 8]
shld edi, esi, 0x10
mov esi, edx
xor eax, edx
mov edx, dword [esp]
xor ecx, ebp
xor edi, edx
add edx, ecx
adc esi, ebx
add dword [esp + 0xc], edi
mov dword [esp], edx
mov edx, ecx
mov dword [esp + 4], esi
mov esi, edi
adc ebp, eax
shld edx, ebx, 0x11
shrd ecx, ebx, 0xf
shld esi, eax, 0x15
mov ebx, dword [esp + 0xc]
shrd edi, eax, 0xb
mov dword [esp + 8], ebp
mov ebp, dword [esp + 4]
xor edx, dword [esp]
mov eax, dword [esp + 8]
xor esi, ebx
xor ecx, ebp
xor edi, eax
add ebx, edx
adc eax, ecx
add ebp, esi
mov dword [esp + 0xc], ebx
mov ebx, edx
mov dword [esp + 4], ebp
mov ebp, dword [esp]
adc ebp, edi
shld ebx, ecx, 0xd
shrd edx, ecx, 0x13
mov ecx, esi
shrd esi, edi, 0x10
xor edx, eax
xor ebx, dword [esp + 0xc]
mov eax, ebp
xor esi, ebp
mov ebp, dword [esp + 4]
shld ecx, edi, 0x10
xor ecx, ebp
add ebp, ebx
adc eax, edx
mov edi, ecx
shrd ecx, esi, 0xb
mov dword [esp], eax
shld edi, esi, 0x15
mov eax, ebx
mov esi, dword [esp]
shld eax, edx, 0x11
shld edx, ebx, 0x11
xor edx, ebp
xor edx, ecx
xor eax, esi
xor edx, esi
xor eax, edi
xor eax, ebp
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret