Function at 0x1802203b0
Capabilities:
Execute anti-debugging instructions

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x38
mov r15, qword [rcx + 0x40]
xor esi, esi
mov r13, rdx
mov rbx, rcx
mov edi, esi
test r15, r15
je 0x1802203e1
cmp r15, qword [rcx + 0xa0]
je 0x1802203e1
xor cl, cl
jmp 0x1802203e3
mov cl, 1
mov rax, qword [rbx + 0x80]
mov qword [rsp + 0x98], rax
mov rax, qword [rbx + 0x48]
mov byte [rsp + 0x80], cl
test rax, rax
je 0x180220406
mov byte [rax + 0x10], 1
test cl, cl
je 0x18022044c
mov rax, qword [rbx + 0x30]
mov r8, qword [rax + 0x120]
test r8, r8
je 0x18022044c
mov rcx, qword [rbx + 0x30]
mov rax, r8
lock cmpxchg qword [rcx + 0x120], rsi
jne 0x18022044c
mov rax, qword [rbx + 0x30]
mov rcx, qword [rax + 0x88]
cmp r8, rcx
jle 0x18022044c
mov rdx, qword [rbx + 0x30]
mov rcx, qword [rbx + 0x88]
call fcn.180222f40
mov rax, qword [rbx + 0x30]
mov r14d, dword [rax + 0x90]
dec r14d
mov r12d, esi
cmp qword [r13], 1
mov ebp, 0xffffffff
je 0x1802208ab
nop dword [rax]
test r15, r15
jne 0x1802204ac
mov rax, qword [rbx + 0x30]
mov ecx, dword [rax + 0x84]
mov rdx, qword [rbx + 0x30]
shr ecx, 0xc
cmp dword [rdx + 0x80], ecx
jb 0x1802208dd
mov rax, qword [rdx + 0x128]
cmp dword [rax + 0x2c], r15d
je 0x1802204ac
cmp dword [rdx + 0x148], r15d
je 0x1802208dd
mov rax, qword [rbx + 0x30]
mov rsi, qword [rax + 0x88]
test r14, r14
je 0x1802204dc
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax]
test rcx, rcx
je 0x1802204dc
mov rcx, rbx
call fcn.18021f500
mov rdi, rax
test rax, rax
jne 0x180220613
cmp byte [rsp + 0x80], 0
je 0x18022051a
mov rax, qword [rbx + 0x30]
movsxd rcx, esi
cmp qword [rax + rcx*8 + 0x98], 0
je 0x18022051a
mov r8, qword [rbx + 0x28]
lea rcx, [rax + 0x98]
sub r8, 0xffffffffffffff80
mov edx, esi
call fcn.180221710
mov rdi, rax
test rax, rax
jne 0x1802208f7
cmp qword [rbx + 0x158], 0
je 0x180220538
mov rcx, rbx
call fcn.18021f000
mov rdi, rax
test rax, rax
jne 0x180220613
lea rax, [rsp + 0x20]
cmp qword [rsp + 0x98], rax
jae 0x180220683
test r14, r14
je 0x180220683
mov edx, dword [rbx + 0x90]
mov ecx, dword [rbx + 0x94]
imul eax, edx, 0x61c8864f
sub ecx, eax
mov eax, edx
shr rax, 0x10
xor edx, edx
div r14
mov dword [rbx + 0x90], ecx
mov eax, 0x280
cmp rdx, qword [rbx + 0x20]
mov ecx, 0x180
cmovb eax, ecx
shl rdx, 8
add rax, rdx
add rax, qword [rbx + 0x30]
cmp qword [rax + 8], 0
je 0x180220683
mov rdx, rax
mov rcx, rbx
call fcn.18021f320
mov rdi, rax
test rax, rax
je 0x180220683
cmp byte [rax - 0xb], 0x20
jne 0x1802205f0
mov rdi, qword [rax + 8]
lea rcx, [rax + 8]
mov rdx, rax
cmp rdi, 1
je 0x180220679
mov rax, rdi
mov r8d, 2
lock cmpxchg qword [rcx], r8
jne 0x180220679
and rdi, 0xfffffffffffffffc
je 0x18022067b
or byte [rdi - 0xb], 0x80
movzx eax, byte [rdi - 0xb]
and al, 0xf
cmp al, 1
jb 0x180220613
mov qword [rbx + 0x38], rdi
mov rcx, rdi
mov rax, qword [rdi]
mov qword [rdi - 0x28], rbx
movzx edx, word [rbx + 0x50]
call qword [rax + reloc.WS2_32.dll_recv]
mov rcx, qword [rbx + 0x30]
lea rdx, [rbx + 0x60]
add rcx, 0xe0
mov rax, qword [rcx + 8]
cmp qword [rdx], rax
je 0x180220635
movzx r8d, byte [rbx + 0x78]
call fcn.18028a1d0
mov rax, qword [0x1806d5a88]
lea rdx, [rbx + 0x58]
cmp qword [rdx], rax
je 0x180220656
movzx r8d, byte [rbx + 0x78]
lea rcx, [0x1806d5a80]
call fcn.18028a1d0
cmp ebp, 0xffffffff
je 0x1802208bc
mov rax, qword [0x1806c73d8]
test rax, rax
je 0x1802208bc
mov rcx, rbx
call rax
jmp 0x1802208bc
xor edi, edi
mov rcx, rbx
call fcn.180221590
cmp ebp, 0xffffffff
jne 0x18022069f
mov rax, qword [0x1806c73b8]
test rax, rax
je 0x180220699
mov rcx, rbx
call rax
xor esi, esi
mov ebp, esi
jmp 0x1802206a1
xor esi, esi
rdtsc
shl rdx, 0x20
mov ecx, 1
or rax, rdx
mov r8, rax
lea r9, [rax + 0x3e8]
nop dword [rax]
movsxd rdx, ecx
test ecx, ecx
je 0x1802206cf
pause
sub rdx, 1
jne 0x1802206c7
cmp ecx, 0x10
lea eax, [rcx + rcx]
cmovge eax, ecx
mov ecx, eax
rdtsc
shl rdx, 0x20
or rax, rdx
cmp rax, r8
jbe 0x1802206f0
mov r8, rax
cmp rax, r9
jb 0x1802206c0
lea eax, [r14*2 + 2]
cmp ebp, eax
jl 0x180220877
mov ebp, eax
call qword [sym.imp.KERNEL32.dll_SwitchToThread]
mov rcx, qword [rbx + 0x30]
cmp qword [rcx + 0x110], 0
je 0x1802207f0
mov eax, 1
lock xadd qword [rcx + 0x118], rax
mov rcx, qword [rbx + 0x30]
mov rax, rsi
xchg qword [rcx + 0x110], rax
mov qword [rsp + 0x88], rax
test rax, rax
je 0x1802207f0
dec qword [rbx + 0x168]
cmp qword [rbx + 0x40], 0
mov qword [rsp + 0x90], rsi
jne 0x180220788
mov rax, qword [rbx + 0x30]
mov ecx, dword [rax + 0x84]
mov rax, qword [rbx + 0x30]
shr ecx, 0xc
cmp dword [rax + 0x80], ecx
jae 0x18022077f
cmp dword [rax + 0x148], 2
jne 0x180220788
mov r9, qword [rax + 0x88]
jmp 0x18022078f
mov rax, qword [rbx + 0x68]
mov r9, qword [rax]
lea r8, [rsp + 0x90]
mov rcx, rbx
lea rdx, [rsp + 0x88]
call fcn.18021ed60
cmp qword [rsp + 0x88], 0
mov rdi, rax
je 0x1802207e7
mov rcx, qword [rsp + 0x90]
mov rax, qword [rbx + 0x158]
mov qword [rcx], rax
cmp qword [rbx + 0x158], 0
jne 0x1802207d8
mov qword [rbx + 0x160], rcx
mov rax, qword [rsp + 0x88]
mov qword [rbx + 0x158], rax
test rdi, rdi
jne 0x180220919
mov eax, r12d
inc r12d
cmp eax, 0x64
jl 0x180220869
test r15, r15
je 0x180220818
mov rax, qword [rbx + 0x30]
mov rcx, qword [rax + 0x88]
mov rax, qword [rbx + 0x30]
cmp rcx, qword [rax + 0x100]
jle 0x18022082e
mov rcx, qword [rbx + 0x30]
call fcn.18022e6a0
test al, al
je 0x18022082e
test r15, r15
je 0x1802208e2
cmp qword [rbx + 0x158], 0
je 0x180220869
dec qword [rbx + 0x168]
test r15, r15
je 0x180220869
mov rax, qword [rbx + 0x30]
mov rdx, qword [rax + 0x88]
mov rax, qword [rbx + 0x68]
mov rcx, qword [rax]
cmp rcx, rdx
jle 0x180220869
mov rax, qword [rbx + 0x30]
add rax, 0x88
mov qword [rbx + 0x68], rax
mov rax, qword [rbx + 0x30]
mov r14d, dword [rax + 0x90]
dec r14d
inc ebp
cmp qword [r13], 1
jne 0x180220470
cmp ebp, 0xffffffff
je 0x1802208ab
mov rax, qword [0x1806c73b8]
test rax, rax
je 0x18022089a
mov rcx, r13
call rax
mov rax, qword [0x1806c73d8]
test rax, rax
je 0x1802208bc
mov rcx, rbx
call rax
mov rax, qword [0x1806c73d8]
test rax, rax
je 0x1802208bc
mov rcx, r13
call rax
mov rax, qword [rbx + 0x48]
test rax, rax
je 0x1802208c9
mov byte [rax + 0x10], 0
mov rax, rdi
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
cmp ebp, 0xffffffff
je 0x1802208f3
mov rax, qword [0x1806c73c8]
test rax, rax
je 0x1802208f3
mov rcx, rbx
call rax
xor eax, eax
jmp 0x1802208cc
mov rax, qword [0x1806c73d8]
test rax, rax
je 0x180220613
mov rcx, qword [rbx + 0x30]
add rcx, 0x98
call rax
jmp 0x180220613
mov rax, qword [0x1806c73c8]
test rax, rax
je 0x1802208bc
mov rcx, rbx
call rax
jmp 0x1802208bc