Function at 0x4165b0
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 sub.msvcrt.dll_malloc
mov dword [ebp - 0x50], eax
test eax, eax
je 0x416669
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 0x41661e
mov dword [esp], str.Weird_VirtualQuery_result
call fcn.00410f40
call dword [sym.imp.KERNEL32.dll_DebugBreak]
mov ecx, dword [0x44c3cc]
mov ebx, dword [ebp - 0x30]
test ecx, ecx
je 0x41664f
cmp ebx, dword [ecx]
je 0x4169e0
mov eax, ecx
jmp 0x416648
cmp dword [eax], ebx
je 0x4169e0
mov eax, dword [eax + 4]
test eax, eax
jne 0x416640
mov eax, dword [0x42d310]
test eax, eax
jne 0x41702d
mov eax, dword [ebp - 0x50]
mov dword [eax], ebx
mov dword [eax + 4], ecx
mov dword [0x44c3cc], eax
mov ecx, dword [0x42d3dc]
test ecx, ecx
je 0x416734
mov dword [ebp - 0x4c], 0
xor esi, esi
xor edi, edi
jmp 0x4166af
mov dword [esp], str.Bad_toggle_ref_status_returned_by_callback
call fcn.00410f40
call dword [sym.imp.KERNEL32.dll_DebugBreak]
mov ecx, dword [0x42d3dc]
add edi, 1
cmp edi, ecx
jae 0x4166f5
mov eax, dword [0x42d3d8]
mov ebx, dword [eax + edi*4]
test bl, 1
je 0x4166be
not ebx
test ebx, ebx
je 0x4166a8
xor eax, eax
mov dword [esp], ebx
call eax
cmp eax, 1
je 0x416910
mov ecx, dword [0x42d3dc]
test eax, eax
je 0x4166a8
cmp eax, 2
jne 0x416690
mov eax, dword [0x42d3d8]
not ebx
add edi, 1
mov dword [eax + esi*4], ebx
add esi, 1
cmp edi, ecx
jb 0x4166af
cmp esi, ecx
jae 0x416720
mov eax, dword [0x42d3d8]
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 sub.msvcrt.dll_memset
mov dword [0x42d3dc], esi
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x416734
mov eax, dword [0x42d070]
test eax, eax
jne 0x416cc0
mov eax, dword [0x42d310]
test eax, eax
jne 0x416c70
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x74], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [esp], 0x44c424
xor edi, edi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
sub esp, 4
lea esi, [esi]
mov esi, dword [edi*4 + 0x44bfc0]
test esi, esi
jne 0x416786
jmp 0x4167b0
mov esi, dword [esi]
test esi, esi
je 0x4167b0
mov eax, dword [esi + 4]
mov eax, dword [eax]
test eax, eax
je 0x416780
cmp ebx, dword [esi + 8]
je 0x416780
test byte [esi + 0x10], 0x21
jne 0x416780
mov eax, esi
call fcn.004131e0
mov esi, dword [esi]
test esi, esi
jne 0x416786
lea esi, [esi]
nop
add edi, 1
cmp edi, 0x100
jne 0x416770
mov dword [esp], 0x44c424
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esp, 4
call fcn.004038d0
mov eax, dword [0x42d3a0]
mov esi, dword [0x42d08c]
mov dword [ebp - 0x50], eax
test esi, esi
jne 0x416b30
mov dword [0x44be50], 0
mov eax, dword [ebp - 0x50]
test eax, eax
jne 0x416801
mov dword [0x42d3a0], 1
mov dword [0x42d398], 0
xor edi, edi
mov esi, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x70]
jmp 0x416832
mov eax, esi
call fcn.004164c0
test eax, eax
jne 0x4169a0
add edi, 1
call ebx
test eax, eax
je 0x416820
test edi, edi
js 0x4169a5
mov dword [0x44be28], edi
xor esi, esi
lea esi, [esi]
nop
mov ebx, dword [esi*4 + 0x44bfc0]
test ebx, ebx
jne 0x416866
jmp 0x4168da
mov ebx, dword [ebx]
test ebx, ebx
je 0x4168da
test byte [ebx + 0x10], 0x40
je 0x416860
mov eax, dword [ebx + 0xc]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_ResumeThread]
sub esp, 4
cmp eax, 0xffffffff
jne 0x416892
mov dword [esp], str.ResumeThread_failed
call fcn.00410f40
call dword [sym.imp.KERNEL32.dll_DebugBreak]
mov eax, dword [0x42d08c]
test eax, eax
je 0x4168d0
mov ecx, dword [0x42d070]
test ecx, ecx
jne 0x4168d0
mov eax, dword [ebx + 4]
cmp eax, 0x44be68
je 0x4168b9
mov edx, dword [0x42d304]
test edx, edx
je 0x416930
cmp ebx, 0x44bf80
jne 0x416970
lea esi, [esi]
lea esi, [esi]
and byte [ebx + 0x10], 0xbf
mov ebx, dword [ebx]
test ebx, ebx
jne 0x416866
add esi, 1
cmp esi, 0x100
jne 0x416850
mov ecx, dword [ebp - 0x64]
test ecx, ecx
jne 0x416ab0
mov dword [ebp - 0x64], 1
test edi, edi
jns 0x4169c0
mov eax, dword [ebp - 0x64]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [0x42d3d8]
mov ecx, dword [0x42d3dc]
mov dword [ebp - 0x4c], 1
mov dword [eax + esi*4], ebx
add esi, 1
jmp 0x4166a8
and eax, 0xfffff000
xor ecx, ecx
mov edx, 1
call fcn.00411520
cmp ebx, 0x44bf80
je 0x4168d0
mov eax, dword [0x42d08c]
test eax, eax
je 0x4168d0
mov ecx, dword [0x42d070]
mov eax, ebx
and eax, 0xfffff000
test ecx, ecx
jne 0x4168d0
jmp 0x416977
mov eax, ebx
and eax, 0xfffff000
mov edx, dword [0x42d304]
test edx, edx
jne 0x4168d0
xor ecx, ecx
mov edx, 1
call fcn.00411520
jmp 0x4168d0
mov edi, 0xffffffff
add dword [0x42d2ac], 1
jmp 0x416846
mov eax, dword [0x42d310]
mov dword [ebp - 0x64], eax
test eax, eax
jne 0x416b0e
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 sub.msvcrt.dll_malloc
mov edi, eax
test eax, eax
je 0x416a6c
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 0x416a24
mov dword [esp], str.Weird_VirtualQuery_result
call fcn.00410f40
call dword [sym.imp.KERNEL32.dll_DebugBreak]
mov dword [esp], edi
mov ebx, dword [ebp - 0x30]
add esi, esi
call sub.msvcrt.dll_free
mov ecx, dword [0x44c3cc]
test ecx, ecx
je 0x41664f
mov edi, dword [ecx]
cmp ebx, edi
je 0x416a80
mov eax, ecx
jmp 0x416a54
cmp dword [eax], ebx
je 0x416a80
mov eax, dword [eax + 4]
test eax, eax
jne 0x416a50
mov eax, ecx
mov eax, dword [eax + 4]
test eax, eax
je 0x41664f
cmp dword [eax], ebx
jne 0x416a5d
mov eax, dword [ebp - 0x50]
mov dword [esp], eax
call sub.msvcrt.dll_free
jmp 0x416669
mov eax, 0xcccccccd
mul dword [0x424824]
shr edx, 3
cmp esi, edx
jae 0x416a9e
cmp esi, 0x7a11f
jbe 0x4169e5
cmp ebx, edi
jne 0x416a5b
jmp 0x416a6c
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [0x42d310]
test edx, edx
je 0x4168f4
mov edx, dword [0x44be24]
mov ebx, dword [0x44be20]
test edx, edx
js 0x417024
cmp ebx, 0x3e7
ja 0x417024
sub eax, dword [ebp - 0x74]
cmp eax, 0x7fffffff
mov ecx, eax
mov eax, 0x7fffffff
cmovb eax, ecx
add ebx, 1
mov dword [0x44be20], ebx
add eax, edx
mov dword [0x44be24], eax
test edi, edi
js 0x4170c2
mov dword [esp + 4], edi
mov dword [esp], str.Abandoned_stopped_marking_after__d_iterations_n
call fcn.00411380
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 [0x42d070]
mov dword [ebp - 0x4c], eax
test eax, eax
jne 0x416fb0
mov esi, dword [0x42d304]
test esi, esi
je 0x416cec
cmp dword [ebp - 0x50], 5
jne 0x417094
mov eax, dword [0x42d3a8]
test eax, eax
je 0x4170e7
lea eax, [ebp - 0x34]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x60]
jmp 0x416bf6
mov eax, dword [0x441510]
add eax, edi
mov ebx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x416bd0
cmp ebx, dword [0x449e00]
je 0x416bd0
mov eax, dword [0x449dfc]
lea edx, [eax + 1]
mov dword [0x449dfc], edx
cmp eax, 4
jg 0x416bd0
mov dword [0x449e00], 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 [0x424810]
lea esi, [esi]
lea esi, [esi]
cmp dword [ebp - 0x50], 5
jne 0x416f30
add dword [ebp - 0x60], 1
mov eax, dword [ebp - 0x60]
cmp eax, dword [0x42d3a8]
je 0x416f8a
lea esi, [esi]
mov esi, dword [0x42d304]
lea edi, [eax*8]
lea esi, [esi]
mov eax, dword [0x441510]
mov ecx, dword [ebp - 0x58]
lea edx, [ebp - 0x38]
mov dword [esp + 0xc], 0x449e20
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 0x416b80
mov eax, dword [ebp - 0x38]
cmp dword [ebp - 0x50], 5
mov dword [ebp - 0x54], eax
jne 0x416eb0
cmp dword [ebp - 0x54], 0x800
jne 0x416bda
mov esi, dword [0x42d304]
jmp 0x416c00
mov eax, dword [0x42d344]
mov dword [esp], str._n____Marking_for_collection__lu_after__lu_allocated_bytes_n
mov dword [esp + 8], eax
mov eax, dword [0x42d2ac]
add eax, 1
mov dword [esp + 4], eax
call fcn.00411380
mov eax, dword [0x42d310]
test eax, eax
je 0x416741
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x64], 1
mov dword [ebp - 0x74], eax
jmp 0x41674f
mov ecx, dword [0x42d3d8]
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 + 0x42d320], edx
jmp 0x416734
cmp dword [ebp - 0x50], 5
jne 0x417073
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], 0x439510
call sub.msvcrt.dll_memset
mov eax, 2
cmp dword [0x44c3e8], 0x1000
cmove eax, dword [ebp - 0x4c]
mov ebx, dword [0x42d3a8]
mov dword [ebp - 0x4c], eax
test ebx, ebx
je 0x4167e6
xor edi, edi
jmp 0x416d82
cmp dword [0x42480c], 1
mov dword [esp + 0xc], 0x44be84
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 0x416e80
add edi, 1
cmp edi, dword [0x42d3a8]
jae 0x416f8a
mov eax, dword [0x441510]
mov ecx, dword [ebp - 0x4c]
lea edx, [eax + edi*8]
mov eax, dword [edx]
mov esi, dword [edx + 4]
test ecx, ecx
jne 0x416d40
add esi, eax
cmp esi, eax
jbe 0x416d73
mov ecx, eax
jmp 0x416de9
and ebx, 0xfffff000
add ebx, eax
cmp ecx, eax
jae 0x416de1
cmp dword [0x42480c], 1
mov dword [esp + 0xc], 0x44be84
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 0x416ff7
mov ecx, ebx
mov eax, ebx
cmp eax, esi
jae 0x416e40
mov edx, eax
shr edx, 0x16
mov ebx, dword [edx*4 + 0x448d14]
mov edx, eax
shr edx, 0xc
and edx, 0x3ff
mov edx, dword [ebx + edx*4]
cmp edx, 0xfff
jbe 0x416fa0
mov ebx, dword [edx + 0x10]
test byte [edx + 0xd], 4
jne 0x416da0
add ebx, 0xfff
mov edx, dword [edx + 0x14]
and ebx, 0xfffff000
add ebx, eax
test edx, edx
je 0x416da8
mov eax, ebx
cmp eax, esi
jb 0x416de9
lea esi, [esi]
nop
cmp ecx, eax
jae 0x416d73
cmp dword [0x42480c], 1
mov dword [esp + 0xc], 0x44be84
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 0x416d73
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 fcn.00411380
mov dword [esp], str.VirtualProtect_failed
call fcn.00410f40
call dword [sym.imp.KERNEL32.dll_DebugBreak]
jmp 0x416d73
lea eax, [eax*4 + 0x449e20]
mov dword [ebp - 0x5c], eax
cmp eax, 0x449e20
je 0x416c55
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x68], edi
mov ebx, 0x449e20
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 + 0x431510], ecx
cmp eax, esi
jb 0x416ef0
cmp dword [ebp - 0x5c], ebx
jne 0x416ee0
mov edi, dword [ebp - 0x68]
jmp 0x416c55
shr esi, 0xc
je 0x416bda
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 + 0x431510], edi
cmp ebx, eax
jne 0x416f50
add dword [ebp - 0x60], 1
mov eax, dword [ebp - 0x60]
cmp eax, dword [0x42d3a8]
jne 0x416bf0
mov eax, dword [0x42d3a0]
mov dword [ebp - 0x50], eax
jmp 0x4167e6
add eax, 0x1000
mov ecx, eax
jmp 0x416de5
cmp dword [ebp - 0x50], 5
je 0x417048
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0x439510
mov dword [esp], 0x431510
call sub.msvcrt.dll_memcpy
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], 0x439510
call sub.msvcrt.dll_memset
jmp 0x4167e6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp], str.VirtualProtect_failed:_errcode_0x_X_n
mov dword [esp + 4], eax
call fcn.00411380
mov dword [esp], str.VirtualProtect_failed
call fcn.00410f40
call dword [sym.imp.KERNEL32.dll_DebugBreak]
jmp 0x416de1
shr edx, 1
shr ebx, 1
jmp 0x416ae4
mov dword [esp + 4], ebx
mov dword [esp], str.Found_new_system_malloc_AllocationBase_at__p_n
call fcn.00411380
mov ecx, dword [0x44c3cc]
jmp 0x41665c
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], 0x439510
call sub.msvcrt.dll_memset
mov dword [0x44be50], 0
jmp 0x416801
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0x439510
mov dword [esp], 0x431510
call sub.msvcrt.dll_memcpy
jmp 0x416cf6
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], 0x431510
call sub.msvcrt.dll_memset
mov eax, dword [0x42d3a8]
test eax, eax
jne 0x416b65
jmp 0x4167e6
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 fcn.00411380
jmp 0x416903
mov dword [0x44be50], 0
jmp 0x416801