Function at 0x18001c0c0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, rcx
lea rdi, [rcx + 0x50]
mov qword [rcx + 0x60], 0
cmp qword [rcx + 0x68], 0x10
mov rax, rdi
jb 0x18001c0f6
mov rax, qword [rsi + 0x50]
mov byte [rax], 0
mov rdx, qword [rsi + 0x38]
cmp rdx, qword [rsi + 0x40]
je 0x18001c107
mov qword [rsi + 0x40], rdx
movzx eax, byte [rsi + 0x14]
mov byte [rbp - 1], al
cmp rdx, qword [rsi + 0x48]
je 0x18001c11c
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x18001c129
lea rcx, [rsi + 0x38]
lea r8, [rbp - 1]
call fcn.18001ca90
mov r9d, dword [rsi + 0x14]
lea eax, [r9 - 0x31]
cmp eax, 9
jae 0x18001c17a
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001c163
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001c158
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18001c170
mov edx, 1
mov rcx, rdi
call fcn.18000b7d0
mov ebx, 5
jmp 0x18001c25d
cmp r9d, 0x30
je 0x18001c1b0
cmp r9d, 0x2d
jne 0x18001c1f1
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001c1e1
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001c1a8
mov rdx, qword [rsi + 0x50]
mov word [rdx + rax], 0x2d
jmp 0x18001c1f1
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001c6f7
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001c1d6
mov rdx, qword [rsi + 0x50]
mov word [rdx + rax], 0x30
jmp 0x18001c707
mov edx, 1
mov rcx, rdi
mov r9b, 0x2d
call fcn.18000b7d0
mov rcx, rsi
call fcn.18001c9c0
lea ecx, [rax - 0x31]
cmp ecx, 9
jae 0x18001c8e9
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001c23c
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001c22c
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
mov ebx, 6
jmp 0x18001c25d
mov edx, 1
mov rcx, rdi
call fcn.18000b7d0
mov ebx, 6
jmp 0x18001c25d
mov edx, 1
mov rcx, rdi
call fcn.18000b7d0
mov rcx, rsi
call fcn.18001c9c0
lea ecx, [rax - 0x30]
cmp ecx, 0xa
jae 0x18001c29f
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001c250
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001c294
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18001c25d
cmp eax, 0x2e
je 0x18001c72f
cmp eax, 0x45
je 0x18001c2b6
cmp eax, 0x65
jne 0x18001c35d
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001c2e8
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001c2dd
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18001c2f5
mov edx, 1
mov rcx, rdi
call fcn.18000b7d0
mov rcx, rsi
call fcn.18001c9c0
lea ecx, [rax - 0x30]
cmp ecx, 0xa
jae 0x18001c49d
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001c33b
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001c330
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18001c348
mov edx, 1
mov rcx, rdi
call fcn.18000b7d0
mov rcx, rsi
call fcn.18001c9c0
add eax, 0xffffffd0
mov ebx, 7
cmp eax, 9
jbe 0x18001c39d
mov byte [rsi + 0x18], 1
dec qword [rsi + 0x20]
mov rax, qword [rsi + 0x28]
test rax, rax
je 0x18001c3cf
lea rcx, [rsi + 0x28]
jmp 0x18001c3dc
mov edx, 1
mov rcx, rdi
call fcn.18000b7d0
mov rcx, rsi
call fcn.18001c9c0
add eax, 0xffffffd0
cmp eax, 0xa
jae 0x18001c35d
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001c380
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001c3c4
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18001c38d
mov rax, qword [rsi + 0x30]
test rax, rax
je 0x18001c3e2
lea rcx, [rsi + 0x30]
dec rax
mov qword [rcx], rax
cmp dword [rsi + 0x14], 0xffffffff
je 0x18001c3ec
dec qword [rsi + 0x40]
mov qword [rbp - 0x10], 0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], 0
cmp ebx, 6
je 0x18001c447
cmp ebx, 5
jne 0x18001c473
cmp qword [rsi + 0x68], 0x10
mov rcx, rdi
jb 0x18001c418
mov rcx, qword [rsi + 0x50]
lea rdx, [rbp - 0x10]
mov r8d, 0xa
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtoull]
mov rbx, rax
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
cmp dword [rax], 0
jne 0x18001c473
mov qword [rsi + 0x80], rbx
mov eax, 5
jmp 0x18001c8dc
cmp qword [rsi + 0x68], 0x10
mov rcx, rdi
jb 0x18001c455
mov rcx, qword [rsi + 0x50]
lea rdx, [rbp - 0x10]
mov r8d, 0xa
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtoll]
mov rbx, rax
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
cmp dword [rax], 0
je 0x18001c4e0
cmp qword [rsi + 0x68], 0x10
jb 0x18001c47e
mov rdi, qword [rsi + 0x50]
lea rdx, [rbp - 0x10]
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtod]
movsd qword [rsi + 0x88], xmm0
mov eax, 7
jmp 0x18001c8dc
cmp eax, 0x2d
je 0x18001c4a7
cmp eax, 0x2b
jne 0x18001c4ee
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001c5bf
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001c4d2
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18001c5cc
mov qword [rsi + 0x78], rbx
mov eax, 6
jmp 0x18001c8dc
cmp byte [0x180046735], 0
jne 0x18001c5a9
mov rax, qword [0x180044970]
movabs r8, 0x88cbbda43d715ff4
add r8, rax
movabs r9, 0x88cbbda43d715fe3
add r9, rax
xor ecx, ecx
movabs r10, 0xf0f0f0f0f0f0f0f1
lea r11, [0x1800466fa]
nop
mov rax, rcx
mul r10
mov rax, rdx
shr rax, 4
and rdx, 0xfffffffffffffff0
add rdx, rax
mov rdi, r9
sub rdi, rdx
movzx eax, byte [r8 + rcx]
movzx edx, byte [rdi + rcx]
mov ebx, edx
not bl
or bl, 0x52
mov edi, ebx
and dil, 4
mov r14d, edx
and r14b, 1
or r14b, dil
mov edi, edx
and dil, 0x52
xor dil, r14b
and bl, 0x80
and dl, 0x28
or dl, bl
or dl, 0x45
xor dl, dil
xor dl, 0x93
mov ebx, eax
xor bl, 0xad
xor al, dl
xor al, 0x52
and al, dl
or bl, dl
not bl
or bl, al
mov byte [rcx + r11], bl
inc rcx
cmp rcx, 0x3b
jne 0x18001c530
mov byte [0x180046735], 1
movabs rax, 0x88cbbda43d713d81
add rax, qword [0x180044988]
jmp 0x18001c8d3
mov edx, 1
mov rcx, rdi
call fcn.18000b7d0
mov rcx, rsi
call fcn.18001c9c0
add eax, 0xffffffd0
cmp eax, 0xa
jb 0x18001c309
cmp byte [0x180046769], 0
jne 0x18001c6e1
mov rax, qword [0x180044970]
movabs r8, 0x88cbbda43d71605c
add r8, rax
movabs r9, 0x88cbbda43d716044
add r9, rax
xor ecx, ecx
movabs r10, 0xaaaaaaaaaaaaaaab
lea r11, [0x180046736]
nop word cs:[rax + rax]
mov rax, rcx
mul r10
shr rdx, 1
and rdx, 0xfffffffffffffff8
lea rax, [rdx + rdx*2]
mov rdx, r9
sub rdx, rax
movzx ebx, byte [r8 + rcx]
mov edi, ebx
not dil
movzx eax, byte [rdx + rcx]
mov r14d, ebx
or r14b, 0x9a
mov edx, r14d
not dl
and dil, 0x65
xor bl, 0x9a
or bl, dil
mov edi, ebx
not dil
and dil, dl
and r14b, 0xaf
and dl, 0x40
or dl, r14b
xor dl, bl
xor dl, 0x50
or dl, dil
mov ebx, eax
and bl, 0xa
mov edi, eax
and dil, 0x65
mov r14d, edi
xor r14b, 0xf1
mov r15d, eax
and r15b, 0x90
or r15b, 0x21
or bl, 0xb5
xor bl, r15b
xor dil, 0xe
and dil, bl
not bl
and bl, r14b
mov r14d, eax
xor r14b, 0x65
xor al, 0x9a
or al, r14b
not al
or al, dil
or al, bl
xor al, dl
mov byte [rcx + r11], al
inc rcx
cmp rcx, 0x33
jne 0x18001c630
mov byte [0x180046769], 1
movabs rax, 0x88cbbda43d713d81
add rax, qword [0x180044990]
jmp 0x18001c8d3
mov edx, 1
mov rcx, rdi
mov r9b, 0x30
call fcn.18000b7d0
mov ebx, 5
mov rcx, rsi
call fcn.18001c9c0
cmp eax, 0x65
je 0x18001c2b6
cmp eax, 0x45
je 0x18001c2b6
cmp eax, 0x2e
jne 0x18001c35d
movzx r9d, byte [rsi + 0x90]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001c764
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001c759
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18001c771
mov edx, 1
mov rcx, rdi
call fcn.18000b7d0
mov rcx, rsi
call fcn.18001c9c0
add eax, 0xffffffd0
cmp eax, 9
jbe 0x18001c86d
cmp byte [0x1800466f9], 0
jne 0x18001c8c2
mov rax, qword [0x180044970]
movabs r10, 0x88cbbda43d715fa1
add r10, rax
movabs r11, 0x88cbbda43d715f91
add r11, rax
movabs rdi, 0x88cbbda43d715f90
add rdi, rax
mov ecx, 1
xor r8d, r8d
movabs rbx, 0xf0f0f0f0f0f0f0f1
lea r14, [0x1800466d0]
nop dword [rax]
mov rax, rcx
mul rbx
mov r9, rdx
mov rax, r8
mul rbx
mov rax, rdx
shr rax, 4
and rdx, 0xfffffffffffffff0
add rdx, rax
mov rax, rdi
sub rax, rdx
movzx eax, byte [rax + r8]
xor al, byte [r10 + r8]
mov byte [r8 + r14], al
cmp r8, 0x28
je 0x18001c8bb
mov rax, r9
shr rax, 4
and r9, 0xfffffffffffffff0
add r9, rax
mov rax, r11
sub rax, r9
movzx eax, byte [rax + r8]
xor al, byte [r10 + r8 + 1]
mov byte [r8 + r14 + 1], al
add r8, 2
add rcx, 2
jmp 0x18001c7e0
mov edx, 1
mov rcx, rdi
call fcn.18000b7d0
mov rcx, rsi
call fcn.18001c9c0
lea ecx, [rax - 0x30]
cmp ecx, 0xa
jae 0x18001c89f
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001c850
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001c894
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18001c85d
cmp eax, 0x45
je 0x18001c2b6
cmp eax, 0x65
je 0x18001c2b6
mov ebx, 7
jmp 0x18001c35d
mov byte [0x1800466f9], 1
movabs rax, 0x88cbbda43d713d81
add rax, qword [0x180044980]
mov qword [rsi + 0x70], rax
mov eax, 0xe
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
cmp eax, 0x30
jne 0x18001c903
mov edx, dword [rsi + 0x14]
mov rcx, rsi
call fcn.18001cbe0
mov ebx, 6
jmp 0x18001c70c
cmp byte [0x1800466cf], 0
jne 0x18001c97c
mov rax, qword [0x180044970]
movabs r8, 0x88cbbda43d715f4e
add r8, rax
movabs r9, 0x88cbbda43d715f3b
add r9, rax
xor ecx, ecx
movabs r10, 0xd79435e50d79435f
lea r11, [0x1800466a6]
mov rax, rcx
mul r10
shr rdx, 4
imul rax, rdx, 0xffffffffffffffed
add rax, r9
movzx edx, byte [r8 + rcx]
movzx eax, byte [rcx + rax]
mov ebx, eax
xor al, dl
xor dl, 0x72
xor bl, 0x72
or bl, dl
and al, bl
mov byte [rcx + r11], al
inc rcx
cmp rcx, 0x29
jne 0x18001c940
mov byte [0x1800466cf], 1
movabs rax, 0x88cbbda43d713d81
add rax, qword [0x180044978]
jmp 0x18001c8d3