Function at 0x18001c3c0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x78
lea rbp, [rsp + 0x70]
mov qword [rbp], 0xfffffffffffffffe
mov rdi, rdx
mov rsi, rcx
test r8d, r8d
js 0x18001c420
mov eax, 0x15
mov ecx, 0xcccccccd
nop
mov edx, r8d
imul rdx, rcx
shr rdx, 0x23
lea r9d, [rdx + rdx]
lea r9d, [r9 + r9*4]
mov r10d, r8d
sub r10d, r9d
or r10b, 0x30
mov byte [rbp + rax - 0x21], r10b
dec rax
cmp r8d, 9
mov r8d, edx
ja 0x18001c3f0
jmp 0x18001c463
neg r8d
mov eax, 0x14
mov ecx, 0xcccccccd
nop dword [rax]
mov edx, r8d
imul rdx, rcx
shr rdx, 0x23
lea r9d, [rdx + rdx]
lea r9d, [r9 + r9*4]
mov r10d, r8d
sub r10d, r9d
or r10b, 0x30
mov byte [rbp + rax - 0x20], r10b
dec rax
cmp r8d, 9
mov r8d, edx
ja 0x18001c430
mov byte [rbp + rax - 0x20], 0x2d
pxor xmm0, xmm0
movdqa xmmword [rbp - 0x30], xmm0
movdqa xmmword [rbp - 0x40], xmm0
cmp rax, 0x15
jne 0x18001c485
mov qword [rbp - 0x28], 0xf
mov byte [rbp - 0x40], 0
jmp 0x18001c49f
lea rdx, [rax + rbp]
add rdx, 0xffffffffffffffe0
mov r8d, 0x15
sub r8, rax
lea rcx, [rbp - 0x40]
call fcn.1800118c0
mov byte [rbp - 0x20], 0x2e
mov rax, qword [0x18004a940]
cmp byte [0x18004c061], 0
jne 0x18001c594
movabs rcx, 0x9803c7e96ce915a6
add rcx, rax
movabs rdx, 0x9803c7e96ce915ba
add rdx, rax
movabs r9, 0x9803c7e96ce915cb
add r9, rax
lea r8, [0x18004c050]
cmp r9, r8
jbe 0x18001c4fb
lea r9, [0x18004c061]
cmp rcx, r9
jae 0x18001c4fb
xor r9d, r9d
jmp 0x18001c550
movdqu xmm0, xmmword [rdx]
movdqu xmm1, xmmword [rcx]
pcmpeqd xmm2, xmm2
movdqa xmm3, xmm1
pandn xmm3, xmm0
pxor xmm0, xmm2
movdqa xmm4, xmm0
pxor xmm4, xmm1
por xmm3, xmm4
por xmm0, xmm1
pxor xmm3, xmm0
pand xmm0, xmm4
por xmm0, xmm3
pxor xmm0, xmm2
por xmm0, xmm3
movdqa xmmword [0x18004c050], xmm0
mov r9d, 0x10
nop word cs:[rax + rax]
movzx r10d, byte [rdx + r9]
movzx r11d, byte [rcx + r9]
mov ebx, r11d
not bl
and bl, r10b
not r10b
mov r14d, r10d
xor r14b, r11b
or bl, r14b
or r10b, r11b
xor bl, r10b
and r10b, r14b
or r10b, bl
not r10b
or r10b, bl
mov byte [r9 + r8], r10b
inc r9
cmp r9, 0x11
jne 0x18001c550
mov byte [0x18004c061], 1
cmp byte [0x18004c042], 0
jne 0x18001c856
movabs rcx, 0x9803c7e96ce91592
movzx ecx, byte [rax + rcx]
mov r9d, ecx
not r9b
movabs rdx, 0x9803c7e96ce91578
movzx edx, byte [rax + rdx]
mov r10d, ecx
or r10b, 0x75
mov ebx, r10d
not bl
or r9b, 0x8a
mov r8d, edx
and r8b, 0x75
mov r14d, ebx
or r14b, 0x82
mov r11d, r9d
and r11b, 0x19
mov r15d, ecx
and r15b, 0x64
or r15b, r11b
mov r11d, ecx
and r11b, 0x82
or r11b, 0x19
xor r11b, r14b
xor r11b, r15b
and bl, 0xa
and r10b, 0xa0
or r10b, bl
mov ebx, ecx
and bl, 0x55
and r9b, 0xa0
or r9b, bl
xor r9b, r10b
xor cl, 0x75
or cl, r9b
not cl
or cl, r11b
mov r9d, edx
and r9b, 0x8a
xor r9b, 0x9a
mov r10d, edx
and r10b, 0x65
xor r8b, 0xef
and r8b, r9b
mov r9d, edx
xor r9b, 0x75
xor dl, 0x8a
or dl, r9b
not dl
or dl, r10b
or dl, r8b
mov r8d, ecx
xor r8b, 0x30
mov r9d, edx
and r9b, 0x30
or r9b, 5
and dl, 0xcf
xor dl, r9b
mov r9d, edx
xor r9b, 0x35
xor cl, 0xcf
and cl, r9b
xor dl, 0xca
and dl, r8b
or dl, cl
mov byte [0x18004c03f], dl
movabs rcx, 0x9803c7e96ce91593
movzx ecx, byte [rax + rcx]
mov r9d, ecx
not r9b
movabs rdx, 0x9803c7e96ce91579
movzx edx, byte [rax + rdx]
mov r10d, ecx
or r10b, 0x75
mov ebx, r10d
not bl
or r9b, 0x8a
mov r8d, edx
and r8b, 0x75
mov r14d, ebx
or r14b, 0x82
mov r11d, r9d
and r11b, 0x19
mov r15d, ecx
and r15b, 0x64
or r15b, r11b
mov r11d, ecx
and r11b, 0x82
or r11b, 0x19
xor r11b, r14b
xor r11b, r15b
and bl, 0xa
and r10b, 0xa0
or r10b, bl
mov ebx, ecx
and bl, 0x55
and r9b, 0xa0
or r9b, bl
xor r9b, r10b
xor cl, 0x75
or cl, r9b
not cl
or cl, r11b
mov r9d, edx
and r9b, 0x8a
xor r9b, 0x9a
mov r10d, edx
and r10b, 0x65
xor r8b, 0xef
and r8b, r9b
mov r9d, edx
xor r9b, 0x75
xor dl, 0x8a
or dl, r9b
not dl
or dl, r10b
or dl, r8b
mov r8d, ecx
xor r8b, 0x30
mov r9d, edx
and r9b, 0x30
or r9b, 5
and dl, 0xcf
xor dl, r9b
mov r9d, edx
xor r9b, 0x35
xor cl, 0xcf
and cl, r9b
xor dl, 0xca
and dl, r8b
or dl, cl
mov byte [0x18004c040], dl
movabs rcx, 0x9803c7e96ce91594
movzx ecx, byte [rax + rcx]
mov r8d, ecx
not r8b
movabs rdx, 0x9803c7e96ce9157a
movzx eax, byte [rax + rdx]
mov r9d, ecx
or r9b, 0x75
mov r11d, r9d
not r11b
or r8b, 0x8a
mov edx, eax
and dl, 0x75
mov ebx, r11d
or bl, 0x82
mov r10d, r8d
and r10b, 0x19
mov r14d, ecx
and r14b, 0x64
or r14b, r10b
mov r10d, ecx
and r10b, 0x82
or r10b, 0x19
xor r10b, bl
xor r10b, r14b
and r11b, 0xa
and r9b, 0xa0
or r9b, r11b
mov r11d, ecx
and r11b, 0x55
and r8b, 0xa0
or r8b, r11b
xor r8b, r9b
xor cl, 0x75
or cl, r8b
not cl
or cl, r10b
mov r8d, eax
and r8b, 0x8a
xor r8b, 0x9a
mov r9d, eax
and r9b, 0x65
xor dl, 0xef
and dl, r8b
mov r8d, eax
xor r8b, 0x75
xor al, 0x8a
or al, r8b
not al
or al, r9b
or al, dl
mov edx, ecx
xor dl, 0x30
mov r8d, eax
and r8b, 0x30
or r8b, 5
and al, 0xcf
xor al, r8b
mov r8d, eax
xor r8b, 0x35
xor cl, 0xcf
and cl, r8b
xor al, 0xca
and al, dl
or al, cl
mov byte [0x18004c041], al
mov byte [0x18004c042], 1
movabs rax, 0x9803c7e96ce9031f
mov rdx, qword [0x18004a948]
add rdx, rax
add rax, qword [0x18004a950]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x40]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x20]
mov rcx, rsi
mov r8, rdi
call fcn.18001ca40
mov rax, qword [rbp - 0x28]
cmp rax, 0x10
jb 0x18001c8c9
mov rcx, qword [rbp - 0x40]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x18001c8c4
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x18001c8d9
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1800376d4
mov rax, rsi
add rsp, 0x78
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3