Function at 0x10008490
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x24
mov eax, dword [0x1026d48c]
xor eax, esp
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x30]
push esi
mov esi, dword [esp + 0x30]
push edi
mov edi, dword [esp + 0x30]
mov dword [esp + 8], edi
mov dword [esp + 0xc], ecx
call fcn.10010600
test edi, edi
je 0x100087cc
test esi, esi
je 0x100087cc
mov eax, esi
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x100084d0
sub eax, edx
cmp eax, 8
jb 0x100087cc
mov eax, edi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x100084f0
sub eax, edx
cmp eax, 9
jb 0x100087cc
push 0x10
lea eax, [esp + 0x14]
push esi
push eax
call fcn.100170c0
add esp, 0xc
mov byte [esp + 0x20], 0
xor edx, edx
mov ecx, 1
movsx esi, byte [edi + ecx - 1]
movsx eax, byte [edi + ecx]
sub eax, esi
jns 0x1000852f
neg eax
test edx, edx
jge 0x10008537
add edx, eax
jmp 0x10008539
sub edx, eax
add ecx, 1
cmp ecx, 8
jl 0x10008520
test edx, edx
jge 0x10008547
neg edx
lea eax, [edx + 0x30]
cmp eax, 0x30
jl 0x10008554
cmp eax, 0x39
jle 0x10008592
cmp eax, 0x61
jl 0x1000855e
cmp eax, 0x7a
jle 0x10008592
cmp eax, 0x41
jl 0x10008568
cmp eax, 0x5a
jle 0x10008592
mov eax, 0x7a
sub eax, edx
cmp eax, 0x30
jl 0x10008579
cmp eax, 0x39
jle 0x10008592
cmp eax, 0x61
jl 0x10008583
cmp eax, 0x7a
jle 0x10008592
cmp eax, 0x41
jl 0x1000858d
cmp eax, 0x5a
jle 0x10008592
mov eax, 0x78
movsx ecx, byte [edi + 7]
mov byte [esp + 0x18], 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 0x100085d9
movsx eax, byte [esp + 0x10]
add eax, 1
cmp eax, 0x7a
jle 0x100085e6
movsx eax, byte [esp + 0x11]
add eax, 1
cmp eax, 0x30
jl 0x100085f0
cmp eax, 0x39
jle 0x10008609
cmp eax, 0x61
jl 0x100085fa
cmp eax, 0x7a
jle 0x10008609
cmp eax, 0x41
jl 0x10008604
cmp eax, 0x5a
jle 0x10008609
mov eax, 0x52
mov byte [esp + 0x19], al
xor ecx, ecx
mov esi, 1
movsx edi, byte [esp + esi + 0xf]
movsx eax, byte [esp + esi + 0x10]
sub eax, edi
jns 0x10008624
neg eax
test ecx, ecx
jge 0x1000862c
add ecx, eax
jmp 0x1000862e
sub ecx, eax
add esi, 1
cmp esi, 8
jl 0x10008614
push ebx
push ebp
mov ebx, 2
lea ecx, [ecx]
movsx edi, byte [edx + 1]
movsx esi, byte [edx - 1]
mov eax, edi
sub eax, esi
jns 0x10008650
neg eax
test ecx, ecx
jge 0x10008658
add ecx, eax
jmp 0x1000865a
sub ecx, eax
movsx esi, byte [edx + 2]
movsx ebp, byte [edx]
mov eax, esi
sub eax, ebp
jns 0x10008669
neg eax
test ecx, ecx
jge 0x10008671
add ecx, eax
jmp 0x10008673
sub ecx, eax
movsx eax, byte [edx + 3]
sub eax, edi
jns 0x1000867d
neg eax
test ecx, ecx
jge 0x10008685
add ecx, eax
jmp 0x10008687
sub ecx, eax
movsx eax, byte [edx + 4]
sub eax, esi
jns 0x10008691
neg eax
test ecx, ecx
jge 0x10008699
add ecx, eax
jmp 0x1000869b
sub ecx, eax
add edx, 4
sub ebx, 1
jne 0x10008640
test ecx, ecx
jge 0x100086a9
neg ecx
lea eax, [ecx + 0x30]
cmp eax, 0x30
jl 0x100086b6
cmp eax, 0x39
jle 0x100086f4
cmp eax, 0x61
jl 0x100086c0
cmp eax, 0x7a
jle 0x100086f4
cmp eax, 0x41
jl 0x100086ca
cmp eax, 0x5a
jle 0x100086f4
mov eax, 0x7a
sub eax, ecx
cmp eax, 0x30
jl 0x100086db
cmp eax, 0x39
jle 0x100086f4
cmp eax, 0x61
jl 0x100086e5
cmp eax, 0x7a
jle 0x100086f4
cmp eax, 0x41
jl 0x100086ef
cmp eax, 0x5a
jle 0x100086f4
mov eax, 0x6e
mov edx, dword [esp + 0x10]
mov byte [esp + 0x22], al
xor eax, eax
xor ecx, ecx
movsx esi, byte [edx + ecx]
add ecx, 2
xor eax, esi
cmp ecx, 0xa
jl 0x10008700
movsx ebx, byte [esp + 0x1f]
movsx edx, byte [esp + 0x1e]
movsx ebp, byte [esp + 0x1c]
movsx edi, byte [esp + 0x1b]
movsx esi, byte [esp + 0x1a]
movsx ecx, byte [esp + 0x1d]
xor edx, ebx
movsx ebx, byte [esp + 0x19]
xor edx, ebx
movsx ebx, byte [esp + 0x18]
xor edx, ebx
xor edx, ebp
xor edx, edi
xor edx, esi
xor edx, ecx
xor eax, edx
cmp eax, 0x30
jge 0x1000874e
lea eax, [ecx + 0x14]
cmp eax, 0x7a
jle 0x10008756
lea eax, [esi - 0xa]
cmp eax, 0x30
jge 0x1000875e
lea eax, [edi + 0x14]
cmp eax, 0x7a
jle 0x10008766
lea eax, [ebp - 0xa]
cmp eax, 0x30
pop ebp
pop ebx
jl 0x10008772
cmp eax, 0x39
jle 0x1000878b
cmp eax, 0x61
jl 0x1000877c
cmp eax, 0x7a
jle 0x1000878b
cmp eax, 0x41
jl 0x10008786
cmp eax, 0x5a
jle 0x1000878b
mov eax, 0x47
mov esi, dword [esp + 0xc]
mov byte [esp + 0x1b], al
mov eax, dword [esp + 8]
push eax
mov ecx, esi
mov byte [esp + 0x20], 0
call fcn.10010b90
push 0x5f
mov ecx, esi
call fcn.100139f0
lea ecx, [esp + 0x10]
push ecx
mov ecx, esi
call fcn.10010b90
pop edi
mov al, 1
pop esi
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.1018f87e
add esp, 0x24
ret
mov ecx, dword [esp + 0x28]
pop edi
pop esi
xor ecx, esp
xor al, al
call fcn.1018f87e
add esp, 0x24
ret