Function at 0x18001c930
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 0x18001c966
mov rax, qword [rsi + 0x50]
mov byte [rax], 0
mov rdx, qword [rsi + 0x38]
cmp rdx, qword [rsi + 0x40]
je 0x18001c977
mov qword [rsi + 0x40], rdx
lea rbx, [rsi + 0x38]
movzx eax, byte [rsi + 0x14]
mov byte [rbp - 8], al
cmp rdx, qword [rsi + 0x48]
je 0x18001c990
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x18001c99c
lea r8, [rbp - 8]
mov rcx, rbx
call fcn.18001d610
mov r9d, dword [rsi + 0x14]
lea eax, [r9 - 0x31]
cmp eax, 9
jae 0x18001c9ee
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001c9d6
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001c9cb
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18001c9e3
mov edx, 1
mov rcx, rdi
call fcn.18000d780
mov r14d, 5
jmp 0x18001cb6d
cmp r9d, 0x30
je 0x18001ca24
cmp r9d, 0x2d
jne 0x18001ca5e
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001ca4e
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001ca1c
mov rdx, qword [rsi + 0x50]
mov word [rdx + rax], 0x2d
jmp 0x18001ca5e
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001cab0
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001ca46
mov rdx, qword [rsi + 0x50]
mov word [rdx + rax], 0x30
jmp 0x18001cac0
mov edx, 1
mov rcx, rdi
mov r9b, 0x2d
call fcn.18000d780
movdqu xmm0, xmmword [rsi + 0x20]
pcmpeqd xmm1, xmm1
psubq xmm0, xmm1
movdqu xmmword [rsi + 0x20], xmm0
cmp byte [rsi + 0x18], 0
je 0x18001ca87
mov byte [rsi + 0x18], 0
mov eax, dword [rsi + 0x14]
cmp eax, 0xffffffff
jne 0x18001ca9b
jmp 0x18001cc66
mov rcx, rsi
call fcn.18001d500
mov dword [rsi + 0x14], eax
cmp eax, 0xffffffff
je 0x18001cc66
mov byte [rbp - 8], al
mov rdx, qword [rsi + 0x40]
cmp rdx, qword [rsi + 0x48]
je 0x18001caf7
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x18001cb03
mov edx, 1
mov rcx, rdi
mov r9b, 0x30
call fcn.18000d780
mov r14d, 5
movdqu xmm0, xmmword [rsi + 0x20]
pcmpeqd xmm1, xmm1
psubq xmm0, xmm1
movdqu xmmword [rsi + 0x20], xmm0
cmp byte [rsi + 0x18], 0
je 0x18001cc21
mov byte [rsi + 0x18], 0
mov eax, dword [rsi + 0x14]
cmp eax, 0xffffffff
jne 0x18001cc35
jmp 0x18001d184
lea r8, [rbp - 8]
mov rcx, rbx
call fcn.18001d610
mov r9d, dword [rsi + 0x14]
lea eax, [r9 - 0x31]
cmp eax, 9
jae 0x18001cc4a
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001cb47
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001cb36
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
mov r14d, 6
jmp 0x18001cb6d
mov edx, 1
mov rcx, rdi
call fcn.18000d780
mov r14d, 6
jmp 0x18001cb6d
mov edx, 1
mov rcx, rdi
call fcn.18000d780
movdqu xmm0, xmmword [rsi + 0x20]
pcmpeqd xmm1, xmm1
psubq xmm0, xmm1
movdqu xmmword [rsi + 0x20], xmm0
cmp byte [rsi + 0x18], 0
je 0x18001cba0
mov byte [rsi + 0x18], 0
mov eax, dword [rsi + 0x14]
cmp eax, 0xffffffff
jne 0x18001cbb4
jmp 0x18001d184
mov rcx, rsi
call fcn.18001d500
mov dword [rsi + 0x14], eax
cmp eax, 0xffffffff
je 0x18001d184
mov byte [rbp - 8], al
mov rdx, qword [rsi + 0x40]
cmp rdx, qword [rsi + 0x48]
je 0x18001cbd0
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x18001cbdc
lea r8, [rbp - 8]
mov rcx, rbx
call fcn.18001d610
mov r9d, dword [rsi + 0x14]
lea eax, [r9 - 0x30]
cmp eax, 0xa
jae 0x18001cca2
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001cb60
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001cc13
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18001cb6d
mov rcx, rsi
call fcn.18001d500
mov dword [rsi + 0x14], eax
cmp eax, 0xffffffff
je 0x18001d184
mov byte [rbp - 8], al
mov rdx, qword [rsi + 0x40]
cmp rdx, qword [rsi + 0x48]
je 0x18001cc92
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x18001cc9e
cmp r9d, 0x30
je 0x18001cf02
cmp r9d, 0xa
jne 0x18001cc66
inc qword [rsi + 0x30]
mov qword [rsi + 0x28], 0
movabs rcx, 0xe9307c549cd2d803
add rcx, qword [0x1800469c0]
call fcn.180033380
movabs rax, 0xe9307c549cd2b488
add rax, qword [0x1800469c8]
jmp 0x18001d170
lea r8, [rbp - 8]
mov rcx, rbx
call fcn.18001d610
mov r9d, dword [rsi + 0x14]
cmp r9d, 0x44
jg 0x18001cf24
cmp r9d, 0xa
je 0x18001d287
cmp r9d, 0x2e
jne 0x18001d18a
movzx r9d, byte [rsi + 0x90]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001ccf5
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001ccea
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18001cd02
mov edx, 1
mov rcx, rdi
call fcn.18000d780
movdqu xmm0, xmmword [rsi + 0x20]
pcmpeqd xmm1, xmm1
psubq xmm0, xmm1
movdqu xmmword [rsi + 0x20], xmm0
cmp byte [rsi + 0x18], 0
je 0x18001cd28
mov byte [rsi + 0x18], 0
mov eax, dword [rsi + 0x14]
cmp eax, 0xffffffff
jne 0x18001cd38
jmp 0x18001cd7e
mov rcx, rsi
call fcn.18001d500
mov dword [rsi + 0x14], eax
cmp eax, 0xffffffff
je 0x18001cd7e
mov byte [rbp - 8], al
mov rdx, qword [rsi + 0x40]
cmp rdx, qword [rsi + 0x48]
je 0x18001cd4d
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x18001cd59
lea r8, [rbp - 8]
mov rcx, rbx
call fcn.18001d610
mov r9d, dword [rsi + 0x14]
cmp r9d, 0xa
jne 0x18001cd71
inc qword [rsi + 0x30]
mov qword [rsi + 0x28], 0
jmp 0x18001cd7e
lea eax, [r9 - 0x30]
cmp eax, 9
jbe 0x18001ce71
cmp byte [0x1800487c9], 0
jne 0x18001ce3e
mov rax, qword [0x1800469c0]
movabs r8, 0xe9307c549cd2d86c
add r8, rax
movabs r9, 0xe9307c549cd2d856
add r9, rax
xor ecx, ecx
movabs r10, 0x2e8ba2e8ba2e8ba3
lea r11, [0x1800487a0]
nop
mov rax, rcx
mul r10
shr rdx, 2
imul rax, rdx, 0xffffffffffffffea
add rax, r9
movzx ebx, byte [r8 + rcx]
movzx eax, byte [rcx + rax]
mov edi, eax
xor dil, 0xc3
and dil, al
mov edx, ebx
and dl, 0x30
mov r14d, ebx
and r14b, 0x44
and bl, 0x8b
or r14b, 0x39
xor r14b, bl
or dl, 0x8a
xor dl, r14b
mov ebx, eax
and bl, 0xc3
and dil, 0xcf
and al, 0x30
mov r14d, eax
xor r14b, 0xd3
lea r15d, [rdi + 0x20]
xor al, 0x2c
and al, r15b
or bl, 0x10
xor bl, dil
and bl, r14b
or bl, al
xor bl, dl
xor bl, 0x83
mov byte [rcx + r11], bl
inc rcx
cmp rcx, 0x29
jne 0x18001cdc0
mov byte [0x1800487c9], 1
movabs rax, 0xe9307c549cd2b488
add rax, qword [0x1800469d0]
jmp 0x18001d170
lea r8, [rbp - 8]
mov rcx, rbx
call fcn.18001d610
mov r9d, dword [rsi + 0x14]
lea eax, [r9 - 0x30]
cmp eax, 0xa
jae 0x18001cf1a
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001ce9e
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001ce93
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18001ceab
mov edx, 1
mov rcx, rdi
call fcn.18000d780
movdqu xmm0, xmmword [rsi + 0x20]
pcmpeqd xmm1, xmm1
psubq xmm0, xmm1
movdqu xmmword [rsi + 0x20], xmm0
cmp byte [rsi + 0x18], 0
je 0x18001cecc
mov byte [rsi + 0x18], 0
mov eax, dword [rsi + 0x14]
jmp 0x18001ced7
mov rcx, rsi
call fcn.18001d500
mov dword [rsi + 0x14], eax
mov r14d, 7
cmp eax, 0xffffffff
je 0x18001d184
mov byte [rbp - 8], al
mov rdx, qword [rsi + 0x40]
cmp rdx, qword [rsi + 0x48]
je 0x18001ce54
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x18001ce60
mov rcx, rsi
mov edx, 0x30
call fcn.18001d790
mov r14d, 6
jmp 0x18001cac6
cmp r9d, 0xa
je 0x18001d287
cmp r9d, 0x45
je 0x18001cf34
cmp r9d, 0x65
jne 0x18001d18a
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001cf61
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001cf56
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18001cf6e
mov edx, 1
mov rcx, rdi
call fcn.18000d780
movdqu xmm0, xmmword [rsi + 0x20]
pcmpeqd xmm1, xmm1
psubq xmm0, xmm1
movdqu xmmword [rsi + 0x20], xmm0
cmp byte [rsi + 0x18], 0
je 0x18001cf97
mov byte [rsi + 0x18], 0
mov eax, dword [rsi + 0x14]
cmp eax, 0xffffffff
jne 0x18001cfab
jmp 0x18001d0d8
mov rcx, rsi
call fcn.18001d500
mov dword [rsi + 0x14], eax
cmp eax, 0xffffffff
je 0x18001d0d8
mov byte [rbp - 8], al
mov rdx, qword [rsi + 0x40]
cmp rdx, qword [rsi + 0x48]
je 0x18001cfc0
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x18001cfcc
lea r8, [rbp - 8]
mov rcx, rbx
call fcn.18001d610
mov r9d, dword [rsi + 0x14]
lea eax, [r9 - 0x30]
cmp eax, 0xa
jae 0x18001d0b2
nop dword [rax]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001d010
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001d002
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18001d01d
mov edx, 1
mov rcx, rdi
call fcn.18000d780
movdqu xmm0, xmmword [rsi + 0x20]
pcmpeqd xmm1, xmm1
psubq xmm0, xmm1
movdqu xmmword [rsi + 0x20], xmm0
cmp byte [rsi + 0x18], 0
je 0x18001d050
mov byte [rsi + 0x18], 0
mov eax, dword [rsi + 0x14]
cmp eax, 0xffffffff
jne 0x18001d064
jmp 0x18001d17e
mov rcx, rsi
call fcn.18001d500
mov dword [rsi + 0x14], eax
cmp eax, 0xffffffff
je 0x18001d17e
mov byte [rbp - 8], al
mov rdx, qword [rsi + 0x40]
cmp rdx, qword [rsi + 0x48]
je 0x18001d080
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x18001d08c
lea r8, [rbp - 8]
mov rcx, rbx
call fcn.18001d610
mov r9d, dword [rsi + 0x14]
cmp r9d, 0xa
je 0x18001d281
lea eax, [r9 - 0x30]
cmp eax, 9
jbe 0x18001cfe0
mov r14d, 7
jmp 0x18001d18a
cmp r9d, 0x2d
je 0x18001d29e
cmp r9d, 0x2b
je 0x18001d29e
cmp r9d, 0xa
jne 0x18001d0d8
inc qword [rsi + 0x30]
mov qword [rsi + 0x28], 0
cmp byte [0x180048805], 0
jne 0x18001d15f
mov rax, qword [0x1800469c0]
movabs r8, 0xe9307c549cd2d8cb
add r8, rax
movabs r9, 0xe9307c549cd2d8b1
add r9, rax
xor ecx, ecx
movabs r10, 0x4ec4ec4ec4ec4ec5
lea r11, [0x1800487ca]
nop dword [rax]
mov rax, rcx
mul r10
shr rdx, 3
imul rax, rdx, 0xffffffffffffffe6
add rax, r9
movzx edx, byte [rcx + rax]
xor dl, byte [r8 + rcx]
mov byte [rcx + r11], dl
cmp rcx, 0x3a
je 0x18001d158
movzx eax, byte [rax + rcx + 1]
xor al, byte [r8 + rcx + 1]
mov byte [rcx + r11 + 1], al
add rcx, 2
jmp 0x18001d120
mov byte [0x180048805], 1
movabs rax, 0xe9307c549cd2b488
add rax, qword [0x1800469d8]
mov qword [rsi + 0x70], rax
mov eax, 0xe
jmp 0x18001d269
mov r14d, 7
mov r9d, 0xffffffff
mov byte [rsi + 0x18], 1
dec qword [rsi + 0x20]
mov rax, qword [rsi + 0x28]
test rax, rax
je 0x18001d1a1
lea rcx, [rsi + 0x28]
jmp 0x18001d1ae
mov rax, qword [rsi + 0x30]
test rax, rax
je 0x18001d1b4
lea rcx, [rsi + 0x30]
dec rax
mov qword [rcx], rax
cmp r9d, 0xffffffff
je 0x18001d1be
dec qword [rsi + 0x40]
mov qword [rbp - 8], 0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], 0
cmp r14d, 6
je 0x18001d218
cmp r14d, 5
jne 0x18001d244
cmp qword [rsi + 0x68], 0x10
mov rcx, rdi
jb 0x18001d1ec
mov rcx, qword [rsi + 0x50]
lea rdx, [rbp - 8]
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 0x18001d244
mov qword [rsi + 0x80], rbx
mov eax, 5
jmp 0x18001d269
cmp qword [rsi + 0x68], 0x10
mov rcx, rdi
jb 0x18001d226
mov rcx, qword [rsi + 0x50]
lea rdx, [rbp - 8]
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 0x18001d276
cmp qword [rsi + 0x68], 0x10
jb 0x18001d24f
mov rdi, qword [rsi + 0x50]
lea rdx, [rbp - 8]
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtod]
movq qword [rsi + 0x88], xmm0
mov eax, 7
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
mov qword [rsi + 0x78], rbx
mov eax, 6
jmp 0x18001d269
mov r14d, 7
inc qword [rsi + 0x30]
mov qword [rsi + 0x28], 0
mov r9d, 0xa
jmp 0x18001d18a
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18001d2cb
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18001d2c0
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18001d2d8
mov edx, 1
mov rcx, rdi
call fcn.18000d780
movdqu xmm0, xmmword [rsi + 0x20]
pcmpeqd xmm1, xmm1
psubq xmm0, xmm1
movdqu xmmword [rsi + 0x20], xmm0
cmp byte [rsi + 0x18], 0
je 0x18001d2f9
mov byte [rsi + 0x18], 0
mov eax, dword [rsi + 0x14]
jmp 0x18001d304
mov rcx, rsi
call fcn.18001d500
mov dword [rsi + 0x14], eax
cmp eax, 0xffffffff
je 0x18001d34f
mov byte [rbp - 8], al
mov rdx, qword [rsi + 0x40]
cmp rdx, qword [rsi + 0x48]
je 0x18001d31e
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x18001d32a
lea r8, [rbp - 8]
mov rcx, rbx
call fcn.18001d610
mov r9d, dword [rsi + 0x14]
cmp r9d, 0xa
jne 0x18001d342
inc qword [rsi + 0x30]
mov qword [rsi + 0x28], 0
jmp 0x18001d34f
lea eax, [r9 - 0x30]
cmp eax, 0xa
jb 0x18001cfe0
cmp byte [0x180048839], 0
jne 0x18001d413
mov rax, qword [0x1800469c0]
movabs r10, 0xe9307c549cd2d93b
add r10, rax
movabs r11, 0xe9307c549cd2d91f
add r11, rax
movabs rdi, 0xe9307c549cd2d91e
add rdi, rax
mov ecx, 1
xor r8d, r8d
movabs rbx, 0x1a7b9611a7b9611b
lea r14, [0x180048806]
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, 0xffffffffffffffe3
add rax, rdi
movzx eax, byte [r8 + rax]
xor al, byte [r10 + r8]
mov byte [r8 + r14], al
cmp r8, 0x32
je 0x18001d40c
mov rax, rcx
sub rax, r9
shr rax, 1
add rax, r9
shr rax, 4
imul rax, rax, 0xffffffffffffffe3
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 0x18001d3a3
mov byte [0x180048839], 1
movabs rax, 0xe9307c549cd2b488
add rax, qword [0x1800469e0]
jmp 0x18001d170