Function at 0x10007f960
Capabilities:
Check for time delay via queryperformancecounter
Get thread local storage value

Disassembly:
mov rax, rsp
mov word [rax + 0x20], r9w
mov dword [rax + 0x18], r8d
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x68]
sub rsp, 0x168
mov qword [rbp + 0x40], 0xfffffffffffffffe
movaps xmmword [rax - 0x58], xmm6
mov r12, rdx
mov rbx, rcx
mov qword [rsp + 0x70], 0
test r8b, 3
mov esi, 0
sete sil
call fcn.10006b940
test eax, eax
je 0x10007f9d4
test esi, esi
je 0x10007f9d2
call fcn.100058d10
test byte [rax + 0x590], 4
jne 0x10007f9d2
mov esi, 1
jmp 0x10007f9d4
xor esi, esi
call fcn.10006adc0
mov rcx, qword [rax + 0x20]
test rcx, rcx
je 0x10007f9fc
test byte [rcx + 0x590], 0x10
jne 0x10007f9fc
add rcx, 0x398
call fcn.1000e0260
mov r13, rax
jmp 0x10007f9ff
xor r13d, r13d
mov eax, dword [0x100255a10]
mov dword [rbp + 0xb8], eax
xor edx, edx
mov qword [rbp - 0x10], rdx
mov qword [rbp - 0x80], r12
mov rax, qword [rbx]
mov rdx, r12
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov r14, rax
mov qword [rbp - 0x78], rax
xor ebx, ebx
call fcn.10011b7d0
test eax, eax
je 0x10007fa65
call fcn.10011b7f0
mov rdi, rax
imul rdi, rdi, 0x1d4c0
add rdi, 0x3e7
movabs rax, 0x624dd2f1a9fbe77
mul rdi
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 9
jmp 0x10007fa6a
mov edi, 0x47868c00
mov qword [rbp - 0x18], rdi
mov r15d, 1
movsxd rax, esi
mov qword [rbp - 0x20], rax
movsd xmm6, qword [0x10001aed0]
mov ecx, 2
mov dword [rsp + 0x78], r15d
test rax, rax
je 0x10007fb21
cmp qword [0x10023c9b8], 0
jne 0x10007fab5
test r15b, 0x7f
je 0x10007fab5
cmp r12, 0x2000
jbe 0x10007fb21
cmp r15d, 1
jbe 0x10007fb21
xor ecx, ecx
call fcn.100080c00
cmp dword [0x10023c9c0], 0
jne 0x10008006c
cmp qword [0x10023c9b8], 0
je 0x10007fb1c
mov edx, 1
lea rcx, [rbp + 8]
call fcn.100057f20
nop
mov dword [rbp + 0x18], 0x400069
xor eax, eax
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x28], rax
mov qword [rbp + 0x38], rax
lea rdx, [rbp + 0x18]
lea ecx, [rax + 0xa]
call fcn.100058870
nop
mov rcx, qword [rbp + 0x10]
mov eax, dword [rbp + 8]
not eax
and dword [rcx + 0x220], eax
jmp 0x100080060
mov ecx, 2
test r14, r14
je 0x10007fb7e
mov dword [rsp + 0x50], 1
mov dword [rsp + 0x48], 1
lea rax, [rsp + 0x70]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], 0x7fffffff
movzx eax, word [rbp + 0xc8]
mov word [rsp + 0x28], ax
mov dword [rsp + 0x20], 4
mov r9d, 0x3000
mov r8, r12
xor edx, edx
mov rcx, r14
call fcn.10007a440
mov rsi, qword [r14 + 0x18]
jmp 0x10007fbd1
mov rdx, r12
cmp r12, qword [0x10023c9a0]
ja 0x10007fba4
lea r8, [rsp + 0x70]
mov rcx, qword [rbp + 0xb0]
call fcn.1000816f0
mov rsi, qword [0x10023c9a0]
jmp 0x10007fbd1
mov eax, dword [rbp + 0xb8]
mov r8d, eax
cmp eax, 1
cmove r8d, ecx
lea rax, [rbp - 0x80]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x70]
mov rcx, qword [rbp + 0xb0]
call fcn.100081960
mov rsi, r12
mov r9, rax
mov qword [rsp + 0x60], rax
cmp dword [rbp + 0xb8], 1
jne 0x10007fc28
cmp r15d, 1
jbe 0x10007fc28
test rax, rax
jne 0x1000800b6
cmp r12, 0x2000
jbe 0x10007fc31
lea rax, [rbp - 0x80]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x70]
mov r8d, 2
mov rdx, r12
mov rcx, qword [rbp + 0xb0]
call fcn.100081960
mov r9, rax
mov qword [rsp + 0x60], rax
mov rsi, r12
test r9, r9
jne 0x1000800b6
test byte [rbp + 0xc0], 2
jne 0x1000800a4
test r14, r14
je 0x10007fca1
cmp r12, 0x2000
jbe 0x10007fc58
lea rcx, [r14 + 0x80]
call fcn.100077090
cmp r15d, 1
jbe 0x10007fca1
cmp qword [rbp - 0x20], 0
je 0x10007fca1
cmp dword [r14 + 0x90], 0
je 0x10007fca1
call fcn.100085880
mov rsi, rax
mov ecx, 1
call fcn.100085960
xorps xmm0, xmm0
cvtsi2sd xmm0, rsi
mulsd xmm0, xmm6
cvttsd2si rcx, xmm0
add rsi, rcx
sub rsi, rax
cmp rsi, r12
jle 0x100080080
test r13, r13
je 0x10007fe84
xor esi, esi
mov qword [rbp - 0x48], rsi
mov qword [rbp - 0x40], rsi
mov qword [rbp - 0x30], rsi
mov dword [rbp - 0x28], esi
mov qword [rbp - 0x38], rsi
mov qword [rbp - 0x38], r13
mov rcx, r13
call fcn.100081e00
mov r14, rax
mov qword [rbp - 0x48], rax
mov rcx, r13
call fcn.100081eb0
mov qword [rbp - 0x40], rax
mov r15, r14
test r14, r14
je 0x10007fe17
or edi, 0xffffffff
nop dword [rax]
cmp r12, qword [r15 + 0x28]
ja 0x10007fd15
mov rax, qword [r15]
mov edx, 1
mov rcx, r15
call qword [rax + 0x10]
mov r11, qword [r15]
xor r8d, r8d
lea edx, [r8 + 1]
mov rcx, r15
call qword [r11 + 0x18]
xor esi, esi
test r14, r14
je 0x10007fe07
cmp r14, qword [rbp - 0x40]
je 0x10007fdda
call fcn.100064800
mov edx, eax
xor eax, eax
lock cmpxchg dword [r13 + 0x10], edx
mov ecx, esi
sete cl
test ecx, ecx
jne 0x10007fd4b
lea rcx, [r13 + 0x10]
call fcn.100057bf0
mov rsi, qword [r15 + 0x10]
cmp rsi, r13
je 0x10007fd5f
test rsi, rsi
je 0x10007fd5f
add rsi, 0xfffffffffffffff8
jmp 0x10007fd61
xor esi, esi
test rsi, rsi
je 0x10007fda8
mov ecx, dword [rsi + 0x18]
test ecx, ecx
je 0x10007fd8d
nop dword [rax]
lea edx, [rcx + 1]
mov eax, ecx
lock cmpxchg dword [rsi + 0x18], edx
cmp ecx, eax
je 0x10007fd89
pause
mov ecx, dword [rsi + 0x18]
test ecx, ecx
jne 0x10007fd70
jmp 0x10007fd8d
test edx, edx
jne 0x10007fda8
mov rsi, qword [rsi + 0x10]
cmp rsi, r13
je 0x10007fda1
test rsi, rsi
je 0x10007fda1
add rsi, 0xfffffffffffffff8
jmp 0x10007fda3
xor esi, esi
test rsi, rsi
jne 0x10007fd66
mov dword [r13 + 0x10], 0
mov qword [rbp - 0x48], rsi
mov eax, edi
lock xadd dword [r15 + 0x18], eax
dec eax
jne 0x10007fe03
cmp qword [r15 + 0x10], 0
je 0x10007fdd2
lea rcx, [r15 + 8]
call fcn.100081f60
jmp 0x10007fe03
mov rcx, r15
mov rax, qword [r15]
jmp 0x10007fe01
mov qword [rbp - 0x48], rsi
lea rcx, [r14 + 8]
mov eax, edi
lock xadd dword [rcx + 0x10], eax
dec eax
jne 0x10007fe03
cmp qword [rcx + 8], rsi
je 0x10007fdfa
call fcn.100081f60
jmp 0x10007fe03
add rcx, 0xfffffffffffffff8
mov rax, qword [rcx]
call qword [rax]
mov r14, qword [rbp - 0x48]
mov r15, rsi
test rsi, rsi
jne 0x10007fcf0
mov rdi, qword [rbp - 0x18]
test r14, r14
je 0x10007fe47
lea rcx, [r14 + 8]
or eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
dec eax
jne 0x10007fe43
cmp qword [rcx + 8], 0
je 0x10007fe3a
call fcn.100081f60
jmp 0x10007fe43
add rcx, 0xfffffffffffffff8
mov rax, qword [rcx]
call qword [rax]
mov qword [rbp - 0x48], rsi
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x10007fe7b
add rcx, 8
or eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
dec eax
jne 0x10007fe77
cmp qword [rcx + 8], 0
je 0x10007fe6e
call fcn.100081f60
jmp 0x10007fe77
add rcx, 0xfffffffffffffff8
mov rax, qword [rcx]
call qword [rax]
mov qword [rbp - 0x40], rsi
mov qword [rbp - 0x38], rsi
mov r15d, dword [rsp + 0x78]
call fcn.10011b7d0
test rbx, rbx
jne 0x10007feac
test eax, eax
je 0x10007fea2
lea rcx, [rbp]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rbx, qword [rbp]
jmp 0x10007fed9
mov rbx, qword [0x7ffe0008]
jmp 0x10007fed9
test eax, eax
je 0x10007fec0
lea rcx, [rbp - 8]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov r11, qword [rbp - 8]
jmp 0x10007fec8
mov r11, qword [0x7ffe0008]
cmp r11, rbx
jb 0x10007fed9
sub r11, rbx
cmp r11, rdi
ja 0x100080092
cmp r15d, 5
jne 0x10007ff9e
cmp word [rbp + 0xc8], 0x40
jne 0x10007ff79
call fcn.100068a00
mov r14, rax
mov rsi, qword gs:[0x30]
add rsi, rax
mov rcx, rax
call fcn.10006c530
test eax, eax
jne 0x10007ff1d
mov ecx, r14d
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test rsi, rsi
je 0x10007ff2e
mov rax, qword [rsi + 0xd8]
test rax, rax
jne 0x10007ff66
call fcn.100063d30
call fcn.100068a00
mov r14, rax
mov rsi, qword gs:[0x30]
add rsi, rax
mov rcx, rax
call fcn.10006c530
test eax, eax
jne 0x10007ff5f
mov ecx, r14d
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
mov rax, qword [rsi + 0xd8]
mov ecx, dword [rax + 0x7c]
call fcn.10006be50
movzx eax, word [rax + 2]
mov word [rbp + 0xc8], ax
call fcn.10006add0
mov rcx, rax
movzx edx, word [rbp + 0xc8]
call fcn.100082130
mov qword [rbp - 0x10], rax
mov rcx, r12
shr rcx, 0xd
lock xadd qword [rax + 0x78], rcx
test r15b, 0x7f
jne 0x10008005c
call fcn.100068a00
mov r14, rax
mov rsi, qword gs:[0x30]
add rsi, rax
mov rcx, rax
call fcn.10006c530
test eax, eax
jne 0x10007ffd4
mov ecx, r14d
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test rsi, rsi
je 0x10007ffe5
mov rcx, qword [rsi + 0xd8]
test rcx, rcx
jne 0x10008001d
call fcn.100063d30
call fcn.100068a00
mov r14, rax
mov rsi, qword gs:[0x30]
add rsi, rax
mov rcx, rax
call fcn.10006c530
test eax, eax
jne 0x100080016
mov ecx, r14d
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
mov rcx, qword [rsi + 0xd8]
rdtsc
shl rdx, 0x20
or rax, rdx
mov r8, qword [rcx + 0x2f8]
cmp rax, r8
ja 0x100080057
mov rdx, r8
sub rdx, rax
mov rax, qword [rcx + 0x218]
cmp rdx, qword [rax + 0xab0]
jbe 0x10008005c
movabs rdx, 0x7fffffffffffffff
cmp r8, rdx
je 0x10008005c
call fcn.1000655c0
mov r14, qword [rbp - 0x78]
inc r15d
mov rax, qword [rbp - 0x20]
jmp 0x10007fa83
xor ecx, ecx
mov rax, qword [rbp + 0xd8]
mov dword [rax], 1
jmp 0x1000803bd
mov rax, qword [rbp + 0xd8]
mov dword [rax], 2
jmp 0x1000803b8
mov rax, qword [rbp + 0xd8]
mov dword [rax], 3
jmp 0x1000803b8
mov rax, qword [rbp + 0xd8]
mov dword [rax], 4
jmp 0x1000803b8
test r14, r14
je 0x1000800ef
mov rax, qword [rsp + 0x70]
mov rax, qword [rax + 0x60]
and eax, 7
cmp al, 5
je 0x1000800ef
mov rcx, qword [r14 + 0x38]
mov rax, qword [rsp + 0x70]
mov r8, qword [rax + 0x38]
test rcx, rcx
je 0x1000800f8
nop dword [rax]
mov rcx, qword [rcx + 0x38]
mov r8, qword [r8 + 0x38]
test rcx, rcx
jne 0x1000800e0
jmp 0x1000800f8
mov rax, qword [rsp + 0x70]
mov r8, qword [rax + 0x38]
mov rax, r9
xor edx, edx
mov rcx, qword [0x10024cd00]
div rcx
imul rax, rcx
sub rax, qword [r8 + 0x28]
xor edx, edx
div rcx
mov rdx, qword [r8 + 0x20]
mov rcx, qword [rbp + 0xd0]
mov qword [rdx + rax*8], rcx
call fcn.100068a00
mov rdi, rax
mov rcx, qword gs:[0x30]
lea rbx, [rcx + rax]
mov rcx, rax
call fcn.10006c530
test eax, eax
jne 0x10008014f
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test rbx, rbx
je 0x100080160
mov rax, qword [rbx + 0xd8]
test rax, rax
jne 0x100080198
call fcn.100063d30
call fcn.100068a00
mov rbx, rax
mov rcx, qword gs:[0x30]
lea rdi, [rax + rcx]
mov rcx, rax
call fcn.10006c530
test eax, eax
jne 0x100080191
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, rax
mov rax, qword [rdi + 0xd8]
mov r8d, dword [rax + 0x7c]
movzx ecx, byte [0x10024cf64]
shl r8d, cl
add r8, qword [0x10024cf58]
mov rdx, qword [rbp - 0x80]
add rdx, 0x1fff
shr rdx, 0xd
mov rax, qword [rsp + 0x70]
movzx ecx, word [rax + 0x54]
lock xadd qword [r8 + rcx*8], rdx
test byte [rbp + 0xc0], 1
je 0x1000801eb
lea rax, [rsi + 0xfff]
shr rax, 0xc
neg rax
lock xadd qword [0x10024cf38], rax
cmp r15d, 1
jbe 0x1000803b8
test r13, r13
je 0x1000803b8
xor r14d, r14d
mov qword [rbp - 0x70], r14
mov qword [rbp - 0x68], r14
mov qword [rbp - 0x58], r14
mov dword [rbp - 0x50], r14d
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x60], r13
mov rcx, r13
call fcn.100081e00
mov rdi, rax
mov qword [rbp - 0x70], rax
mov rcx, r13
call fcn.100081eb0
mov qword [rbp - 0x68], rax
mov rsi, rdi
test rdi, rdi
je 0x100080351
cmp r12, qword [rsi + 0x28]
ja 0x100080251
mov rax, qword [rsi]
xor edx, edx
mov rcx, rsi
call qword [rax + 0x10]
mov rbx, r14
test rdi, rdi
je 0x100080345
cmp rdi, qword [rbp - 0x68]
je 0x100080317
call fcn.100064800
mov edx, eax
xor eax, eax
lock cmpxchg dword [r13 + 0x10], edx
mov ecx, r14d
sete cl
test ecx, ecx
jne 0x100080289
lea rcx, [r13 + 0x10]
call fcn.100057bf0
mov rbx, qword [rsi + 0x10]
cmp rbx, r13
je 0x10008029d
test rbx, rbx
je 0x10008029d
add rbx, 0xfffffffffffffff8
jmp 0x1000802a0
mov rbx, r14
test rbx, rbx
je 0x1000802e9
mov ecx, dword [rbx + 0x18]
test ecx, ecx
je 0x1000802cd
nop dword [rax]
lea edx, [rcx + 1]
mov eax, ecx
lock cmpxchg dword [rbx + 0x18], edx
cmp ecx, eax
je 0x1000802c9
pause
mov ecx, dword [rbx + 0x18]
test ecx, ecx
jne 0x1000802b0
jmp 0x1000802cd
test edx, edx
jne 0x1000802e9
mov rbx, qword [rbx + 0x10]
cmp rbx, r13
je 0x1000802e1
test rbx, rbx
je 0x1000802e1
add rbx, 0xfffffffffffffff8
jmp 0x1000802e4
mov rbx, r14
test rbx, rbx
jne 0x1000802a5
mov dword [r13 + 0x10], r14d
mov qword [rbp - 0x70], rbx
or eax, 0xffffffff
lock xadd dword [rsi + 0x18], eax
dec eax
jne 0x100080341
cmp qword [rsi + 0x10], 0
je 0x10008030f
lea rcx, [rsi + 8]
call fcn.100081f60
jmp 0x100080341
mov rcx, rsi
mov rax, qword [rsi]
jmp 0x10008033f
mov qword [rbp - 0x70], r14
lea rcx, [rdi + 8]
or eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
dec eax
jne 0x100080341
cmp qword [rcx + 8], rbx
je 0x100080338
call fcn.100081f60
jmp 0x100080341
add rcx, 0xfffffffffffffff8
mov rax, qword [rcx]
call qword [rax]
mov rdi, qword [rbp - 0x70]
mov rsi, rbx
test rbx, rbx
jne 0x100080240
or ebx, 0xffffffff
test rdi, rdi
je 0x100080383
lea rcx, [rdi + 8]
mov eax, ebx
lock xadd dword [rcx + 0x10], eax
dec eax
jne 0x10008037f
cmp qword [rcx + 8], 0
je 0x100080376
call fcn.100081f60
jmp 0x10008037f
add rcx, 0xfffffffffffffff8
mov rax, qword [rcx]
call qword [rax]
mov qword [rbp - 0x70], r14
mov rcx, qword [rbp - 0x68]
test rcx, rcx
je 0x1000803b4
add rcx, 8
lock xadd dword [rcx + 0x10], ebx
dec ebx
jne 0x1000803b0
cmp qword [rcx + 8], 0
je 0x1000803a7
call fcn.100081f60
jmp 0x1000803b0
add rcx, 0xfffffffffffffff8
mov rax, qword [rcx]
call qword [rax]
mov qword [rbp - 0x68], r14
mov qword [rbp - 0x60], r14
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rbp - 0x10]
mov rax, rcx
test rdx, rdx
je 0x1000803d6
shr r12, 0xd
neg r12
lock xadd qword [rdx + 0x78], r12
movaps xmm6, xmmword [rsp + 0x150]
add rsp, 0x168
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret