Function at 0x10163880
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 0x10]
push ebx
push esi
push edi
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 3]
shl eax, 5
shl ecx, 5
mov edi, dword [ebp + 0xc]
mov ebx, dword [ecx + 0x1021dae8]
xor ebx, dword [eax + 0x10221ae8]
movzx eax, byte [edx + 2]
shl eax, 5
xor ebx, dword [eax + 0x1021fae8]
movzx eax, byte [edx]
shl eax, 5
xor ebx, dword [eax + 0x1021bae8]
mov dword [0x103daa20], ebx
mov eax, dword [edi]
mov dword [0x103daa28], eax
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 3]
shl eax, 5
shl ecx, 5
mov ecx, dword [ecx + 0x1021daec]
xor ecx, dword [eax + 0x10221aec]
movzx eax, byte [edx]
shl eax, 5
xor ecx, dword [eax + 0x1021baec]
movzx eax, byte [edx + 2]
shl eax, 5
xor ecx, dword [eax + 0x1021faec]
mov dword [0x103daa24], ecx
mov eax, dword [edi + 4]
mov dword [0x103daa2c], eax
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 3]
shl eax, 5
shl ecx, 5
mov ecx, dword [ecx + 0x1021daf0]
xor ecx, dword [eax + 0x10221af0]
movzx eax, byte [edx]
shl eax, 5
xor ecx, dword [eax + 0x1021baf0]
movzx eax, byte [edx + 2]
shl eax, 5
xor ecx, dword [eax + 0x1021faf0]
mov dword [0x103daa38], ecx
mov eax, dword [edi + 8]
mov dword [0x103daa30], eax
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 3]
shl eax, 5
shl ecx, 5
mov ecx, dword [ecx + 0x1021daf4]
xor ecx, dword [eax + 0x10221af4]
movzx eax, byte [edx]
shl eax, 5
xor ecx, dword [eax + 0x1021baf4]
movzx eax, byte [edx + 2]
shl eax, 5
xor ecx, dword [eax + 0x1021faf4]
mov dword [0x103daa3c], ecx
mov eax, dword [edi + 0xc]
mov dword [0x103daa34], eax
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 3]
shl ecx, 5
shl eax, 5
mov ecx, dword [ecx + 0x1021daf8]
xor ecx, dword [eax + 0x10221af8]
movzx eax, byte [edx]
shl eax, 5
xor ecx, dword [eax + 0x1021baf8]
movzx eax, byte [edx + 2]
shl eax, 5
xor ecx, dword [eax + 0x1021faf8]
mov dword [0x103daa40], ecx
mov eax, dword [edi + 0x10]
mov dword [0x103daa48], eax
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 3]
xor esi, esi
shl eax, 5
shl ecx, 5
mov ecx, dword [ecx + 0x1021dafc]
xor ecx, dword [eax + 0x10221afc]
movzx eax, byte [edx]
shl eax, 5
xor ecx, dword [eax + 0x1021bafc]
movzx eax, byte [edx + 2]
shl eax, 5
xor ecx, dword [eax + 0x1021fafc]
mov dword [0x103daa44], ecx
mov eax, dword [edi + 0x14]
mov dword [0x103daa4c], eax
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 3]
shl eax, 5
shl ecx, 5
mov ecx, dword [ecx + 0x1021db00]
xor ecx, dword [eax + 0x10221b00]
movzx eax, byte [edx]
shl eax, 5
xor ecx, dword [eax + 0x1021bb00]
movzx eax, byte [edx + 2]
shl eax, 5
xor ecx, dword [eax + 0x1021fb00]
mov dword [0x103daa58], ecx
mov eax, dword [edi + 0x18]
mov dword [0x103daa50], eax
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 3]
shl ecx, 5
shl eax, 5
mov ecx, dword [ecx + 0x1021db04]
xor ecx, dword [eax + 0x10221b04]
movzx eax, byte [edx]
shl eax, 5
xor ecx, dword [eax + 0x1021bb04]
movzx eax, byte [edx + 2]
shl eax, 5
xor ecx, dword [eax + 0x1021fb04]
mov dword [0x103daa5c], ecx
mov eax, dword [edi + 0x1c]
mov dword [0x103daa54], eax
cmp dword [ebp + 8], esi
jle 0x10163b07
mov eax, dword [ebp + 0x14]
shl eax, 7
lea ebx, [eax + 0x10200968]
jmp 0x10163ab0
mov eax, 0x103daa20
mov ecx, ebx
jmp 0x10163ac0
movdqu xmm0, xmmword [eax]
lea ecx, [ecx + 0x20]
movdqu xmm1, xmmword [ecx - 0x20]
pxor xmm1, xmm0
movdqu xmmword [eax], xmm1
add eax, 0x10
cmp eax, 0x103daa60
jl 0x10163ac0
xor dword [0x103daa24], esi
push 0x103daa20
call fcn.10163d30
push 0x103daa20
call fcn.10163240
inc esi
add esp, 8
cmp esi, dword [ebp + 8]
jl 0x10163ab0
mov ebx, dword [0x103daa20]
xor dword [edi], ebx
mov eax, dword [0x103daa40]
xor dword [edi + 0x10], eax
mov eax, dword [0x103daa24]
xor dword [edi + 4], eax
mov eax, dword [0x103daa44]
xor dword [edi + 0x14], eax
mov eax, dword [0x103daa28]
xor dword [edi + 8], eax
mov eax, dword [0x103daa48]
xor dword [edi + 0x18], eax
mov eax, dword [0x103daa2c]
xor dword [edi + 0xc], eax
mov eax, dword [0x103daa4c]
xor dword [edi + 0x1c], eax
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret