Function at 0x416490
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 0x416549
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 0x4164fe
mov dword [esp], str.Weird_VirtualQuery_result
call fcn.00410de0
call dword [sym.imp.KERNEL32.dll_DebugBreak]
mov ecx, dword [0x44c3ac]
mov ebx, dword [ebp - 0x30]
test ecx, ecx
je 0x41652f
cmp ebx, dword [ecx]
je 0x4168c0
mov eax, ecx
jmp 0x416528
cmp dword [eax], ebx
je 0x4168c0
mov eax, dword [eax + 4]
test eax, eax
jne 0x416520
mov eax, dword [0x42d310]
test eax, eax
jne 0x416f0d
mov eax, dword [ebp - 0x50]
mov dword [eax], ebx
mov dword [eax + 4], ecx
mov dword [0x44c3ac], eax
mov ecx, dword [0x42d3dc]
test ecx, ecx
je 0x416614
mov dword [ebp - 0x4c], 0
xor esi, esi
xor edi, edi
jmp 0x41658f
mov dword [esp], str.Bad_toggle_ref_status_returned_by_callback
call fcn.00410de0
call dword [sym.imp.KERNEL32.dll_DebugBreak]
mov ecx, dword [0x42d3dc]
add edi, 1
cmp edi, ecx
jae 0x4165d5
mov eax, dword [0x42d3d8]
mov ebx, dword [eax + edi*4]
test bl, 1
je 0x41659e
not ebx
test ebx, ebx
je 0x416588
xor eax, eax
mov dword [esp], ebx
call eax
cmp eax, 1
je 0x4167f0
mov ecx, dword [0x42d3dc]
test eax, eax
je 0x416588
cmp eax, 2
jne 0x416570
mov eax, dword [0x42d3d8]
not ebx
add edi, 1
mov dword [eax + esi*4], ebx
add esi, 1
cmp edi, ecx
jb 0x41658f
cmp esi, ecx
jae 0x416600
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 0x416614
mov eax, dword [0x42d06c]
test eax, eax
jne 0x416ba0
mov eax, dword [0x42d310]
test eax, eax
jne 0x416b50
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x74], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [esp], 0x44c404
xor edi, edi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
sub esp, 4
lea esi, [esi]
mov esi, dword [edi*4 + 0x44bfa0]
test esi, esi
jne 0x416666
jmp 0x416690
mov esi, dword [esi]
test esi, esi
je 0x416690
mov eax, dword [esi + 4]
mov eax, dword [eax]
test eax, eax
je 0x416660
cmp ebx, dword [esi + 8]
je 0x416660
test byte [esi + 0x10], 0x21
jne 0x416660
mov eax, esi
call fcn.00412e80
mov esi, dword [esi]
test esi, esi
jne 0x416666
lea esi, [esi]
nop
add edi, 1
cmp edi, 0x100
jne 0x416650
mov dword [esp], 0x44c404
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esp, 4
call fcn.004038d0
mov eax, dword [0x42d3a0]
mov esi, dword [0x42d088]
mov dword [ebp - 0x50], eax
test esi, esi
jne 0x416a10
mov dword [0x44be50], 0
mov eax, dword [ebp - 0x50]
test eax, eax
jne 0x4166e1
mov dword [0x42d3a0], 1
mov dword [0x42d398], 0
xor edi, edi
mov esi, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x70]
jmp 0x416712
mov eax, esi
call fcn.004163a0
test eax, eax
jne 0x416880
add edi, 1
call ebx
test eax, eax
je 0x416700
test edi, edi
js 0x416885
mov dword [0x44be28], edi
xor esi, esi
lea esi, [esi]
nop
mov ebx, dword [esi*4 + 0x44bfa0]
test ebx, ebx
jne 0x416746
jmp 0x4167ba
mov ebx, dword [ebx]
test ebx, ebx
je 0x4167ba
test byte [ebx + 0x10], 0x40
je 0x416740
mov eax, dword [ebx + 0xc]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_ResumeThread]
sub esp, 4
cmp eax, 0xffffffff
jne 0x416772
mov dword [esp], str.ResumeThread_failed
call fcn.00410de0
call dword [sym.imp.KERNEL32.dll_DebugBreak]
mov eax, dword [0x42d088]
test eax, eax
je 0x4167b0
mov ecx, dword [0x42d06c]
test ecx, ecx
jne 0x4167b0
mov eax, dword [ebx + 4]
cmp eax, 0x44bf18
je 0x416799
mov edx, dword [0x42d304]
test edx, edx
je 0x416810
cmp ebx, 0x44bf60
jne 0x416850
lea esi, [esi]
lea esi, [esi]
and byte [ebx + 0x10], 0xbf
mov ebx, dword [ebx]
test ebx, ebx
jne 0x416746
add esi, 1
cmp esi, 0x100
jne 0x416730
mov ecx, dword [ebp - 0x64]
test ecx, ecx
jne 0x416990
mov dword [ebp - 0x64], 1
test edi, edi
jns 0x4168a0
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 0x416588
and eax, 0xfffff000
xor ecx, ecx
mov edx, 1
call fcn.004113c0
cmp ebx, 0x44bf60
je 0x4167b0
mov eax, dword [0x42d088]
test eax, eax
je 0x4167b0
mov ecx, dword [0x42d06c]
mov eax, ebx
and eax, 0xfffff000
test ecx, ecx
jne 0x4167b0
jmp 0x416857
mov eax, ebx
and eax, 0xfffff000
mov edx, dword [0x42d304]
test edx, edx
jne 0x4167b0
xor ecx, ecx
mov edx, 1
call fcn.004113c0
jmp 0x4167b0
mov edi, 0xffffffff
add dword [0x42d2ac], 1
jmp 0x416726
mov eax, dword [0x42d310]
mov dword [ebp - 0x64], eax
test eax, eax
jne 0x4169ee
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 0x41694c
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 0x416904
mov dword [esp], str.Weird_VirtualQuery_result
call fcn.00410de0
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 [0x44c3ac]
test ecx, ecx
je 0x41652f
mov edi, dword [ecx]
cmp ebx, edi
je 0x416960
mov eax, ecx
jmp 0x416934
cmp dword [eax], ebx
je 0x416960
mov eax, dword [eax + 4]
test eax, eax
jne 0x416930
mov eax, ecx
mov eax, dword [eax + 4]
test eax, eax
je 0x41652f
cmp dword [eax], ebx
jne 0x41693d
mov eax, dword [ebp - 0x50]
mov dword [esp], eax
call sub.msvcrt.dll_free
jmp 0x416549
mov eax, 0xcccccccd
mul dword [0x424824]
shr edx, 3
cmp esi, edx
jae 0x41697e
cmp esi, 0x7a11f
jbe 0x4168c5
cmp ebx, edi
jne 0x41693b
jmp 0x41694c
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [0x42d310]
test edx, edx
je 0x4167d4
mov edx, dword [0x44be24]
mov ebx, dword [0x44be20]
test edx, edx
js 0x416f04
cmp ebx, 0x3e7
ja 0x416f04
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 0x416fa2
mov dword [esp + 4], edi
mov dword [esp], str.Abandoned_stopped_marking_after__d_iterations_n
call fcn.00411220
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 [0x42d06c]
mov dword [ebp - 0x4c], eax
test eax, eax
jne 0x416e90
mov esi, dword [0x42d304]
test esi, esi
je 0x416bcc
cmp dword [ebp - 0x50], 5
jne 0x416f74
mov eax, dword [0x42d3a8]
test eax, eax
je 0x416fc7
lea eax, [ebp - 0x34]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x60]
jmp 0x416ad6
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 0x416ab0
cmp ebx, dword [0x449e00]
je 0x416ab0
mov eax, dword [0x449dfc]
lea edx, [eax + 1]
mov dword [0x449dfc], edx
cmp eax, 4
jg 0x416ab0
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 0x416e10
add dword [ebp - 0x60], 1
mov eax, dword [ebp - 0x60]
cmp eax, dword [0x42d3a8]
je 0x416e6a
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 0x416a60
mov eax, dword [ebp - 0x38]
cmp dword [ebp - 0x50], 5
mov dword [ebp - 0x54], eax
jne 0x416d90
cmp dword [ebp - 0x54], 0x800
jne 0x416aba
mov esi, dword [0x42d304]
jmp 0x416ae0
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.00411220
mov eax, dword [0x42d310]
test eax, eax
je 0x416621
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x64], 1
mov dword [ebp - 0x74], eax
jmp 0x41662f
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 0x416614
cmp dword [ebp - 0x50], 5
jne 0x416f53
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], 0x439510
call sub.msvcrt.dll_memset
mov eax, 2
cmp dword [0x44c3c8], 0x1000
cmove eax, dword [ebp - 0x4c]
mov ebx, dword [0x42d3a8]
mov dword [ebp - 0x4c], eax
test ebx, ebx
je 0x4166c6
xor edi, edi
jmp 0x416c62
cmp dword [0x42480c], 1
mov dword [esp + 0xc], 0x44bf34
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 0x416d60
add edi, 1
cmp edi, dword [0x42d3a8]
jae 0x416e6a
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 0x416c20
add esi, eax
cmp esi, eax
jbe 0x416c53
mov ecx, eax
jmp 0x416cc9
and ebx, 0xfffff000
add ebx, eax
cmp ecx, eax
jae 0x416cc1
cmp dword [0x42480c], 1
mov dword [esp + 0xc], 0x44bf34
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 0x416ed7
mov ecx, ebx
mov eax, ebx
cmp eax, esi
jae 0x416d20
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 0x416e80
mov ebx, dword [edx + 0x10]
test byte [edx + 0xd], 4
jne 0x416c80
add ebx, 0xfff
mov edx, dword [edx + 0x14]
and ebx, 0xfffff000
add ebx, eax
test edx, edx
je 0x416c88
mov eax, ebx
cmp eax, esi
jb 0x416cc9
lea esi, [esi]
nop
cmp ecx, eax
jae 0x416c53
cmp dword [0x42480c], 1
mov dword [esp + 0xc], 0x44bf34
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 0x416c53
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.00411220
mov dword [esp], str.VirtualProtect_failed
call fcn.00410de0
call dword [sym.imp.KERNEL32.dll_DebugBreak]
jmp 0x416c53
lea eax, [eax*4 + 0x449e20]
mov dword [ebp - 0x5c], eax
cmp eax, 0x449e20
je 0x416b35
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 0x416dd0
cmp dword [ebp - 0x5c], ebx
jne 0x416dc0
mov edi, dword [ebp - 0x68]
jmp 0x416b35
shr esi, 0xc
je 0x416aba
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 0x416e30
add dword [ebp - 0x60], 1
mov eax, dword [ebp - 0x60]
cmp eax, dword [0x42d3a8]
jne 0x416ad0
mov eax, dword [0x42d3a0]
mov dword [ebp - 0x50], eax
jmp 0x4166c6
add eax, 0x1000
mov ecx, eax
jmp 0x416cc5
cmp dword [ebp - 0x50], 5
je 0x416f28
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 0x4166c6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp], str.VirtualProtect_failed:_errcode_0x_X_n
mov dword [esp + 4], eax
call fcn.00411220
mov dword [esp], str.VirtualProtect_failed
call fcn.00410de0
call dword [sym.imp.KERNEL32.dll_DebugBreak]
jmp 0x416cc1
shr edx, 1
shr ebx, 1
jmp 0x4169c4
mov dword [esp + 4], ebx
mov dword [esp], str.Found_new_system_malloc_AllocationBase_at__p_n
call fcn.00411220
mov ecx, dword [0x44c3ac]
jmp 0x41653c
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], 0x439510
call sub.msvcrt.dll_memset
mov dword [0x44be50], 0
jmp 0x4166e1
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0x439510
mov dword [esp], 0x431510
call sub.msvcrt.dll_memcpy
jmp 0x416bd6
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 0x416a45
jmp 0x4166c6
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.00411220
jmp 0x4167e3
mov dword [0x44be50], 0
jmp 0x4166e1