Function at 0x415fb0
Capabilities:
Check for time delay via gettickcount
Resume thread

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x8c
mov dword [ebp - 0x70], eax
mov dword [esp], 8
mov dword [ebp - 0x3c], ebp
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x6c], eax
call sym._malloc
mov dword [ebp - 0x50], eax
test eax, eax
je 0x416069
mov dword [eax], 0
lea ecx, [ebp - 0x34]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_VirtualQuery]
mov dword [esp + 8], 0x1c
mov dword [ebp - 0x58], ecx
mov dword [esp + 4], ecx
mov dword [ebp - 0x4c], eax
call eax
sub esp, 0xc
cmp eax, 0x1c
je 0x41601e
mov dword [esp], str.Weird_VirtualQuery_result
call sym._GC_default_on_abort.lto_priv.75
call dword [sym.imp.KERNEL32.dll_DebugBreak]
mov ecx, dword [0x42b054]
mov ebx, dword [ebp - 0x30]
test ecx, ecx
je 0x41604f
cmp ebx, dword [ecx]
je 0x4163e0
mov eax, ecx
jmp 0x416048
cmp dword [eax], ebx
je 0x4163e0
mov eax, dword [eax + 4]
test eax, eax
jne 0x416040
mov eax, dword [0x42b370]
test eax, eax
jne 0x416a2d
mov eax, dword [ebp - 0x50]
mov dword [eax], ebx
mov dword [eax + 4], ecx
mov dword [0x42b054], eax
mov ecx, dword [0x42b45c]
test ecx, ecx
je 0x416134
mov dword [ebp - 0x4c], 0
xor esi, esi
xor edi, edi
jmp 0x4160af
mov dword [esp], str.Bad_toggle_ref_status_returned_by_callback
call sym._GC_default_on_abort.lto_priv.75
call dword [sym.imp.KERNEL32.dll_DebugBreak]
mov ecx, dword [0x42b45c]
add edi, 1
cmp edi, ecx
jae 0x4160f5
mov eax, dword [0x42b458]
mov ebx, dword [eax + edi*4]
test bl, 1
je 0x4160be
not ebx
test ebx, ebx
je 0x4160a8
xor eax, eax
mov dword [esp], ebx
call eax
cmp eax, 1
je 0x416310
mov ecx, dword [0x42b45c]
test eax, eax
je 0x4160a8
cmp eax, 2
jne 0x416090
mov eax, dword [0x42b458]
not ebx
add edi, 1
mov dword [eax + esi*4], ebx
add esi, 1
cmp edi, ecx
jb 0x4160af
cmp esi, ecx
jae 0x416120
mov eax, dword [0x42b458]
sub ecx, esi
mov dword [esp + 4], 0
shl ecx, 2
lea eax, [eax + esi*4]
mov dword [esp + 8], ecx
mov dword [esp], eax
call sym._memset
mov dword [0x42b45c], esi
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x416134
mov eax, dword [0x42b0fc]
test eax, eax
jne 0x4166c0
mov eax, dword [0x42b370]
test eax, eax
jne 0x416670
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x74], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [esp], 0x42b0a4
xor edi, edi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
sub esp, 4
lea esi, [esi]
mov esi, dword [edi*4 + 0x44a000]
test esi, esi
jne 0x416186
jmp 0x4161b0
mov esi, dword [esi]
test esi, esi
je 0x4161b0
mov eax, dword [esi + 4]
mov eax, dword [eax]
test eax, eax
je 0x416180
cmp ebx, dword [esi + 8]
je 0x416180
test byte [esi + 0x10], 0x21
jne 0x416180
mov eax, esi
call sym._GC_suspend
mov esi, dword [esi]
test esi, esi
jne 0x416186
lea esi, [esi]
nop
add edi, 1
cmp edi, 0x100
jne 0x416170
mov dword [esp], 0x42b0a4
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esp, 4
call sym._GC_noop6.constprop.47
mov eax, dword [0x42b420]
mov esi, dword [0x42b100]
mov dword [ebp - 0x50], eax
test esi, esi
jne 0x416530
mov dword [0x449eb0], 0
mov eax, dword [ebp - 0x50]
test eax, eax
jne 0x416201
mov dword [0x42b420], 1
mov dword [0x42b418], 0
xor edi, edi
mov esi, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x70]
jmp 0x416232
mov eax, esi
call sym._GC_mark_some.lto_priv.64
test eax, eax
jne 0x4163a0
add edi, 1
call ebx
test eax, eax
je 0x416220
test edi, edi
js 0x4163a5
mov dword [0x449e88], edi
xor esi, esi
lea esi, [esi]
nop
mov ebx, dword [esi*4 + 0x44a000]
test ebx, ebx
jne 0x416266
jmp 0x4162da
mov ebx, dword [ebx]
test ebx, ebx
je 0x4162da
test byte [ebx + 0x10], 0x40
je 0x416260
mov eax, dword [ebx + 0xc]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_ResumeThread]
sub esp, 4
cmp eax, 0xffffffff
jne 0x416292
mov dword [esp], str.ResumeThread_failed
call sym._GC_default_on_abort.lto_priv.75
call dword [sym.imp.KERNEL32.dll_DebugBreak]
mov eax, dword [0x42b100]
test eax, eax
je 0x4162d0
mov ecx, dword [0x42b0fc]
test ecx, ecx
jne 0x4162d0
mov eax, dword [ebx + 4]
cmp eax, 0x449f74
je 0x4162b9
mov edx, dword [0x42b364]
test edx, edx
je 0x416330
cmp ebx, 0x449fc0
jne 0x416370
lea esi, [esi]
lea esi, [esi]
and byte [ebx + 0x10], 0xbf
mov ebx, dword [ebx]
test ebx, ebx
jne 0x416266
add esi, 1
cmp esi, 0x100
jne 0x416250
mov ecx, dword [ebp - 0x64]
test ecx, ecx
jne 0x4164b0
mov dword [ebp - 0x64], 1
test edi, edi
jns 0x4163c0
mov eax, dword [ebp - 0x64]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [0x42b458]
mov ecx, dword [0x42b45c]
mov dword [ebp - 0x4c], 1
mov dword [eax + esi*4], ebx
add esi, 1
jmp 0x4160a8
and eax, 0xfffff000
xor ecx, ecx
mov edx, 1
call sym._GC_remove_protection.part.34.lto_priv.78
cmp ebx, 0x449fc0
je 0x4162d0
mov eax, dword [0x42b100]
test eax, eax
je 0x4162d0
mov ecx, dword [0x42b0fc]
mov eax, ebx
and eax, 0xfffff000
test ecx, ecx
jne 0x4162d0
jmp 0x416377
mov eax, ebx
and eax, 0xfffff000
mov edx, dword [0x42b364]
test edx, edx
jne 0x4162d0
xor ecx, ecx
mov edx, 1
call sym._GC_remove_protection.part.34.lto_priv.78
jmp 0x4162d0
mov edi, 0xffffffff
add dword [0x42b318], 1
jmp 0x416246
mov eax, dword [0x42b370]
mov dword [ebp - 0x64], eax
test eax, eax
jne 0x41650e
mov eax, dword [ebp - 0x64]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, 0x2710
mov dword [esp], esi
call sym._malloc
mov edi, eax
test eax, eax
je 0x41646c
mov eax, dword [ebp - 0x58]
mov dword [esp + 8], 0x1c
mov dword [esp], edi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x4c]
call eax
sub esp, 0xc
cmp eax, 0x1c
je 0x416424
mov dword [esp], str.Weird_VirtualQuery_result
call sym._GC_default_on_abort.lto_priv.75
call dword [sym.imp.KERNEL32.dll_DebugBreak]
mov dword [esp], edi
mov ebx, dword [ebp - 0x30]
add esi, esi
call sym._free
mov ecx, dword [0x42b054]
test ecx, ecx
je 0x41604f
mov edi, dword [ecx]
cmp ebx, edi
je 0x416480
mov eax, ecx
jmp 0x416454
cmp dword [eax], ebx
je 0x416480
mov eax, dword [eax + 4]
test eax, eax
jne 0x416450
mov eax, ecx
mov eax, dword [eax + 4]
test eax, eax
je 0x41604f
cmp dword [eax], ebx
jne 0x41645d
mov eax, dword [ebp - 0x50]
mov dword [esp], eax
call sym._free
jmp 0x416069
mov eax, 0xcccccccd
mul dword [0x420020]
shr edx, 3
cmp esi, edx
jae 0x41649e
cmp esi, 0x7a11f
jbe 0x4163e5
cmp ebx, edi
jne 0x41645b
jmp 0x41646c
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [0x42b370]
test edx, edx
je 0x4162f4
mov edx, dword [0x449e84]
mov ebx, dword [0x449e80]
test edx, edx
js 0x416a24
cmp ebx, 0x3e7
ja 0x416a24
sub eax, dword [ebp - 0x74]
cmp eax, 0x7fffffff
mov ecx, eax
mov eax, 0x7fffffff
cmovb eax, ecx
add ebx, 1
mov dword [0x449e80], ebx
add eax, edx
mov dword [0x449e84], eax
test edi, edi
js 0x416ac2
mov dword [esp + 4], edi
mov dword [esp], str.Abandoned_stopped_marking_after__d_iterations_n
call sym._GC_log_printf
mov dword [ebp - 0x64], 0
mov eax, dword [ebp - 0x64]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [0x42b0fc]
mov dword [ebp - 0x4c], eax
test eax, eax
jne 0x4169b0
mov esi, dword [0x42b364]
test esi, esi
je 0x4166ec
cmp dword [ebp - 0x50], 5
jne 0x416a94
mov eax, dword [0x42b428]
test eax, eax
je 0x416ae7
lea eax, [ebp - 0x34]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x60]
jmp 0x4165f6
mov eax, dword [0x43f590]
add eax, edi
mov ebx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x4165d0
cmp ebx, dword [0x447e60]
je 0x4165d0
mov eax, dword [0x447e5c]
lea edx, [eax + 1]
mov dword [0x447e5c], edx
cmp eax, 4
jg 0x4165d0
mov dword [0x447e60], ebx
mov dword [esp + 4], ebx
mov dword [esp], str.GC_Warning:_GC_gww_read_dirty_unexpectedly_failed_at__p:_Falling_back_to_marking_all_pages_dirty_n
call dword [0x422830]
lea esi, [esi]
lea esi, [esi]
cmp dword [ebp - 0x50], 5
jne 0x416930
add dword [ebp - 0x60], 1
mov eax, dword [ebp - 0x60]
cmp eax, dword [0x42b428]
je 0x41698a
lea esi, [esi]
mov esi, dword [0x42b364]
lea edi, [eax*8]
lea esi, [esi]
mov eax, dword [0x43f590]
mov ecx, dword [ebp - 0x58]
lea edx, [ebp - 0x38]
mov dword [esp + 0xc], 0x447e80
mov dword [esp + 0x10], edx
add eax, edi
mov dword [esp + 0x14], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x38], 0x800
mov dword [esp + 8], edx
mov eax, dword [eax]
mov dword [esp], 1
mov dword [esp + 4], eax
call esi
sub esp, 0x18
test eax, eax
jne 0x416580
mov eax, dword [ebp - 0x38]
cmp dword [ebp - 0x50], 5
mov dword [ebp - 0x54], eax
jne 0x4168b0
cmp dword [ebp - 0x54], 0x800
jne 0x4165da
mov esi, dword [0x42b364]
jmp 0x416600
mov eax, dword [0x42b3c4]
mov dword [esp], str._n____Marking_for_collection__lu_after__lu_allocated_bytes_n
mov dword [esp + 8], eax
mov eax, dword [0x42b318]
add eax, 1
mov dword [esp + 4], eax
call sym._GC_log_printf
mov eax, dword [0x42b370]
test eax, eax
je 0x416141
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x64], 1
mov dword [ebp - 0x74], eax
jmp 0x41614f
mov ecx, dword [0x42b458]
mov edx, 1
mov eax, ecx
shr ecx, 0xc
shr eax, 0x11
shl edx, cl
and eax, 0x1fff
add eax, 0x307c
lock or dword [eax*4 + 0x42b3a0], edx
jmp 0x416134
cmp dword [ebp - 0x50], 5
jne 0x416a73
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], 0x437590
call sym._memset
mov eax, 2
cmp dword [0x42b070], 0x1000
cmove eax, dword [ebp - 0x4c]
mov ebx, dword [0x42b428]
mov dword [ebp - 0x4c], eax
test ebx, ebx
je 0x4161e6
xor edi, edi
jmp 0x416782
cmp dword [0x42282c], 1
mov dword [esp + 0xc], 0x449f90
sbb edx, edx
mov dword [esp + 4], esi
and edx, 0xffffffe2
mov dword [esp], eax
add edx, 0x20
mov dword [esp + 8], edx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
sub esp, 0x10
test eax, eax
je 0x416880
add edi, 1
cmp edi, dword [0x42b428]
jae 0x41698a
mov eax, dword [0x43f590]
mov ecx, dword [ebp - 0x4c]
lea edx, [eax + edi*8]
mov eax, dword [edx]
mov esi, dword [edx + 4]
test ecx, ecx
jne 0x416740
add esi, eax
cmp esi, eax
jbe 0x416773
mov ecx, eax
jmp 0x4167e9
and ebx, 0xfffff000
add ebx, eax
cmp ecx, eax
jae 0x4167e1
cmp dword [0x42282c], 1
mov dword [esp + 0xc], 0x449f90
sbb edx, edx
sub eax, ecx
mov dword [esp], ecx
and edx, 0xffffffe2
mov dword [esp + 4], eax
add edx, 0x20
mov dword [esp + 8], edx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
sub esp, 0x10
test eax, eax
je 0x4169f7
mov ecx, ebx
mov eax, ebx
cmp eax, esi
jae 0x416840
mov edx, eax
shr edx, 0x16
mov ebx, dword [edx*4 + 0x446d94]
mov edx, eax
shr edx, 0xc
and edx, 0x3ff
mov edx, dword [ebx + edx*4]
cmp edx, 0xfff
jbe 0x4169a0
mov ebx, dword [edx + 0x10]
test byte [edx + 0xd], 4
jne 0x4167a0
add ebx, 0xfff
mov edx, dword [edx + 0x14]
and ebx, 0xfffff000
add ebx, eax
test edx, edx
je 0x4167a8
mov eax, ebx
cmp eax, esi
jb 0x4167e9
lea esi, [esi]
nop
cmp ecx, eax
jae 0x416773
cmp dword [0x42282c], 1
mov dword [esp + 0xc], 0x449f90
sbb edx, edx
sub eax, ecx
mov dword [esp], ecx
and edx, 0xffffffe2
mov dword [esp + 4], eax
add edx, 0x20
mov dword [esp + 8], edx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
sub esp, 0x10
test eax, eax
jne 0x416773
lea esi, [esi]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp], str.VirtualProtect_failed:_errcode_0x_X_n
mov dword [esp + 4], eax
call sym._GC_log_printf
mov dword [esp], str.VirtualProtect_failed
call sym._GC_default_on_abort.lto_priv.75
call dword [sym.imp.KERNEL32.dll_DebugBreak]
jmp 0x416773
lea eax, [eax*4 + 0x447e80]
mov dword [ebp - 0x5c], eax
cmp eax, 0x447e80
je 0x416655
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x68], edi
mov ebx, 0x447e80
mov edi, eax
lea esi, [esi]
lea esi, [esi]
add ebx, 4
mov eax, dword [ebx - 4]
lea esi, [eax + edi]
lea esi, [esi]
mov edx, eax
mov ecx, eax
add eax, 0x1000
shr edx, 0x11
shr ecx, 0xc
and edx, 0x1fff
mov dword [ebp - 0x4c], edx
mov edx, 1
shl edx, cl
mov ecx, edx
mov edx, dword [ebp - 0x4c]
or dword [edx*4 + 0x42f590], ecx
cmp eax, esi
jb 0x4168f0
cmp dword [ebp - 0x5c], ebx
jne 0x4168e0
mov edi, dword [ebp - 0x68]
jmp 0x416655
shr esi, 0xc
je 0x4165da
shl esi, 0xc
mov eax, ebx
lea ebx, [ebx + esi]
lea esi, [esi]
lea esi, [esi]
nop
mov edx, eax
mov ecx, eax
mov edi, 1
add eax, 0x1000
shr edx, 0x11
shr ecx, 0xc
and edx, 0x1fff
shl edi, cl
or dword [edx*4 + 0x42f590], edi
cmp ebx, eax
jne 0x416950
add dword [ebp - 0x60], 1
mov eax, dword [ebp - 0x60]
cmp eax, dword [0x42b428]
jne 0x4165f0
mov eax, dword [0x42b420]
mov dword [ebp - 0x50], eax
jmp 0x4161e6
add eax, 0x1000
mov ecx, eax
jmp 0x4167e5
cmp dword [ebp - 0x50], 5
je 0x416a48
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0x437590
mov dword [esp], 0x42f590
call sym._memcpy
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], 0x437590
call sym._memset
jmp 0x4161e6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp], str.VirtualProtect_failed:_errcode_0x_X_n
mov dword [esp + 4], eax
call sym._GC_log_printf
mov dword [esp], str.VirtualProtect_failed
call sym._GC_default_on_abort.lto_priv.75
call dword [sym.imp.KERNEL32.dll_DebugBreak]
jmp 0x4167e1
shr edx, 1
shr ebx, 1
jmp 0x4164e4
mov dword [esp + 4], ebx
mov dword [esp], str.Found_new_system_malloc_AllocationBase_at__p_n
call sym._GC_log_printf
mov ecx, dword [0x42b054]
jmp 0x41605c
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], 0x437590
call sym._memset
mov dword [0x449eb0], 0
jmp 0x416201
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0x437590
mov dword [esp], 0x42f590
call sym._memcpy
jmp 0x4166f6
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], 0x42f590
call sym._memset
mov eax, dword [0x42b428]
test eax, eax
jne 0x416565
jmp 0x4161e6
xor edx, edx
mov dword [esp + 8], 0
div ebx
mov dword [esp + 4], ecx
mov dword [esp], str.World_stopped_marking_took__lu_ms__lu_ns___u_ms_in_average__n
mov dword [esp + 0xc], eax
call sym._GC_log_printf
jmp 0x416303
mov dword [0x449eb0], 0
jmp 0x416201