Function at 0x427e10
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x34
call fcn.004a01c0
mov eax, dword [esp + 0x3c]
push ebx
push ebp
push esi
xor ebp, ebp
mov dword [esp + 0x1c], 0
mov esi, edx
push edi
mov dword [esp + 0x24], esi
cmp dword [esp + 0x50], ebp
jne 0x427e3c
mov dword [esp + 0x50], eax
test eax, eax
jne 0x427e64
sub esp, 8
lea ecx, [eax + 6]
mov edx, 0xa2
push 0x9f
call fcn.0040aec0
mov eax, dword [esp + 0x2c]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov edi, dword [eax + 8]
mov dword [esp + 0x10], edi
test edi, edi
js 0x4280c9
mov ebx, dword [esp + 0x54]
cmp ebx, 0xffffffff
jne 0x427e9b
mov ebx, edi
mov ecx, dword [ecx + 0x10]
mov eax, dword [ecx + 4]
test eax, eax
jne 0x427eca
mov eax, 7
mov dword [esp + 0x18], 7
mov dword [esp + 0x14], eax
jmp 0x427f0b
cmp ebx, 0xfffffffe
jne 0x427ea2
jmp 0x427e7e
jge 0x427e7e
sub esp, 8
push 0x88
mov edx, 0x94
mov ecx, 4
call fcn.0040aec0
mov eax, dword [esp + 0x2c]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov esi, dword [ecx]
lea edi, [eax*4]
shl eax, 5
mov dword [esp + 0x1c], eax
mov ecx, dword [edi + esi - 4]
call fcn.0040e730
mov ecx, dword [esi + edi - 4]
sub eax, 0x21
and eax, 7
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
call fcn.0040e730
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
add ecx, 0xffffffe7
mov edi, dword [esp + 0x10]
add eax, ecx
cdq
and edx, 7
lea ecx, [edx + eax]
sar ecx, 3
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x14], ebp
jne 0x427f28
mov byte [esi], 0
inc esi
dec ecx
mov dword [esp + 0x1c], ecx
lea eax, [edi + 2]
cmp ecx, eax
jge 0x427f39
sub esp, 8
push 0x6e
jmp 0x427eac
mov edi, ecx
sub edi, dword [esp + 0x10]
lea eax, [edi - 2]
cmp ebx, 0xfffffffe
jne 0x427f4b
mov ebx, eax
jmp 0x427f4f
cmp ebx, eax
jg 0x427f2f
test ebx, ebx
jle 0x427f83
push 0xf2
mov ecx, ebx
call fcn.0040c240
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x427f72
sub esp, 8
push 0x41
jmp 0x427eac
mov edx, ebx
mov ecx, ebp
call fcn.00411370
test eax, eax
jle 0x428098
mov edx, dword [esp + 0x4c]
lea ecx, [esp + 0x28]
xor eax, eax
push eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
call fcn.00420360
add esp, 4
test eax, eax
je 0x428098
push 8
lea eax, [esp + 0x2c]
push 0x547eb8
push eax
call dword [esp + 0x48]
add esp, 0xc
test eax, eax
je 0x428098
push dword [esp + 0x10]
lea eax, [esp + 0x2c]
push dword [esp + 0x4c]
push eax
call dword [esp + 0x48]
add esp, 0xc
test eax, eax
je 0x428098
test ebx, ebx
je 0x428007
push ebx
lea eax, [esp + 0x2c]
push ebp
push eax
call dword [esp + 0x48]
add esp, 0xc
test eax, eax
je 0x428098
lea edx, [edi - 1]
push 0
lea edx, [edx + esi]
lea ecx, [esp + 0x2c]
call fcn.00420540
add esp, 4
test eax, eax
je 0x428098
lea ecx, [esp + 0x28]
call fcn.00420760
push dword [esp + 0x50]
lea ecx, [edi - 1]
push dword [esp + 0x14]
lea eax, [ecx + esi]
mov edx, ecx
push eax
mov ecx, esi
call fcn.00417d40
add esp, 0xc
test eax, eax
jne 0x428098
sub edi, ebx
xor byte [edi + esi - 2], 1
lea ecx, [edi + esi]
dec ecx
test ebx, ebx
jle 0x42806e
xor edx, edx
jmp 0x428060
mov al, byte [edx + ebp]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
inc edx
cmp edx, ebx
jl 0x428060
cmp dword [esp + 0x14], 0
je 0x428087
mov ecx, 8
mov eax, 0xff
sub ecx, dword [esp + 0x18]
sar eax, cl
and byte [esi], al
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], 1
mov byte [eax + esi - 1], 0xbc
test ebp, ebp
je 0x4280c9
mov eax, dword [0x569288]
test eax, eax
je 0x4280ad
push 0
push ebp
call eax
add esp, 8
push ebp
call fcn.004c4deb
mov ecx, dword [0x569288]
add esp, 4
test ecx, ecx
je 0x4280c9
push 1
push 0
call ecx
add esp, 8
mov eax, dword [esp + 0x20]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret