Function at 0x42d340
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x899944]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x28], ecx
call fcn.0040a400
test edi, edi
je 0x42d65d
test esi, esi
je 0x42d65d
mov eax, esi
lea edx, [eax + 1]
jmp 0x42d380
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x42d380
sub eax, edx
cmp eax, 8
jb 0x42d65d
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x42d397
sub eax, edx
cmp eax, 9
jb 0x42d65d
push 0x10
lea eax, [ebp - 0x1c]
push esi
push eax
call fcn.00408f20
add esp, 0xc
mov byte [ebp - 0xc], 0
xor edx, edx
mov ecx, 1
movsx esi, byte [edi + ecx - 1]
movsx eax, byte [edi + ecx]
sub eax, esi
jns 0x42d3d2
neg eax
test edx, edx
jns 0x42d3da
add edx, eax
jmp 0x42d3dc
sub edx, eax
inc ecx
cmp ecx, 8
jl 0x42d3c3
test edx, edx
jns 0x42d3e8
neg edx
lea eax, [edx + 0x30]
cmp eax, 0x30
jl 0x42d3f5
cmp eax, 0x39
jle 0x42d433
cmp eax, 0x61
jl 0x42d3ff
cmp eax, 0x7a
jle 0x42d433
cmp eax, 0x41
jl 0x42d409
cmp eax, 0x5a
jle 0x42d433
mov eax, 0x7a
sub eax, edx
cmp eax, 0x30
jl 0x42d41a
cmp eax, 0x39
jle 0x42d433
cmp eax, 0x61
jl 0x42d424
cmp eax, 0x7a
jle 0x42d433
cmp eax, 0x41
jl 0x42d42e
cmp eax, 0x5a
jle 0x42d433
mov eax, 0x78
movsx ecx, byte [edi + 7]
mov byte [ebp - 0x14], al
movsx eax, byte [edi + 8]
xor eax, ecx
movsx ecx, byte [edi + 6]
xor eax, ecx
movsx ecx, byte [edi + 5]
xor eax, ecx
movsx ecx, byte [edi + 4]
xor eax, ecx
movsx ecx, byte [edi + 3]
xor eax, ecx
movsx ecx, byte [edi + 2]
xor eax, ecx
movsx ecx, byte [edi]
xor eax, ecx
movsx ecx, byte [edi + 1]
lea edx, [edi + 1]
xor eax, ecx
cmp eax, 0x30
jge 0x42d476
movsx eax, byte [ebp - 0x1c]
inc eax
cmp eax, 0x7a
jle 0x42d480
movsx eax, byte [ebp - 0x1b]
inc eax
cmp eax, 0x30
jl 0x42d48a
cmp eax, 0x39
jle 0x42d4a3
cmp eax, 0x61
jl 0x42d494
cmp eax, 0x7a
jle 0x42d4a3
cmp eax, 0x41
jl 0x42d49e
cmp eax, 0x5a
jle 0x42d4a3
mov eax, 0x52
mov byte [ebp - 0x13], al
xor ecx, ecx
mov esi, 1
lea ecx, [ecx]
movsx edi, byte [ebp + esi - 0x1d]
movsx eax, byte [ebp + esi - 0x1c]
sub eax, edi
jns 0x42d4c0
neg eax
test ecx, ecx
jns 0x42d4c8
add ecx, eax
jmp 0x42d4ca
sub ecx, eax
inc esi
cmp esi, 8
jl 0x42d4b0
mov dword [ebp - 0x24], 2
push ebx
jmp 0x42d4e0
movsx edi, byte [edx + 1]
movsx esi, byte [edx - 1]
mov eax, edi
sub eax, esi
jns 0x42d4f0
neg eax
test ecx, ecx
jns 0x42d4f8
add ecx, eax
jmp 0x42d4fa
sub ecx, eax
movsx esi, byte [edx + 2]
movsx ebx, byte [edx]
mov eax, esi
sub eax, ebx
jns 0x42d509
neg eax
test ecx, ecx
jns 0x42d511
add ecx, eax
jmp 0x42d513
sub ecx, eax
movsx eax, byte [edx + 3]
sub eax, edi
jns 0x42d51d
neg eax
test ecx, ecx
jns 0x42d525
add ecx, eax
jmp 0x42d527
sub ecx, eax
movsx eax, byte [edx + 4]
sub eax, esi
jns 0x42d531
neg eax
test ecx, ecx
jns 0x42d539
add ecx, eax
jmp 0x42d53b
sub ecx, eax
add edx, 4
dec dword [ebp - 0x24]
jne 0x42d4e0
test ecx, ecx
jns 0x42d549
neg ecx
lea eax, [ecx + 0x30]
cmp eax, 0x30
jl 0x42d556
cmp eax, 0x39
jle 0x42d594
cmp eax, 0x61
jl 0x42d560
cmp eax, 0x7a
jle 0x42d594
cmp eax, 0x41
jl 0x42d56a
cmp eax, 0x5a
jle 0x42d594
mov eax, 0x7a
sub eax, ecx
cmp eax, 0x30
jl 0x42d57b
cmp eax, 0x39
jle 0x42d594
cmp eax, 0x61
jl 0x42d585
cmp eax, 0x7a
jle 0x42d594
cmp eax, 0x41
jl 0x42d58f
cmp eax, 0x5a
jle 0x42d594
mov eax, 0x6e
mov edx, dword [ebp - 0x20]
mov byte [ebp - 0x12], al
xor eax, eax
xor ecx, ecx
mov edi, edi
movsx esi, byte [edx + ecx]
add ecx, 2
xor eax, esi
cmp ecx, 0xa
jl 0x42d5a0
movsx edx, byte [ebp - 0x15]
movsx ebx, byte [ebp - 0x16]
movsx edi, byte [ebp - 0x19]
movsx esi, byte [ebp - 0x1a]
movsx ecx, byte [ebp - 0x17]
xor ebx, edx
movsx edx, byte [ebp - 0x1b]
xor ebx, edx
movsx edx, byte [ebp - 0x1c]
xor ebx, edx
movsx edx, byte [ebp - 0x18]
xor ebx, edx
xor ebx, edi
xor ebx, esi
xor ebx, ecx
xor eax, ebx
pop ebx
cmp eax, 0x30
jge 0x42d5e7
lea eax, [ecx + 0x14]
cmp eax, 0x7a
jle 0x42d5ef
lea eax, [esi - 0xa]
cmp eax, 0x30
jge 0x42d5f7
lea eax, [edi + 0x14]
cmp eax, 0x7a
jle 0x42d5ff
lea eax, [edx - 0xa]
cmp eax, 0x30
jl 0x42d609
cmp eax, 0x39
jle 0x42d622
cmp eax, 0x61
jl 0x42d613
cmp eax, 0x7a
jle 0x42d622
cmp eax, 0x41
jl 0x42d61d
cmp eax, 0x5a
jle 0x42d622
mov eax, 0x47
mov esi, dword [ebp - 0x28]
mov byte [ebp - 0x11], al
mov eax, dword [ebp - 0x20]
push eax
mov ecx, esi
mov byte [ebp - 0x10], 0
call fcn.0040a8e0
push 0x5f
mov ecx, esi
call fcn.0040d2d0
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, esi
call fcn.0040a8e0
pop edi
mov al, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0070bb4c
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
xor al, al
pop esi
call fcn.0070bb4c
mov esp, ebp
pop ebp
ret