Function at 0x418105
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x58
mov eax, dword [0x472014]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
mov edx, 0xfffffff
push esi
push edi
mov dword [ebp - 0x50], ebx
mov eax, dword [ebx + 8]
mov edi, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x18]
and edi, edx
mov dword [ebp - 0xc], eax
and ecx, edx
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x10], eax
mov al, byte [ebx + 0x1c]
mov byte [ebp - 5], al
mov eax, dword [ebx]
and eax, edx
mov dword [ebp - 0x24], ecx
lea ecx, [edi + 0x400000]
mov dword [ebp - 0x28], edi
push eax
mov dword [ebp - 0x2c], ecx
call fcn.00414d58
mov esi, eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], esi
test eax, eax
je 0x418418
mov ecx, eax
mov ebx, edi
and ecx, 7
not ebx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x48], ebx
jne 0x41818c
xor ebx, ebx
xor edx, edx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], edx
jmp 0x4182c4
mov eax, dword [ebp - 0xc]
movzx ecx, ax
shr eax, 0x10
mov edx, ecx
xor edx, edi
mov dword [ebp - 0x34], eax
rol edx, 4
imul edx, eax
mov eax, edi
shr eax, 2
add edx, eax
xor edx, ebx
mov ebx, dword [ebp - 0x10]
mov edi, edx
mov eax, edx
ror eax, 0xc
sub edi, ebx
ror edi, 1
mov esi, ebx
imul edi, ecx
shr esi, 0x10
movzx ebx, bx
mov dword [ebp - 0x38], esi
sub edi, eax
mov eax, ebx
xor edi, dword [ebp - 0x28]
xor eax, edi
mov ecx, edi
imul eax, esi
mov esi, dword [ebp - 0xc]
ror ecx, 3
xor ecx, eax
xor ecx, edx
sub esi, ecx
mov eax, ecx
ror esi, 7
ror eax, 0x1e
imul esi, ebx
sub esi, eax
xor esi, edi
mov edi, dword [ebp - 0xc]
mov eax, esi
mov edx, edi
xor eax, dword [ebp - 0x10]
sub edx, eax
movzx eax, di
xor edx, ecx
mov ecx, edx
sub ecx, dword [ebp - 0x10]
ror ecx, 0xc
imul ecx, eax
mov eax, edx
ror eax, 0x12
xor ecx, eax
xor ecx, esi
mov eax, ecx
ror eax, 0xe
lea esi, [ecx + edi]
ror esi, 0xe
imul esi, dword [ebp - 0x38]
add esi, eax
mov eax, edi
xor esi, edx
mov edx, esi
sub edx, ebx
movzx ebx, ax
xor edx, ecx
xor edx, eax
mov ecx, edx
mov eax, edx
xor ecx, ebx
ror eax, 0x11
rol ecx, 3
imul ecx, dword [ebp - 0x34]
add ecx, eax
xor ecx, esi
mov eax, ecx
mov dword [ebp - 0x18], ecx
sub eax, dword [ebp - 0x38]
imul eax, ebx
shr ecx, 6
mov esi, dword [ebp - 0x2c]
lea edi, [ebp - 0x58]
sub eax, ecx
mov ecx, dword [ebp - 0x30]
xor eax, edx
xor ebx, ebx
mov dword [ebp - 0x14], eax
mov edx, ecx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
sub edx, 1
jne 0x418271
mov eax, dword [ebp - 0x58]
lea edx, [ebp - 0x18]
xor dword [ebp - 0x18], eax
lea edx, [edx + ecx]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x54]
xor dword [ebp - 0x14], eax
mov dword [ebp - 0x28], eax
push 8
pop eax
sub eax, ecx
je 0x4182a3
mov byte [edx], bl
inc edx
sub eax, 1
jne 0x41829b
mov esi, dword [ebp - 0x20]
lea edi, [ebp - 0x18]
mov ebx, esi
mov edx, ecx
mov al, byte [edi]
inc edi
mov byte [ebx], al
inc ebx
sub edx, 1
jne 0x4182ad
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x30], edx
lea edi, [ecx + esi]
mov edx, eax
mov dword [ebp - 0x4c], edi
shr edx, 3
mov dword [ebp - 0x38], edx
test edx, edx
je 0x41840f
mov edx, dword [ebp - 0x10]
sub ecx, edi
movzx eax, dx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0xc]
mov ebx, eax
shr edx, 0x10
shr ebx, 0x10
add ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x44], edx
movzx edx, ax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x2c], ecx
mov edi, dword [ecx + edi]
mov esi, edx
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x58], edi
mov ebx, dword [ecx + ebx + 4]
mov ecx, ebx
xor ecx, eax
mov dword [ebp - 0x54], ebx
xor esi, ecx
mov eax, ecx
rol esi, 4
imul esi, dword [ebp - 0x34]
shr eax, 2
add esi, eax
xor esi, edi
xor esi, dword [ebp - 0x40]
mov edx, esi
mov eax, esi
sub edx, dword [ebp - 0x10]
ror eax, 0xc
ror edx, 1
imul edx, dword [ebp - 0x1c]
sub edx, eax
xor edx, ecx
mov eax, edx
mov ecx, edx
xor eax, dword [ebp - 0x3c]
imul eax, dword [ebp - 0x44]
ror ecx, 3
xor ecx, eax
xor ecx, esi
mov esi, dword [ebp - 0xc]
sub esi, ecx
mov eax, ecx
ror esi, 7
imul esi, dword [ebp - 0x3c]
ror eax, 0x1e
sub esi, eax
xor esi, edx
mov edx, dword [ebp - 0xc]
mov eax, esi
xor eax, dword [ebp - 0x10]
sub edx, eax
xor edx, ecx
mov ecx, edx
mov eax, edx
sub ecx, dword [ebp - 0x10]
ror ecx, 0xc
imul ecx, dword [ebp - 0x1c]
ror eax, 0x12
xor ecx, eax
xor ecx, esi
mov esi, dword [ebp - 0xc]
mov eax, ecx
ror eax, 0xe
lea esi, [ecx + esi]
ror esi, 0xe
imul esi, dword [ebp - 0x44]
add esi, eax
xor esi, edx
mov edx, esi
sub edx, dword [ebp - 0x3c]
xor edx, ecx
xor edx, dword [ebp - 0xc]
mov ecx, edx
mov eax, edx
xor ecx, dword [ebp - 0x1c]
rol ecx, 3
imul ecx, dword [ebp - 0x34]
ror eax, 0x11
add ecx, eax
xor ecx, esi
mov eax, ecx
mov esi, ecx
sub eax, dword [ebp - 0x44]
imul eax, dword [ebp - 0x1c]
xor esi, dword [ebp - 0x48]
shr ecx, 6
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x18], esi
sub eax, ecx
mov ecx, dword [ebp - 0x2c]
xor eax, edx
xor eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x48], edi
mov edi, dword [ebp - 0x4c]
mov dword [ebp - 0x28], ebx
mov dword [edi], esi
mov dword [edi + 4], eax
add edi, 8
sub dword [ebp - 0x38], 1
mov dword [ebp - 0x4c], edi
jne 0x418308
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x24]
mov al, byte [esi + eax - 1]
mov ebx, dword [ebp - 0x50]
jmp 0x41841b
mov al, byte [ebp - 5]
cmp al, byte [ebp - 5]
je 0x418425
call fcn.004146f0
mov eax, dword [ebx + 0x14]
and eax, 0xfffffff
je 0x41844a
push 4
mov dword [ebp - 0x50], 0x400000
lea edx, [ebp - 0x50]
pop ecx
lea edi, [eax + esi]
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
sub ecx, 1
jne 0x41843f
mov eax, dword [ebx + 0x10]
and eax, 0xfffffff
je 0x418459
call fcn.00471500
and dword [ebp - 0x20], 0
lea eax, [ebp - 0x24]
and dword [ebp - 0x24], 0
push eax
lea eax, [ebp - 0x20]
push eax
push esi
call fcn.00414f9f
mov eax, esi
lea esp, [ebp - 0x64]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046ee70
leave
ret