Function at 0x18002df80
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 0x18002dfba
mov rax, qword [rsi + 0x50]
mov byte [rax], 0
mov rdx, qword [rsi + 0x38]
cmp rdx, qword [rsi + 0x40]
je 0x18002dfcb
mov qword [rsi + 0x40], rdx
movzx eax, byte [rsi + 0x14]
mov byte [rbp - 1], al
cmp rdx, qword [rsi + 0x48]
je 0x18002dfe0
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x18002dfed
lea rcx, [rsi + 0x38]
lea r8, [rbp - 1]
call fcn.18002e980
mov r9d, dword [rsi + 0x14]
lea eax, [r9 - 0x31]
cmp eax, 9
jae 0x18002e03e
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18002e027
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18002e01c
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18002e034
mov edx, 1
mov rcx, rdi
call fcn.18001dc90
mov ebx, 5
jmp 0x18002e12d
cmp r9d, 0x30
je 0x18002e074
cmp r9d, 0x2d
jne 0x18002e0b5
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18002e0a5
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18002e06c
mov rdx, qword [rsi + 0x50]
mov word [rdx + rax], 0x2d
jmp 0x18002e0b5
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18002e687
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18002e09a
mov rdx, qword [rsi + 0x50]
mov word [rdx + rax], 0x30
jmp 0x18002e697
mov edx, 1
mov rcx, rdi
mov r9b, 0x2d
call fcn.18001dc90
mov rcx, rsi
call fcn.18002e8b0
lea ecx, [rax - 0x31]
cmp ecx, 9
jae 0x18002e84d
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18002e100
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18002e0f0
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
mov ebx, 6
jmp 0x18002e12d
mov edx, 1
mov rcx, rdi
call fcn.18001dc90
mov ebx, 6
jmp 0x18002e12d
mov edx, 1
mov rcx, rdi
call fcn.18001dc90
mov rcx, rsi
call fcn.18002e8b0
lea ecx, [rax - 0x30]
cmp ecx, 0xa
jae 0x18002e16f
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18002e120
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18002e164
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18002e12d
cmp eax, 0x2e
je 0x18002e6bf
cmp eax, 0x45
je 0x18002e186
cmp eax, 0x65
jne 0x18002e22d
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18002e1b8
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18002e1ad
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18002e1c5
mov edx, 1
mov rcx, rdi
call fcn.18001dc90
mov rcx, rsi
call fcn.18002e8b0
lea ecx, [rax - 0x30]
cmp ecx, 0xa
jae 0x18002e36d
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18002e20b
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18002e200
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18002e218
mov edx, 1
mov rcx, rdi
call fcn.18001dc90
mov rcx, rsi
call fcn.18002e8b0
add eax, 0xffffffd0
mov ebx, 7
cmp eax, 9
jbe 0x18002e26d
mov byte [rsi + 0x18], 1
dec qword [rsi + 0x20]
mov rax, qword [rsi + 0x28]
test rax, rax
je 0x18002e29f
lea rcx, [rsi + 0x28]
jmp 0x18002e2ac
mov edx, 1
mov rcx, rdi
call fcn.18001dc90
mov rcx, rsi
call fcn.18002e8b0
add eax, 0xffffffd0
cmp eax, 0xa
jae 0x18002e22d
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18002e250
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18002e294
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18002e25d
mov rax, qword [rsi + 0x30]
test rax, rax
je 0x18002e2b2
lea rcx, [rsi + 0x30]
dec rax
mov qword [rcx], rax
cmp dword [rsi + 0x14], 0xffffffff
je 0x18002e2bc
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 0x18002e317
cmp ebx, 5
jne 0x18002e343
cmp qword [rsi + 0x68], 0x10
mov rcx, rdi
jb 0x18002e2e8
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 0x18002e343
mov qword [rsi + 0x80], rbx
mov eax, 5
jmp 0x18002e83c
cmp qword [rsi + 0x68], 0x10
mov rcx, rdi
jb 0x18002e325
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 0x18002e3b0
cmp qword [rsi + 0x68], 0x10
jb 0x18002e34e
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 0x18002e83c
cmp eax, 0x2d
je 0x18002e377
cmp eax, 0x2b
jne 0x18002e3be
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18002e4ee
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18002e3a2
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18002e4fb
mov qword [rsi + 0x78], rbx
mov eax, 6
jmp 0x18002e83c
cmp byte [0x180061fe5], 0
jne 0x18002e4d8
mov rax, qword [0x18005fbf0]
movabs r8, 0xbc00d68d0b0ba922
add r8, rax
movabs r9, 0xbc00d68d0b0ba905
add r9, rax
xor ecx, ecx
movabs r10, 0x1a7b9611a7b9611b
lea r11, [0x180061faa]
nop
mov rax, rcx
mul r10
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rdx, rax, 0xffffffffffffffe3
add rdx, r9
movzx eax, byte [r8 + rcx]
movzx ebx, byte [rcx + rdx]
mov edi, ebx
not dil
mov r15d, ebx
xor r15b, 0xe1
mov edx, r15d
and dl, 7
xor dl, 1
mov r12d, ebx
xor r12b, 7
or r12b, dl
mov r14d, ebx
and r14b, 6
or dil, 0xf8
mov r13d, r12d
and r13b, 0x26
and r15b, 0x40
and r12b, 0x81
or r12b, r15b
and bl, 0x18
or bl, r13b
or r12b, 0x18
or bl, 0x40
xor bl, r12b
mov r15d, ebx
xor r15b, 0x26
or dl, dil
and dil, 1
or dil, r14b
lea r14d, [rdi - 0x40]
xor bl, 0xc1
and bl, r14b
xor dil, 0x3f
and dil, r15b
or dil, bl
mov ebx, edx
and bl, 7
xor bl, dil
xor bl, 7
not dl
and dl, dil
or dl, bl
mov ebx, eax
xor bl, 0x13
mov edi, edx
xor dil, 0xeb
xor al, 0xec
and al, dil
xor dl, 0x14
and dl, bl
or dl, al
mov byte [rcx + r11], dl
inc rcx
cmp rcx, 0x3b
jne 0x18002e400
mov byte [0x180061fe5], 1
movabs rax, 0xbc00d68d0b0b7805
add rax, qword [0x18005fc08]
jmp 0x18002e833
mov edx, 1
mov rcx, rdi
call fcn.18001dc90
mov rcx, rsi
call fcn.18002e8b0
add eax, 0xffffffd0
cmp eax, 0xa
jb 0x18002e1d9
cmp byte [0x180062019], 0
jne 0x18002e671
mov rax, qword [0x18005fbf0]
movabs r8, 0xbc00d68d0b0ba982
add r8, rax
movabs r9, 0xbc00d68d0b0ba971
add r9, rax
xor ecx, ecx
movabs r10, 0xf0f0f0f0f0f0f0f1
lea r11, [0x180061fe6]
mov rax, rcx
mul r10
mov rax, rdx
shr rax, 4
and rdx, 0xfffffffffffffff0
add rdx, rax
mov rdi, r9
sub rdi, rdx
movzx r14d, byte [r8 + rcx]
mov eax, r14d
not al
movzx edx, byte [rdi + rcx]
mov r15d, edx
not r15b
mov ebx, edx
or bl, 0x2d
mov edi, ebx
not dil
and r15b, 0xd2
xor dl, 0x2d
or dl, r15b
mov r12d, eax
or r12b, 0x52
and r12b, 0x77
mov r15d, r14d
and r15b, 8
or r15b, r12b
mov r12d, r15d
xor r12b, 0x88
xor r15b, 0xe9
and r15b, r12b
or al, 0xde
mov r12d, r14d
and r12b, 0x40
or r12b, 0x94
mov r13d, r14d
and r13b, 0x92
xor r13b, r12b
mov r12d, eax
and r12b, 0xdb
and r14b, 0x20
or r14b, r12b
not al
and al, r15b
and r15b, 0x3f
xor r15b, r14b
xor r15b, 0x5b
or al, r15b
xor al, r13b
and bl, 0x55
mov r14d, edi
and r14b, 0x82
or r14b, bl
mov ebx, r14d
xor bl, 0xaa
xor r14b, 0xa8
and r14b, bl
and dil, 2
lea r15d, [rdi - 0x17]
and dil, r14b
and r14b, 0xd7
xor r15b, r14b
or dil, r15b
mov r14d, edi
xor r14b, 0xc1
mov r15d, edx
and r15b, 2
or r15b, 0xad
or bl, dl
and dl, 0xfd
xor dl, r15b
mov r15d, edx
xor r15b, 0x87
xor dil, 0x3e
and dil, r15b
xor dl, 0x50
and dl, r14b
or dl, dil
not bl
or bl, dl
xor bl, al
xor bl, 0xd8
mov byte [rcx + r11], bl
inc rcx
cmp rcx, 0x33
jne 0x18002e550
mov byte [0x180062019], 1
movabs rax, 0xbc00d68d0b0b7805
add rax, qword [0x18005fc10]
jmp 0x18002e833
mov edx, 1
mov rcx, rdi
mov r9b, 0x30
call fcn.18001dc90
mov ebx, 5
mov rcx, rsi
call fcn.18002e8b0
cmp eax, 0x65
je 0x18002e186
cmp eax, 0x45
je 0x18002e186
cmp eax, 0x2e
jne 0x18002e22d
movzx r9d, byte [rsi + 0x90]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18002e6f4
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18002e6e9
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18002e701
mov edx, 1
mov rcx, rdi
call fcn.18001dc90
mov rcx, rsi
call fcn.18002e8b0
add eax, 0xffffffd0
cmp eax, 9
jbe 0x18002e7cd
cmp byte [0x180061fa9], 0
jne 0x18002e822
mov rax, qword [0x18005fbf0]
movabs r8, 0xbc00d68d0b0ba8ca
add r8, rax
movabs r9, 0xbc00d68d0b0ba8b2
add r9, rax
xor ecx, ecx
movabs r10, 0xaaaaaaaaaaaaaaab
lea r11, [0x180061f80]
nop word cs:[rax + rax]
mov rax, rcx
mul r10
shr rdx, 1
and rdx, 0xfffffffffffffff8
lea rdx, [rdx + rdx*2]
mov rax, r9
sub rax, rdx
movzx edx, byte [rax + rcx]
xor dl, byte [r8 + rcx]
mov byte [rcx + r11], dl
cmp rcx, 0x28
je 0x18002e81b
movzx eax, byte [rax + rcx + 1]
xor al, byte [r8 + rcx + 1]
mov byte [rcx + r11 + 1], al
add rcx, 2
jmp 0x18002e760
mov edx, 1
mov rcx, rdi
call fcn.18001dc90
mov rcx, rsi
call fcn.18002e8b0
lea ecx, [rax - 0x30]
cmp ecx, 0xa
jae 0x18002e7ff
movzx r9d, byte [rsi + 0x14]
mov rax, qword [rsi + 0x60]
mov rcx, qword [rsi + 0x68]
cmp rax, rcx
jae 0x18002e7b0
lea rdx, [rax + 1]
mov qword [rsi + 0x60], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x18002e7f4
mov rdx, qword [rsi + 0x50]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x18002e7bd
cmp eax, 0x45
je 0x18002e186
cmp eax, 0x65
je 0x18002e186
mov ebx, 7
jmp 0x18002e22d
mov byte [0x180061fa9], 1
movabs rax, 0xbc00d68d0b0b7805
add rax, qword [0x18005fc00]
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
cmp eax, 0x30
jne 0x18002e867
mov edx, dword [rsi + 0x14]
mov rcx, rsi
call fcn.18002eb00
mov ebx, 6
jmp 0x18002e69c
movabs rcx, 0xbc00d68d0b0ba852
add rcx, qword [0x18005fbf0]
call fcn.180048100
movabs rax, 0xbc00d68d0b0b7805
add rax, qword [0x18005fbf8]
jmp 0x18002e833