Function at 0x427200
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
mov eax, dword [0x58be1c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0x10]
mov ecx, ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
call fcn.00408710
test edi, edi
je 0x4276bb
test esi, esi
je 0x4276bb
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x427238
sub ecx, edx
cmp ecx, 8
jb 0x4276bb
mov ecx, edi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x427250
sub ecx, edx
cmp ecx, 9
jb 0x4276bb
push 0x10
lea eax, [ebp - 0x1c]
push esi
push eax
call fcn.0042b160
movsx ecx, byte [edi + 1]
add esp, 0xc
movsx edx, byte [edi]
mov eax, ecx
sub eax, edx
movsx esi, byte [edi + 2]
mov dword [ebp - 0x3c], edx
sub edx, ecx
test eax, eax
mov byte [ebp - 0xc], 0
cmovns edx, eax
mov eax, esi
sub eax, ecx
neg edx
sub ecx, esi
test eax, eax
cmovns ecx, eax
mov eax, edx
sub eax, ecx
add ecx, edx
test edx, edx
movsx edx, byte [edi + 3]
mov dword [ebp - 0x20], edx
cmovns ecx, eax
mov eax, edx
sub eax, esi
sub esi, edx
test eax, eax
cmovns esi, eax
mov eax, ecx
sub eax, esi
test ecx, ecx
lea edx, [ecx + esi]
movsx esi, byte [edi + 4]
mov ecx, dword [ebp - 0x20]
cmovns edx, eax
mov eax, esi
mov dword [ebp - 0x28], esi
sub eax, ecx
sub ecx, esi
test eax, eax
cmovns ecx, eax
mov eax, edx
sub eax, ecx
test edx, edx
lea esi, [edx + ecx]
movsx edx, byte [edi + 5]
mov ecx, dword [ebp - 0x28]
cmovns esi, eax
mov eax, edx
mov dword [ebp - 0x30], edx
sub eax, ecx
sub ecx, edx
test eax, eax
cmovns ecx, eax
mov eax, esi
sub eax, ecx
test esi, esi
lea edx, [esi + ecx]
movsx esi, byte [edi + 6]
mov ecx, dword [ebp - 0x30]
cmovns edx, eax
mov eax, esi
mov dword [ebp - 0x24], esi
sub eax, ecx
sub ecx, esi
test eax, eax
cmovns ecx, eax
mov eax, edx
sub eax, ecx
test edx, edx
lea esi, [edx + ecx]
mov edx, dword [ebp - 0x24]
cmovns esi, eax
movsx eax, byte [edi + 7]
mov dword [ebp - 0x2c], eax
sub edx, eax
mov ecx, esi
sub eax, dword [ebp - 0x24]
cmovns edx, eax
sub ecx, edx
test esi, esi
lea eax, [esi + edx]
cmovns eax, ecx
cdq
xor eax, edx
sub eax, edx
lea ecx, [eax + 0x30]
cmp ecx, 0x30
jl 0x427357
cmp ecx, 0x39
jle 0x427395
cmp ecx, 0x61
jl 0x427361
cmp ecx, 0x7a
jle 0x427395
cmp ecx, 0x41
jl 0x42736b
cmp ecx, 0x5a
jle 0x427395
mov ecx, 0x7a
sub ecx, eax
cmp ecx, 0x30
jl 0x42737c
cmp ecx, 0x39
jle 0x427395
cmp ecx, 0x61
jl 0x427386
cmp ecx, 0x7a
jle 0x427395
cmp ecx, 0x41
jl 0x427390
cmp ecx, 0x5a
jle 0x427395
mov ecx, 0x78
movsx eax, byte [edi + 8]
mov dl, byte [ebp - 0x1c]
mov byte [ebp - 0x14], cl
movsx ecx, byte [edi + 2]
xor eax, ecx
movsx ecx, byte [edi + 1]
xor eax, ecx
xor eax, dword [ebp - 0x20]
xor eax, dword [ebp - 0x28]
xor eax, dword [ebp - 0x30]
xor eax, dword [ebp - 0x24]
xor eax, dword [ebp - 0x2c]
xor eax, dword [ebp - 0x3c]
cmp eax, 0x30
jge 0x4273c6
movsx eax, dl
inc eax
mov cl, byte [ebp - 0x1b]
cmp eax, 0x7a
jle 0x4273d2
movsx eax, cl
inc eax
cmp eax, 0x30
jl 0x4273dc
cmp eax, 0x39
jle 0x4273f5
cmp eax, 0x61
jl 0x4273e6
cmp eax, 0x7a
jle 0x4273f5
cmp eax, 0x41
jl 0x4273f0
cmp eax, 0x5a
jle 0x4273f5
mov eax, 0x52
mov byte [ebp - 0x13], al
movsx ecx, cl
mov eax, ecx
movsx edx, dl
mov esi, edx
mov dword [ebp - 0x50], ecx
sub esi, ecx
mov dword [ebp - 0x54], edx
sub eax, edx
movsx edx, byte [ebp - 0x1a]
mov dword [ebp - 0x44], edx
cmovns esi, eax
mov eax, edx
sub eax, ecx
neg esi
sub ecx, edx
test eax, eax
cmovns ecx, eax
mov eax, esi
sub eax, ecx
test esi, esi
lea edx, [ecx + esi]
movsx esi, byte [ebp - 0x19]
cmovns edx, eax
mov ecx, dword [ebp - 0x44]
mov eax, esi
mov dword [ebp - 0x34], esi
sub eax, ecx
sub ecx, esi
test eax, eax
cmovns ecx, eax
mov eax, edx
sub eax, ecx
test edx, edx
lea esi, [ecx + edx]
movsx edx, byte [ebp - 0x18]
mov ecx, dword [ebp - 0x34]
cmovns esi, eax
mov eax, edx
mov dword [ebp - 0x38], edx
sub eax, ecx
sub ecx, edx
test eax, eax
cmovns ecx, eax
mov eax, esi
sub eax, ecx
test esi, esi
lea edx, [ecx + esi]
movsx esi, byte [ebp - 0x17]
mov ecx, dword [ebp - 0x38]
cmovns edx, eax
mov eax, esi
mov dword [ebp - 0x40], esi
sub eax, ecx
sub ecx, esi
test eax, eax
cmovns ecx, eax
mov eax, edx
sub eax, ecx
test edx, edx
lea esi, [edx + ecx]
movsx edx, byte [ebp - 0x16]
mov ecx, dword [ebp - 0x40]
cmovns esi, eax
mov eax, edx
mov dword [ebp - 0x48], edx
sub eax, ecx
sub ecx, edx
test eax, eax
cmovns ecx, eax
mov eax, esi
sub eax, ecx
test esi, esi
lea edx, [esi + ecx]
movsx esi, byte [ebp - 0x15]
mov ecx, dword [ebp - 0x48]
cmovns edx, eax
mov eax, esi
mov dword [ebp - 0x4c], esi
sub eax, ecx
sub ecx, esi
test eax, eax
movsx esi, byte [edi + 2]
cmovns ecx, eax
mov eax, edx
sub eax, ecx
add ecx, edx
test edx, edx
mov edx, dword [ebp - 0x3c]
cmovns ecx, eax
mov eax, esi
sub eax, edx
sub edx, esi
test eax, eax
cmovns edx, eax
mov eax, ecx
sub eax, edx
add edx, ecx
test ecx, ecx
movsx ecx, byte [edi + 1]
cmovns edx, eax
mov eax, dword [ebp - 0x20]
sub eax, ecx
sub ecx, dword [ebp - 0x20]
test eax, eax
cmovns ecx, eax
mov eax, edx
sub eax, ecx
add ecx, edx
test edx, edx
cmovns ecx, eax
mov eax, dword [ebp - 0x28]
sub eax, esi
sub esi, dword [ebp - 0x28]
test eax, eax
cmovns esi, eax
mov eax, ecx
sub eax, esi
test ecx, ecx
lea edx, [esi + ecx]
mov esi, dword [ebp - 0x30]
cmovns edx, eax
mov ecx, dword [ebp - 0x20]
mov eax, esi
sub eax, ecx
sub ecx, esi
test eax, eax
cmovns ecx, eax
mov eax, edx
sub eax, ecx
add ecx, edx
test edx, edx
mov edx, dword [ebp - 0x28]
cmovns ecx, eax
mov eax, dword [ebp - 0x24]
sub eax, edx
sub edx, dword [ebp - 0x24]
test eax, eax
cmovns edx, eax
mov eax, ecx
sub eax, edx
add edx, ecx
test ecx, ecx
cmovns edx, eax
mov eax, dword [ebp - 0x2c]
sub eax, esi
sub esi, dword [ebp - 0x2c]
test eax, eax
cmovns esi, eax
mov eax, edx
sub eax, esi
add esi, edx
test edx, edx
mov edx, dword [ebp - 0x24]
cmovns esi, eax
movsx eax, byte [edi + 8]
mov ecx, eax
sub ecx, edx
sub edx, eax
test ecx, ecx
mov eax, esi
cmovns edx, ecx
sub eax, edx
add edx, esi
test esi, esi
mov esi, dword [ebp - 0x2c]
cmovns edx, eax
movsx eax, byte [edi + 9]
mov ecx, eax
sub ecx, esi
sub esi, eax
test ecx, ecx
cmovns esi, ecx
mov ecx, edx
sub ecx, esi
test edx, edx
lea eax, [esi + edx]
cmovns eax, ecx
cdq
xor eax, edx
sub eax, edx
lea ecx, [eax + 0x30]
cmp ecx, 0x30
jl 0x4275c1
cmp ecx, 0x39
jle 0x4275ff
cmp ecx, 0x61
jl 0x4275cb
cmp ecx, 0x7a
jle 0x4275ff
cmp ecx, 0x41
jl 0x4275d5
cmp ecx, 0x5a
jle 0x4275ff
mov ecx, 0x7a
sub ecx, eax
cmp ecx, 0x30
jl 0x4275e6
cmp ecx, 0x39
jle 0x4275ff
cmp ecx, 0x61
jl 0x4275f0
cmp ecx, 0x7a
jle 0x4275ff
cmp ecx, 0x41
jl 0x4275fa
cmp ecx, 0x5a
jle 0x4275ff
mov ecx, 0x6e
mov byte [ebp - 0x12], cl
xor edx, edx
xor ecx, ecx
movsx eax, byte [edi + ecx]
add ecx, 2
xor edx, eax
cmp ecx, 0xa
jl 0x427606
mov eax, dword [ebp - 0x40]
mov ecx, eax
mov esi, dword [ebp - 0x44]
add eax, 0x14
xor ecx, esi
xor ecx, dword [ebp - 0x34]
xor ecx, dword [ebp - 0x38]
xor ecx, dword [ebp - 0x48]
xor ecx, dword [ebp - 0x4c]
xor ecx, dword [ebp - 0x50]
xor ecx, dword [ebp - 0x54]
xor ecx, edx
cmp ecx, 0x30
cmovge eax, ecx
lea ecx, [esi - 0xa]
cmp eax, 0x7a
cmovle ecx, eax
mov eax, dword [ebp - 0x34]
add eax, 0x14
cmp ecx, 0x30
cmovge eax, ecx
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff6
cmp eax, 0x7a
cmovle ecx, eax
cmp ecx, 0x30
jl 0x427668
mov eax, ecx
cmp ecx, 0x39
jle 0x427685
cmp ecx, 0x61
jl 0x427674
mov eax, ecx
cmp ecx, 0x7a
jle 0x427685
cmp ecx, 0x41
jl 0x427680
mov eax, ecx
cmp ecx, 0x5a
jle 0x427685
mov eax, 0x47
push edi
mov ecx, ebx
mov byte [ebp - 0x11], al
mov byte [ebp - 0x10], 0
call fcn.00407d70
push 0x5f
mov ecx, ebx
call fcn.00407eb0
lea eax, [ebp - 0x1c]
mov ecx, ebx
push eax
call fcn.00407d70
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a4dea
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor al, al
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004a4dea
mov esp, ebp
pop ebp
ret