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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rsi, qword [0x140026910]
mov rbp, qword [0x140026850]
mov rbx, qword [0x140026810]
mov eax, dword [rsi]
or eax, dword [rbp]
mov r13, rcx
mov edi, edx
jne 0x14000fa20
mov rax, qword [rbx + 0x118]
mov rdx, qword [0x1400598c0]
cmp rdx, rax
jae 0x14000f9e1
mov rcx, qword [rbx + 0x58]
or rcx, qword [0x1400598b8]
je 0x14000f9e1
sub rax, rdx
imul rax, rax, 0x2710
cmp qword [rbx + 0x48], rax
jb 0x14000f9ea
call sym.GC_should_collect.lto_priv.0
test eax, eax
je 0x14000fa20
mov rcx, qword [sym.GC_never_stop_func.lto_priv.0]
call sym.GC_try_to_collect_inner.lto_priv.0
mov r12d, eax
cmp eax, 1
je 0x14000fa02
test edi, edi
jne 0x14000fa26
mov rax, qword [rbx + 0x118]
mov qword [0x1400598c0], rax
mov rax, qword [rbx + 0x58]
mov qword [0x1400598b8], rax
jmp 0x14000fcee
mov r12d, 1
mov rdx, qword [0x140026890]
mov rax, qword [0x1400268e0]
mov r8, qword [rbx]
mov rcx, qword [rdx]
xor edx, edx
mov rdi, r8
sub rdi, qword [rax]
mov rax, rdi
shl rcx, 0xc
mov edi, 0x10
div rcx
add rax, r13
cmp rax, rdi
cmovae rdi, rax
cmp rax, 0x800
jbe 0x14000fa9b
mov rax, qword [0x140026820]
mov rdi, qword [rax]
movabs rax, 0xfffffffffffff
shr rdi, 0xc
add rdi, rdi
cmp rdi, r13
cmova rdi, r13
add rdi, r13
cmp rdi, rax
cmova rdi, rax
mov eax, 0x800
cmp rdi, rax
cmovb rdi, rax
mov rax, qword [0x140026980]
mov rax, qword [rax]
cmp r8, rax
jae 0x14000fac2
sub rax, r8
shr rax, 0xc
cmp r13, rax
mov rdx, rax
cmovae rdx, r13
cmp rax, rdi
cmovb rdi, rdx
mov rcx, rdi
call sym.GC_expand_hp_inner.lto_priv.0
mov r14d, eax
test eax, eax
jne 0x14000fcd0
cmp r13, rdi
je 0x14000faea
mov rcx, r13
call sym.GC_expand_hp_inner.lto_priv.0
test eax, eax
jne 0x14000fcd0
test r12d, r12d
je 0x14000fd30
mov rdx, qword [0x140026860]
mov eax, dword [rdx]
lea ecx, [rax + 1]
mov dword [rdx], ecx
mov rdx, qword [0x140026840]
mov r8, qword [rdx]
mov rdx, qword [0x140026990]
cmp rax, qword [rdx]
jae 0x14000fd10
xor edx, edx
lea rcx, str.GC_Warning:_Out_of_Memory___Trying_to_continue..._n
call r8
mov r14d, dword [rbp]
test r14d, r14d
jne 0x14000fcee
mov r13d, dword [rsi]
mov rdi, qword [0x140026a20]
test r13d, r13d
je 0x14000fb80
mov r12d, dword [rbx + 0xf8]
test r12d, r12d
je 0x14000fb80
mov ebp, dword [rdi]
test ebp, ebp
jne 0x140010172
nop dword [rax]
mov ecx, 1
call sym.GC_collect_a_little_inner.lto_priv.0
mov r11d, dword [rbx + 0xf8]
test r11d, r11d
jne 0x14000fb60
nop word cs:[rax + rax]
mov ebp, dword [rdi]
xor r12d, r12d
test ebp, ebp
jne 0x14000fe9f
call sym.GC_promote_black_lists.lto_priv.0
mov rax, qword [0x140026870]
mov r10d, dword [rax]
test r10d, r10d
jne 0x14000ff2f
mov rax, qword [rbx + 0x98]
mov r14, qword [rbx + 0x70]
mov dword [rbx + 0xf8], 5
sub rax, 0x10
mov qword [rbx + 0xa8], rax
test r14, r14
je 0x14000fc33
nop word [rax + rax]
mov r13d, 0x3ff
jmp 0x14000fc08
test byte [rax + 0x19], 4
jne 0x14000fbff
mov rcx, qword [r14 + 0x2010]
xor edx, edx
shl rcx, 0xa
add rcx, r13
shl rcx, 0xc
call sym.clear_marks_for_block.lto_priv.0
sub r13, 1
test r13, r13
js 0x14000fc27
mov rax, qword [r14 + r13*8]
cmp rax, 0xfff
ja 0x14000fbe0
lea rdx, [r13 - 1]
sub r13, rax
test rax, rax
cmove r13, rdx
test r13, r13
jns 0x14000fc08
mov r14, qword [r14 + 0x2000]
test r14, r14
jne 0x14000fbd0
mov rax, qword [0x140026930]
mov rcx, qword [sym.GC_never_stop_func.lto_priv.0]
mov dword [rbx + 0xb4], 0
mov dword [rbx + 0xf8], 5
mov qword [rbx + 0xe8], 0
mov dword [rax], 1
call sym.GC_stopped_mark.lto_priv.0
test eax, eax
jne 0x14000fef9
mov r9d, dword [rsi]
test r9d, r9d
jne 0x14000fcee
mov rax, qword [rbx + 0x98]
mov dword [rbx + 0xf8], 5
sub rax, 0x10
mov qword [rbx + 0xa8], rax
mov rax, qword [0x140026800]
mov r8d, dword [rax]
test r8d, r8d
je 0x140010130
mov rax, qword [0x140026900]
mov r8d, 0x8000
mov rcx, qword [rax]
mov rax, qword [0x140026a00]
mov rdx, qword [rax]
call sym.memcpy
jmp 0x14000fcee
mov rax, qword [0x140026860]
mov edx, dword [rax]
test edx, edx
je 0x14000fcee
mov rax, qword [0x140026a20]
mov eax, dword [rax]
test eax, eax
jne 0x14000ffe2
mov r14d, 1
mov eax, r14d
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [rbx]
cmp rdx, 0x500000
jbe 0x14000fe90
shr rdx, 0x14
lea rcx, str.GC_Warning:_Out_of_Memory__Heap_size:__lu_MiB._Returning_NULL__n
call r8
jmp 0x14000fcf4
mov edx, dword [rbp]
test edx, edx
jne 0x14000fcee
mov eax, dword [rsi]
mov rdi, qword [0x140026a20]
test eax, eax
jne 0x14000febe
mov ebp, dword [rdi]
xor r12d, r12d
test ebp, ebp
je 0x14000fd6b
lea rcx, str.Initiating_full_world_stop_collection__n
mov ebp, 1
call sym.GC_log_printf
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r12d, eax
call sym.GC_promote_black_lists.lto_priv.0
mov rax, qword [0x140026870]
mov eax, dword [rax]
test eax, eax
jne 0x140010040
mov rax, qword [rbx + 0x98]
mov r14, qword [rbx + 0x70]
mov dword [rbx + 0xf8], 5
sub rax, 0x10
mov qword [rbx + 0xa8], rax
test r14, r14
je 0x14000fe13
nop word cs:[rax + rax]
mov r13d, 0x3ff
jmp 0x14000fde8
test byte [rax + 0x19], 4
jne 0x14000fddf
mov rcx, qword [r14 + 0x2010]
xor edx, edx
shl rcx, 0xa
add rcx, r13
shl rcx, 0xc
call sym.clear_marks_for_block.lto_priv.0
sub r13, 1
test r13, r13
js 0x14000fe07
mov rax, qword [r14 + r13*8]
cmp rax, 0xfff
ja 0x14000fdc0
lea rdx, [r13 - 1]
sub r13, rax
test rax, rax
cmove r13, rdx
test r13, r13
jns 0x14000fde8
mov r14, qword [r14 + 0x2000]
test r14, r14
jne 0x14000fdb0
mov rax, qword [0x140026930]
mov rcx, qword [sym.GC_never_stop_func.lto_priv.0]
mov dword [rbx + 0xb4], 0
mov dword [rbx + 0xf8], 5
mov qword [rbx + 0xe8], 0
mov dword [rax], 1
call sym.GC_stopped_mark.lto_priv.0
test eax, eax
je 0x14000fc73
call sym.GC_finish_collection.lto_priv.0
test ebp, ebp
je 0x14000fcee
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r15d, dword [rdi]
mov edx, eax
test r15d, r15d
je 0x14000fcee
sub edx, r12d
xor r8d, r8d
lea rcx, str.Complete_collection_took__lu_ms__lu_ns_n
call sym.GC_log_printf
jmp 0x14000fcee
lea rcx, str.GC_Warning:_Out_of_Memory__Heap_size:__lu_bytes._Returning_NULL__n
call r8
jmp 0x14000fcf4
lea rcx, str.Initiating_full_world_stop_collection__n
mov ebp, 1
call sym.GC_log_printf
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r12d, eax
jmp 0x14000fb8d
mov eax, dword [rbx + 0xf8]
test eax, eax
je 0x14000fd48
mov eax, dword [rdi]
test eax, eax
jne 0x140010183
nop word cs:[rax + rax]
mov ecx, 1
call sym.GC_collect_a_little_inner.lto_priv.0
mov eax, dword [rbx + 0xf8]
test eax, eax
jne 0x14000fee0
jmp 0x14000fd48
call sym.GC_finish_collection.lto_priv.0
test ebp, ebp
je 0x14000fcee
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [rdi]
test ecx, ecx
je 0x14000fcee
sub eax, r12d
xor r8d, r8d
lea rcx, str.Complete_collection_took__lu_ms__lu_ns_n
mov edx, eax
call sym.GC_log_printf
jmp 0x14000fcee
cmp dword [rdi], 2
mov dword [rsp + 0x24], 0
je 0x140010154
mov r13, qword [0x1400269e0]
lea rax, [r13 + 0x60]
mov qword [rsp + 0x28], rax
mov rax, qword [r13 + 8]
lea r15, [rax + 8]
lea r14, [rax + 0x408]
test rax, rax
je 0x140010000
nop dword [rax + rax]
mov r8, qword [r15]
test r8, r8
je 0x14000fff3
mov rdx, r8
shr rdx, 0x16
mov rax, rdx
and eax, 0x7ff
mov rax, qword [rbx + rax*8 + 0x263e0]
cmp rdx, qword [rax + 0x2010]
je 0x14000ffbd
mov rcx, qword [rbx + 0xe0]
jmp 0x14000ffb8
mov rax, qword [rax + 0x2018]
cmp rdx, qword [rax + 0x2010]
je 0x14000ffbd
cmp rcx, rax
jne 0x14000ffa8
mov rdx, r8
mov rcx, r8
shr rdx, 0xc
and edx, 0x3ff
mov rax, qword [rax + rdx*8]
mov rdx, qword [rax]
mov qword [r15], rdx
mov rdx, qword [rax + 0x20]
call sym.GC_reclaim_small_nonempty_block.constprop.0
jmp 0x14000ff70
lea rcx, str.Memory_available_again..._n
call sym.GC_log_printf
jmp 0x14000fcee
add r15, 8
cmp r14, r15
jne 0x14000ff70
add r13, 0x20
cmp qword [rsp + 0x28], r13
jne 0x14000ff50
cmp dword [rdi], 2
jne 0x14000fba5
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [rsp + 0x24]
xor r8d, r8d
sub eax, ecx
lea rcx, str.Disposing_of_reclaim_lists_took__lu_ms__lu_ns_n
mov edx, eax
call sym.GC_log_printf
jmp 0x14000fba5
cmp dword [rdi], 2
mov dword [rsp + 0x24], 0
je 0x140010163
mov r13, qword [0x1400269e0]
lea rax, [r13 + 0x60]
mov qword [rsp + 0x28], rax
mov rax, qword [r13 + 8]
lea r15, [rax + 8]
lea r14, [rax + 0x408]
test rax, rax
je 0x1400100f3
nop dword [rax]
mov r8, qword [r15]
test r8, r8
je 0x1400100ea
mov rdx, r8
shr rdx, 0x16
mov rax, rdx
and eax, 0x7ff
mov rax, qword [rbx + rax*8 + 0x263e0]
cmp rdx, qword [rax + 0x2010]
je 0x1400100c5
mov rcx, qword [rbx + 0xe0]
jmp 0x1400100c0
mov rax, qword [rax + 0x2018]
cmp rdx, qword [rax + 0x2010]
je 0x1400100c5
cmp rcx, rax
jne 0x1400100b0
mov rdx, r8
mov rcx, r8
shr rdx, 0xc
and edx, 0x3ff
mov rax, qword [rax + rdx*8]
mov rdx, qword [rax]
mov qword [r15], rdx
mov rdx, qword [rax + 0x20]
call sym.GC_reclaim_small_nonempty_block.constprop.0
jmp 0x140010078
add r15, 8
cmp r14, r15
jne 0x140010078
add r13, 0x20
cmp qword [rsp + 0x28], r13
jne 0x140010061
cmp dword [rdi], 2
jne 0x14000fd81
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [rsp + 0x24]
xor r8d, r8d
sub eax, ecx
lea rcx, str.Disposing_of_reclaim_lists_took__lu_ms__lu_ns_n
mov edx, eax
call sym.GC_log_printf
jmp 0x14000fd81
mov rax, qword [0x1400268f0]
mov r8d, 0x8000
mov rcx, qword [rax]
mov rax, qword [0x1400269f0]
mov rdx, qword [rax]
call sym.memcpy
jmp 0x14000fcaa
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsp + 0x24], eax
jmp 0x14000ff40
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsp + 0x24], eax
jmp 0x140010051
lea rcx, str.GC_try_to_collect_inner:_finishing_collection_in_progress_n
call sym.GC_log_printf
jmp 0x14000fb60
lea rcx, str.GC_try_to_collect_inner:_finishing_collection_in_progress_n
call sym.GC_log_printf
jmp 0x14000fee0