Function at 0x140008310
Capabilities:
Check for time delay via gettickcount

Disassembly:
push rbp
mov rbp, rsp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x98
mov rsi, rcx
mov ecx, 0x10
call sym.malloc
mov r14, rax
test rax, rax
je 0x140008e11
lea r12, [rbp - 0x70]
mov rdi, qword [sym.imp.KERNEL32.dll_VirtualQuery]
mov r8d, 0x30
mov rcx, rax
mov rdx, r12
call rdi
cmp rax, 0x30
je 0x140008370
lea rcx, [0x140027862]
call sym.GC_default_on_abort.lto_priv.0
call qword [sym.imp.KERNEL32.dll_DebugBreak]
mov rcx, qword [0x140031248]
mov r15, qword [rbp - 0x68]
test rcx, rcx
je 0x140008690
mov rax, rcx
jmp 0x140008396
mov rax, qword [rax + 8]
test rax, rax
je 0x140008690
cmp qword [rax], r15
jne 0x140008389
mov qword [rbp + 0x10], rsi
mov ebx, 0x2710
movabs r13, 0xcccccccccccccccd
mov rcx, rbx
call sym.malloc
mov rsi, rax
test rax, rax
je 0x140008e05
mov r8d, 0x30
mov rdx, r12
mov rcx, rax
call rdi
cmp rax, 0x30
je 0x1400083e8
lea rcx, [0x140027862]
call sym.GC_default_on_abort.lto_priv.0
call qword [sym.imp.KERNEL32.dll_DebugBreak]
mov rcx, rsi
mov r15, qword [rbp - 0x68]
add rbx, rbx
call sym.free
mov rcx, qword [0x140031248]
test rcx, rcx
je 0x14000868c
mov rax, rcx
jmp 0x140008419
mov rax, qword [rax + 8]
test rax, rax
je 0x14000843e
cmp qword [rax], r15
jne 0x140008410
mov rax, r13
mul qword [0x140025240]
shr rdx, 3
cmp rbx, rdx
jae 0x14000843e
cmp rbx, 0x7a11f
jbe 0x1400083ae
mov rsi, qword [rbp + 0x10]
mov rax, rcx
jmp 0x140008454
mov rax, qword [rax + 8]
test rax, rax
je 0x140008690
cmp qword [rax], r15
jne 0x140008447
mov rcx, r14
mov ebx, dword [0x140031e94]
call sym.free
test ebx, ebx
je 0x1400086ae
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rbp - 0x94], eax
mov rax, qword [0x140032010]
xor r12d, r12d
xor r15d, r15d
xor r13d, r13d
xor edi, edi
lea r14, str.Bad_toggle_ref_status_returned_by_callback
test rax, rax
jne 0x1400084c2
jmp 0x140008552
test eax, eax
je 0x1400084b2
mov rcx, r14
call sym.GC_default_on_abort.lto_priv.0
call qword [sym.imp.KERNEL32.dll_DebugBreak]
mov rax, qword [0x140032010]
add r13, 1
cmp r13, rax
jae 0x140008514
mov rdx, qword [0x140032008]
mov rbx, qword [rdx + r13*8]
mov rdx, rbx
test bl, 1
not rdx
cmovne rbx, rdx
test rbx, rbx
je 0x1400084b9
mov rcx, rbx
call rdi
cmp eax, 1
je 0x1400086c0
cmp eax, 2
jne 0x1400084a0
mov rax, qword [0x140032008]
not rbx
add r13, 1
mov qword [rax + r15*8], rbx
mov rax, qword [0x140032010]
add r15, 1
cmp r13, rax
jb 0x1400084c2
cmp r15, rax
jae 0x14000853d
mov rdx, qword [0x140032008]
sub rax, r15
lea r8, [rax*8]
lea rcx, [rdx + r15*8]
xor edx, edx
call sym.memset
mov qword [0x140032010], r15
test r12d, r12d
je 0x140008552
mov r12d, dword [0x140031a60]
test r12d, r12d
jne 0x140008905
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edi, dword [0x14005c5a8]
mov r12d, eax
test edi, edi
jne 0x140008577
lea rcx, str.GC_stop_world___called_before_GC_thr_init__
call sym.GC_default_on_abort.lto_priv.0
call qword [sym.imp.KERNEL32.dll_DebugBreak]
lea r14, [0x14005c580]
lea rdi, [0x140031260]
mov rcx, r14
lea r13, [rdi + 0x800]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop dword [rax]
mov rbx, qword [rdi]
test rbx, rbx
jne 0x1400085b0
jmp 0x1400085d8
mov rbx, qword [rbx]
test rbx, rbx
je 0x1400085d8
cmp qword [rbx + 0x18], 0
je 0x1400085a8
cmp qword [rbx + 0x28], 0
jne 0x1400085a8
cmp r12d, dword [rbx + 8]
je 0x1400085a8
mov rcx, rbx
call sym.GC_suspend
mov rbx, qword [rbx]
test rbx, rbx
jne 0x1400085b0
nop dword [rax]
add rdi, 8
cmp r13, rdi
jne 0x140008598
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [0x140031e94]
test ebx, ebx
jne 0x140008ce3
call sym.GC_noop6.constprop.0
mov r11d, dword [0x140031a78]
mov edi, dword [0x140031f90]
test r11d, r11d
jne 0x140008740
mov qword [0x1400605e0], 0
test edi, edi
jne 0x140008720
mov dword [0x140031f90], 1
mov qword [0x140031f80], 0
xor ebx, ebx
jmp 0x140008657
mov qword [rbp - 0x70], rbp
mov rcx, qword [rbp - 0x70]
call sym.GC_mark_some
test eax, eax
jne 0x1400086e1
add ebx, 1
call rsi
test eax, eax
je 0x14000863f
mov eax, dword [0x140031e94]
test eax, eax
jne 0x140008d04
mov dword [0x1400605f0], ebx
call sym.GC_start_world
xor eax, eax
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rsi, qword [rbp + 0x10]
mov r13d, dword [0x140031e94]
test r13d, r13d
jne 0x140008cb4
mov qword [r14], r15
mov qword [r14 + 8], rcx
mov qword [0x140031248], r14
mov dword [rbp - 0x94], 0
jmp 0x14000847b
mov rax, qword [0x140032008]
mov r12d, 1
mov qword [rax + r15*8], rbx
add r15, 1
mov rax, qword [0x140032010]
jmp 0x1400084b9
mov rax, qword [0x140031a88]
mov ecx, dword [0x140031e94]
lea rdx, [rax + 1]
mov qword [0x140031a88], rdx
test ecx, ecx
jne 0x14000893c
call sym.GC_start_world
mov r9d, dword [0x140031e94]
test r9d, r9d
jne 0x140008894
mov eax, 1
jmp 0x140008678
cmp edi, 5
je 0x140008630
lea rcx, str.Unexpected_state
call sym.GC_default_on_abort.lto_priv.0
call qword [sym.imp.KERNEL32.dll_DebugBreak]
jmp 0x140008630
mov r10d, dword [0x140031a60]
test r10d, r10d
jne 0x140008c47
mov r10, qword [0x140031e88]
test r10, r10
je 0x14000897e
cmp edi, 5
jne 0x140008d17
cmp qword [0x140031fa8], 0
je 0x140008d60
mov qword [rbp + 0x10], rsi
xor r9d, r9d
lea r12, [rbp - 0x70]
lea r13, [rbp - 0x74]
lea rbx, [0x140031ec0]
mov r14d, 1
jmp 0x140008823
mov r9, qword [rbp - 0x90]
add rsi, qword [0x140048288]
mov r8, qword [rsi]
mov rsi, qword [rsi + 8]
test r9, r9
je 0x140008802
cmp r8, qword [0x14005c5c0]
je 0x140008802
mov eax, dword [0x14005c5bc]
lea edx, [rax + 1]
mov dword [0x14005c5bc], edx
cmp eax, 4
jg 0x140008802
mov rdx, r8
lea rcx, str.GC_Warning:_GC_gww_read_dirty_unexpectedly_failed_at__p:_Falling_back_to_marking_all_pages_dirty_n
mov qword [0x14005c5c0], r8
mov qword [rbp - 0x88], r8
call sym.GC_default_warn_proc.lto_priv.0
mov r9, qword [rbp - 0x90]
mov r8, qword [rbp - 0x88]
cmp edi, 5
jne 0x140008b50
add r9, 1
cmp r9, qword [0x140031fa8]
je 0x140008ba3
mov r10, qword [0x140031e88]
mov qword [rbp - 0x90], r9
mov rsi, r9
shl rsi, 4
nop dword [rax]
mov rax, qword [0x140048288]
mov qword [rbp - 0x70], 0x800
mov ecx, 1
lea r9, [0x14005c5e0]
add rax, rsi
mov r8, qword [rax + 8]
mov rdx, qword [rax]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r12
call r10
test eax, eax
jne 0x1400087a0
mov rax, qword [rbp - 0x70]
cmp edi, 5
jne 0x140008bb2
cmp rax, 0x800
jne 0x140008c32
mov r10, qword [0x140031e88]
jmp 0x140008838
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [rbp - 0x94]
mov ecx, dword [0x1400605ec]
sub eax, edx
mov edx, dword [0x1400605e8]
mov r10d, eax
test ecx, ecx
js 0x140008c3e
cmp edx, 0x3e7
ja 0x140008c3e
mov eax, 0x7fffffff
cmp r10d, eax
cmovbe eax, r10d
xor r8d, r8d
add eax, ecx
lea ecx, [rdx + 1]
xor edx, edx
mov dword [0x1400605ec], eax
div ecx
mov dword [0x1400605e8], ecx
mov edx, r10d
lea rcx, str.World_stopped_marking_took__lu_ms__lu_ns___u_ms_in_average__n
mov r9d, eax
call sym.GC_log_printf
mov eax, 1
jmp 0x140008678
mov rcx, qword [0x140032008]
mov edx, 1
lea rbx, [0x140031ec0]
shr rcx, 0xc
and ecx, 0x3ffff
mov rax, rcx
shl rdx, cl
shr rax, 6
add rax, 0x1c79
lock or qword [rbx + rax*8], rdx
jmp 0x140008552
mov rax, qword [0x140031ef8]
mov rcx, qword [0x140031ec0]
mov r8d, dword [0x140031a68]
add rax, 0x1ff
lea r9, [rcx + 0x1ff]
sub rax, rcx
shr r9, 0xa
lea rcx, str.GC__lu_freed__ld_bytes__heap__lu_KiB____lu_KiB_internal__n
shr rax, 0xa
mov dword [rsp + 0x20], eax
call sym.GC_log_printf
jmp 0x140008701
cmp edi, 5
jne 0x140008dd4
mov r8d, 0x8000
xor edx, edx
lea rcx, [0x140040288]
call sym.memset
xor r12d, r12d
mov rdx, qword [0x140031fa8]
cmp qword [0x14005c5b0], 0x1000
setne r12b
add r12d, r12d
test rdx, rdx
je 0x140008613
xor edi, edi
xor eax, eax
jmp 0x140008a07
cmp dword [0x140025264], 1
lea r9, [0x14005c5b8]
mov rdx, rbx
mov rcx, r13
sbb eax, eax
and eax, 0xffffffe2
lea r8d, [rax + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x140008b1b
mov rdx, qword [0x140031fa8]
lea eax, [rdi + 1]
mov rdi, rax
cmp rax, rdx
jae 0x140008ba7
shl rax, 4
add rax, qword [0x140048288]
mov r13, qword [rax]
mov rbx, qword [rax + 8]
test r12d, r12d
jne 0x1400089c6
add rbx, r13
cmp r13, rbx
jae 0x1400089f8
mov rcx, r13
lea r14, [0x140031ec0]
mov r8, r13
shr r8, 0x16
mov rax, r8
and eax, 0x7ff
mov rax, qword [r14 + rax*8 + 0x263d0]
cmp qword [rax + 0x2010], r8
je 0x140008d70
mov rdx, qword [0x140031f78]
jmp 0x140008a71
mov rax, qword [rax + 0x2018]
cmp r8, qword [rax + 0x2010]
je 0x140008d70
cmp rax, rdx
jne 0x140008a5d
mov rax, r13
shr rax, 0xc
and eax, 0x3ff
mov rax, qword [rdx + rax*8]
cmp rax, 0xfff
jbe 0x140008d9a
mov r15, qword [rax + 0x20]
test byte [rax + 0x19], 4
je 0x140008d78
shr r15, 0xc
cmp rcx, r13
jae 0x140008ad4
cmp dword [0x140025264], 1
mov rdx, r13
lea r9, [0x14005c5b8]
sbb eax, eax
sub rdx, rcx
and eax, 0xffffffe2
lea r8d, [rax + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x140008da9
shl r15, 0xc
add r13, r15
mov rcx, r13
cmp r13, rbx
jb 0x140008a30
cmp rcx, r13
jae 0x1400089f1
cmp dword [0x140025264], 1
mov rdx, r13
lea r9, [0x14005c5b8]
sbb eax, eax
sub rdx, rcx
and eax, 0xffffffe2
lea r8d, [rax + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x1400089f1
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.VirtualProtect_failed:_errcode_0x_X_n
mov edx, eax
call sym.GC_log_printf
lea rcx, str.VirtualProtect_failed
call sym.GC_default_on_abort.lto_priv.0
call qword [sym.imp.KERNEL32.dll_DebugBreak]
jmp 0x1400089f1
shr rsi, 0xc
je 0x14000880b
xor edx, edx
xor eax, eax
nop
shl rax, 0xc
mov r11, r14
lea rcx, [r8 + rax]
shr rcx, 0xc
and ecx, 0x3ffff
mov rax, rcx
shl r11, cl
shr rax, 6
or qword [rbx + rax*8 + 0x63c8], r11
lea eax, [rdx + 1]
mov rdx, rax
cmp rax, rsi
jb 0x140008b60
add r9, 1
cmp r9, qword [0x140031fa8]
jne 0x14000881c
mov rsi, qword [rbp + 0x10]
mov edi, dword [0x140031f90]
jmp 0x140008613
lea rcx, [0x14005c5e0]
lea rdx, [rcx + rax*8]
cmp rdx, rcx
je 0x14000887f
mov r9d, dword [rbp - 0x74]
mov r10, rcx
mov r11, rsi
mov r8, qword [r10]
add r10, 8
mov qword [rbp - 0x88], r10
lea rsi, [r8 + r9]
nop word [rax + rax]
mov r10, r8
mov rcx, r8
mov r15, r14
add r8, 0x1000
shr r10, 0x12
shr rcx, 0xc
and r10d, 0xfff
shl r15, cl
or qword [rbx + r10*8 + 0x63c8], r15
cmp r8, rsi
jb 0x140008be8
mov r10, qword [rbp - 0x88]
cmp rdx, r10
jne 0x140008bd0
mov rsi, r11
cmp rax, 0x800
je 0x14000888b
mov r9, qword [rbp - 0x90]
jmp 0x14000880b
shr ecx, 1
shr edx, 1
jmp 0x1400088c5
cmp edi, 5
jne 0x140008c70
mov r8d, 0x8000
xor edx, edx
lea rcx, [0x140040288]
call sym.memset
mov qword [0x1400605e0], 0
jmp 0x140008630
lea rbx, [0x140040288]
mov r8d, 0x8000
mov rdx, rbx
lea rcx, [rbx - 0x8000]
call sym.memcpy
mov r8d, 0x8000
xor edx, edx
mov rcx, rbx
call sym.memset
mov qword [0x1400605e0], 0
test edi, edi
je 0x140008626
jmp 0x140008729
mov rdx, r15
lea rcx, str.Found_new_system_malloc_AllocationBase_at__p_n
call sym.GC_log_printf
mov rax, qword [0x140031248]
mov qword [r14], r15
mov qword [0x140031248], r14
mov ebx, dword [0x140031e94]
mov qword [r14 + 8], rax
jmp 0x140008467
mov eax, dword [0x140031a88]
mov r8d, dword [0x140031f00]
lea rcx, str._n____Marking_for_collection__lu_after__lu_allocated_bytes_n
lea edx, [rax + 1]
call sym.GC_log_printf
jmp 0x1400085f8
mov edx, ebx
lea rcx, str.Abandoned_stopped_marking_after__d_iterations_n
call sym.GC_log_printf
jmp 0x14000866b
xor edx, edx
mov r8d, 0x8000
lea rcx, [0x140038288]
mov qword [rbp - 0x88], r10
call sym.memset
cmp qword [0x140031fa8], 0
mov r10, qword [rbp - 0x88]
jne 0x140008777
xor r8d, r8d
mov qword [0x1400605e0], r8
test edi, edi
je 0x140008626
jmp 0x140008729
mov qword [0x1400605e0], 0
jmp 0x140008630
mov rdx, rax
jmp 0x140008a76
add r15, 0xfff
shr r15, 0xc
cmp qword [rax + 0x28], 0
je 0x140008aa4
shl r15, 0xc
add r13, r15
jmp 0x140008ade
add r13, 0x1000
mov rcx, r13
jmp 0x140008ade
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.VirtualProtect_failed:_errcode_0x_X_n
mov edx, eax
call sym.GC_log_printf
lea rcx, str.VirtualProtect_failed
call sym.GC_default_on_abort.lto_priv.0
call qword [sym.imp.KERNEL32.dll_DebugBreak]
jmp 0x140008ad4
lea rbx, [0x140040288]
mov r8d, 0x8000
mov rdx, rbx
lea rcx, [rbx - 0x8000]
call sym.memcpy
mov r8d, 0x8000
xor edx, edx
mov rcx, rbx
call sym.memset
jmp 0x14000899b
mov rcx, r14
mov rsi, qword [rbp + 0x10]
call sym.free
mov ebx, dword [0x140031e94]
jmp 0x140008467