Function at 0x180020ca0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
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 0x180020cda
mov rax, qword [rsi + 0x50]
mov byte [rax], 0
mov rdx, qword [rsi + 0x38]
cmp rdx, qword [rsi + 0x40]
je 0x180020ceb
mov qword [rsi + 0x40], rdx
movzx eax, byte [rsi + 0x14]
mov byte [rbp - 1], al
cmp rdx, qword [rsi + 0x48]
je 0x180020d00
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x180020d0d
lea rcx, [rsi + 0x38]
lea r8, [rbp - 1]
call fcn.1800216c0
mov r9d, dword [rsi + 0x14]
lea eax, [r9 - 0x31]
cmp eax, 9
jae 0x180020d5e
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x180020d47
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x180020d3c
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x180020d54
mov edx, 1
mov rcx, rdi
call fcn.1800117f0
mov ebx, 5
jmp 0x180020e4d
cmp r9d, 0x30
je 0x180020d94
cmp r9d, 0x2d
jne 0x180020dd5
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x180020dc5
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x180020d8c
mov rdx, qword [rsi + 0x50]
mov word [rdx + rax], 0x2d
jmp 0x180020dd5
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x180021315
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x180020dba
mov rdx, qword [rsi + 0x50]
mov word [rdx + rax], 0x30
jmp 0x180021325
mov edx, 1
mov rcx, rdi
mov r9b, 0x2d
call fcn.1800117f0
mov rcx, rsi
call fcn.1800215d0
lea ecx, [rax - 0x31]
cmp ecx, 9
jae 0x18002155b
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x180020e20
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x180020e10
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
mov ebx, 6
jmp 0x180020e4d
mov edx, 1
mov rcx, rdi
call fcn.1800117f0
mov ebx, 6
jmp 0x180020e4d
mov edx, 1
mov rcx, rdi
call fcn.1800117f0
mov rcx, rsi
call fcn.1800215d0
lea ecx, [rax - 0x30]
cmp ecx, 0xa
jae 0x180020e8f
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x180020e40
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x180020e84
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x180020e4d
cmp eax, 0x2e
je 0x18002134d
cmp eax, 0x45
je 0x180020ea6
cmp eax, 0x65
jne 0x180020f4d
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x180020ed8
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x180020ecd
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x180020ee5
mov edx, 1
mov rcx, rdi
call fcn.1800117f0
mov rcx, rsi
call fcn.1800215d0
lea ecx, [rax - 0x30]
cmp ecx, 0xa
jae 0x18002108d
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x180020f2b
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x180020f20
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x180020f38
mov edx, 1
mov rcx, rdi
call fcn.1800117f0
mov rcx, rsi
call fcn.1800215d0
add eax, 0xffffffd0
mov ebx, 7
cmp eax, 9
jbe 0x180020f8d
mov byte [rsi + 0x18], 1
dec qword [rsi + 0x20]
mov rax, qword [rsi + 0x28]
test rax, rax
je 0x180020fbf
lea rcx, [rsi + 0x28]
jmp 0x180020fcc
mov edx, 1
mov rcx, rdi
call fcn.1800117f0
mov rcx, rsi
call fcn.1800215d0
add eax, 0xffffffd0
cmp eax, 0xa
jae 0x180020f4d
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x180020f70
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x180020fb4
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x180020f7d
mov rax, qword [rsi + 0x30]
test rax, rax
je 0x180020fd2
lea rcx, [rsi + 0x30]
dec rax
mov qword [rcx], rax
cmp dword [rsi + 0x14], 0xffffffff
je 0x180020fdc
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 0x180021037
cmp ebx, 5
jne 0x180021063
cmp qword [rsi + 0x68], 0x10
mov rcx, rdi
jb 0x180021008
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 0x180021063
mov qword [rsi + 0x80], rbx
mov eax, 5
jmp 0x1800214d8
cmp qword [rsi + 0x68], 0x10
mov rcx, rdi
jb 0x180021045
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 0x1800210d0
cmp qword [rsi + 0x68], 0x10
jb 0x18002106e
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 0x1800214d8
cmp eax, 0x2d
je 0x180021097
cmp eax, 0x2b
jne 0x1800210de
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x1800211b0
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x1800210c2
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x1800211bd
mov qword [rsi + 0x78], rbx
mov eax, 6
jmp 0x1800214d8
cmp byte [0x18004fc85], 0
jne 0x18002119a
mov rax, qword [0x18004db70]
movabs r8, 0x4f4850bbd29c677b
add r8, rax
movabs r9, 0x4f4850bbd29c6767
add r9, rax
xor ecx, ecx
movabs r10, 0xcccccccccccccccd
lea r11, [0x18004fc4a]
nop
mov rax, rcx
mul r10
shr rdx, 2
and rdx, 0xfffffffffffffffc
lea rdx, [rdx + rdx*4]
mov rax, r9
sub rax, rdx
movzx ebx, byte [r8 + rcx]
mov edx, ebx
not dl
mov edi, ebx
or dil, 0x4a
or dl, 0xb5
mov r14d, edx
and r14b, 0x43
and bl, 8
or bl, r14b
mov r14d, ebx
xor r14b, 0xbc
xor bl, 0xb
and bl, r14b
and dl, 0x16
xor dl, bl
mov ebx, edx
xor bl, 0x16
and bl, dil
xor dil, 0xb7
and bl, 0xb7
xor dl, 0xe9
and dl, dil
or dl, bl
xor dl, byte [rax + rcx]
xor dl, 0xb5
mov byte [rcx + r11], dl
inc rcx
cmp rcx, 0x3b
jne 0x180021120
mov byte [0x18004fc85], 1
movabs rax, 0x4f4850bbd29c4039
add rax, qword [0x18004db88]
jmp 0x1800214cf
mov edx, 1
mov rcx, rdi
call fcn.1800117f0
mov rcx, rsi
call fcn.1800215d0
add eax, 0xffffffd0
cmp eax, 0xa
jb 0x180020ef9
cmp byte [0x18004fcb9], 0
jne 0x1800212ff
mov rdx, qword [0x18004db70]
movabs rax, 0x4f4850bbd29c67d4
add rax, rdx
movabs rcx, 0x4f4850bbd29c67e4
add rcx, rdx
xor edx, edx
lea r8, [0x18004fc86]
nop dword [rax + rax]
movzx r9d, byte [rcx + rdx]
mov r10d, edx
and r10d, 0xf
movzx ebx, byte [rax + r10]
mov r15d, r9d
xor r15b, 0x8a
and r15b, r9b
mov r14d, ebx
and r14b, 0x61
mov edi, r14d
xor dil, 0x61
mov r11d, ebx
xor r11b, 0x9e
mov r10d, edi
or r10b, r11b
mov r12d, r9d
and r12b, 0x41
mov r13d, r9d
and r13b, 0x8a
xor r13b, 0xaa
and r15b, 0x9e
or r15b, r13b
xor r12b, 0xcb
mov r13d, r9d
and r13b, 0x20
xor r13b, 0x75
and r13b, r15b
not r15b
and r15b, r12b
mov r12d, r9d
xor r12b, 0x9e
xor r9b, 0x61
or r9b, r12b
not r9b
or r9b, r13b
or r9b, r15b
mov r15d, r14d
xor r15b, 0x31
mov r12d, r10d
and r12b, 0x50
and r10b, 0xaf
or r10b, 0x40
xor r10b, r12b
mov r12d, r10d
not r12b
xor r14b, 0xce
and r14b, r12b
xor r10b, 0x10
and r10b, r15b
or r10b, r14b
mov r14d, r10d
not r14b
or r14b, bl
and r14b, 0x61
or r14b, dil
xor r14b, 0x61
and r11b, 0x84
and r10b, 0x7b
or r10b, r11b
or r10b, r14b
xor r10b, r9b
xor r10b, 0x84
mov byte [rdx + r8], r10b
inc rdx
cmp rdx, 0x33
jne 0x180021210
mov byte [0x18004fcb9], 1
movabs rax, 0x4f4850bbd29c4039
add rax, qword [0x18004db90]
jmp 0x1800214cf
mov edx, 1
mov rcx, rdi
mov r9b, 0x30
call fcn.1800117f0
mov ebx, 5
mov rcx, rsi
call fcn.1800215d0
cmp eax, 0x65
je 0x180020ea6
cmp eax, 0x45
je 0x180020ea6
cmp eax, 0x2e
jne 0x180020f4d
movzx r9d, byte [rsi + 0x90]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x180021382
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x180021377
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18002138f
mov edx, 1
mov rcx, rdi
call fcn.1800117f0
mov rcx, rsi
call fcn.1800215d0
add eax, 0xffffffd0
cmp eax, 9
jbe 0x18002150d
cmp byte [0x18004fc49], 0
jne 0x1800214be
mov rax, qword [0x18004db70]
movabs r8, 0x4f4850bbd29c6726
add r8, rax
movabs r9, 0x4f4850bbd29c6715
add r9, rax
xor ecx, ecx
movabs r10, 0xf0f0f0f0f0f0f0f1
lea r11, [0x18004fc20]
nop word cs:[rax + rax]
mov rax, rcx
mul r10
mov rax, rdx
shr rax, 4
and rdx, 0xfffffffffffffff0
add rdx, rax
mov rax, r9
sub rax, rdx
movzx r14d, byte [r8 + rcx]
movzx eax, byte [rax + rcx]
mov ebx, eax
not bl
mov edi, r14d
and dil, 0xb0
mov edx, eax
and dl, 0xb0
mov r15d, r14d
and r15b, 0x4f
or dil, 0x47
xor r15b, 0xf7
and r15b, dil
mov edi, r14d
and dil, 8
or dil, r15b
mov r12d, r14d
xor r12b, 0xb0
xor r14b, 0x4f
or r14b, r12b
xor dil, 0xf7
mov r12d, edi
and r12b, 0x18
and r15b, 0xe7
or r15b, r12b
xor r15b, r14b
xor r15b, 0xe7
or dil, r14b
not dil
or dil, r15b
mov r14d, ebx
and r14b, 0x4f
mov r15d, eax
and r15b, 0xb
xor r15b, 0x9b
lea r12d, [rdx + 0x44]
lea r13d, [r14 + 0x20]
and r13b, r12b
xor dl, 0x2b
and dl, r15b
or dl, r13b
and bl, 0x4e
and al, 1
or al, bl
xor al, 0x4e
and al, r14b
or al, dl
xor al, dil
mov byte [rcx + r11], al
inc rcx
cmp rcx, 0x29
jne 0x1800213f0
mov byte [0x18004fc49], 1
movabs rax, 0x4f4850bbd29c4039
add rax, qword [0x18004db80]
mov qword [rsi + 0x70], rax
mov eax, 0xe
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov edx, 1
mov rcx, rdi
call fcn.1800117f0
mov rcx, rsi
call fcn.1800215d0
lea ecx, [rax - 0x30]
cmp ecx, 0xa
jae 0x18002153f
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x1800214f0
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x180021534
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x1800214fd
cmp eax, 0x45
je 0x180020ea6
cmp eax, 0x65
je 0x180020ea6
mov ebx, 7
jmp 0x180020f4d
cmp eax, 0x30
jne 0x180021575
mov edx, dword [rsi + 0x14]
mov rcx, rsi
call fcn.1800218a0
mov ebx, 6
jmp 0x18002132a
movabs rcx, 0x4f4850bbd29c66bd
add rcx, qword [0x18004db70]
call fcn.180037300
movabs rax, 0x4f4850bbd29c4039
add rax, qword [0x18004db78]
jmp 0x1800214cf