Function at 0x180002cc0
Capabilities:
Execute anti-debugging instructions

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
mov qword [rsp + 8], rcx
push rdi
push r14
push r15
sub rsp, 0x20
mov eax, dword [0x180008004]
mov ebp, r9d
movzx r11d, dl
mov rsi, r8
mov dword [rsp + 0x40], 0x4030201
mov word [rsp + 0x44], 0x4020
test dl, dl
je 0x180002d21
mov ecx, r11d
test eax, eax
jne 0x180002d10
rdtsc
shl rdx, 0x20
or rax, rdx
imul eax, eax, 0x343fd
add eax, 0x269ec3
sub rcx, 1
jne 0x180002d03
xor r15d, r15d
mov ebx, r15d
test eax, eax
jne 0x180002d34
rdtsc
shl rdx, 0x20
or rax, rdx
mov rdi, qword [rsp + 0x60]
imul eax, eax, 0x343fd
add eax, 0x269ec3
mov r10d, eax
mov dword [0x180008004], eax
shr r10d, 0x10
and r10d, 1
add r10, 2
nop dword [rax]
lea rdx, [rdi + rbx*2]
call fcn.180002b40
add rbx, rax
sub r10, 1
jne 0x180002d60
lea r14, str.abcedfikmnopsutw
test r11b, r11b
je 0x180002dab
ror r11b, 3
movzx ecx, r11b
mov eax, ecx
shr rcx, 4
and eax, 0xf
movsx eax, byte [rax + r14]
mov word [rdi + rbx*2], ax
movsx eax, byte [rcx + r14]
mov word [rdi + rbx*2 + 2], ax
add rbx, 2
mov word [rdi + rbx*2], r15w
mov eax, dword [0x180008004]
test eax, eax
jne 0x180002dbe
rdtsc
shl rdx, 0x20
or rax, rdx
imul ecx, eax, 0x343fd
add ecx, 0x269ec3
mov eax, ecx
mov dword [0x180008004], ecx
shr eax, 0x10
test al, 1
jne 0x180002de7
mov eax, 0xffe0
add word [rdi], ax
mov ecx, dword [0x180008004]
test ebp, ebp
je 0x180002e26
mov rdx, rbx
mov rcx, rdi
call fcn.180001da0
movzx r11d, al
mov eax, r11d
shr r11, 4
and eax, 0xf
movsx eax, byte [rax + r14]
mov word [rdi + rbx*2], ax
movsx eax, byte [r11 + r14]
mov word [rdi + rbx*2 + 2], ax
add rbx, 2
mov word [rdi + rbx*2], r15w
mov ecx, dword [0x180008004]
test ecx, ecx
jne 0x180002e36
rdtsc
shl rdx, 0x20
or rax, rdx
mov rcx, rax
imul edx, ecx, 0x343fd
add edx, 0x269ec3
mov eax, edx
mov dword [0x180008004], edx
shr eax, 0x10
test al, 1
je 0x180002ea5
test edx, edx
jne 0x180002e5e
rdtsc
shl rdx, 0x20
or rdx, rax
imul eax, edx, 0x343fd
add eax, 0x269ec3
mov dword [0x180008004], eax
shr eax, 0x10
movzx ecx, al
mov eax, 0xaaaaaaab
mul ecx
shr edx, 2
lea eax, [rdx + rdx*2]
add eax, eax
lea rdx, [0x180009134]
sub ecx, eax
movzx eax, cl
lea rcx, [rdi + rbx*2]
movzx r8d, byte [rsp + rax + 0x40]
call fcn.180002760
movsxd rcx, eax
add rbx, rcx
test rsi, rsi
je 0x180002f60
mov rax, qword [0x18000a4e0]
test rax, rax
je 0x180002ee6
mov rax, qword [rax + 0x408]
test rax, rax
jne 0x180002ef8
lea edx, [rax + 1]
xor ecx, ecx
mov r8d, 0x2ca1b5f0
call fcn.180004030
mov rcx, qword [0x18000a4e0]
mov qword [rcx + 0x408], rax
jmp 0x180002ef8
mov edx, 1
xor ecx, ecx
mov r8d, 0x2ca1b5f0
call fcn.180004030
mov rdx, rsi
mov rcx, rdi
call rax
mov rax, qword [0x18000a4e0]
test rax, rax
je 0x180002f42
mov rax, qword [rax + 0x428]
test rax, rax
jne 0x180002f54
lea edx, [rax + 1]
xor ecx, ecx
mov r8d, 0x2d40b8f0
call fcn.180004030
mov rcx, qword [0x18000a4e0]
mov qword [rcx + 0x428], rax
mov rcx, rsi
call rax
cdqe
add rax, rbx
jmp 0x180002f63
mov edx, 1
xor ecx, ecx
mov r8d, 0x2d40b8f0
call fcn.180004030
mov rcx, rsi
call rax
cdqe
add rax, rbx
jmp 0x180002f63
mov rax, rbx
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret