Function at 0x140008120
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 r15, rcx
mov ecx, 0x10
call sym.malloc
mov r13, rax
test rax, rax
je 0x140008b8f
lea rdi, [rbp - 0x70]
mov rsi, qword [sym.imp.KERNEL32.dll_VirtualQuery]
mov r8d, 0x30
mov rcx, rax
mov rdx, rdi
call rsi
cmp rax, 0x30
je 0x140008180
lea rcx, [0x140038842]
call sym.GC_default_on_abort.lto_priv.0
call qword [sym.imp.KERNEL32.dll_DebugBreak]
mov rcx, qword [0x140043140]
mov r14, qword [rbp - 0x68]
test rcx, rcx
je 0x1400084ae
mov rax, rcx
jmp 0x1400081a6
mov rax, qword [rax + 8]
test rax, rax
je 0x1400084ae
cmp qword [rax], r14
jne 0x140008199
mov qword [rbp - 0x88], r13
mov ebx, 0x2710
movabs r12, 0xcccccccccccccccd
mov rcx, rbx
call sym.malloc
mov r13, rax
test rax, rax
je 0x140008b83
mov r8d, 0x30
mov rdx, rdi
mov rcx, rax
call rsi
cmp rax, 0x30
je 0x1400081fb
lea rcx, [0x140038842]
call sym.GC_default_on_abort.lto_priv.0
call qword [sym.imp.KERNEL32.dll_DebugBreak]
mov rcx, r13
mov r14, qword [rbp - 0x68]
add rbx, rbx
call sym.free
mov rcx, qword [0x140043140]
test rcx, rcx
je 0x1400084a7
mov rax, rcx
jmp 0x140008229
mov rax, qword [rax + 8]
test rax, rax
je 0x14000824e
cmp qword [rax], r14
jne 0x140008220
mov rax, r12
mul qword [0x140035240]
shr rdx, 3
cmp rbx, rdx
jae 0x14000824e
cmp rbx, 0x7a11f
jbe 0x1400081c1
mov r13, qword [rbp - 0x88]
mov rax, rcx
jmp 0x140008267
mov rax, qword [rax + 8]
test rax, rax
je 0x1400084ae
cmp qword [rax], r14
jne 0x14000825a
mov rcx, r13
mov ebx, dword [0x140043d94]
call sym.free
test ebx, ebx
je 0x1400084cb
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rbp - 0x94], eax
mov rax, qword [0x140043f10]
xor edi, edi
xor r12d, r12d
xor r14d, r14d
xor esi, esi
lea r13, str.Bad_toggle_ref_status_returned_by_callback
test rax, rax
jne 0x1400082d2
jmp 0x140008361
test eax, eax
je 0x1400082c2
mov rcx, r13
call sym.GC_default_on_abort.lto_priv.0
call qword [sym.imp.KERNEL32.dll_DebugBreak]
mov rax, qword [0x140043f10]
add r14, 1
cmp r14, rax
jae 0x140008324
mov rdx, qword [0x140043f08]
mov rbx, qword [rdx + r14*8]
mov rdx, rbx
test bl, 1
not rdx
cmovne rbx, rdx
test rbx, rbx
je 0x1400082c9
mov rcx, rbx
call rsi
cmp eax, 1
je 0x1400084e0
cmp eax, 2
jne 0x1400082b0
mov rax, qword [0x140043f08]
not rbx
add r14, 1
mov qword [rax + r12*8], rbx
mov rax, qword [0x140043f10]
add r12, 1
cmp r14, rax
jb 0x1400082d2
cmp r12, rax
jae 0x14000834d
mov rdx, qword [0x140043f08]
sub rax, r12
lea r8, [rax*8]
lea rcx, [rdx + r12*8]
xor edx, edx
call sym.memset
mov qword [0x140043f10], r12
test edi, edi
je 0x140008361
mov r11d, dword [0x140043960]
test r11d, r11d
jne 0x140008698
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov r10d, dword [0x14006e4a8]
mov edi, eax
test r10d, r10d
jne 0x140008387
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 r13, [0x14006e480]
lea rsi, [0x140043160]
mov rcx, r13
lea r12, [rsi + 0x800]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop dword [rax]
mov rbx, qword [rsi]
test rbx, rbx
jne 0x1400083c0
jmp 0x1400083e8
mov rbx, qword [rbx]
test rbx, rbx
je 0x1400083e8
cmp qword [rbx + 0x18], 0
je 0x1400083b8
cmp qword [rbx + 0x28], 0
jne 0x1400083b8
cmp edi, dword [rbx + 8]
je 0x1400083b8
mov rcx, rbx
call sym.GC_suspend
mov rbx, qword [rbx]
test rbx, rbx
jne 0x1400083c0
nop dword [rax + rax]
add rsi, 8
cmp r12, rsi
jne 0x1400083a8
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r9d, dword [0x140043d94]
test r9d, r9d
jne 0x140008ab3
call sym.GC_noop6.constprop.0
mov r8d, dword [0x140043978]
mov esi, dword [0x140043e90]
test r8d, r8d
jne 0x140008560
mov qword [0x1400724e0], 0
test esi, esi
jne 0x140008540
mov dword [0x140043e90], 1
mov qword [0x140043e80], 0
xor ebx, ebx
jmp 0x140008469
mov qword [rbp - 0x70], rbp
mov rcx, qword [rbp - 0x70]
call sym.GC_mark_some
test eax, eax
jne 0x140008500
add ebx, 1
call r15
test eax, eax
je 0x140008451
mov eax, dword [0x140043d94]
test ebx, ebx
js 0x140008506
test eax, eax
jne 0x140008b70
mov dword [0x1400724f0], 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 r13, qword [rbp - 0x88]
mov ebx, dword [0x140043d94]
test ebx, ebx
jne 0x140008a83
mov qword [r13], r14
mov qword [r13 + 8], rcx
mov qword [0x140043140], r13
mov dword [rbp - 0x94], 0
jmp 0x14000828e
mov rax, qword [0x140043f08]
mov edi, 1
mov qword [rax + r12*8], rbx
add r12, 1
mov rax, qword [0x140043f10]
jmp 0x1400082c9
mov eax, dword [0x140043d94]
mov rdi, qword [0x140043988]
lea rdx, [rdi + 1]
mov qword [0x140043988], rdx
test eax, eax
jne 0x1400086d3
call sym.GC_start_world
mov edx, dword [0x140043d94]
test edx, edx
jne 0x140008723
mov eax, 1
jmp 0x140008493
cmp esi, 5
je 0x140008442
lea rcx, str.Unexpected_state
call sym.GC_default_on_abort.lto_priv.0
call qword [sym.imp.KERNEL32.dll_DebugBreak]
jmp 0x140008442
mov ecx, dword [0x140043960]
test ecx, ecx
jne 0x140008a5a
mov r10, qword [0x140043d88]
test r10, r10
je 0x140008794
cmp esi, 5
jne 0x140008b21
cmp qword [0x140043ea8], 0
je 0x140008c35
xor r9d, r9d
mov qword [rbp + 0x10], r15
lea rdi, [rbp - 0x70]
lea r12, [rbp - 0x74]
lea r13, [0x140043dc0]
mov r14d, 1
mov r15, r9
jmp 0x140008635
add rbx, qword [0x14005a188]
mov r8, qword [rbx]
mov rbx, qword [rbx + 8]
test r15, r15
je 0x140008614
cmp r8, qword [0x14006e4c0]
je 0x140008614
mov eax, dword [0x14006e4bc]
lea edx, [rax + 1]
mov dword [0x14006e4bc], edx
cmp eax, 4
jg 0x140008614
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 [0x14006e4c0], r8
mov qword [rbp - 0x88], r8
call sym.GC_default_warn_proc.lto_priv.0
mov r8, qword [rbp - 0x88]
cmp esi, 5
jne 0x140008960
add r15, 1
cmp r15, qword [0x140043ea8]
je 0x1400089b3
mov r10, qword [0x140043d88]
mov rbx, r15
shl rbx, 4
nop dword [rax]
mov rax, qword [0x14005a188]
mov qword [rbp - 0x70], 0x800
mov ecx, 1
lea r9, [0x14006e4e0]
add rax, rbx
mov r8, qword [rax + 8]
mov rdx, qword [rax]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rdi
call r10
test eax, eax
jne 0x1400085c0
mov rax, qword [rbp - 0x70]
cmp esi, 5
jne 0x1400089c2
cmp rax, 0x800
jne 0x14000861d
mov r10, qword [0x140043d88]
jmp 0x140008640
mov rax, qword [0x140043f08]
mov r8d, 1
lea r13, [0x140043dc0]
shr rax, 0xc
and eax, 0x3ffff
mov rdx, rax
mov ecx, eax
shr rdx, 6
shl r8, cl
add rdx, 0x1c79
lock or qword [r13 + rdx*8], r8
jmp 0x140008361
mov rax, qword [0x140043df8]
mov rcx, qword [0x140043dc0]
mov r8d, dword [0x140043968]
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
call sym.GC_start_world
mov edx, dword [0x140043d94]
test edx, edx
je 0x140008533
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, dword [rbp - 0x94]
mov ecx, dword [0x1400724ec]
mov edx, dword [0x1400724e8]
sub eax, edi
mov r10d, eax
test ecx, ecx
js 0x140008ad4
cmp edx, 0x3e7
ja 0x140008ad4
mov eax, 0x7fffffff
cmp r10d, eax
cmovbe eax, r10d
xor r8d, r8d
add eax, ecx
lea ecx, [rdx + 1]
xor edx, edx
mov dword [0x1400724ec], eax
div ecx
mov dword [0x1400724e8], 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 0x140008493
cmp esi, 5
jne 0x140008c04
mov r8d, 0x8000
xor edx, edx
lea rcx, [0x140052188]
call sym.memset
xor r12d, r12d
mov rdx, qword [0x140043ea8]
cmp qword [0x14006e4b0], 0x1000
setne r12b
add r12d, r12d
test rdx, rdx
je 0x140008425
xor edi, edi
xor eax, eax
jmp 0x14000881d
cmp dword [0x140035264], 1
lea r9, [0x14006e4b8]
mov rdx, rbx
mov rcx, rsi
sbb eax, eax
and eax, 0xffffffe2
lea r8d, [rax + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x140008931
mov rdx, qword [0x140043ea8]
lea eax, [rdi + 1]
mov rdi, rax
cmp rax, rdx
jae 0x1400089b7
shl rax, 4
add rax, qword [0x14005a188]
mov rsi, qword [rax]
mov rbx, qword [rax + 8]
test r12d, r12d
jne 0x1400087dc
add rbx, rsi
cmp rsi, rbx
jae 0x14000880e
mov rcx, rsi
lea r13, [0x140043dc0]
mov r8, rsi
shr r8, 0x16
mov rax, r8
and eax, 0x7ff
mov rax, qword [r13 + rax*8 + 0x263d0]
cmp qword [rax + 0x2010], r8
je 0x140008ba0
mov rdx, qword [0x140043e78]
jmp 0x140008887
mov rax, qword [rax + 0x2018]
cmp r8, qword [rax + 0x2010]
je 0x140008ba0
cmp rax, rdx
jne 0x140008873
mov rax, rsi
shr rax, 0xc
and eax, 0x3ff
mov rax, qword [rdx + rax*8]
cmp rax, 0xfff
jbe 0x140008bca
mov r14, qword [rax + 0x20]
test byte [rax + 0x19], 4
je 0x140008ba8
shr r14, 0xc
cmp rcx, rsi
jae 0x1400088ea
cmp dword [0x140035264], 1
mov rdx, rsi
lea r9, [0x14006e4b8]
sbb eax, eax
sub rdx, rcx
and eax, 0xffffffe2
lea r8d, [rax + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x140008bd9
shl r14, 0xc
add rsi, r14
mov rcx, rsi
cmp rsi, rbx
jb 0x140008846
cmp rcx, rsi
jae 0x140008807
cmp dword [0x140035264], 1
lea r9, [0x14006e4b8]
sbb eax, eax
sub rsi, rcx
and eax, 0xffffffe2
mov rdx, rsi
lea r8d, [rax + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x140008807
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 0x140008807
shr rbx, 0xc
je 0x14000861d
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 [r13 + rax*8 + 0x63c8], r11
lea eax, [rdx + 1]
mov rdx, rax
cmp rax, rbx
jb 0x140008970
add r15, 1
cmp r15, qword [0x140043ea8]
jne 0x14000862e
mov r15, qword [rbp + 0x10]
mov esi, dword [0x140043e90]
jmp 0x140008425
lea rdx, [rax*8]
lea rcx, [0x14006e4e0]
lea r11, [rcx + rdx]
test rdx, rdx
je 0x140008687
mov r10d, dword [rbp - 0x74]
mov r9, rcx
mov r8, r15
nop dword [rax + rax]
mov rdx, qword [r9]
add r9, 8
mov qword [rbp - 0x90], rax
mov qword [rbp - 0x88], r9
lea r15, [rdx + r10]
nop dword [rax]
mov r9, rdx
mov rcx, rdx
mov rax, r14
add rdx, 0x1000
shr r9, 0x12
shr rcx, 0xc
and r9d, 0xfff
shl rax, cl
or qword [r13 + r9*8 + 0x63c8], rax
cmp rdx, r15
jb 0x140008a10
mov r9, qword [rbp - 0x88]
mov rax, qword [rbp - 0x90]
cmp r11, r9
jne 0x1400089f0
mov r15, r8
jmp 0x140008687
cmp esi, 5
jne 0x140008add
mov r8d, 0x8000
xor edx, edx
lea rcx, [0x140052188]
call sym.memset
mov qword [0x1400724e0], 0
jmp 0x140008442
mov rdx, r14
lea rcx, str.Found_new_system_malloc_AllocationBase_at__p_n
call sym.GC_log_printf
mov rax, qword [0x140043140]
mov qword [r13], r14
mov qword [0x140043140], r13
mov ebx, dword [0x140043d94]
mov qword [r13 + 8], rax
jmp 0x14000827a
mov eax, dword [0x140043988]
mov r8d, dword [0x140043e00]
lea rcx, str._n____Marking_for_collection__lu_after__lu_allocated_bytes_n
lea edx, [rax + 1]
call sym.GC_log_printf
jmp 0x14000840a
shr ecx, 1
shr edx, 1
jmp 0x140008754
lea rbx, [0x140052188]
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 [0x1400724e0], 0
test esi, esi
je 0x140008438
jmp 0x140008549
xor edx, edx
mov r8d, 0x8000
lea rcx, [0x14004a188]
mov qword [rbp - 0x88], r10
call sym.memset
cmp qword [0x140043ea8], 0
mov r10, qword [rbp - 0x88]
jne 0x140008595
xor eax, eax
mov qword [0x1400724e0], rax
test esi, esi
je 0x140008438
jmp 0x140008549
mov edx, ebx
lea rcx, str.Abandoned_stopped_marking_after__d_iterations_n
call sym.GC_log_printf
jmp 0x140008486
mov rcx, qword [rbp - 0x88]
call sym.free
mov ebx, dword [0x140043d94]
jmp 0x14000827a
mov rdx, rax
jmp 0x14000888c
add r14, 0xfff
shr r14, 0xc
cmp qword [rax + 0x28], 0
je 0x1400088ba
shl r14, 0xc
add rsi, r14
jmp 0x1400088f4
add rsi, 0x1000
mov rcx, rsi
jmp 0x1400088f4
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 0x1400088ea
lea rbx, [0x140052188]
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 0x1400087b1
mov qword [0x1400724e0], 0
jmp 0x140008442