Function at 0x140030ae0
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r15
lea rbp, [rsp - 0x130]
sub rsp, 0x230
mov r9, qword [r8 + 8]
xor edi, edi
add r9, 0xc
mov r15, r8
cmp byte [0x140099b70], dil
mov rsi, rdx
mov rbx, rcx
je 0x140030ba7
mov eax, dword [rdx + 0x38]
movsxd rcx, dword [r9]
mov dword [rbp + 0xb8], eax
add rcx, r9
lea rax, str.CheckInputSignature
mov qword [rbp + 0xd0], rdi
mov qword [rbp + 0xc0], rax
mov eax, edi
sub eax, dword [r9]
neg eax
mov dword [rbp + 0xe0], 0x32
sbb rax, rax
and rcx, rax
mov qword [rbp + 0xc8], rcx
lea rcx, [rbp + 0x178]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x14003171a
mov rax, qword [rbp + 0x178]
xor edx, edx
sub rax, qword [0x140099f88]
imul rax, rax, 0xf4240
div qword [0x140099f80]
add rax, qword [0x140099f90]
mov qword [rbp + 0xd8], rax
mov rcx, qword [r15 + 8]
mov rax, qword [rbx + 0x1d8]
mov qword [rbp - 0x68], rax
mov eax, edi
mov qword [rbp + 0x30], rdi
mov qword [rbp + 0x38], rdi
mov qword [rbp + 0x80], rdi
mov dword [rbp - 0x10], 0xadee3562
mov dword [rbp - 0xc], 0xfb6bbb1
mov dword [rbp - 8], 0x89caf13a
mov dword [rbp - 4], 0xeb937789
mov dword [rbp], 0x3bc2e95c
mov dword [rbp + 4], 0x9d8b6fab
mov dword [rbp + 8], 0x179fa534
mov dword [rbp + 0xc], 0x79682b83
mov dword [rbp + 0x10], 0x75bcf3f4
mov dword [rbp + 0x14], 0xd7857a43
mov dword [rbp + 0x18], 0x5199afcc
mov dword [rbp + 0x1c], 0xb362361b
mov dword [rbp + 0x20], 0x13b3573d
mov dword [rbp + 0x24], 0x757bdd8c
mov dword [rbp + 0x28], 0xef901315
mov dword [rbp + 0x2c], 0x51589964
sub eax, dword [rcx]
movsxd rdx, dword [rcx]
add rdx, rcx
mov qword [rsp + 0x228], r12
mov r12, qword [rbx + 0x1d0]
neg eax
mov qword [rsp + 0x70], r12
sbb rax, rax
and rdx, rax
je 0x140030c6f
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], dil
jne 0x140030c64
jmp 0x140030c72
mov r8, rdi
lea rcx, [rbp - 0x10]
mov qword [rsp + 0x218], r14
call fcn.14002d9d0
mov rax, qword [r15 + 8]
mov rcx, qword [r15 + 8]
add rcx, 8
movsxd r8, dword [rax + 4]
mov eax, edi
sub eax, dword [rcx]
movsxd rdx, dword [rcx]
add rdx, rcx
lea rcx, [rbp - 0x10]
neg eax
sbb rax, rax
and rdx, rax
call fcn.14002d9d0
mov r8d, 1
mov byte [rbp + 0x178], dil
lea rdx, [rbp + 0x178]
lea rcx, [rbp - 0x10]
call fcn.14002d9d0
mov rax, qword [r15 + 8]
cmp dword [rax + 0x78], 0xffffffff
jne 0x140030cdf
xor r14d, r14d
mov qword [rsp + 0x68], r14
jmp 0x140030d3d
mov rcx, qword [rbx + 0x120]
xor eax, eax
add rcx, 0x58
sub eax, dword [rcx]
movsxd rdx, dword [rcx]
add rdx, rcx
neg eax
sbb rax, rax
and rdx, rax
mov rax, qword [r15 + 8]
movsxd rcx, dword [rax + 0x78]
xor eax, eax
sub eax, dword [rdx + rcx*4]
lea rdx, [rdx + rcx*4]
movsxd r14, dword [rdx]
add r14, rdx
neg eax
sbb rax, rax
and r14, rax
mov qword [rsp + 0x68], r14
je 0x140030d3d
mov rax, qword [rbx + 0x110]
mov qword [r15 + 0x70], rax
mov qword [r15 + 0x50], rdi
mov qword [r15 + 0x58], rdi
mov qword [r15 + 0x60], rdi
mov dword [r15 + 0x68], edi
mov rax, qword [rsi + 0x18]
mov rcx, qword [rbx + 0x130]
add rcx, 0x24
mov qword [rbp - 0x20], rax
xor eax, eax
mov qword [rsp + 0x220], r13
mov dword [rsp + 0x58], edi
sub eax, dword [rcx]
movsxd rdx, dword [rcx]
add rdx, rcx
neg eax
sbb rax, rax
and rdx, rax
movsxd rax, dword [r15 + 4]
lea rcx, [rax*8 + 4]
mov rax, qword [r15 + 8]
cmp dword [rax + 0x28], edi
jle 0x140031279
mov eax, dword [rbp + 0x168]
lea r10, [rcx + rdx]
mov r13, qword [rbp + 0x168]
xor r8d, r8d
mov dword [rsp + 0x54], eax
mov rax, qword [rbp + 0x168]
mov qword [rbp - 0x78], rax
mov rax, qword [rbp + 0x168]
mov qword [rbp - 0x80], rax
mov eax, dword [rbp + 0x168]
mov dword [rsp + 0x50], eax
mov rax, qword [rbp + 0x168]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x60], r8
mov qword [rbp - 0x70], r10
nop dword [rax]
nop dword [rax + rax]
mov rcx, qword [r15 + 8]
xor eax, eax
add rcx, 0x2c
sub eax, dword [rcx]
movsxd rdx, dword [rcx]
add rdx, rcx
neg eax
sbb rax, rax
and rdx, rax
xor eax, eax
sub eax, dword [rdx + r8*8]
lea rdi, [rdx + r8*8]
movsxd rbx, dword [rdi]
add rbx, rdi
neg eax
sbb rax, rax
and rbx, rax
movzx eax, byte [rbx]
inc rbx
test al, al
je 0x140030e62
nop dword [rax]
movsx ecx, al
movzx edx, cl
lea r8d, [rcx - 0x41]
lea eax, [rcx + 0x20]
cmp r8d, 0x1a
movzx eax, al
lea rcx, [rbp - 0x10]
cmovb edx, eax
mov r8d, 1
mov byte [rbp + 0x178], dl
lea rdx, [rbp + 0x178]
call fcn.14002d9d0
movzx eax, byte [rbx]
lea rbx, [rbx + 1]
test al, al
jne 0x140030e20
mov r10, qword [rbp - 0x70]
movsxd r8, dword [rdi]
xor eax, eax
sub eax, dword [rdi]
add r8, rdi
movsxd rcx, dword [r10]
neg eax
mov edx, dword [rsi + 0x38]
mov r9d, dword [rdi + 4]
sbb rax, rax
and r8, rax
add rcx, r10
xor eax, eax
sub eax, dword [r10]
neg eax
sbb rax, rax
and rcx, rax
mov rax, qword [rsp + 0x60]
cmp byte [rcx + rax], 2
jne 0x140030ed4
mov dword [rsp + 0x28], edx
lea rcx, [rbp + 0xf8]
mov dword [rsp + 0x20], r9d
mov rdx, r12
mov r9, r8
mov r8, qword [rbp - 0x68]
call fcn.140029dc0
mov r8d, 0x10
lea rdx, [rbp + 0xa0]
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0xa0], xmm0
jmp 0x140030f66
mov rdx, r12
lea rcx, [rbp - 0x60]
call fcn.1400490d0
mov r8d, 8
movsd xmm0, qword [rax + 0x10]
mov eax, dword [rax]
movsd qword [rbp + 0xb0], xmm0
test al, 1
je 0x140030f58
mov rcx, qword [rbp + 0xb0]
lea rdx, [rsp + 0x40]
mov rax, rcx
mov byte [rsp + 0x47], cl
shr rax, 0x38
mov byte [rsp + 0x40], al
mov rax, rcx
shr rax, 0x30
mov byte [rsp + 0x41], al
mov rax, rcx
shr rax, 0x28
mov byte [rsp + 0x42], al
mov rax, rcx
shr rax, 0x20
mov byte [rsp + 0x43], al
mov rax, rcx
shr rax, 0x18
mov byte [rsp + 0x44], al
mov rax, rcx
shr rax, 0x10
mov byte [rsp + 0x45], al
mov rax, rcx
shr rax, 8
mov byte [rsp + 0x46], al
jmp 0x140030f66
mov qword [rsp + 0x48], 0xffffffffffffffff
lea rdx, [rsp + 0x48]
lea rcx, [rbp - 0x10]
call fcn.14002d9d0
test r14, r14
je 0x14003123b
cmp byte [0x140099b70], 0
je 0x140030ff3
mov eax, dword [rsi + 0x38]
lea rcx, [rbp - 0x30]
movsxd r13, dword [rdi]
mov dword [rsp + 0x54], eax
add r13, rdi
lea rax, str.ScanImplicitDeps
mov qword [rbp - 0x80], 0
mov qword [rbp - 0x78], rax
xor eax, eax
sub eax, dword [rdi]
neg eax
mov dword [rsp + 0x50], 0x32
sbb rax, rax
and r13, rax
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x140031727
mov rax, qword [rbp - 0x30]
xor edx, edx
sub rax, qword [0x140099f88]
mov r12, qword [rsp + 0x70]
imul rax, rax, 0xf4240
div qword [0x140099f80]
add rax, qword [0x140099f90]
mov qword [rsp + 0x78], rax
movsxd rdx, dword [rdi]
lea rcx, [rsi + 8]
mov qword [rbp - 0x50], rcx
lea r8, [rbp + 0x90]
xor ecx, ecx
mov qword [rbp - 0x60], r14
sub ecx, dword [rdi]
add rdx, rdi
neg ecx
mov qword [rbp - 0x48], rsi
mov rcx, r12
mov byte [rbp - 0x58], 0
sbb rax, rax
xor r9d, r9d
and rdx, rax
mov rax, qword [rbp + 0x160]
mov qword [rbp - 0x40], rdx
lea rdx, [rbp - 0x60]
mov rax, qword [rax + 0x1c8]
mov qword [rbp - 0x38], rax
call fcn.140048680
test al, al
je 0x1400310f3
movsxd r14, dword [rbp + 0x90]
test r14, r14
jle 0x1400310f3
mov rdi, qword [rbp + 0x98]
lea rbx, [r15 + 0x50]
nop dword [rax + rax]
mov r8, qword [rdi]
mov rcx, rbx
mov edx, dword [rdi + 8]
call fcn.140015f60
cmp eax, 0xffffffff
jne 0x1400310e2
mov r15d, dword [rbx + 0x18]
mov ecx, dword [rbx + 0x14]
mov r12, qword [rdi]
mov esi, dword [rdi + 8]
mov r8d, dword [rbx + 0x10]
lea edx, [r15 + 1]
shl rdx, 8
shr rdx, cl
cmp rdx, 0x50
jbe 0x1400310b1
mov rcx, rbx
call fcn.1400110c0
mov r8d, dword [rbx + 0x10]
mov rdx, qword [rbx]
lea eax, [r8 - 1]
and eax, esi
cmp dword [rdx + rax*4], 0
je 0x1400310ce
dec r8d
inc eax
and eax, r8d
cmp dword [rdx + rax*4], 0
jne 0x1400310c3
mov dword [rdx + rax*4], esi
mov ecx, eax
mov rax, qword [rbx + 8]
mov qword [rax + rcx*8], r12
lea eax, [r15 + 1]
mov dword [rbx + 0x18], eax
add rdi, 0x10
sub r14, 1
jne 0x140031070
mov r15, qword [rbp + 0x170]
cmp byte [0x140099b70], 0
je 0x14003123b
lea rcx, [rbp - 0x28]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x140031734
mov rax, qword [rbp - 0x28]
xor edx, edx
sub rax, qword [0x140099f88]
mov r12, qword [rsp + 0x78]
movsxd rcx, dword [rsp + 0x50]
imul rax, rax, 0xf4240
div qword [0x140099f80]
mov rsi, rax
sub rsi, r12
add rsi, qword [0x140099f90]
cmp rsi, rcx
jb 0x14003123b
movsxd rbx, dword [rsp + 0x54]
shl rbx, 6
add rbx, qword [0x1400c2570]
cmp dword [rbx + 0x38], 0x8000
jae 0x14003123b
movsxd rax, dword [rbx + 0x38]
mov edx, 0x20
inc dword [rbx + 0x38]
lea rcx, [rax + rax*4]
mov rax, qword [rbx + 0x30]
mov qword [rax + rcx*8], r12
mov r12, qword [rbp - 0x78]
lea r14, [rax + rcx*8]
mov rax, qword [rbp - 0x80]
mov rcx, r12
mov qword [r14 + 0x20], rax
call fcn.14004c8ec
mov rdi, rax
test rax, rax
je 0x1400311e4
test r13, r13
jne 0x1400311e4
mov r8, rax
mov rdx, r12
sub r8, r12
mov rcx, rbx
call fcn.14001f6c0
mov qword [r14 + 0x10], rax
lea rdx, [rdi + 1]
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x1400311d0
mov rcx, rbx
call fcn.14001f6c0
jmp 0x140031233
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [r12 + r8], 0
jne 0x1400311f0
mov rdx, r12
mov rcx, rbx
call fcn.14001f6c0
mov qword [r14 + 0x10], rax
test r13, r13
je 0x14003122c
mov r8, 0xffffffffffffffff
inc r8
cmp byte [r8 + r13], 0
jne 0x140031215
mov rdx, r13
mov rcx, rbx
call fcn.14001f6c0
jmp 0x140031233
lea rax, [0x140087d76]
mov qword [r14 + 0x18], rax
mov qword [r14 + 8], rsi
mov r9d, dword [rsp + 0x58]
mov r8, qword [rsp + 0x60]
inc r9d
mov rax, qword [r15 + 8]
inc r8
mov rsi, qword [rbp + 0x168]
mov dword [rsp + 0x58], r9d
mov qword [rsp + 0x60], r8
cmp r9d, dword [rax + 0x28]
jge 0x140031279
mov r14, qword [rsp + 0x68]
mov r12, qword [rsp + 0x70]
mov r10, qword [rbp - 0x70]
jmp 0x140030de0
cmp qword [rsp + 0x68], 0
je 0x1400313d6
cmp byte [0x140099b70], 0
je 0x1400312ec
mov eax, dword [rsi + 0x38]
lea rcx, [rbp + 0x178]
mov dword [rbp - 0x60], eax
xorps xmm0, xmm0
lea rax, str.ImplicitDepsSignatures
mov dword [rbp - 0x38], 0x32
mov qword [rbp - 0x58], rax
movdqu xmmword [rbp - 0x50], xmm0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x14003170d
mov rax, qword [rbp + 0x178]
xor edx, edx
sub rax, qword [0x140099f88]
imul rax, rax, 0xf4240
div qword [0x140099f80]
add rax, qword [0x140099f90]
mov qword [rbp - 0x40], rax
mov eax, dword [r15 + 0x60]
mov rsi, qword [r15 + 0x50]
mov r14, qword [r15 + 0x58]
test eax, eax
je 0x1400313cd
mov r13, qword [rbp + 0x170]
mov r12d, eax
nop word [rax + rax]
mov r15d, dword [rsi]
test r15d, r15d
je 0x1400313b4
mov rdi, qword [r14]
movzx eax, byte [rdi]
lea rbx, [rdi + 1]
test al, al
je 0x14003136e
nop word [rax + rax]
movsx ecx, al
movzx edx, cl
lea r8d, [rcx - 0x41]
lea eax, [rcx + 0x20]
cmp r8d, 0x1a
movzx eax, al
lea rcx, [rbp - 0x10]
cmovb edx, eax
mov r8d, 1
mov byte [rbp + 0x178], dl
lea rdx, [rbp + 0x178]
call fcn.14002d9d0
movzx eax, byte [rbx]
lea rbx, [rbx + 1]
test al, al
jne 0x140031330
mov rcx, qword [rbp + 0x160]
mov r9, rdi
mov rdx, qword [r13 + 8]
add rcx, 0x138
call fcn.1400158f0
mov rcx, qword [rbp + 0x168]
mov r9, rdi
mov r8, qword [rbp - 0x68]
mov rdx, qword [rsp + 0x70]
mov ecx, dword [rcx + 0x38]
mov dword [rsp + 0x30], ecx
lea rcx, [rbp - 0x10]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r15d
call fcn.14002a230
add rsi, 4
add r14, 8
sub r12, 1
jne 0x140031310
mov r15, qword [rbp + 0x170]
lea rcx, [rbp - 0x60]
call fcn.140001250
mov rax, qword [r15 + 8]
lea rdx, [rbp + 0x170]
mov r8d, 8
movzx ecx, byte [rax + 0xa4]
mov eax, ecx
mov byte [rbp + 0x177], cl
shr rax, 0x38
mov byte [rbp + 0x170], al
mov eax, ecx
shr rax, 0x30
mov byte [rbp + 0x171], al
mov eax, ecx
shr rax, 0x28
mov byte [rbp + 0x172], al
mov eax, ecx
shr rax, 0x20
mov byte [rbp + 0x173], al
mov eax, ecx
shr rax, 0x18
mov byte [rbp + 0x174], al
mov eax, ecx
shr rax, 0x10
mov byte [rbp + 0x175], al
mov eax, ecx
shr rax, 8
lea rcx, [rbp - 0x10]
mov byte [rbp + 0x176], al
call fcn.14002d9d0
mov r8, qword [r15 + 8]
xor eax, eax
sub eax, dword [r8 + 0x64]
lea rcx, [r8 + 0x64]
movsxd rdx, dword [rcx]
lea r9, [r8 + 0x64]
movsxd rbx, dword [r9]
add rdx, rcx
neg eax
sbb rax, rax
add rbx, r9
and rdx, rax
movsxd rax, dword [r8 + 0x60]
lea rdi, [rdx + rax*4]
xor eax, eax
sub eax, dword [r9]
neg eax
sbb rax, rax
and rbx, rax
cmp rbx, rdi
je 0x1400314d1
movsxd rdx, dword [rbx]
xor eax, eax
sub eax, dword [rbx]
add rdx, rbx
neg eax
sbb rax, rax
and rdx, rax
je 0x1400314bc
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x1400314b0
jmp 0x1400314bf
xor r8d, r8d
lea rcx, [rbp - 0x10]
call fcn.14002d9d0
add rbx, 4
cmp rbx, rdi
jne 0x140031491
mov rax, qword [r15 + 8]
lea rdx, [rbp + 0x170]
mov r8d, 8
mov ecx, dword [rax + 0xa4]
shr rcx, 0xa
and ecx, 1
mov eax, ecx
mov byte [rbp + 0x177], cl
shr rax, 0x38
mov byte [rbp + 0x170], al
mov eax, ecx
shr rax, 0x30
mov byte [rbp + 0x171], al
mov eax, ecx
shr rax, 0x28
mov byte [rbp + 0x172], al
mov eax, ecx
shr rax, 0x20
mov byte [rbp + 0x173], al
mov eax, ecx
shr rax, 0x18
mov byte [rbp + 0x174], al
mov eax, ecx
shr rax, 0x10
mov byte [rbp + 0x175], al
mov eax, ecx
shr rax, 8
lea rcx, [rbp - 0x10]
mov byte [rbp + 0x176], al
call fcn.14002d9d0
mov rax, qword [r15 + 8]
lea rdx, [rbp + 0x170]
mov r8d, 8
mov ecx, dword [rax + 0xa4]
shr rcx, 0xb
and ecx, 1
mov eax, ecx
mov byte [rbp + 0x177], cl
shr rax, 0x38
mov byte [rbp + 0x170], al
mov eax, ecx
shr rax, 0x30
mov byte [rbp + 0x171], al
mov eax, ecx
shr rax, 0x28
mov byte [rbp + 0x172], al
mov eax, ecx
shr rax, 0x20
mov byte [rbp + 0x173], al
mov eax, ecx
shr rax, 0x18
mov byte [rbp + 0x174], al
mov eax, ecx
shr rax, 0x10
mov byte [rbp + 0x175], al
mov eax, ecx
shr rax, 8
lea rcx, [rbp - 0x10]
mov byte [rbp + 0x176], al
call fcn.14002d9d0
mov rcx, qword [rbp + 0x30]
mov rax, rcx
mov byte [rbp + 0x170], 0x80
shr rax, 0x38
mov byte [rbp + 0x178], al
mov rax, rcx
shr rax, 0x30
mov byte [rbp + 0x179], al
mov rax, rcx
shr rax, 0x28
mov byte [rbp + 0x17a], al
mov rax, rcx
shr rax, 0x20
mov byte [rbp + 0x17b], al
mov rax, rcx
shr rax, 0x18
mov byte [rbp + 0x17c], al
mov rax, rcx
shr rax, 0x10
mov byte [rbp + 0x17d], al
mov rax, rcx
shr rax, 8
lea rdx, [rbp + 0x170]
mov byte [rbp + 0x17f], cl
mov r8d, 1
lea rcx, [rbp - 0x10]
mov byte [rbp + 0x17e], al
call fcn.14002d9d0
mov eax, dword [rbp + 0x38]
add eax, 0xffffffc8
jns 0x140031664
neg eax
movsxd r8, eax
jmp 0x14003166f
cdqe
mov r8d, 0x40
sub r8, rax
lea rdx, [0x14008b870]
lea rcx, [rbp - 0x10]
call fcn.14002d9d0
mov r8d, 8
lea rdx, [rbp + 0x178]
lea rcx, [rbp - 0x10]
call fcn.14002d9d0
lea rdx, [r15 + 0x20]
lea rcx, [rbp - 0x10]
call fcn.14002e330
mov rcx, qword [rbp + 0x168]
mov rdx, qword [rbp - 0x20]
mov rax, qword [rcx + 0x10]
mov qword [rcx + 0x18], rdx
cmp qword [rax + 0x20], rdx
jbe 0x1400316cd
nop dword [rax + rax]
mov rax, qword [rax]
mov qword [rcx + 0x10], rax
cmp qword [rax + 0x20], rdx
ja 0x1400316c0
mov rax, qword [rcx + 0x10]
lea rcx, [rbp + 0xb8]
sub rdx, qword [rax + 0x20]
mov qword [rax + 0x18], rdx
call fcn.140001250
mov r13, qword [rsp + 0x220]
mov al, 1
mov r14, qword [rsp + 0x218]
mov r12, qword [rsp + 0x228]
add rsp, 0x230
pop r15
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140013a60
int3
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140013a60
int3
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140013a60
int3
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140013a60
int3