Function at 0x18001fb60
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x40
lea rbp, [rsp + 0x40]
mov qword [rbp - 8], 0xfffffffffffffffe
mov rsi, rcx
lea rdi, [rcx + 0x50]
mov qword [rcx + 0x60], 0
cmp qword [rcx + 0x68], 0x10
mov rax, rdi
jb 0x18001fb98
mov rax, qword [rsi + 0x50]
mov byte [rax], 0
mov rdx, qword [rsi + 0x38]
cmp rdx, qword [rsi + 0x40]
je 0x18001fba9
mov qword [rsi + 0x40], rdx
movzx eax, byte [rsi + 0x14]
mov byte [rbp - 9], al
cmp rdx, qword [rsi + 0x48]
je 0x18001fbbe
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x18001fbcb
lea rcx, [rsi + 0x38]
lea r8, [rbp - 9]
call fcn.180020540
mov r9d, dword [rsi + 0x14]
lea eax, [r9 - 0x31]
cmp eax, 9
jae 0x18001fc1c
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001fc05
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001fbfa
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18001fc12
mov edx, 1
mov rcx, rdi
call fcn.18000fa30
mov ebx, 5
jmp 0x18001fd0d
cmp r9d, 0x30
je 0x18001fc52
cmp r9d, 0x2d
jne 0x18001fc93
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001fc83
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001fc4a
mov rdx, qword [rsi + 0x50]
mov word [rdx + rax], 0x2d
jmp 0x18001fc93
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18002019c
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001fc78
mov rdx, qword [rsi + 0x50]
mov word [rdx + rax], 0x30
jmp 0x1800201ac
mov edx, 1
mov rcx, rdi
mov r9b, 0x2d
call fcn.18000fa30
mov rcx, rsi
call fcn.1800203f0
lea ecx, [rax - 0x31]
cmp ecx, 9
jae 0x18002038b
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001fcde
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001fcce
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
mov ebx, 6
jmp 0x18001fd0d
mov edx, 1
mov rcx, rdi
call fcn.18000fa30
mov ebx, 6
jmp 0x18001fd0d
mov edx, 1
mov rcx, rdi
call fcn.18000fa30
mov rcx, rsi
call fcn.1800203f0
lea ecx, [rax - 0x30]
cmp ecx, 0xa
jae 0x18001fd4f
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001fd00
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001fd44
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18001fd0d
cmp eax, 0x2e
je 0x1800201d4
cmp eax, 0x45
je 0x18001fd66
cmp eax, 0x65
jne 0x18001fe0d
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001fd98
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001fd8d
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18001fda5
mov edx, 1
mov rcx, rdi
call fcn.18000fa30
mov rcx, rsi
call fcn.1800203f0
lea ecx, [rax - 0x30]
cmp ecx, 0xa
jae 0x18001ff4d
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001fdeb
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001fde0
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18001fdf8
mov edx, 1
mov rcx, rdi
call fcn.18000fa30
mov rcx, rsi
call fcn.1800203f0
add eax, 0xffffffd0
mov ebx, 7
cmp eax, 9
jbe 0x18001fe4d
mov byte [rsi + 0x18], 1
dec qword [rsi + 0x20]
mov rax, qword [rsi + 0x28]
test rax, rax
je 0x18001fe7f
lea rcx, [rsi + 0x28]
jmp 0x18001fe8c
mov edx, 1
mov rcx, rdi
call fcn.18000fa30
mov rcx, rsi
call fcn.1800203f0
add eax, 0xffffffd0
cmp eax, 0xa
jae 0x18001fe0d
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001fe30
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001fe74
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18001fe3d
mov rax, qword [rsi + 0x30]
test rax, rax
je 0x18001fe92
lea rcx, [rsi + 0x30]
dec rax
mov qword [rcx], rax
cmp dword [rsi + 0x14], 0xffffffff
je 0x18001fe9c
dec qword [rsi + 0x40]
mov qword [rbp - 0x18], 0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], 0
cmp ebx, 6
je 0x18001fef7
cmp ebx, 5
jne 0x18001ff23
cmp qword [rsi + 0x68], 0x10
mov rcx, rdi
jb 0x18001fec8
mov rcx, qword [rsi + 0x50]
lea rdx, [rbp - 0x18]
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 0x18001ff23
mov qword [rsi + 0x80], rbx
mov eax, 5
jmp 0x18002037c
cmp qword [rsi + 0x68], 0x10
mov rcx, rdi
jb 0x18001ff05
mov rcx, qword [rsi + 0x50]
lea rdx, [rbp - 0x18]
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 0x18001ff90
cmp qword [rsi + 0x68], 0x10
jb 0x18001ff2e
mov rdi, qword [rsi + 0x50]
lea rdx, [rbp - 0x18]
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 0x18002037c
cmp eax, 0x2d
je 0x18001ff57
cmp eax, 0x2b
jne 0x18001ff9e
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x180020069
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001ff82
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x180020076
mov qword [rsi + 0x78], rbx
mov eax, 6
jmp 0x18002037c
cmp byte [0x18004cc25], 0
jne 0x180020053
mov rax, qword [0x18004ab30]
movabs r8, 0xf049c83d35b1542d
add r8, rax
movabs r9, 0xf049c83d35b15414
add r9, rax
xor ecx, ecx
movabs r10, 0x47ae147ae147ae15
lea r11, [0x18004cbea]
nop
mov rax, rcx
mul r10
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0xffffffffffffffe7
add rax, r9
movzx edx, byte [r8 + rcx]
movzx eax, byte [rcx + rax]
mov ebx, edx
and bl, 0xd2
mov edi, eax
xor dil, 0x2d
mov r14d, edx
and r14b, 4
or r14b, 0xd2
xor r14b, bl
and dl, 0x29
or dl, r14b
and al, 0x52
mov ebx, edi
and bl, 0x84
or bl, al
or bl, 0x21
and dil, 0x29
xor dil, dl
xor dil, bl
xor dil, 0xde
mov byte [rcx + r11], dil
inc rcx
cmp rcx, 0x3b
jne 0x18001ffe0
mov byte [0x18004cc25], 1
movabs rax, 0xf049c83d35b12df4
add rax, qword [0x18004ab48]
jmp 0x180020373
mov edx, 1
mov rcx, rdi
call fcn.18000fa30
mov rcx, rsi
call fcn.1800203f0
add eax, 0xffffffd0
cmp eax, 0xa
jb 0x18001fdb9
cmp byte [0x18004cc59], 0
jne 0x180020186
mov rax, qword [0x18004ab30]
movabs r8, 0xf049c83d35b154a2
add r8, rax
movabs r9, 0xf049c83d35b15487
add r9, rax
xor ecx, ecx
movabs r10, 0x97b425ed097b425f
lea r11, [0x18004cc26]
nop dword [rax + rax]
mov rax, rcx
mul r10
shr rdx, 4
imul rax, rdx, 0xffffffffffffffe5
add rax, r9
movzx ebx, byte [r8 + rcx]
mov edi, ebx
not dil
movzx eax, byte [rcx + rax]
mov edx, ebx
and dl, 0x60
mov r14d, ebx
and r14b, 0x18
mov r15d, ebx
and r15b, 3
mov r12d, ebx
and r12b, 0x84
or r12b, 0x18
xor r12b, r14b
or r12b, r15b
or dl, 0x84
xor dl, r12b
mov r14d, edi
and r14b, 0x9e
and bl, 1
or bl, r14b
xor bl, 0x9e
and bl, dil
mov edi, edx
and dil, 0xfc
or dil, r15b
xor dil, bl
xor dil, 3
xor dl, 3
and dl, bl
or dl, dil
mov ebx, eax
xor bl, 0x60
mov edi, eax
xor dil, 0x5c
and dil, bl
mov ebx, edx
xor bl, 0xc3
and al, 0x3c
xor al, dil
mov edi, eax
xor dil, 0x1c
xor dl, 0x3c
and dl, dil
xor al, 0xe3
and al, bl
or al, dl
mov byte [rcx + r11], al
inc rcx
cmp rcx, 0x33
jne 0x1800200d0
mov byte [0x18004cc59], 1
movabs rax, 0xf049c83d35b12df4
add rax, qword [0x18004ab50]
jmp 0x180020373
mov edx, 1
mov rcx, rdi
mov r9b, 0x30
call fcn.18000fa30
mov ebx, 5
mov rcx, rsi
call fcn.1800203f0
cmp eax, 0x65
je 0x18001fd66
cmp eax, 0x45
je 0x18001fd66
cmp eax, 0x2e
jne 0x18001fe0d
movzx r9d, byte [rsi + 0x90]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x180020209
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x1800201fe
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x180020216
mov edx, 1
mov rcx, rdi
call fcn.18000fa30
mov rcx, rsi
call fcn.1800203f0
add eax, 0xffffffd0
cmp eax, 9
jbe 0x18002030d
cmp byte [0x18004cbe9], 0
jne 0x180020362
mov rax, qword [0x18004ab30]
movabs r10, 0xf049c83d35b153db
add r10, rax
movabs r11, 0xf049c83d35b153c3
add r11, rax
movabs rdi, 0xf049c83d35b153c2
add rdi, rax
mov ecx, 1
xor r8d, r8d
movabs rbx, 0x47ae147ae147ae15
lea r14, [0x18004cbc0]
nop
mov rax, rcx
mul rbx
mov r9, rdx
mov rax, r8
mul rbx
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0xffffffffffffffe7
add rax, rdi
movzx eax, byte [r8 + rax]
xor al, byte [r10 + r8]
mov byte [r8 + r14], al
cmp r8, 0x28
je 0x18002035b
mov rax, rcx
sub rax, r9
shr rax, 1
add rax, r9
shr rax, 4
imul rax, rax, 0xffffffffffffffe7
add rax, r11
movzx eax, byte [rax + r8]
xor al, byte [r10 + r8 + 1]
mov byte [r8 + r14 + 1], al
add r8, 2
add rcx, 2
jmp 0x180020280
mov edx, 1
mov rcx, rdi
call fcn.18000fa30
mov rcx, rsi
call fcn.1800203f0
lea ecx, [rax - 0x30]
cmp ecx, 0xa
jae 0x18002033f
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x1800202f0
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x180020334
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x1800202fd
cmp eax, 0x45
je 0x18001fd66
cmp eax, 0x65
je 0x18001fd66
mov ebx, 7
jmp 0x18001fe0d
mov byte [0x18004cbe9], 1
movabs rax, 0xf049c83d35b12df4
add rax, qword [0x18004ab40]
mov qword [rsi + 0x70], rax
mov eax, 0xe
add rsp, 0x40
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret
cmp eax, 0x30
jne 0x1800203a5
mov edx, dword [rsi + 0x14]
mov rcx, rsi
call fcn.180020760
mov ebx, 6
jmp 0x1800201b1
movabs rcx, 0xf049c83d35b15370
add rcx, qword [0x18004ab30]
call fcn.180034fd0
movabs rax, 0xf049c83d35b12df4
add rax, qword [0x18004ab38]
jmp 0x180020373