Function at 0x4623b0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x14
call fcn.0045c6a0
push ebx
mov ebx, dword [esp + 0x1c]
push ebp
mov ebp, dword [esp + 0x24]
push esi
push edi
mov edi, dword [esp + 0x30]
lea ebx, [ebx - 1]
mov ecx, dword [ebp + 4]
shr ebx, 0x1f
dec ebx
mov eax, dword [edi + 4]
xor eax, ecx
mov dword [esp + 0x28], ebx
and eax, ebx
xor ecx, eax
movd xmm0, ebx
mov dword [ebp + 4], ecx
xor dword [edi + 4], eax
mov eax, dword [esp + 0x34]
pshufd xmm3, xmm0, 0
lea edx, [eax - 1]
cmp edx, 9
ja case.default.0x4623fc
jmp dword [edx*4 + 0x462608]
mov ebx, 0xa
lea ecx, [eax - 0xa]
cmp eax, ebx
jle 0x462504
cmp ecx, 4
jb 0x4624e0
mov esi, dword [edi]
mov eax, dword [ebp]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], esi
lea eax, [esi + 0x28]
mov dword [esp + 0x10], eax
lea esi, [esi + edx*4]
mov eax, dword [esp + 0x14]
add eax, 0x28
mov dword [esp + 0x18], eax
lea eax, [edx*4]
add eax, dword [esp + 0x14]
cmp dword [esp + 0x10], eax
mov edx, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x34]
ja 0x462463
cmp esi, edx
jae 0x4624e0
cmp dword [esp + 0x10], edi
ja 0x46246d
cmp esi, edi
jae 0x4624e0
cmp dword [esp + 0x10], ebp
ja 0x462477
cmp esi, ebp
jae 0x4624e0
mov esi, dword [esp + 0x1c]
cmp edx, edi
ja 0x462483
cmp esi, edi
jae 0x4624e0
cmp edx, ebp
ja 0x46248b
cmp esi, ebp
jae 0x4624e0
and ecx, 0x80000003
jns 0x462498
dec ecx
or ecx, 0xfffffffc
inc ecx
mov edi, dword [esp + 0x20]
mov edx, eax
mov ebp, dword [esp + 0x14]
sub edx, ecx
movups xmm2, xmmword [edi + ebx*4]
movups xmm1, xmmword [ebp + ebx*4]
movaps xmm0, xmm2
pxor xmm0, xmm1
pand xmm0, xmm3
pxor xmm1, xmm0
pxor xmm2, xmm0
movups xmmword [ebp + ebx*4], xmm1
movups xmmword [edi + ebx*4], xmm2
add ebx, 4
mov ecx, ebx
cmp ebx, edx
jl 0x4624a4
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x2c]
cmp ecx, eax
jge 0x462504
nop
mov eax, dword [ebp]
mov ecx, dword [eax + ebx*4]
lea edx, [eax + ebx*4]
mov eax, dword [edi]
mov esi, dword [eax + ebx*4]
xor esi, ecx
and esi, dword [esp + 0x28]
xor ecx, esi
mov dword [edx], ecx
mov eax, dword [edi]
xor dword [eax + ebx*4], esi
inc ebx
cmp ebx, dword [esp + 0x34]
jl 0x4624e0
mov ebx, dword [esp + 0x28]
mov eax, dword [edi]
mov esi, dword [ebp]
mov edx, dword [eax + 0x24]
mov ecx, dword [esi + 0x24]
xor edx, ecx
and edx, ebx
xor ecx, edx
mov dword [esi + 0x24], ecx
mov eax, dword [edi]
xor dword [eax + 0x24], edx
mov eax, dword [edi]
mov esi, dword [ebp]
mov edx, dword [eax + 0x20]
mov ecx, dword [esi + 0x20]
xor edx, ecx
and edx, ebx
xor ecx, edx
mov dword [esi + 0x20], ecx
mov eax, dword [edi]
xor dword [eax + 0x20], edx
mov eax, dword [edi]
mov esi, dword [ebp]
mov edx, dword [eax + 0x1c]
mov ecx, dword [esi + 0x1c]
xor edx, ecx
and edx, ebx
xor ecx, edx
mov dword [esi + 0x1c], ecx
mov eax, dword [edi]
xor dword [eax + 0x1c], edx
mov eax, dword [edi]
mov esi, dword [ebp]
mov edx, dword [eax + 0x18]
mov ecx, dword [esi + 0x18]
xor edx, ecx
and edx, ebx
xor ecx, edx
mov dword [esi + 0x18], ecx
mov eax, dword [edi]
xor dword [eax + 0x18], edx
mov eax, dword [edi]
mov esi, dword [ebp]
mov edx, dword [eax + 0x14]
mov ecx, dword [esi + 0x14]
xor edx, ecx
and edx, ebx
xor ecx, edx
mov dword [esi + 0x14], ecx
mov eax, dword [edi]
xor dword [eax + 0x14], edx
mov eax, dword [edi]
mov esi, dword [ebp]
mov edx, dword [eax + 0x10]
mov ecx, dword [esi + 0x10]
xor edx, ecx
and edx, ebx
xor ecx, edx
mov dword [esi + 0x10], ecx
mov eax, dword [edi]
xor dword [eax + 0x10], edx
mov eax, dword [edi]
mov esi, dword [ebp]
mov edx, dword [eax + 0xc]
mov ecx, dword [esi + 0xc]
xor edx, ecx
and edx, ebx
xor ecx, edx
mov dword [esi + 0xc], ecx
mov eax, dword [edi]
xor dword [eax + 0xc], edx
mov eax, dword [edi]
mov esi, dword [ebp]
mov edx, dword [eax + 8]
mov ecx, dword [esi + 8]
xor edx, ecx
and edx, ebx
xor ecx, edx
mov dword [esi + 8], ecx
mov eax, dword [edi]
xor dword [eax + 8], edx
mov eax, dword [edi]
mov esi, dword [ebp]
mov edx, dword [eax + 4]
mov ecx, dword [esi + 4]
xor edx, ecx
and edx, ebx
xor ecx, edx
mov dword [esi + 4], ecx
mov eax, dword [edi]
xor dword [eax + 4], edx
mov eax, dword [edi]
mov esi, dword [ebp]
mov ecx, dword [eax]
mov edx, dword [esi]
xor ecx, edx
and ecx, ebx
xor edx, ecx
mov dword [esi], edx
mov eax, dword [edi]
pop edi
pop esi
pop ebp
xor dword [eax], ecx
pop ebx
add esp, 0x14
ret