Function at 0x427170
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x28
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x4c]
add ebx, 0x400
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x3c]
add ebx, 0x800
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x3c]
add ebx, 0xc00
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x3c]
add ebx, 0x1000
test ecx, ecx
mov dword [esp + 0x14], ebx
je 0x4274c1
movsx edx, dx
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x14]
movsx ecx, ax
xor ebp, ebp
mov esi, esi
lea edi, [edi]
mov eax, ebp
add ebx, 4
cdq
idiv ecx
lea eax, [ebp + 1]
movzx esi, byte [edi + edx]
cdq
idiv ecx
shl esi, 0x18
xor esi, dword [ebx - 4]
mov dword [ebx - 4], esi
movzx eax, byte [edi + edx]
shl eax, 0x10
xor esi, eax
lea eax, [ebp + 2]
mov dword [ebx - 4], esi
cdq
idiv ecx
movzx eax, byte [edi + edx]
shl eax, 8
xor esi, eax
lea eax, [ebp + 3]
add ebp, 4
mov dword [ebx - 4], esi
cdq
idiv ecx
movzx eax, byte [edi + edx]
xor esi, eax
mov dword [ebx - 4], esi
cmp ebp, 0x48
jne 0x4271e0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
xor ebx, ebx
xor edi, edi
xor esi, esi
jmp 0x427259
mov eax, esi
sar eax, 2
mov ebx, dword [esp + eax*4 + 0x20]
lea eax, [edi + esi]
mov ecx, esi
mov ebp, esi
not ecx
add esi, 1
sar ebp, 2
cdq
and ecx, 3
idiv dword [esp + 4]
mov eax, dword [esp + 0x48]
shl ecx, 3
movzx eax, byte [eax + edx]
shl eax, cl
xor ebx, eax
cmp esi, 8
mov dword [esp + ebp*4 + 0x20], ebx
jne 0x427250
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x20]
add edi, 8
mov dword [esp], eax
mov eax, dword [esp + 0x20]
call fcn.00426420
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
cmp edi, 0x48
mov eax, dword [esp + 0x24]
mov dword [edx + edi - 8], ebx
mov dword [edx + edi - 4], eax
jne 0x427244
lea esi, [esi]
xor esi, esi
jmp 0x4272cd
mov eax, esi
sar eax, 2
mov ebx, dword [esp + eax*4 + 0x20]
lea eax, [edi + esi]
mov ecx, esi
mov ebp, esi
not ecx
add esi, 1
sar ebp, 2
cdq
and ecx, 3
idiv dword [esp + 4]
mov eax, dword [esp + 0x48]
shl ecx, 3
movzx eax, byte [eax + edx]
shl eax, cl
xor ebx, eax
cmp esi, 8
mov dword [esp + ebp*4 + 0x20], ebx
jne 0x4272c4
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x20]
add edi, 8
mov dword [esp], eax
mov eax, dword [esp + 0x20]
call fcn.00426420
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x20]
cmp edi, 0x448
mov edx, dword [esp + 0x3c]
mov dword [eax + edi - 0x50], ebx
mov eax, dword [esp + 0x24]
mov dword [edx + edi - 0x4c], eax
jne 0x4272c0
mov esi, esi
lea edi, [edi]
xor esi, esi
jmp 0x42734d
mov eax, esi
sar eax, 2
mov ebx, dword [esp + eax*4 + 0x20]
lea eax, [edi + esi]
mov ecx, esi
mov ebp, esi
not ecx
add esi, 1
sar ebp, 2
cdq
and ecx, 3
idiv dword [esp + 4]
mov eax, dword [esp + 0x48]
shl ecx, 3
movzx eax, byte [eax + edx]
shl eax, cl
xor ebx, eax
cmp esi, 8
mov dword [esp + ebp*4 + 0x20], ebx
jne 0x427344
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x20]
add edi, 8
mov dword [esp], eax
mov eax, dword [esp + 0x20]
call fcn.00426420
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0x20]
cmp edi, 0x848
mov eax, dword [esp + 0x24]
mov dword [edx + edi - 0x450], ebx
mov dword [edx + edi - 0x44c], eax
jne 0x427340
lea esi, [esi]
xor esi, esi
jmp 0x4273cd
mov eax, esi
sar eax, 2
mov ebx, dword [esp + eax*4 + 0x20]
lea eax, [edi + esi]
mov ecx, esi
mov ebp, esi
not ecx
add esi, 1
sar ebp, 2
cdq
and ecx, 3
idiv dword [esp + 4]
mov eax, dword [esp + 0x48]
shl ecx, 3
movzx eax, byte [eax + edx]
shl eax, cl
xor ebx, eax
cmp esi, 8
mov dword [esp + ebp*4 + 0x20], ebx
jne 0x4273c4
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x20]
add edi, 8
mov dword [esp], eax
mov eax, dword [esp + 0x20]
call fcn.00426420
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x20]
cmp edi, 0xc48
mov eax, dword [esp + 0x24]
mov dword [edx + edi - 0x850], ebx
mov dword [edx + edi - 0x84c], eax
jne 0x4273c0
lea esi, [esi]
xor esi, esi
jmp 0x42744d
mov eax, esi
sar eax, 2
mov ebx, dword [esp + eax*4 + 0x20]
lea eax, [edi + esi]
mov ecx, esi
mov ebp, esi
not ecx
add esi, 1
sar ebp, 2
cdq
and ecx, 3
idiv dword [esp + 4]
mov eax, dword [esp + 0x48]
shl ecx, 3
movzx eax, byte [eax + edx]
shl eax, cl
xor ebx, eax
cmp esi, 8
mov dword [esp + ebp*4 + 0x20], ebx
jne 0x427444
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x20]
add edi, 8
mov dword [esp], eax
mov eax, dword [esp + 0x20]
call fcn.00426420
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
cmp edi, 0x1048
mov eax, dword [esp + 0x24]
mov dword [edx + edi - 0xc50], ebx
mov dword [edx + edi - 0xc4c], eax
jne 0x427440
add esp, 0x28
pop ebx
pop esi
pop edi
pop ebp
ret
lea edx, [esp + 0x1f]
mov byte [esp + 0x1f], 0
mov dword [esp + 4], 1
mov dword [esp + 0x48], edx
jmp 0x4271ce