Function at 0x42dd00
Capabilities:
Access peb ldr_data

Disassembly:
lea r12, [rsp - 0x30]
cmp r12, qword [r14 + 0x10]
jbe 0x42e0ae
push rbp
mov rbp, rsp
sub rsp, 0xa8
mov qword [rsp + 0x48], 0
mov rax, qword [sym.imp.kernel32.dll_DuplicateHandle]
lea rcx, [rsp + 0x48]
mov qword [rsp], rax
mov qword [rsp + 8], 0xffffffffffffffff
mov qword [rsp + 0x10], 0xfffffffffffffffe
mov qword [rsp + 0x18], 0xffffffffffffffff
mov qword [rsp + 0x20], rcx
movups xmmword [rsp + 0x28], xmm15
mov qword [rsp + 0x38], 2
call sym.runtime.stdcall7.abi0
xorps xmm15, xmm15
mov r14, qword [0x00610488]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x40], 0
nop
je 0x42e04d
mov rax, qword [r14 + 0x30]
mov qword [rsp + 0x98], rax
test byte [rax], al
lea rcx, [rax + 0x5d0]
mov qword [rsp + 0xa0], rcx
nop
mov rax, rcx
call sym.runtime.lock2
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x98]
mov qword [rdx + 0x5d8], rcx
mov rax, qword [sym.imp.kernel32.dll_GetCurrentThreadId]
mov rcx, qword [r14 + 0x30]
movups xmmword [rcx + 0x3c0], xmm15
call sym.runtime.stdcall
mov rcx, qword [rsp + 0x98]
mov qword [rcx + 0x48], rax
cmp qword [rcx + 0x5f0], 0
jne 0x42de4e
cmp byte [0x00610290], 0
je 0x42de4e
mov rax, qword [sym.imp.kernel32.dll_CreateWaitableTimerExW]
mov qword [rsp], rax
movups xmmword [rsp + 8], xmm15
mov qword [rsp + 0x18], 2
mov qword [rsp + 0x20], 0x100003
call sym.runtime.stdcall4.abi0
xorps xmm15, xmm15
mov r14, qword [0x00610488]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x98]
mov qword [rcx + 0x5f0], rax
test rax, rax
je 0x42dfed
nop
nop
mov rax, qword [rsp + 0xa0]
call sym.runtime.unlock2
movups xmmword [rsp + 0x50], xmm15
movups xmmword [rsp + 0x60], xmm15
movups xmmword [rsp + 0x70], xmm15
mov rcx, qword [sym.imp.kernel32.dll_VirtualQuery]
lea rdx, [rsp + 0x50]
mov qword [rsp], rcx
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], 0x30
call sym.runtime.stdcall3.abi0
xorps xmm15, xmm15
mov r14, qword [0x00610488]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x20], 0
je 0x42df8c
mov rax, qword [rsp + 0x58]
lea rcx, [rax + 0x4000]
mov qword [rsp + 0x80], rcx
mov rdx, qword [r14 + 8]
mov qword [rsp + 0x90], rdx
cmp rdx, rcx
jb 0x42df21
sub rdx, rax
lea rax, [rdx - 0x4000]
cmp rax, 0x4000000
ja 0x42df21
mov qword [r14], rcx
mov rax, qword [r14]
add rax, 0x13a0
mov qword [r14 + 0x10], rax
mov qword [r14 + 0x18], rax
call sym.runtime.stackcheck.abi0
xorps xmm15, xmm15
mov r14, qword [0x00610488]
mov r14, qword gs:[r14]
mov r14, qword [r14]
add rsp, 0xa8
pop rbp
nop
ret
call sym.runtime.printlock
lea rax, [0x0047b022]
mov ebx, 0x13
call sym.runtime.printstring
mov rax, qword [rsp + 0x80]
nop
call sym.runtime.printhex
lea rax, [0x00494378]
mov ebx, 1
call sym.runtime.printstring
mov rax, qword [rsp + 0x90]
nop
call sym.runtime.printhex
lea rax, [0x00478cb6]
mov ebx, 2
call sym.runtime.printstring
call sym.runtime.printunlock
lea rax, [0x00479bf7]
mov ebx, 0xc
call sym.runtime.throw
call sym.runtime.getlasterror.abi0
xorps xmm15, xmm15
mov r14, qword [0x00610488]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov eax, dword [rsp]
mov qword [rsp + 0x88], rax
call sym.runtime.printlock
lea rax, [0x0047e003]
mov ebx, 0x24
nop
call sym.runtime.printstring
mov rax, qword [rsp + 0x88]
call sym.runtime.printuint
call sym.runtime.printnl
call sym.runtime.printunlock
lea rax, [0x0047dcb8]
mov ebx, 0x22
call sym.runtime.throw
call sym.runtime.getlasterror.abi0
xorps xmm15, xmm15
mov r14, qword [0x00610488]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov eax, dword [rsp]
mov qword [rsp + 0x88], rax
call sym.runtime.printlock
lea rax, [0x0047eec3]
mov ebx, 0x2d
call sym.runtime.printstring
mov rax, qword [rsp + 0x88]
call sym.runtime.printuint
call sym.runtime.printnl
call sym.runtime.printunlock
lea rax, [0x0047f432]
mov ebx, 0x30
call sym.runtime.throw
call sym.runtime.getlasterror.abi0
xorps xmm15, xmm15
mov r14, qword [0x00610488]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov eax, dword [rsp]
mov qword [rsp + 0x88], rax
call sym.runtime.printlock
lea rax, [0x0047ee96]
mov ebx, 0x2d
call sym.runtime.printstring
mov rax, qword [rsp + 0x88]
call sym.runtime.printuint
call sym.runtime.printnl
call sym.runtime.printunlock
lea rax, [0x0047e225]
mov ebx, 0x25
call sym.runtime.throw
nop
call sym.runtime.morestack_noctxt.abi0
jmp sym.runtime.minit