Function at 0x41a170
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0x14]
lea ecx, [esi + eax]
mov dword [ebp - 0x20], ecx
cmp eax, 0x20
jb 0x41a4a8
lea eax, [ecx - 0x20]
mov dword [ebp - 0x24], eax
mov eax, ebx
add eax, 0xadc0b5d6
mov dword [ebp - 0x10], eax
mov eax, edi
adc eax, 0x60ea27ee
mov dword [ebp - 0xc], eax
mov eax, ebx
add eax, 0x27d4eb4f
mov dword [ebp - 0x18], eax
mov eax, edi
adc eax, 0xc2b2ae3d
mov dword [ebp - 0x14], eax
mov eax, ebx
add eax, 0x7a143579
mov dword [ebp - 8], eax
mov eax, edi
adc eax, 0x61c8864e
mov dword [ebp - 0x1c], eax
nop word [eax + eax]
push 0xc2b2ae3d
push 0x27d4eb4f
push dword [esi + 4]
push dword [esi]
call fcn.00552840
mov ecx, eax
add ecx, dword [ebp - 0x10]
mov eax, ecx
adc edx, dword [ebp - 0xc]
push 0x9e3779b1
shld eax, edx, 0x1f
shld edx, ecx, 0x1f
push 0x85ebca87
push edx
push eax
call fcn.00552840
push 0xc2b2ae3d
push 0x27d4eb4f
push dword [esi + 0xc]
mov dword [ebp - 0x10], eax
push dword [esi + 8]
mov dword [ebp - 0xc], edx
call fcn.00552840
mov ecx, eax
add ecx, dword [ebp - 0x18]
mov eax, ecx
adc edx, dword [ebp - 0x14]
push 0x9e3779b1
shld eax, edx, 0x1f
shld edx, ecx, 0x1f
push 0x85ebca87
push edx
push eax
call fcn.00552840
push 0xc2b2ae3d
push 0x27d4eb4f
push dword [esi + 0x14]
mov dword [ebp - 0x18], eax
push dword [esi + 0x10]
mov dword [ebp - 0x14], edx
call fcn.00552840
mov ecx, eax
add ecx, ebx
mov eax, ecx
adc edx, edi
push 0x9e3779b1
shld eax, edx, 0x1f
shld edx, ecx, 0x1f
push 0x85ebca87
push edx
push eax
call fcn.00552840
push 0xc2b2ae3d
push 0x27d4eb4f
push dword [esi + 0x1c]
mov ebx, eax
mov edi, edx
push dword [esi + 0x18]
call fcn.00552840
mov ecx, eax
add ecx, dword [ebp - 8]
mov eax, ecx
adc edx, dword [ebp - 0x1c]
push 0x9e3779b1
shld eax, edx, 0x1f
shld edx, ecx, 0x1f
push 0x85ebca87
push edx
push eax
call fcn.00552840
add esi, 0x20
mov dword [ebp - 8], eax
mov dword [ebp - 0x1c], edx
cmp esi, dword [ebp - 0x24]
jbe 0x41a1e0
mov ecx, dword [ebp - 0x10]
mov eax, ecx
mov edx, dword [ebp - 0xc]
shld eax, edx, 1
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x2c], eax
mov eax, edx
shld eax, ecx, 1
mov ecx, dword [ebp - 0x14]
mov edx, ecx
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x18]
mov edi, eax
shld edi, ecx, 7
shld edx, eax, 7
mov eax, dword [ebp - 0x24]
mov ecx, ebx
mov dword [ebp - 0x34], ebx
shld ecx, eax, 0xc
shld eax, ebx, 0xc
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x28], edi
mov edi, dword [ebp - 0x1c]
shld ebx, edi, 0x12
push 0xc2b2ae3d
mov dword [ebp - 4], ebx
mov ebx, edi
mov edi, dword [ebp - 8]
shld ebx, edi, 0x12
add dword [ebp - 4], ecx
push 0x27d4eb4f
push dword [ebp - 0xc]
adc ebx, eax
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x28]
push dword [ebp - 0x10]
adc ebx, edx
add eax, dword [ebp - 0x2c]
mov dword [ebp - 4], eax
adc ebx, dword [ebp - 0x30]
call fcn.00552840
mov ecx, eax
push 0x9e3779b1
shld ecx, edx, 0x1f
shld edx, eax, 0x1f
push 0x85ebca87
push edx
push ecx
call fcn.00552840
xor eax, dword [ebp - 4]
xor edx, ebx
push 0x9e3779b1
push 0x85ebca87
push edx
push eax
call fcn.00552840
push 0xc2b2ae3d
push 0x27d4eb4f
push dword [ebp - 0x14]
mov edi, eax
mov ebx, edx
push dword [ebp - 0x18]
add edi, 0xc2b2ae63
adc ebx, 0x85ebca77
call fcn.00552840
mov ecx, eax
push 0x9e3779b1
shld ecx, edx, 0x1f
shld edx, eax, 0x1f
push 0x85ebca87
push edx
push ecx
call fcn.00552840
push 0x9e3779b1
push 0x85ebca87
xor edx, ebx
xor eax, edi
push edx
push eax
call fcn.00552840
mov edi, eax
push 0xc2b2ae3d
push 0x27d4eb4f
push dword [ebp - 0x24]
mov ebx, edx
add edi, 0xc2b2ae63
push dword [ebp - 0x34]
adc ebx, 0x85ebca77
call fcn.00552840
mov ecx, eax
push 0x9e3779b1
shld ecx, edx, 0x1f
shld edx, eax, 0x1f
push 0x85ebca87
push edx
push ecx
call fcn.00552840
push 0x9e3779b1
push 0x85ebca87
xor edx, ebx
xor eax, edi
push edx
push eax
call fcn.00552840
push 0xc2b2ae3d
push 0x27d4eb4f
push dword [ebp - 0x1c]
mov edi, eax
mov ebx, edx
push dword [ebp - 8]
add edi, 0xc2b2ae63
adc ebx, 0x85ebca77
call fcn.00552840
mov ecx, eax
push 0x9e3779b1
shld ecx, edx, 0x1f
shld edx, eax, 0x1f
push 0x85ebca87
push edx
push ecx
call fcn.00552840
push 0x9e3779b1
push 0x85ebca87
xor edx, ebx
xor eax, edi
push edx
push eax
call fcn.00552840
mov ecx, dword [ebp - 0x20]
mov ebx, eax
mov eax, dword [ebp + 0xc]
add ebx, 0xc2b2ae63
mov edi, edx
adc edi, 0x85ebca77
jmp 0x41a4b4
add ebx, 0x165667c5
adc edi, 0x27d4eb2f
add ebx, eax
lea eax, [esi + 8]
mov dword [ebp - 0x24], eax
adc edi, 0
cmp eax, ecx
ja 0x41a533
push 0xc2b2ae3d
push 0x27d4eb4f
push dword [esi + 4]
push dword [esi]
call fcn.00552840
mov ecx, eax
push 0x9e3779b1
shld ecx, edx, 0x1f
shld edx, eax, 0x1f
push 0x85ebca87
push edx
push ecx
call fcn.00552840
mov ecx, eax
xor edx, edi
xor ecx, ebx
mov eax, ecx
push 0x9e3779b1
shld eax, edx, 0x1b
shld edx, ecx, 0x1b
push 0x85ebca87
push edx
push eax
call fcn.00552840
mov esi, dword [ebp - 0x24]
mov ebx, eax
mov ecx, dword [ebp - 0x20]
add ebx, 0xc2b2ae63
mov edi, edx
adc edi, 0x85ebca77
lea eax, [esi + 8]
mov dword [ebp - 0x24], eax
cmp eax, ecx
jbe 0x41a4c3
lea eax, [esi + 4]
mov dword [ebp - 0x34], eax
cmp eax, ecx
ja 0x41a586
mov ecx, dword [esi]
mov eax, 0x9e3779b1
mul ecx
push 0xc2b2ae3d
mov esi, eax
mov eax, 0x85ebca87
mul ecx
push 0x27d4eb4f
add esi, edx
xor eax, ebx
xor esi, edi
mov ecx, eax
shld ecx, esi, 0x17
shld esi, eax, 0x17
push esi
push ecx
call fcn.00552840
mov esi, dword [ebp - 0x34]
mov ebx, eax
mov ecx, dword [ebp - 0x20]
add ebx, 0x9e3779f9
mov edi, edx
adc edi, 0x165667b1
mov eax, ecx
mov dword [ebp - 0x24], 0
sub eax, esi
xor edx, edx
cmp esi, ecx
cmova eax, edx
mov dword [ebp - 0x34], eax
test eax, eax
je 0x41a5e9
nop
movzx eax, byte [esi]
push 0x27d4eb2f
cdq
push 0x165667c5
push edx
push eax
call fcn.00552840
mov ecx, eax
xor edx, edi
xor ecx, ebx
mov eax, ecx
push 0x9e3779b1
shld eax, edx, 0xb
shld edx, ecx, 0xb
push 0x85ebca87
push edx
push eax
call fcn.00552840
mov ebx, eax
lea esi, [esi + 1]
mov eax, dword [ebp - 0x24]
mov edi, edx
inc eax
mov dword [ebp - 0x24], eax
cmp eax, dword [ebp - 0x34]
jb 0x41a5a0
push 0xc2b2ae3d
xor eax, eax
mov ecx, edi
push 0x27d4eb4f
shr ecx, 1
xor eax, edi
xor ecx, ebx
push eax
push ecx
call fcn.00552840
mov esi, eax
mov ecx, edx
shrd esi, ecx, 0x1d
push 0x165667b1
shr ecx, 0x1d
xor esi, eax
push 0x9e3779f9
xor ecx, edx
push ecx
push esi
call fcn.00552840
mov ecx, edx
xor esi, esi
pop edi
xor eax, ecx
xor edx, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret