Function at 0x4261ab
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xf
push ebx
xor ecx, ecx
add eax, edx
sar eax, 4
push esi
push edi
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ecx
mov ebx, 0x4cf5ad43
mov edi, 0x2745937f
cmp eax, ecx
jle 0x4262af
mov esi, dword [ebp + 8]
mov dword [ebp - 4], eax
push 0x87c37b91
push 0x114253d5
push dword [esi + 4]
push dword [esi]
call fcn.004553e0
mov ecx, eax
mov eax, edx
mov edx, ecx
shld edx, eax, 0x1f
push ebx
shld eax, ecx, 0x1f
push edi
push eax
push edx
call fcn.004553e0
xor eax, dword [ebp - 0x20]
xor edx, dword [ebp - 0x1c]
mov ecx, eax
shld eax, edx, 0x1b
shld edx, ecx, 0x1b
add eax, dword [ebp - 0x18]
push 0
mov ecx, edx
adc ecx, dword [ebp - 0x14]
push 5
push ecx
push eax
call fcn.004553e0
push ebx
push edi
push dword [esi + 0xc]
add eax, 0x52dce729
push dword [esi + 8]
adc edx, 0
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
call fcn.004553e0
mov ecx, edx
shld edx, eax, 1
push 0x87c37b91
shld eax, ecx, 1
push 0x114253d5
push eax
push edx
call fcn.004553e0
xor eax, dword [ebp - 0x18]
xor edx, dword [ebp - 0x14]
mov ecx, eax
shld eax, edx, 0x1f
shld edx, ecx, 0x1f
add eax, dword [ebp - 0x20]
mov ecx, edx
adc ecx, dword [ebp - 0x1c]
push 0
add eax, 0xb41def1
push 5
adc ecx, 0
push ecx
push eax
call fcn.004553e0
add esi, 0x10
dec dword [ebp - 4]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
jne 0x4261e9
mov eax, dword [ebp - 0xc]
xor ecx, ecx
shl eax, 4
add eax, dword [ebp + 8]
mov dword [ebp - 8], ecx
mov esi, eax
mov eax, dword [ebp + 0xc]
and eax, 0xf
dec eax
mov dword [ebp - 4], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], ecx
cmp eax, 0xe
ja case.default.0x4262d3
jmp dword [eax*4 + 0x4264df]
movzx eax, byte [esi + 0xe]
cdq
shl eax, 0x10
and dword [ebp - 0x10], 0
mov dword [ebp - 0xc], eax
movzx eax, byte [esi + 0xd]
xor dword [ebp - 0x10], 0
cdq
shl eax, 8
xor dword [ebp - 0xc], eax
movzx eax, byte [esi + 0xc]
xor dword [ebp - 0x10], 0
cdq
xor dword [ebp - 0xc], eax
movzx eax, byte [esi + 0xb]
cdq
shld edx, eax, 0x18
shl eax, 0x18
xor dword [ebp - 0x10], eax
xor dword [ebp - 0xc], edx
movzx eax, byte [esi + 0xa]
cdq
shld edx, eax, 0x10
shl eax, 0x10
xor dword [ebp - 0x10], eax
xor dword [ebp - 0xc], edx
movzx eax, byte [esi + 9]
cdq
shld edx, eax, 8
shl eax, 8
xor dword [ebp - 0x10], eax
xor dword [ebp - 0xc], edx
movzx eax, byte [esi + 8]
cdq
xor edx, dword [ebp - 0xc]
xor eax, dword [ebp - 0x10]
push ebx
push edi
push edx
push eax
call fcn.004553e0
mov ecx, edx
shld edx, eax, 1
push 0x87c37b91
shld eax, ecx, 1
push 0x114253d5
push eax
push edx
call fcn.004553e0
xor dword [ebp - 0x18], eax
xor dword [ebp - 0x14], edx
movzx eax, byte [esi + 7]
cdq
mov ecx, eax
shl ecx, 0x18
and dword [ebp - 8], 0
movzx eax, byte [esi + 6]
xor dword [ebp - 8], 0
cdq
shl eax, 0x10
xor ecx, eax
movzx eax, byte [esi + 5]
xor dword [ebp - 8], 0
cdq
shl eax, 8
xor ecx, eax
movzx eax, byte [esi + 4]
xor dword [ebp - 8], 0
cdq
xor ecx, eax
mov dword [ebp - 4], ecx
movzx eax, byte [esi + 3]
cdq
shld edx, eax, 0x18
shl eax, 0x18
xor dword [ebp - 8], eax
xor dword [ebp - 4], edx
movzx eax, byte [esi + 2]
cdq
shld edx, eax, 0x10
shl eax, 0x10
xor dword [ebp - 8], eax
xor dword [ebp - 4], edx
movzx eax, byte [esi + 1]
mov ecx, dword [ebp - 4]
cdq
shld edx, eax, 8
shl eax, 8
xor dword [ebp - 8], eax
xor ecx, edx
movzx eax, byte [esi]
cdq
xor eax, dword [ebp - 8]
push 0x87c37b91
push 0x114253d5
xor edx, ecx
push edx
push eax
call fcn.004553e0
mov ecx, eax
mov eax, edx
mov edx, ecx
shld edx, eax, 0x1f
push ebx
shld eax, ecx, 0x1f
push edi
push eax
push edx
call fcn.004553e0
xor dword [ebp - 0x20], eax
xor dword [ebp - 0x1c], edx
mov eax, dword [ebp + 0xc]
cdq
xor dword [ebp - 0x18], eax
xor dword [ebp - 0x14], edx
xor eax, dword [ebp - 0x20]
xor edx, dword [ebp - 0x1c]
add eax, dword [ebp - 0x18]
push 0xff51afd7
adc edx, dword [ebp - 0x14]
xor esi, esi
mov ecx, edx
mov ebx, 0xed558ccd
push ebx
shr ecx, 1
xor esi, edx
xor ecx, eax
push esi
push ecx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
call fcn.004553e0
xor esi, esi
xor esi, edx
mov ecx, edx
shr ecx, 1
mov edi, 0xc4ceb9fe
push edi
xor ecx, eax
mov eax, esi
mov esi, 0x1a85ec53
push esi
push eax
push ecx
call fcn.004553e0
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x20]
mov dword [ebp - 0xc], edx
adc ecx, dword [ebp - 0x1c]
push 0xff51afd7
mov dword [ebp - 0x1c], ecx
xor edx, edx
xor edx, dword [ebp - 0x1c]
push ebx
shr ecx, 1
xor ecx, eax
push edx
push ecx
call fcn.004553e0
push edi
mov ecx, edx
xor ebx, ebx
push esi
shr ecx, 1
xor ebx, edx
xor ecx, eax
push ebx
push ecx
call fcn.004553e0
mov ecx, edx
shr ecx, 1
xor ecx, eax
mov eax, dword [ebp - 0xc]
shr eax, 1
xor eax, dword [ebp - 0x10]
xor edi, edi
xor edi, dword [ebp - 0xc]
xor esi, esi
xor esi, edx
mov edx, dword [ebp + 0x10]
add eax, ecx
adc edi, esi
add ecx, eax
adc esi, edi
mov dword [edx + 4], edi
mov dword [edx], eax
mov dword [edx + 8], ecx
mov dword [edx + 0xc], esi
pop edi
pop esi
pop ebx
leave
ret