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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x118
movdqa xmmword [rsp + 0x100], xmm6
mov rbx, rdx
mov r15, qword [rcx + 0x20]
mov rsi, qword [rdx]
mov rax, qword [rcx + 0x10]
mov qword [rsp + 0x80], rax
mov rax, qword [rcx]
mov r8d, dword [rcx + 8]
mov edx, 0x3b9aca00
mov qword [rsp + 0x50], rax
mul rdx
movzx r9d, byte [rcx + 0x18]
mov dword [rsp + 0x8c], r9d
mov qword [rsp + 0x48], r8
add rax, r8
mov qword [rsp + 0xb8], rax
adc rdx, 0
mov qword [rsp + 0xb0], rdx
mov r13, qword [rcx + 0x28]
lea rax, [r13 + 0x10]
mov qword [rsp + 0x78], rax
pcmpeqd xmm6, xmm6
mov qword [rsp + 0xc0], rsi
movzx eax, byte [r15 + 0x40]
test al, al
jne 0x14008a4b8
mov rax, qword [rsi]
mov rcx, qword [rsi + 8]
call qword [rax]
mov r12, rax
mov rbp, rdx
mov al, 1
xchg byte [r15 + 0x20], al
test al, al
jne 0x14008a4b0
mov rax, qword [r15 + 0x10]
test rax, rax
je 0x1400897e2
mov rcx, qword [r15 + 0x18]
call qword [rax + 0x18]
mov qword [r15 + 0x10], r12
mov qword [r15 + 0x18], rbp
xor eax, eax
xchg byte [r15 + 0x20], al
movzx eax, byte [r15 + 0x40]
test al, al
jne 0x14008a4b8
mov rdi, qword [rsp + 0x80]
mov rcx, rdi
mov rdx, rbx
call fcn.1400ef470
mov ebp, eax
test al, al
jne 0x14008a4ed
mov rsi, qword [rdi + 0x10]
mov edi, dword [rdi + 0x18]
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x20]
call sub.kernel32.dll_QueryPerformanceCounter
test eax, eax
je 0x14008a50b
mov r12, qword [rsp + 0x20]
mov r8, qword [0x1401ee0e0]
test r8, r8
jne 0x14008987d
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x20]
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x14008a50b
mov r8, qword [rsp + 0x20]
mov qword [0x1401ee0e0], r8
test r8, r8
je 0x14008a4cc
mov rax, r12
or rax, r8
shr rax, 0x20
je 0x1400898a0
mov rax, r12
xor edx, edx
div r8
mov rcx, rax
jmp 0x1400898aa
mov eax, r12d
xor edx, edx
div r8d
mov ecx, eax
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, r8
shr rdx, 0x20
je 0x1400898d0
xor edx, edx
div r8
jmp 0x1400898d5
xor edx, edx
div r8d
imul rcx, rcx, 0x3b9aca00
add rcx, rax
mov rax, rcx
shr rax, 9
movabs rdx, 0x44b82fa09b5a53
mul rdx
cmp edi, 0x3b4e7ec0
jb 0x140089910
mov r8, rsi
inc r8
je 0x14008a4cc
lea eax, [rdi - 0x3b4e7ec0]
jmp 0x140089919
lea eax, [rdi + 0x4c4b40]
mov r8, rsi
shr rdx, 0xb
imul r9d, edx, 0x3b9aca00
sub ecx, r9d
cmp rdx, r8
jb 0x140089980
jne 0x140089932
cmp eax, ecx
jae 0x140089980
mov eax, dword [rsp + 0x8c]
test eax, eax
je 0x140089980
cmp eax, 1
jne 0x14008a359
add rdx, qword [rsp + 0x50]
jb 0x14008a4cc
add ecx, dword [rsp + 0x48]
cmp ecx, 0x3b9aca00
jb 0x14008a4a8
inc rdx
je 0x14008a4cc
add ecx, 0xc4653600
mov rsi, rdx
jmp 0x1400899a8
add rsi, qword [rsp + 0x50]
jb 0x14008a4cc
add edi, dword [rsp + 0x48]
cmp edi, 0x3b9aca00
jb 0x1400899a6
inc rsi
je 0x14008a4cc
add edi, 0xc4653600
mov ecx, edi
mov rax, qword [rsp + 0x80]
mov qword [rax + 0x10], rsi
mov dword [rax + 0x18], ecx
mov byte [rax + 0x68], 0
mov rdx, qword [rax + 8]
cmp qword [rax], 0
mov r8d, 0x128
mov eax, 0xc0
cmove r8, rax
mov eax, dword [rdx + r8 + 0xc8]
cmp eax, 0x3b9aca00
je 0x14008a4cc
cmp ecx, 0x3b8b87c1
jb 0x140089a10
inc rsi
je 0x14008a4cc
add ecx, 0xc474783f
cmp ecx, 0x3b9aca00
jne 0x140089a16
jmp 0x14008a4cc
add ecx, 0xf423f
add rdx, r8
add rdx, 0x10
mov rdx, qword [rdx + 0xb0]
mov qword [rsp + 0x68], rsi
mov dword [rsp + 0x70], ecx
mov qword [rsp + 0x20], rdx
mov dword [rsp + 0x28], eax
lea rcx, [rsp + 0x68]
lea rdx, [rsp + 0x20]
call fcn.1400e3560
mov ecx, edx
imul rcx, rcx, 0x431bde83
shr rcx, 0x32
cmp edx, 0x3b9aca00
mov edx, 0
cmove rax, rdx
cmove ecx, edx
mov edx, 0x3e8
mul rdx
add rcx, rax
adc rdx, 0
mov rax, 0xfffffffffffffffd
cmovne rcx, rax
mov r8, qword [rsp + 0x80]
mov rax, qword [r8 + 0x40]
cmp rcx, 0xfffffffffffffffd
mov rdx, 0xfffffffffffffffd
cmovb rdx, rcx
nop dword [rax]
cmp rax, rdx
ja 0x140089aad
lock cmpxchg qword [r8 + 0x40], rcx
jne 0x140089aa0
lea rax, [r13 + 1]
cmp rax, 2
jb 0x14008a4ed
mov rax, qword [r13]
xor ebp, ebp
nop word cs:[rax + rax]
test rax, rax
je 0x14008a4eb
js 0x14008a4cc
lea rcx, [rax + 1]
lock cmpxchg qword [r13], rcx
jne 0x140089ad0
mov qword [rsp + 0x68], r13
mov rcx, qword [rsp + 0x78]
call sub.kernel32.dll_AcquireSRWLockExclusive
movzx eax, byte [r13 + 0x18]
test al, al
jne 0x14008a4d0
mov eax, dword [r13 + 0xd8]
mov dword [rsp + 0x44], eax
cmp eax, 0x3b9aca00
je 0x14008a4cc
mov rax, qword [r13 + 0xd0]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x20]
call sub.kernel32.dll_QueryPerformanceCounter
test eax, eax
je 0x14008a50b
mov r12, qword [rsp + 0x20]
mov r8, qword [0x1401ee0e0]
test r8, r8
jne 0x140089b85
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x20]
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x14008a50b
mov r8, qword [rsp + 0x20]
mov qword [0x1401ee0e0], r8
test r8, r8
je 0x14008a4cc
mov rax, r12
or rax, r8
shr rax, 0x20
je 0x140089b9e
mov rax, r12
xor edx, edx
div r8
mov rcx, rax
jmp 0x140089ba8
mov eax, r12d
xor edx, edx
div r8d
mov ecx, eax
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, r8
shr rdx, 0x20
je 0x140089bc2
xor edx, edx
div r8
jmp 0x140089bc7
xor edx, edx
div r8d
imul r11, rcx, 0x3b9aca00
add r11, rax
mov rax, r11
shr rax, 9
movabs rcx, 0x44b82fa09b5a53
mul rcx
mov rax, qword [r13 + 0x78]
mov rsi, r13
test rax, rax
je 0x14008a325
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0xa8], r15
shr rdx, 0xb
mov qword [rsp + 0x60], rdx
mov rcx, rax
imul eax, edx, 0x3b9aca00
sub r11d, eax
mov rbx, qword [r13 + 0x60]
lea r15, [rbx + 0x10]
movdqa xmm0, xmmword [rbx]
pmovmskb eax, xmm0
not eax
lea edx, [r11 + 0x3b9aca00]
mov dword [rsp + 0x40], edx
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x98], r13
jmp 0x140089c86
mov r13, qword [rsp + 0x98]
mov rcx, qword [rsp + 0xd0]
lea eax, [rcx - 1]
and eax, ecx
mov rcx, qword [rsp + 0xd8]
dec rcx
je 0x14008a310
test ax, ax
jne 0x140089cad
nop dword [rax + rax]
movdqa xmm0, xmmword [r15]
pmovmskb eax, xmm0
add rbx, 0xfffffffffffffb80
add r15, 0x10
cmp eax, 0xffff
je 0x140089c90
not eax
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xd0], rax
tzcnt eax, eax
neg rax
lea rax, [rax + rax*8]
lea rcx, [rbx + rax*8]
mov r13, qword [rbx + rax*8 - 8]
test r13, r13
mov qword [rsp + 0x30], rcx
je 0x140089f40
mov r12, qword [rcx - 0x18]
xor edi, edi
jmp 0x140089d00
inc rdi
add r12, 0x48
cmp r13, rdi
je 0x14008a1ad
mov rax, qword [r12 + 0x28]
movzx eax, byte [rax + 0x10]
test al, al
jne 0x140089f20
cmp byte [r12 + 0x10], 2
jne 0x140089d30
mov rax, qword [r12]
mov rax, qword [rax + 0x10]
cmp rax, 3
jne 0x140089d42
jmp 0x140089f20
mov rax, qword [r12]
mov rax, qword [rax + 0x10]
cmp rax, 1
jne 0x140089f20
mov r14, qword [r12 + 0x38]
mov esi, dword [r12 + 0x40]
mov r8, qword [0x1401ee0e0]
test r8, r8
jne 0x140089d8d
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x20]
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x14008a50b
mov r8, qword [rsp + 0x20]
mov qword [0x1401ee0e0], r8
test r8, r8
mov r11, qword [rsp + 0x38]
je 0x14008a4cc
cmp r8, 0x3b9aca00
ja 0x140089db0
mov eax, 0x3b9aca00
xor edx, edx
div r8d
jmp 0x140089db2
xor eax, eax
mov ecx, 0xc4653600
add ecx, eax
xor edx, edx
cmp r8, 2
setb r8b
cmovae ecx, eax
mov eax, ecx
shr eax, 9
imul rax, rax, 0x44b83
shr rax, 0x27
imul eax, eax, 0x3b9aca00
sub ecx, eax
mov rax, r14
sub rax, qword [rsp + 0x60]
jb 0x140089def
jne 0x140089e40
cmp esi, r11d
ja 0x140089e40
mov rax, qword [rsp + 0x60]
mov ecx, 0x3b9aca00
sub rax, r14
jae 0x140089e20
cmp ecx, 0x3b9aca00
cmove rax, rbp
cmp rax, qword [rsp + 0x58]
jb 0x140089cf0
jmp 0x140089e95
cmp esi, r11d
jbe 0x140089e5a
test rax, rax
je 0x140089e80
dec rax
mov ecx, dword [rsp + 0x40]
jmp 0x140089e5d
cmp esi, r11d
jae 0x140089eb6
test rax, rax
je 0x14008a4cc
dec rax
lea r9d, [rsi + 0x3b9aca00]
jmp 0x140089eb9
mov ecx, r11d
sub ecx, esi
mov edx, ecx
shr edx, 9
imul rdx, rdx, 0x44b83
shr rdx, 0x27
add rax, rdx
jb 0x14008a4cc
imul edx, edx, 0x3b9aca00
sub ecx, edx
cmp ecx, 0x3b9aca00
cmove rax, rbp
cmp rax, qword [rsp + 0x58]
jb 0x140089cf0
cmp ecx, 0x3b9aca00
setne dl
cmp ecx, dword [rsp + 0x44]
seta cl
cmp rax, qword [rsp + 0x58]
jne 0x140089f20
and dl, cl
je 0x140089cf0
jmp 0x140089f20
mov r9d, esi
sub r9d, r11d
mov r10d, r9d
shr r10d, 9
imul r10, r10, 0x44b83
shr r10, 0x27
add rax, r10
jb 0x14008a4cc
mov dl, r8b
cmp rax, rdx
jb 0x140089ef8
jne 0x140089def
imul eax, r10d, 0x3b9aca00
sub r9d, eax
cmp r9d, ecx
ja 0x140089def
xor eax, eax
xor ecx, ecx
cmp ecx, 0x3b9aca00
cmove rax, rbp
cmp rax, qword [rsp + 0x58]
jb 0x140089cf0
jmp 0x140089e95
inc rdi
mov rcx, r12
call fcn.1400b6970
mov r14d, 1
mov rsi, r13
sub rsi, rdi
jne 0x140089f51
jmp 0x14008a1b0
xor edi, edi
xor r14d, r14d
mov rsi, r13
sub rsi, rdi
je 0x14008a1b0
lea r12, [rdi + rdi*8]
shl r12, 3
mov rax, qword [rsp + 0x30]
add r12, qword [rax - 0x18]
jmp 0x140089f88
inc r14
mov rcx, r12
call fcn.1400b6970
add r12, 0x48
dec rsi
je 0x14008a1b0
mov rax, qword [r12 + 0x28]
movzx eax, byte [rax + 0x10]
test al, al
jne 0x140089f70
cmp byte [r12 + 0x10], 2
jne 0x140089fad
mov rax, qword [r12]
mov rax, qword [rax + 0x10]
cmp rax, 3
je 0x140089f70
jmp 0x140089fbb
mov rax, qword [r12]
mov rax, qword [rax + 0x10]
cmp rax, 1
jne 0x140089f70
mov rbp, qword [r12 + 0x38]
mov edi, dword [r12 + 0x40]
mov r8, qword [0x1401ee0e0]
test r8, r8
jne 0x14008a001
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x20]
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x14008a50b
mov r8, qword [rsp + 0x20]
mov qword [0x1401ee0e0], r8
test r8, r8
je 0x14008a4cc
cmp r8, 0x3b9aca00
mov r11, qword [rsp + 0x38]
ja 0x14008a01b
mov eax, 0x3b9aca00
xor edx, edx
div r8d
jmp 0x14008a01d
xor eax, eax
mov ecx, 0xc4653600
add ecx, eax
xor edx, edx
cmp r8, 2
setb r8b
cmovae ecx, eax
mov eax, ecx
shr eax, 9
imul rax, rax, 0x44b83
shr rax, 0x27
imul eax, eax, 0x3b9aca00
sub ecx, eax
mov rax, rbp
sub rax, qword [rsp + 0x60]
jb 0x14008a05a
jne 0x14008a086
cmp edi, r11d
ja 0x14008a086
mov rax, qword [rsp + 0x60]
mov ecx, 0x3b9aca00
sub rax, rbp
jae 0x14008a06e
jmp 0x14008a11f
cmp edi, r11d
mov ebp, 0
jbe 0x14008a0a0
test rax, rax
je 0x14008a0c6
dec rax
mov ecx, dword [rsp + 0x40]
jmp 0x14008a0a3
cmp edi, r11d
jae 0x14008a0d9
test rax, rax
je 0x14008a4cc
dec rax
lea r9d, [rdi + 0x3b9aca00]
jmp 0x14008a0dc
mov ecx, r11d
sub ecx, edi
mov edx, ecx
shr edx, 9
imul rdx, rdx, 0x44b83
shr rdx, 0x27
add rax, rdx
jb 0x14008a4cc
imul edx, edx, 0x3b9aca00
sub ecx, edx
cmp ecx, 0x3b9aca00
cmove rax, rbp
cmp rax, qword [rsp + 0x58]
jae 0x14008a132
jmp 0x14008a155
mov r9d, edi
sub r9d, r11d
mov r10d, r9d
shr r10d, 9
imul r10, r10, 0x44b83
shr r10, 0x27
add rax, r10
jb 0x14008a4cc
mov dl, r8b
cmp rax, rdx
jb 0x14008a11b
jne 0x14008a05a
imul eax, r10d, 0x3b9aca00
sub r9d, eax
cmp r9d, ecx
ja 0x14008a05a
xor eax, eax
xor ecx, ecx
xor ebp, ebp
cmp ecx, 0x3b9aca00
cmove rax, rbp
cmp rax, qword [rsp + 0x58]
jb 0x14008a155
cmp ecx, 0x3b9aca00
setne dl
cmp ecx, dword [rsp + 0x44]
seta cl
cmp rax, qword [rsp + 0x58]
jne 0x140089f70
and dl, cl
jne 0x140089f70
lea rax, [r14*8]
lea rax, [rax + rax*8]
mov rcx, r12
sub rcx, rax
mov rdx, qword [r12 + 0x40]
neg rax
mov qword [r12 + rax + 0x40], rdx
movdqu xmm0, xmmword [r12]
movdqu xmm1, xmmword [r12 + 0x10]
movups xmm2, xmmword [r12 + 0x20]
movups xmm3, xmmword [r12 + 0x30]
movups xmmword [rcx + 0x30], xmm3
movups xmmword [rcx + 0x20], xmm2
movdqu xmmword [rcx + 0x10], xmm1
movdqu xmmword [rcx], xmm0
add r12, 0x48
dec rsi
jne 0x140089f88
jmp 0x14008a1b0
xor r14d, r14d
sub r13, r14
mov rsi, qword [rsp + 0x30]
mov qword [rsi - 8], r13
mov r11, qword [rsp + 0x38]
jne 0x140089c60
mov r9, qword [rsp + 0xc8]
mov rax, r9
sub rax, rsi
sar rax, 3
movabs rcx, 0x8e38e38e38e38e39
imul rax, rcx
lea rcx, [rax - 0x10]
mov r13, qword [rsp + 0x98]
and rcx, qword [r13 + 0x68]
movdqu xmm0, xmmword [r9 + rcx]
pcmpeqb xmm0, xmm6
psllw xmm0, 7
pmovmskb edx, xmm0
test edx, edx
je 0x14008a217
bsr dx, dx
xor edx, 0xf
jmp 0x14008a21b
mov dx, 0x10
movdqu xmm0, xmmword [r9 + rax]
pcmpeqb xmm0, xmm6
pmovmskb r8d, xmm0
or r8d, 0x10000
tzcnt r8d, r8d
add edx, r8d
mov r8b, pe_nt_image_headers64
cmp dx, 0xf
ja 0x14008a249
inc qword [r13 + 0x70]
mov r8b, 0xff
mov byte [r9 + rax], r8b
mov byte [rcx + r9 + 0x10], r8b
mov rax, qword [rsp + 0x90]
dec rax
mov qword [rsp + 0x90], rax
mov qword [r13 + 0x78], rax
cmp byte [rsi - 0x48], 2
jb 0x14008a2a4
mov rax, qword [rsp + 0x30]
mov r12, qword [rax - 0x40]
lea rcx, [r12 + 0x18]
mov rax, qword [r12]
mov rdx, qword [r12 + 8]
mov r8, qword [r12 + 0x10]
call qword [rax + 0x10]
mov rcx, qword [0x1401ee100]
xor edx, edx
mov r8, r12
mov rsi, qword [rsp + 0x30]
call fcn.140104a84
lea rcx, [rsi - 0x20]
mov rax, qword [rsi - 0x38]
mov rdx, qword [rsi - 0x30]
mov r8, qword [rsi - 0x28]
call qword [rax + 0x10]
mov rsi, qword [rsi - 8]
test rsi, rsi
je 0x14008a2e1
mov rax, qword [rsp + 0x30]
mov r12, qword [rax - 0x18]
nop dword [rax]
mov rcx, r12
call fcn.1400b6970
add r12, 0x48
dec rsi
jne 0x14008a2d0
mov rax, qword [rsp + 0x30]
cmp qword [rax - 0x10], 0
je 0x14008a2ff
mov r8, qword [rax - 0x18]
mov rcx, qword [0x1401ee100]
xor edx, edx
call fcn.140104a84
mov r11, qword [rsp + 0x38]
jmp 0x140089c68
mov rsi, qword [rsp + 0x68]
mov r15, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
call fcn.140104ae4
lock dec qword [rsi]
jne 0x14008a33f
lea rcx, [rsp + 0x68]
call fcn.1400ba330
mov rsi, qword [rsp + 0xc0]
movzx eax, byte [r15 + 0x40]
test al, al
je 0x1400897b5
jmp 0x14008a4b8
mov r12, rbx
mov rbx, rdx
add rbx, qword [rsp + 0x50]
jb 0x14008a4cc
mov rax, qword [rsp + 0x48]
lea r14d, [rax + rcx]
cmp r14d, 0x3b9aca00
jb 0x14008a38c
inc rbx
je 0x14008a4cc
add r14d, 0xc4653600
mov qword [rsp + 0x68], rdx
mov dword [rsp + 0x70], ecx
mov qword [rsp + 0x20], rsi
mov dword [rsp + 0x28], edi
lea rcx, [rsp + 0x68]
lea rdx, [rsp + 0x20]
call fcn.1400e3560
mov ecx, edx
mov r8, qword [rsp + 0xb8]
mov rdx, r8
mov r9, qword [rsp + 0xb0]
or rdx, r9
je 0x14008a4cc
mov edx, 0x3b9aca00
mul rdx
cmp ecx, 0x3b9aca00
mov r10d, 0
cmove ecx, r10d
cmove rdx, r10
cmove rax, r10
add rcx, rax
adc rdx, 0
mov qword [rsp + 0xe0], r8
mov qword [rsp + 0xe8], r9
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], rdx
lea rcx, [rsp + 0xf0]
lea rdx, [rsp + 0xe0]
call fcn.1400fe790
pshufd xmm1, xmm0, 0xee
movq rax, xmm1
test rax, rax
jne 0x14008a4cc
movq rcx, xmm0
mov rax, rcx
shr rax, 9
movabs rdx, 0x44b82fa09b5a53
mul rdx
shr rdx, 0xb
sub rbx, rdx
jb 0x14008a4cc
imul eax, edx, 0x3b9aca00
sub ecx, eax
cmp r14d, ecx
jae 0x14008a478
test rbx, rbx
je 0x14008a4cc
dec rbx
add r14d, 0x3b9aca00
sub r14d, ecx
mov eax, r14d
shr eax, 9
imul rax, rax, 0x44b83
shr rax, 0x27
add rbx, rax
jb 0x14008a4cc
imul eax, eax, 0x3b9aca00
sub r14d, eax
mov rsi, rbx
mov ecx, r14d
mov rbx, r12
jmp 0x1400899a8
mov rsi, rdx
jmp 0x1400899a8
mov rcx, rbp
call qword [r12 + 0x18]
mov al, 1
xchg byte [r15 + 0x41], al
xor ebp, ebp
test al, al
jne 0x14008a4ed
xor eax, eax
xchg byte [r15 + 0x41], al
jmp 0x14008a4ed
ud2
mov rcx, qword [rsp + 0x78]
call fcn.140104ae4
lock dec qword [r13]
jne 0x14008a4eb
lea rcx, [rsp + 0x68]
call fcn.1400ba330
xor ebp, ebp
mov eax, ebp
movaps xmm6, xmmword [rsp + 0x100]
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call sub.kernel32.dll_GetLastError
ud2