Function at 0x180030a20
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
xor r15d, r15d
mov rbx, rdx
mov r12, rcx
mov r14d, r15d
cmp byte [rdx], r15b
je 0x180030a4a
inc r14d
cmp byte [r14 + rdx], r15b
jne 0x180030a41
mov qword [rsp + 0x48], rsi
mov rax, r15
mov qword [rcx], r15
mov qword [rcx + 8], r15
mov qword [rcx + 0x10], r15
mov qword [rcx + 0x18], r15
mov word [rcx + 0x20], r15w
mov qword [rcx + 0x28], r15
mov qword [rcx + 0x30], r15
mov qword [rcx + 0x38], r15
movsxd rcx, r14d
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], r13
lea r8, [rcx + rdx]
mov qword [rbp - 0x30], r8
test r14d, r14d
je 0x180030a9e
nop dword [rax]
cmp byte [rax + rdx], 0x3a
je 0x180030adb
inc rax
cmp rax, rcx
jb 0x180030a90
movsxd r13, r14d
add r13, rbx
mov rcx, r13
mov rax, r15
sub rcx, rbx
je 0x1800313ad
nop dword [rax]
nop word [rax + rax]
cmp byte [rax + rbx], 0x3f
lea r14, [rax + rbx]
je 0x18003126f
inc rax
cmp rax, rcx
jb 0x180030ac0
jmp 0x1800313b2
lea rsi, [rax + rdx]
test rsi, rsi
je 0x180030a9e
cmp rsi, rbx
je 0x180030b7b
jbe 0x180030b1c
nop
movzx ecx, byte [rdx]
lea eax, [rcx - 0x41]
cmp al, 0x19
jbe 0x180030b14
lea eax, [rcx - 0x61]
cmp al, 0x19
jbe 0x180030b14
lea eax, [rcx - 0x30]
cmp al, 9
jbe 0x180030b14
lea eax, [rcx - 0x2b]
test al, 0xfc
jne 0x180030b6e
cmp cl, 0x2c
je 0x180030b6e
inc rdx
cmp rdx, rsi
jb 0x180030af0
movzx eax, byte [rsi + 1]
lea r13, [rsi + 1]
test al, al
jne 0x180030c8e
sub esi, ebx
movsxd rcx, esi
inc rcx
call fcn.18024a2e4
movsxd r9, esi
mov rdx, r9
test esi, esi
je 0x180030b61
mov r8, rax
sub r8, rbx
nop dword [rax]
movzx ecx, byte [rbx]
mov byte [r8 + rbx], cl
lea rbx, [rbx + 1]
sub rdx, 1
jne 0x180030b50
mov byte [r9 + rax], r15b
mov qword [r12], rax
jmp 0x18003140b
lea rax, [rsi + 1]
cmp rax, r8
jae 0x180030a9e
lea rdx, [rsi + 1]
mov rcx, rdx
movzx eax, byte [rcx]
sub al, 0x30
cmp al, 9
ja 0x180030b9a
inc rcx
mov rax, rcx
sub rax, rdx
cmp rax, 6
jl 0x180030b82
mov rdi, rcx
sub rdi, rdx
cmp rdi, 6
jge 0x180030a9e
movzx eax, byte [rcx]
cmp al, 0x2f
je 0x180030bb9
test al, al
jne 0x180030a9e
test rdi, rdi
je 0x180030bca
mov r8, rdi
lea rcx, [rbp + 0x48]
call fcn.18024af30
mov byte [rbp + rdi + 0x48], r15b
lea rdx, [rbp + 0x48]
movzx ecx, byte [rbp + 0x48]
xor r10b, r10b
mov r9d, r15d
test cl, cl
je 0x180030bfd
lea eax, [rcx - 0x30]
cmp al, 9
jbe 0x180030bfd
cmp cl, 0x2d
je 0x180030c04
cmp cl, 0x2b
je 0x180030bfd
movzx ecx, byte [rdx + 1]
inc rdx
test cl, cl
jne 0x180030be1
movzx eax, byte [rdx]
cmp al, 0x2d
jne 0x180030c0e
movzx eax, byte [rdx]
mov r10b, 1
cmp al, 0x2d
je 0x180030c12
cmp al, 0x2b
jne 0x180030c15
inc rdx
movzx r8d, byte [rdx]
test r8b, r8b
je 0x180030c44
nop
lea eax, [r8 - 0x30]
cmp al, 9
ja 0x180030c44
inc rdx
movsx eax, r8b
lea r9d, [r9 + r9*4]
lea r9d, [r9 - 0x18]
movzx r8d, byte [rdx]
lea r9d, [rax + r9*2]
test r8b, r8b
jne 0x180030c20
movzx eax, r9w
neg ax
test r10b, r10b
cmove ax, r9w
mov word [r12 + 0x20], ax
mov r14, qword [rbp - 0x30]
mov rax, r15
mov rcx, r14
mov r13, r14
sub rcx, rbx
je 0x180030f31
nop
cmp byte [rax + rbx], 0x2f
lea rdx, [rax + rbx]
je 0x180030f27
inc rax
cmp rax, rcx
jb 0x180030c70
mov rax, r15
jmp 0x180030f40
cmp al, 0x2f
je 0x180030d07
mov rcx, r13
movzx eax, byte [rcx]
sub al, 0x30
cmp al, 9
ja 0x180030ca3
inc rcx
jmp 0x180030c95
movzx eax, byte [rcx]
test al, al
je 0x180030cae
cmp al, 0x2f
jne 0x180030cbb
sub rcx, rsi
cmp rcx, 7
jl 0x180030b7b
sub esi, ebx
movsxd rcx, esi
inc rcx
call fcn.18024a2e4
movsxd r10, esi
mov rdx, rbx
mov r8, r10
test esi, esi
je 0x180030cf1
mov r9, rax
sub r9, rbx
nop dword [rax + rax]
movzx ecx, byte [rdx]
mov byte [r9 + rdx], cl
lea rdx, [rdx + 1]
sub r8, 1
jne 0x180030ce0
mov byte [r10 + rax], r15b
mov qword [r12], rax
sub ebx, r13d
add r14d, ebx
mov rbx, r13
jmp 0x180030a9e
mov edi, esi
sub edi, ebx
movsxd rcx, edi
inc rcx
call fcn.18024a2e4
movsxd r10, edi
mov rdx, rbx
mov r8, r10
test edi, edi
je 0x180030d41
mov r9, rax
sub r9, rbx
nop dword [rax]
movzx ecx, byte [rdx]
mov byte [r9 + rdx], cl
lea rdx, [rdx + 1]
sub r8, 1
jne 0x180030d30
mov byte [r10 + rax], r15b
movabs r11, 0xaaaaaaaaaaaaaaab
mov qword [r12], rax
cmp byte [rsi + 2], 0x2f
mov qword [rbp - 0x28], 3
mov qword [rbp + 0x30], 2
mov rcx, qword [rbp + 0x30]
mov rax, qword [rbp - 0x28]
jne 0x180030e5a
add rcx, rax
lea rbx, [rsi + 3]
mov qword [rbp + 0x30], rcx
mov r10, qword [rbp + 0x30]
mov r9, qword [r12]
mov dword [rbp + 0x38], 0xba6f914
mov word [rbp + 0x3c], 0xd6
mov qword [rbp + 0x30], r15
mov rax, qword [rbp + 0x30]
nop dword [rax]
mov rcx, qword [rbp + 0x30]
mov rax, qword [rbp + 0x30]
movzx r8d, byte [rbp + rax + 0x39]
mov rax, r11
mul rcx
shr rdx, 4
movzx eax, dl
add al, al
add dl, al
mov rax, qword [rbp + 0x30]
shl dl, 3
sub cl, dl
mov edx, 0x50f7d59f
sar edx, cl
xor dl, r8b
mov byte [rbp + rax + 0x39], dl
mov rax, qword [rbp + 0x30]
inc rax
mov qword [rbp + 0x30], rax
mov rax, qword [rbp + 0x30]
cmp rax, 4
jb 0x180030da0
mov byte [rbp + 0x3d], r15b
lea r8, [rbp + 0x39]
nop dword [rax]
nop word [rax + rax]
movsx ecx, byte [r8]
lea r8, [r8 + 1]
lea eax, [rcx - 0x41]
cmp al, 0x19
ja 0x180030e12
add ecx, 0x20
movsx edx, byte [r9]
inc r9
lea eax, [rdx - 0x41]
cmp al, 0x19
lea eax, [rdx + 0x20]
jbe 0x180030e25
mov eax, edx
cmp ecx, eax
jne 0x180030c59
test eax, eax
je 0x180030e37
sub r10, 1
jne 0x180030e00
cmp byte [rbx], 0x2f
jne 0x180030c59
cmp byte [rsi + 5], 0x3a
mov rbx, r15
mov r13, qword [rbp - 0x30]
sete bl
add rbx, 3
add rbx, rsi
jmp 0x180030aa4
add rcx, rax
mov qword [rbp + 0x30], rcx
mov r10, qword [rbp + 0x30]
mov r9, qword [r12]
mov dword [rbp + 0x40], 0x3bc73b11
mov word [rbp + 0x44], 0xce
mov qword [rbp + 0x30], r15
mov rax, qword [rbp + 0x30]
nop
mov rcx, qword [rbp + 0x30]
mov rax, qword [rbp + 0x30]
movzx r8d, byte [rbp + rax + 0x41]
mov rax, r11
mul rcx
shr rdx, 4
movzx eax, dl
add al, al
add dl, al
mov rax, qword [rbp + 0x30]
shl dl, 3
sub cl, dl
mov edx, 0x13b52d5d
sar edx, cl
xor dl, r8b
mov byte [rbp + rax + 0x41], dl
mov rax, qword [rbp + 0x30]
inc rax
mov qword [rbp + 0x30], rax
mov rax, qword [rbp + 0x30]
cmp rax, 4
jb 0x180030e80
mov byte [rbp + 0x45], r15b
lea r8, [rbp + 0x41]
nop dword [rax]
nop word [rax + rax]
movsx ecx, byte [r8]
lea r8, [r8 + 1]
lea eax, [rcx - 0x41]
cmp al, 0x19
ja 0x180030ef2
add ecx, 0x20
movsx edx, byte [r9]
inc r9
lea eax, [rdx - 0x41]
cmp al, 0x19
lea eax, [rdx + 0x20]
jbe 0x180030f05
mov eax, edx
cmp ecx, eax
jne 0x180030cf9
test eax, eax
je 0x180031263
sub r10, 1
jne 0x180030ee0
mov rbx, r13
mov r13, qword [rbp - 0x30]
jmp 0x180030aa4
test rdx, rdx
je 0x180030f31
mov r13, rdx
jmp 0x180030f8b
mov rax, r15
test rcx, rcx
je 0x180030f61
nop dword [rax]
cmp byte [rax + rbx], 0x3f
lea rdx, [rax + rbx]
je 0x180030f57
inc rax
cmp rax, rcx
jb 0x180030f40
mov rax, r15
jmp 0x180030f70
test rdx, rdx
je 0x180030f61
mov r13, rdx
jmp 0x180030f8b
mov rax, r15
test rcx, rcx
je 0x180030f8b
nop dword [rax]
cmp byte [rax + rbx], 0x23
lea rdx, [rax + rbx]
je 0x180030f84
inc rax
cmp rax, rcx
jb 0x180030f70
jmp 0x180030f8b
test rdx, rdx
cmovne r13, rdx
mov rcx, r13
mov rax, r15
sub rcx, rbx
je 0x180031022
nop word [rax + rax]
cmp byte [rax + rbx], 0x40
lea r14, [rax + rbx]
je 0x180030fb4
inc rax
cmp rax, rcx
jb 0x180030fa0
jmp 0x18003101e
test r14, r14
je 0x18003101e
mov rcx, r14
mov rax, r15
sub rcx, rbx
je 0x180030fd6
cmp byte [rax + rbx], 0x3a
lea rsi, [rax + rbx]
je 0x18003103e
inc rax
cmp rax, rcx
jb 0x180030fc4
mov edi, r14d
sub edi, ebx
movsxd rcx, edi
inc rcx
call fcn.18024a2e4
movsxd r9, edi
mov rdx, r9
test edi, edi
je 0x180031011
mov r8, rax
sub r8, rbx
nop word [rax + rax]
movzx ecx, byte [rbx]
mov byte [rbx + r8], cl
lea rbx, [rbx + 1]
sub rdx, 1
jne 0x180031000
mov byte [r9 + rax], r15b
mov qword [r12 + 8], rax
lea rbx, [r14 + 1]
mov r14, qword [rbp - 0x30]
cmp byte [rbx], 0x5b
jne 0x1800310df
cmp byte [r13 - 1], 0x5d
jne 0x1800310df
mov rdi, rbx
jmp 0x18003110a
test rsi, rsi
je 0x180030fd6
mov rax, rsi
sub rax, rbx
test rax, rax
jle 0x18003108a
mov edi, esi
sub edi, ebx
movsxd rcx, edi
inc rcx
call fcn.18024a2e4
movsxd r9, edi
mov rdx, r9
test edi, edi
je 0x180031081
mov r8, rax
sub r8, rbx
nop dword [rax]
movzx ecx, byte [rbx]
mov byte [r8 + rbx], cl
lea rbx, [rbx + 1]
sub rdx, 1
jne 0x180031070
mov byte [r9 + rax], r15b
mov qword [r12 + 8], rax
inc rsi
mov rax, r14
sub rax, rsi
test rax, rax
jle 0x18003101a
mov ebx, r14d
sub ebx, esi
movsxd rcx, ebx
inc rcx
call fcn.18024a2e4
movsxd r9, ebx
mov rdx, r9
test ebx, ebx
je 0x1800310d1
mov r8, rax
sub r8, rsi
nop dword [rax + rax]
movzx ecx, byte [rsi]
mov byte [rsi + r8], cl
lea rsi, [rsi + 1]
sub rdx, 1
jne 0x1800310c0
mov byte [r9 + rax], r15b
mov qword [r12 + 0x10], rax
jmp 0x18003101a
cmp byte [r13], 0x3a
mov rdi, r13
je 0x180031101
nop dword [rax]
cmp rdi, rbx
jb 0x18003120e
dec rdi
cmp byte [rdi], 0x3a
jne 0x1800310f0
cmp rdi, rbx
jb 0x18003120e
cmp byte [rdi], 0x3a
jne 0x18003120e
cmp word [r12 + 0x20], r15w
jne 0x180031211
inc rdi
mov rsi, r13
sub rsi, rdi
cmp rsi, 5
jle 0x18003115e
mov rcx, qword [r12]
call fcn.180249cb8
mov qword [r12], r15
mov rcx, qword [r12 + 8]
call fcn.180249cb8
mov qword [r12 + 8], r15
mov rcx, qword [r12 + 0x10]
call fcn.180249cb8
mov qword [r12 + 0x10], r15
jmp 0x18003140b
test rsi, rsi
jle 0x180031209
mov r8, rsi
lea rcx, [rbp + 0x48]
mov rdx, rdi
call fcn.18024af30
mov byte [rbp + rsi + 0x48], r15b
lea rdx, [rbp + 0x48]
movzx ecx, byte [rbp + 0x48]
xor r10b, r10b
mov r9d, r15d
test cl, cl
je 0x1800311ac
nop dword [rax]
lea eax, [rcx - 0x30]
cmp al, 9
jbe 0x1800311ac
cmp cl, 0x2d
je 0x1800311b3
cmp cl, 0x2b
je 0x1800311ac
movzx ecx, byte [rdx + 1]
inc rdx
test cl, cl
jne 0x180031190
movzx eax, byte [rdx]
cmp al, 0x2d
jne 0x1800311bd
movzx eax, byte [rdx]
mov r10b, 1
cmp al, 0x2d
je 0x1800311c1
cmp al, 0x2b
jne 0x1800311c4
inc rdx
movzx r8d, byte [rdx]
test r8b, r8b
je 0x1800311f4
nop dword [rax]
lea eax, [r8 - 0x30]
cmp al, 9
ja 0x1800311f4
inc rdx
movsx eax, r8b
lea r9d, [r9 + r9*4]
lea r9d, [r9 - 0x18]
movzx r8d, byte [rdx]
lea r9d, [rax + r9*2]
test r8b, r8b
jne 0x1800311d0
movzx eax, r9w
neg ax
test r10b, r10b
cmove ax, r9w
mov word [r12 + 0x20], ax
dec rdi
jmp 0x180031211
mov rdi, r13
mov rax, rdi
sub rax, rbx
cmp rax, 1
jl 0x18003112e
sub edi, ebx
movsxd rcx, edi
inc rcx
call fcn.18024a2e4
movsxd r9, edi
mov rdx, r9
test edi, edi
je 0x180031251
mov r8, rax
sub r8, rbx
nop
movzx ecx, byte [rbx]
mov byte [rbx + r8], cl
lea rbx, [rbx + 1]
sub rdx, 1
jne 0x180031240
mov byte [r9 + rax], r15b
mov qword [r12 + 0x18], rax
cmp r13, r14
je 0x18003140b
mov rbx, r13
mov r13, qword [rbp - 0x30]
jmp 0x180030aa4
test r14, r14
je 0x1800313ad
movzx eax, byte [rbx]
mov rsi, rbx
cmp al, 0x23
je 0x180031291
test al, al
je 0x1800312c1
movzx eax, byte [rsi + 1]
inc rsi
cmp al, 0x23
jne 0x180031282
cmp byte [rsi], r15b
je 0x1800312c1
cmp rsi, r14
jae 0x1800312c4
movzx eax, byte [rsi + 2]
mov r14, rsi
add rsi, 2
cmp al, 0x23
je 0x1800312c4
nop word [rax + rax]
test al, al
je 0x1800312c1
movzx eax, byte [rsi + 1]
inc rsi
cmp al, 0x23
jne 0x1800312b0
jmp 0x1800312c4
mov rsi, r15
mov rax, r14
sub rax, rbx
je 0x18003130a
mov edi, r14d
sub edi, ebx
movsxd rcx, edi
inc rcx
call fcn.18024a2e4
movsxd r9, edi
mov rdx, r9
test edi, edi
je 0x180031301
mov r8, rax
sub r8, rbx
nop dword [rax]
movzx ecx, byte [rbx]
mov byte [rbx + r8], cl
lea rbx, [rbx + 1]
sub rdx, 1
jne 0x1800312f0
mov byte [r9 + rax], r15b
mov qword [r12 + 0x28], rax
inc r14
test rsi, rsi
je 0x180031360
cmp rsi, r14
je 0x18003147b
mov ebx, esi
sub ebx, r14d
movsxd rcx, ebx
inc rcx
call fcn.18024a2e4
movsxd r9, ebx
mov rdx, r9
test ebx, ebx
je 0x180031352
mov r8, rax
sub r8, r14
nop dword [rax + rax]
movzx ecx, byte [r14]
mov byte [r14 + r8], cl
lea r14, [r14 + 1]
sub rdx, 1
jne 0x180031340
mov byte [r9 + rax], r15b
mov qword [r12 + 0x30], rax
jmp 0x18003147b
cmp r14, r13
je 0x18003140b
sub r13d, r14d
movsxd rcx, r13d
inc rcx
call fcn.18024a2e4
movsxd r9, r13d
mov rdx, r9
test r13d, r13d
je 0x1800313a2
mov r8, rax
sub r8, r14
nop dword [rax + rax]
movzx ecx, byte [r14]
mov byte [r14 + r8], cl
lea r14, [r14 + 1]
sub rdx, 1
jne 0x180031390
mov byte [r9 + rax], r15b
mov qword [r12 + 0x30], rax
jmp 0x18003140b
test rcx, rcx
je 0x1800313c5
cmp byte [r15 + rbx], 0x23
lea rsi, [r15 + rbx]
je 0x18003142a
inc r15
cmp r15, rcx
jb 0x1800313b2
sub r13d, ebx
movsxd rcx, r13d
inc rcx
call fcn.18024a2e4
movsxd r9, r13d
mov rdx, r9
test r13d, r13d
je 0x180031401
mov r8, rax
sub r8, rbx
nop dword [rax]
nop dword [rax + rax]
movzx ecx, byte [rbx]
mov byte [rbx + r8], cl
lea rbx, [rbx + 1]
sub rdx, 1
jne 0x1800313f0
mov byte [rax + r9], 0
mov qword [r12 + 0x28], rax
mov r13, qword [rsp + 0x38]
mov rax, r12
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x50
pop r15
pop r14
pop r12
pop rbx
pop rbp
ret
test rsi, rsi
je 0x1800313c5
mov rax, rsi
sub rax, rbx
je 0x18003147b
mov edi, esi
sub edi, ebx
movsxd rcx, edi
inc rcx
call fcn.18024a2e4
movsxd r9, edi
mov rdx, r9
test edi, edi
je 0x180031471
mov r8, rax
sub r8, rbx
nop word [rax + rax]
movzx ecx, byte [rbx]
mov byte [rbx + r8], cl
lea rbx, [rbx + 1]
sub rdx, 1
jne 0x180031460
mov byte [rax + r9], 0
mov qword [r12 + 0x28], rax
inc rsi
cmp r13, rsi
je 0x18003140b
sub r13d, esi
movsxd rcx, r13d
inc rcx
call fcn.18024a2e4
movsxd r9, r13d
mov rdx, r9
test r13d, r13d
je 0x1800314c1
mov r8, rax
sub r8, rsi
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [rsi]
mov byte [rsi + r8], cl
lea rsi, [rsi + 1]
sub rdx, 1
jne 0x1800314b0
mov byte [rax + r9], 0
mov qword [r12 + 0x38], rax
jmp 0x18003140b