Function at 0x4017bb
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, dword [ebp + 0xc]
push ebx
xor eax, eax
push esi
mov esi, dword [ebp + 8]
cmp ecx, 0x20
push edi
jge 0x4017e3
mov dl, byte [eax + esi]
xor byte [ecx + esi], dl
inc eax
inc ecx
cmp eax, dword [ebp + 0xc]
jl 0x4017de
xor eax, eax
cmp ecx, 0x20
jl 0x4017cf
mov edx, dword [ebp + 0x10]
and dword [ebp - 4], 0
mov ebx, esi
lea edi, [esi + 0x1f]
sub ebx, edx
mov al, byte [ebp - 4]
mov cl, 0xf
imul cl
mov byte [edx], al
mov cl, byte [ebx + edx]
add cl, al
mov byte [edx], cl
xor cl, byte [edi]
inc dword [ebp - 4]
dec edi
mov byte [edx], cl
inc edx
cmp dword [ebp - 4], 0x10
jl 0x4017f1
cmp dword [ebp + 0xc], 0
push 1
pop ecx
mov eax, ecx
je 0x401834
cmp byte [esi], 0x40
jne 0x401825
cmp dword [ebp + 0xc], ecx
je 0x401834
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
and eax, 0x1ffff
or eax, 0x40000
cmp eax, ecx
mov dword [ebp + 0xc], ecx
jl 0x401adf
mov edx, dword [ebp + 0xc]
imul edx, edx, 0xcced2000
mov esi, dword [ebp + 0x10]
xor edx, dword [esi]
add esi, 4
xor edx, dword [esi]
add esi, 4
xor edx, dword [esi]
add esi, 4
xor edx, dword [esi]
mov edi, dword [ebp + 8]
add edi, 0x1c
xor edx, dword [edi]
mov dword [edi], edx
sub edi, 4
xor edx, dword [edi]
mov dword [edi], edx
sub edi, 4
xor edx, dword [edi]
mov dword [edi], edx
sub edi, 4
xor edx, dword [edi]
mov dword [edi], edx
sub edi, 4
xor edx, dword [edi]
mov dword [edi], edx
sub edi, 4
xor edx, dword [edi]
mov dword [edi], edx
sub edi, 4
xor edx, dword [edi]
mov dword [edi], edx
sub edi, 4
xor edx, dword [edi]
mov dword [edi], edx
mov edx, dword [ebp + 0xc]
imul edx, edx, 0x96216892
mov esi, dword [ebp + 0x10]
add edx, dword [esi]
add esi, 4
add edx, dword [esi]
add esi, 4
add edx, dword [esi]
add esi, 4
add edx, dword [esi]
mov edi, dword [ebp + 8]
xor edx, dword [edi]
mov dword [edi], edx
add edi, 4
xor edx, dword [edi]
mov dword [edi], edx
add edi, 4
xor edx, dword [edi]
mov dword [edi], edx
add edi, 4
xor edx, dword [edi]
mov dword [edi], edx
add edi, 4
xor edx, dword [edi]
mov dword [edi], edx
add edi, 4
xor edx, dword [edi]
mov dword [edi], edx
add edi, 4
xor edx, dword [edi]
mov dword [edi], edx
add edi, 4
xor edx, dword [edi]
mov dword [edi], edx
mov edx, dword [ebp + 0xc]
imul edx, edx, 0x69889698
mov esi, dword [ebp + 0x10]
add edx, dword [esi]
add esi, 4
xor edx, dword [esi]
add esi, 4
add edx, dword [esi]
add esi, 4
xor edx, dword [esi]
mov edi, dword [ebp + 8]
add edi, 0x1c
add edx, dword [edi]
mov dword [edi], edx
sub edi, 4
add edx, dword [edi]
mov dword [edi], edx
sub edi, 4
add edx, dword [edi]
mov dword [edi], edx
sub edi, 4
add edx, dword [edi]
mov dword [edi], edx
sub edi, 4
add edx, dword [edi]
mov dword [edi], edx
sub edi, 4
add edx, dword [edi]
mov dword [edi], edx
sub edi, 4
add edx, dword [edi]
mov dword [edi], edx
sub edi, 4
add edx, dword [edi]
mov dword [edi], edx
mov edx, dword [ebp + 0xc]
imul edx, edx, 0x11688619
mov esi, dword [ebp + 0x10]
xor edx, dword [esi]
add esi, 4
add edx, dword [esi]
add esi, 4
xor edx, dword [esi]
add esi, 4
add edx, dword [esi]
mov edi, dword [ebp + 8]
add edx, dword [edi]
mov dword [edi], edx
add edi, 4
add edx, dword [edi]
mov dword [edi], edx
add edi, 4
add edx, dword [edi]
mov dword [edi], edx
add edi, 4
add edx, dword [edi]
mov dword [edi], edx
add edi, 4
add edx, dword [edi]
mov dword [edi], edx
add edi, 4
add edx, dword [edi]
mov dword [edi], edx
add edi, 4
add edx, dword [edi]
mov dword [edi], edx
add edi, 4
add edx, dword [edi]
mov dword [edi], edx
mov edx, dword [ebp + 0xc]
imul edx, edx, 0x91268096
mov esi, dword [ebp + 8]
xor edx, dword [esi]
add esi, 4
xor edx, dword [esi]
add esi, 4
xor edx, dword [esi]
add esi, 4
xor edx, dword [esi]
add esi, 4
xor edx, dword [esi]
add esi, 4
xor edx, dword [esi]
add esi, 4
xor edx, dword [esi]
add esi, 4
xor edx, dword [esi]
mov edi, dword [ebp + 0x10]
add edi, 0xc
xor edx, dword [edi]
mov dword [edi], edx
sub edi, 4
xor edx, dword [edi]
mov dword [edi], edx
sub edi, 4
xor edx, dword [edi]
mov dword [edi], edx
sub edi, 4
xor edx, dword [edi]
mov dword [edi], edx
mov edx, dword [ebp + 0xc]
imul edx, edx, 0xdfe6ced9
mov esi, dword [ebp + 8]
add edx, dword [esi]
add esi, 4
add edx, dword [esi]
add esi, 4
add edx, dword [esi]
add esi, 4
add edx, dword [esi]
add esi, 4
add edx, dword [esi]
add esi, 4
add edx, dword [esi]
add esi, 4
add edx, dword [esi]
add esi, 4
add edx, dword [esi]
mov edi, dword [ebp + 0x10]
xor edx, dword [edi]
mov dword [edi], edx
add edi, 4
xor edx, dword [edi]
mov dword [edi], edx
add edi, 4
xor edx, dword [edi]
mov dword [edi], edx
add edi, 4
xor edx, dword [edi]
mov dword [edi], edx
mov edx, dword [ebp + 0xc]
imul edx, edx, 0xcedc6de2
mov esi, dword [ebp + 8]
add edx, dword [esi]
add esi, 4
xor edx, dword [esi]
add esi, 4
add edx, dword [esi]
add esi, 4
xor edx, dword [esi]
add esi, 4
add edx, dword [esi]
add esi, 4
xor edx, dword [esi]
add esi, 4
add edx, dword [esi]
add esi, 4
xor edx, dword [esi]
mov edi, dword [ebp + 0x10]
add edi, 0xc
add edx, dword [edi]
mov dword [edi], edx
sub edi, 4
add edx, dword [edi]
mov dword [edi], edx
sub edi, 4
add edx, dword [edi]
mov dword [edi], edx
sub edi, 4
add edx, dword [edi]
mov dword [edi], edx
mov edx, dword [ebp + 0xc]
imul edx, edx, 0xdef9efaa
mov esi, dword [ebp + 8]
xor edx, dword [esi]
add esi, 4
add edx, dword [esi]
add esi, 4
xor edx, dword [esi]
add esi, 4
add edx, dword [esi]
add esi, 4
xor edx, dword [esi]
add esi, 4
add edx, dword [esi]
add esi, 4
xor edx, dword [esi]
add esi, 4
add edx, dword [esi]
mov edi, dword [ebp + 0x10]
add edx, dword [edi]
mov dword [edi], edx
add edi, 4
add edx, dword [edi]
mov dword [edi], edx
add edi, 4
add edx, dword [edi]
mov dword [edi], edx
add edi, 4
add edx, dword [edi]
mov dword [edi], edx
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], eax
jle 0x40183f
pop edi
pop esi
pop ebx
leave
ret