Function at 0x418ed5
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [0x472014]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
mov dword [ebp - 0xc], edx
mov eax, ecx
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x18], eax
push esi
push edi
test edx, edx
je 0x41919a
mov al, byte [eax + edx - 1]
mov edi, dword [ebp + 0xc]
mov esi, edi
mov byte [ecx], al
not esi
mov ecx, edx
and ecx, 7
mov dword [ebp - 0x14], ecx
jne 0x418f27
and dword [ebp - 0x14], 0
and dword [ebp - 0x10], 0
mov ebx, dword [ebp - 0xc]
jmp 0x419066
mov ebx, dword [ebp + 0x18]
mov edx, ebx
mov ecx, dword [ebp + 0x14]
xor edx, edi
mov eax, ecx
ror edx, 0x1f
shr eax, 0x10
imul edx, eax
mov dword [ebp - 0x10], eax
mov eax, edi
ror eax, 5
add edx, eax
movzx eax, cx
xor edx, esi
mov esi, ebx
sub esi, edx
ror esi, 0x1f
imul esi, eax
mov eax, edx
ror eax, 0x17
add esi, eax
mov eax, ebx
xor esi, edi
movzx ebx, bx
xor eax, esi
mov edi, dword [ebp + 0x18]
sub ecx, eax
xor ecx, edx
mov edx, ecx
mov eax, ecx
sub edx, dword [ebp + 0x14]
ror edx, 8
ror eax, 4
imul edx, ebx
sub edx, eax
xor edx, esi
mov esi, dword [ebp + 0x14]
xor edi, edx
mov eax, edx
ror eax, 6
ror edi, 3
imul edi, dword [ebp - 0x10]
xor edi, eax
movzx eax, si
xor edi, ecx
mov ecx, edi
xor ecx, dword [ebp - 0x10]
rol ecx, 1
imul ecx, eax
mov eax, edi
ror eax, 0x1e
xor ecx, eax
xor ecx, edx
mov edx, dword [ebp + 0x14]
mov esi, ecx
movzx eax, dx
sub esi, eax
mov eax, dword [ebp + 0x18]
shr eax, 0x10
imul esi, eax
mov eax, ecx
shr eax, 0xc
sub esi, eax
mov eax, dword [ebp + 0x14]
xor esi, edi
movzx edi, ax
mov edx, esi
ror edx, 9
sub edx, ebx
imul edx, edi
xor edx, ecx
mov ecx, edx
mov eax, edx
sub ecx, dword [ebp + 0x18]
ror ecx, 0x1c
imul ecx, dword [ebp - 0x10]
ror eax, 0x10
xor ecx, eax
xor ecx, esi
mov dword [ebp - 0x24], ecx
mov eax, ecx
and dword [ebp - 0x34], 0
xor eax, ebx
mov esi, dword [ebp - 0x18]
imul eax, edi
lea edi, [ebp - 0x34]
shr ecx, 6
xor eax, ecx
mov ecx, dword [ebp - 0x14]
xor eax, edx
and dword [ebp - 0x30], 0
mov dword [ebp - 0x20], eax
mov edx, ecx
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
sub edx, 1
jne 0x419015
mov eax, dword [ebp - 0x34]
lea edx, [ebp - 0x24]
xor dword [ebp - 0x24], eax
lea edx, [edx + ecx]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x30]
xor dword [ebp - 0x20], eax
mov dword [ebp - 0x10], eax
push 8
pop eax
sub eax, ecx
je 0x419048
mov byte [edx], 0
inc edx
sub eax, 1
jne 0x41903f
mov ebx, dword [ebp - 0xc]
lea esi, [ebp - 0x24]
mov edx, ecx
mov edi, ebx
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
sub edx, 1
jne 0x419052
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
mov edx, dword [ebp + 8]
shr edx, 3
lea eax, [ecx + ebx]
mov dword [ebp - 0x2c], eax
mov dword [ebp + 8], edx
test edx, edx
je 0x41919a
mov ebx, dword [ebp + 0x18]
mov eax, ebx
shr eax, 0x10
mov dword [ebp - 0x20], eax
movzx eax, bx
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x14]
movzx edx, ax
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 0x2c]
sub ecx, edx
shr eax, 0x10
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x18], ecx
mov ecx, dword [ecx + edx]
mov edx, dword [ebp - 0x30]
xor ecx, esi
mov esi, dword [ebp - 0x18]
xor edx, ecx
imul edx, dword [ebp - 0x28]
mov eax, ecx
shr eax, 6
xor edx, eax
mov eax, dword [ebp - 0x2c]
xor edx, dword [esi + eax + 4]
xor edx, edi
mov esi, edx
mov eax, edx
sub esi, ebx
ror eax, 0x10
mov ebx, dword [ebp - 0xc]
ror esi, 0x1c
imul esi, ebx
xor esi, eax
xor esi, ecx
mov ecx, esi
ror ecx, 9
sub ecx, dword [ebp - 0x30]
imul ecx, dword [ebp - 0x28]
xor ecx, edx
mov edi, ecx
mov eax, ecx
sub edi, dword [ebp - 0x28]
imul edi, dword [ebp - 0x20]
shr eax, 0xc
sub edi, eax
xor edi, esi
xor ebx, edi
mov eax, edi
ror eax, 0x1e
rol ebx, 1
imul ebx, dword [ebp - 0x28]
xor ebx, eax
xor ebx, ecx
mov ecx, dword [ebp + 0x14]
mov edx, ebx
mov eax, ebx
xor edx, dword [ebp + 0x18]
ror edx, 3
imul edx, dword [ebp - 0xc]
ror eax, 6
xor edx, eax
xor edx, edi
mov esi, edx
mov eax, edx
sub esi, ecx
ror eax, 4
ror esi, 8
imul esi, dword [ebp - 0x30]
sub esi, eax
xor esi, ebx
mov ebx, dword [ebp + 0x18]
mov eax, esi
mov edi, ebx
xor eax, ebx
sub ecx, eax
xor ecx, edx
mov edx, dword [ebp - 0x2c]
sub edi, ecx
mov eax, ecx
ror edi, 0x1f
imul edi, dword [ebp - 0x28]
ror eax, 0x17
add edi, eax
xor edi, esi
mov esi, edi
mov eax, edi
xor esi, ebx
ror eax, 5
ror esi, 0x1f
imul esi, dword [ebp - 0xc]
add esi, eax
xor esi, ecx
xor esi, dword [ebp - 0x14]
xor edi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + edx]
mov dword [ebp - 0x14], eax
mov eax, dword [ecx + edx + 4]
mov dword [edx], esi
mov dword [edx + 4], edi
add edx, 8
sub dword [ebp + 8], 1
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x2c], edx
jne 0x4190a5
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0046ee70
leave
ret 0x14