Function at 0x427270
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x40
call fcn.0048af60
mov eax, dword [0x51e710]
xor eax, esp
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x58]
push ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x58]
push ebp
xor ebp, ebp
sub eax, 1
cmp eax, 0x29
push esi
push edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ebp
jl 0x427512
mov ebx, dword [esp + 0x60]
mov edi, eax
sub edi, ebx
jns 0x4272cd
mov dword [esp + 0x14], 1
xor edi, edi
mov ebx, eax
lea esi, [eax - 0x14]
push 0x7b
add eax, esi
push 0x5026a8
push eax
mov dword [esp + 0x1c], esi
call fcn.004136c0
mov ebp, eax
add esp, 0xc
test ebp, ebp
jne 0x427306
push 0x7e
push 0x5026a8
push 0x41
push 0x7a
push 4
call fcn.00415990
add esp, 0x14
jmp 0x427537
push edi
add esi, ebp
push 0
push esi
call fcn.0048a180
mov ecx, dword [esp + 0x2c]
push ebx
push ecx
lea edx, [esi + edi]
push edx
call fcn.0048fe00
lea ebx, [esi + 0x14]
call fcn.004124d0
push eax
mov eax, dword [esp + 0x2c]
push eax
push ebx
lea ecx, [esp + 0x48]
push 0x14
push ecx
call fcn.00426f00
add esp, 0x2c
test eax, eax
jne 0x427537
mov edi, esi
lea edx, [esp + 0x24]
xor ecx, ecx
sub edi, edx
lea eax, [esp + ecx + 0x24]
movzx edx, byte [edi + eax]
xor byte [eax], dl
movzx edx, byte [esi + ecx + 1]
xor byte [eax + 1], dl
movzx edx, byte [esi + ecx + 2]
xor byte [eax + 2], dl
movzx edx, byte [esi + ecx + 3]
xor byte [eax + 3], dl
movzx edx, byte [esi + ecx + 4]
xor byte [eax + 4], dl
add ecx, 5
cmp ecx, 0x14
jl 0x427350
call fcn.004124d0
mov edi, dword [esp + 0x10]
push eax
push 0x14
lea eax, [esp + 0x2c]
push eax
push edi
push ebp
call fcn.00426f00
add esp, 0x14
test eax, eax
jne 0x427537
test edi, edi
jle 0x4273be
mov ecx, ebx
mov eax, ebp
sub ecx, ebp
mov esi, edi
mov dl, byte [ecx + eax]
xor byte [eax], dl
add eax, 1
sub esi, 1
jne 0x4273b1
push 0
call fcn.004124d0
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x1c]
push eax
push 0
lea eax, [esp + 0x44]
push eax
push ecx
push edx
call fcn.00421590
add esp, 0x18
mov eax, 0x14
lea ecx, [esp + 0x38]
mov edx, ebp
lea ebx, [ebx]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x427408
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x4273f0
test eax, eax
je 0x427465
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x427457
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x427465
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x427457
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x427465
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x427457
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x427465
movzx eax, byte [ecx]
movzx esi, byte [edx]
sub esi, eax
je 0x427465
test esi, esi
mov eax, 1
jg 0x427467
or eax, 0xffffffff
jmp 0x427467
xor eax, eax
test eax, eax
jne 0x427512
cmp dword [esp + 0x14], eax
jne 0x427512
mov eax, 0x14
cmp eax, edi
jge 0x427491
cmp byte [eax + ebp], 0
jne 0x42748f
add eax, 1
cmp eax, edi
jl 0x427482
cmp eax, edi
je 0x427512
cmp byte [eax + ebp], 1
jne 0x427512
add eax, 1
sub edi, eax
mov esi, edi
cmp dword [esp + 0x58], esi
jge 0x4274e3
push 0xa6
push 0x5026a8
push 0x6d
push 0x7a
push 4
call fcn.00415990
add esp, 0x14
push ebp
or esi, 0xffffffff
call fcn.00413870
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.00487e85
add esp, 0x40
ret
mov ecx, dword [esp + 0x1c]
push esi
add eax, ebp
push eax
push ecx
call fcn.0048fe00
add esp, 0xc
push ebp
call fcn.00413870
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.00487e85
add esp, 0x40
ret
push 0xb3
push 0x5026a8
push 0x79
push 0x7a
push 4
call fcn.00415990
add esp, 0x14
test ebp, ebp
je 0x427537
push ebp
call fcn.00413870
add esp, 4
mov ecx, dword [esp + 0x4c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
or eax, 0xffffffff
call fcn.00487e85
add esp, 0x40
ret