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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x8c
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x3c], ebp
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x6c], eax
mov dword [esp], 8
call sub.msvcrt.dll_malloc
test eax, eax
je 0x407f47
lea ebx, [ebp - 0x34]
mov dword [eax], 0
mov dword [esp], eax
mov dword [esp + 8], 0x1c
mov dword [esp + 4], ebx
mov dword [ebp - 0x4c], eax
mov eax, dword [sym.imp.KERNEL32.dll_VirtualQuery]
mov dword [ebp - 0x50], eax
call eax
mov edx, dword [ebp - 0x4c]
sub esp, 0xc
cmp eax, 0x1c
je 0x407e61
mov dword [esp], 0x425882
call fcn.004020f0
call dword [sym.imp.KERNEL32.dll_DebugBreak]
mov edx, dword [ebp - 0x4c]
mov ecx, dword [0x42d0c0]
mov esi, dword [ebp - 0x30]
test ecx, ecx
je 0x408259
mov eax, ecx
jmp 0x407e8b
mov eax, dword [eax + 4]
test eax, eax
je 0x408259
cmp dword [eax], esi
jne 0x407e80
mov dword [ebp - 0x4c], edx
mov edi, 0x2710
mov dword [ebp - 0x54], ebx
mov dword [esp], edi
call sub.msvcrt.dll_malloc
mov ebx, eax
test eax, eax
je 0x40882d
mov dword [esp + 8], 0x1c
mov eax, dword [ebp - 0x54]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x50]
call eax
sub esp, 0xc
cmp eax, 0x1c
je 0x407edd
mov dword [esp], 0x425882
call fcn.004020f0
call dword [sym.imp.KERNEL32.dll_DebugBreak]
mov esi, dword [ebp - 0x30]
mov dword [esp], ebx
add edi, edi
call sub.msvcrt.dll_free
mov ecx, dword [0x42d0c0]
test ecx, ecx
je 0x408256
mov eax, ecx
jmp 0x407f07
mov eax, dword [eax + 4]
test eax, eax
je 0x407f29
cmp dword [eax], esi
jne 0x407f00
mov eax, 0xcccccccd
mul dword [0x422028]
shr edx, 3
cmp edi, edx
jae 0x407f29
cmp edi, 0x7a11f
jbe 0x407e9a
mov edx, dword [ebp - 0x4c]
mov eax, ecx
jmp 0x407f3b
mov eax, dword [eax + 4]
test eax, eax
je 0x408259
cmp dword [eax], esi
jne 0x407f30
mov dword [esp], edx
call sub.msvcrt.dll_free
mov eax, dword [0x42d83c]
mov dword [ebp - 0x4c], 0
xor edi, edi
xor esi, esi
test eax, eax
jne 0x407f82
jmp 0x408004
test eax, eax
je 0x407f76
mov dword [esp], str.Bad_toggle_ref_status_returned_by_callback
call fcn.004020f0
call dword [sym.imp.KERNEL32.dll_DebugBreak]
mov eax, dword [0x42d83c]
add esi, 1
cmp esi, eax
jae 0x407fc4
mov edx, dword [0x42d838]
mov ebx, dword [edx + esi*4]
test bl, 1
je 0x407f92
not ebx
test ebx, ebx
je 0x407f7b
xor eax, eax
mov dword [esp], ebx
call eax
cmp eax, 1
je 0x4081d8
cmp eax, 2
jne 0x407f60
mov eax, dword [0x42d838]
not ebx
add esi, 1
mov dword [eax + edi*4], ebx
mov eax, dword [0x42d83c]
add edi, 1
cmp esi, eax
jb 0x407f82
cmp edi, eax
jae 0x407ff0
mov ecx, dword [0x42d838]
sub eax, edi
mov dword [esp + 4], 0
shl eax, 2
lea ecx, [ecx + edi*4]
mov dword [esp + 8], eax
mov dword [esp], ecx
call sub.msvcrt.dll_memset
mov dword [0x42d83c], edi
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x408004
mov eax, dword [0x42d11c]
test eax, eax
jne 0x408476
mov eax, dword [0x42d760]
test eax, eax
jne 0x408433
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [esp], 0x44a2e0
xor edi, edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
sub esp, 4
lea esi, [esi]
mov ebx, dword [edi*4 + 0x42d120]
test ebx, ebx
jne 0x408056
jmp 0x408080
mov ebx, dword [ebx]
test ebx, ebx
je 0x408080
mov eax, dword [ebx + 4]
mov eax, dword [eax]
test eax, eax
je 0x408050
cmp esi, dword [ebx + 8]
je 0x408050
test byte [ebx + 0x10], 0x21
jne 0x408050
mov eax, ebx
call fcn.00407c60
mov ebx, dword [ebx]
test ebx, ebx
jne 0x408056
lea esi, cs:[esi]
nop
add edi, 1
cmp edi, 0x100
jne 0x408040
mov dword [esp], 0x44a2e0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esp, 4
call fcn.00418d00
mov eax, dword [0x42d800]
mov ebx, dword [0x42d534]
mov dword [ebp - 0x54], eax
test ebx, ebx
jne 0x40829f
mov dword [0x44c320], 0
mov eax, dword [ebp - 0x54]
test eax, eax
jne 0x4080d1
mov dword [0x42d800], 1
mov dword [0x42d7f8], 0
mov esi, dword [ebp - 0x6c]
xor ebx, ebx
mov edi, dword [ebp - 0x70]
jmp 0x4080fa
mov eax, esi
call fcn.00405c40
test eax, eax
jne 0x40828e
add ebx, 1
call edi
test eax, eax
je 0x4080e8
test ebx, ebx
js 0x408293
mov dword [0x44c344], ebx
mov dword [ebp - 0x4c], ebx
mov esi, dword [sym.imp.KERNEL32.dll_ResumeThread]
xor edi, edi
lea esi, [esi]
mov ebx, dword [edi*4 + 0x42d120]
test ebx, ebx
jne 0x408136
jmp 0x4081a2
mov ebx, dword [ebx]
test ebx, ebx
je 0x4081a2
test byte [ebx + 0x10], 0x40
je 0x408130
mov eax, dword [ebx + 0xc]
mov dword [esp], eax
call esi
sub esp, 4
cmp eax, 0xffffffff
jne 0x40815e
mov dword [esp], str.ResumeThread_failed
call fcn.004020f0
call dword [sym.imp.KERNEL32.dll_DebugBreak]
mov eax, dword [0x42d534]
test eax, eax
je 0x408198
mov ecx, dword [0x42d11c]
test ecx, ecx
jne 0x408198
mov eax, dword [ebx + 4]
cmp eax, 0x44c324
je 0x408185
mov edx, dword [0x42d754]
test edx, edx
je 0x4081f8
cmp ebx, 0x42d0e0
jne 0x408230
lea esi, [esi]
and byte [ebx + 0x10], 0xbf
mov ebx, dword [ebx]
test ebx, ebx
jne 0x408136
add edi, 1
cmp edi, 0x100
jne 0x408120
mov ecx, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x4c]
test ecx, ecx
jne 0x4083c1
test ebx, ebx
jns 0x408277
mov eax, 1
jmp 0x408286
mov eax, dword [0x42d838]
mov dword [ebp - 0x4c], 1
mov dword [eax + edi*4], ebx
mov eax, dword [0x42d83c]
add edi, 1
jmp 0x407f7b
and eax, 0xfffff000
xor ecx, ecx
mov edx, 1
call fcn.00407ac0
cmp ebx, 0x42d0e0
je 0x408198
mov eax, dword [0x42d534]
test eax, eax
je 0x408198
mov ecx, dword [0x42d11c]
test ecx, ecx
jne 0x408198
lea esi, [esi]
mov edx, dword [0x42d754]
mov eax, ebx
and eax, 0xfffff000
test edx, edx
jne 0x408198
xor ecx, ecx
mov edx, 1
call fcn.00407ac0
jmp 0x408198
mov edx, dword [ebp - 0x4c]
mov ebx, dword [0x42d760]
test ebx, ebx
jne 0x4087a9
mov dword [edx], esi
mov dword [edx + 4], ecx
mov dword [0x42d0c0], edx
jmp 0x407f47
mov eax, dword [0x42d760]
test eax, eax
jne 0x40841e
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, 0xffffffff
add dword [0x42d544], 1
jmp 0x40810e
mov eax, dword [0x42d11c]
mov dword [ebp - 0x4c], eax
test eax, eax
jne 0x408778
mov esi, dword [0x42d754]
test esi, esi
je 0x4084b1
cmp dword [ebp - 0x54], 5
jne 0x4087ff
mov eax, dword [0x42d808]
test eax, eax
je 0x408882
lea ebx, [ebp - 0x34]
mov dword [ebp - 0x60], 0
mov edi, 1
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x5c], ebx
jmp 0x408357
mov eax, dword [ebp - 0x60]
add ebx, dword [0x441970]
mov esi, dword [ebx]
mov ebx, dword [ebx + 4]
test eax, eax
je 0x408334
cmp esi, dword [0x44a304]
je 0x408334
mov eax, dword [0x44a300]
lea edx, [eax + 1]
mov dword [0x44a300], edx
cmp eax, 4
jg 0x408334
mov dword [0x44a304], esi
mov dword [esp + 4], esi
mov dword [esp], str.GC_Warning:_GC_gww_read_dirty_unexpectedly_failed_at__p:_Falling_back_to_marking_all_pages_dirty_n
call dword [0x422184]
cmp dword [ebp - 0x54], 5
jne 0x408680
add dword [ebp - 0x60], 1
mov eax, dword [ebp - 0x60]
cmp eax, dword [0x42d808]
je 0x4086c7
mov esi, dword [0x42d754]
lea ebx, [eax*8]
nop
mov eax, dword [0x441970]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x38], 0x800
mov dword [esp + 0xc], 0x44a320
mov dword [esp + 0x14], edx
add eax, ebx
lea edx, [ebp - 0x38]
mov dword [esp + 0x10], edx
mov edx, dword [eax + 4]
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 0x4082f0
cmp dword [ebp - 0x54], 5
mov eax, dword [ebp - 0x38]
jne 0x4086d4
cmp eax, 0x800
jne 0x40833e
mov esi, dword [0x42d754]
jmp 0x408360
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [0x42d760]
mov ecx, eax
test edx, edx
je 0x4084a4
mov esi, dword [0x44c340]
mov edx, dword [0x44c33c]
test esi, esi
js 0x40876f
cmp edx, 0x3e7
ja 0x40876f
mov eax, dword [ebp - 0x64]
sub ecx, eax
mov eax, 0x7fffffff
cmp ecx, eax
cmovbe eax, ecx
add eax, esi
lea esi, [edx + 1]
mov dword [0x44c340], eax
mov dword [0x44c33c], esi
test ebx, ebx
js 0x40874a
mov dword [esp + 4], ebx
mov dword [esp], str.Abandoned_stopped_marking_after__d_iterations_n
call fcn.00402d00
jmp 0x408284
mov eax, dword [0x42d7a4]
mov dword [esp + 8], eax
mov eax, dword [0x42d544]
mov dword [esp], str._n____Marking_for_collection__lu_after__lu_allocated_bytes_n
add eax, 1
mov dword [esp + 4], eax
call fcn.00402d00
mov eax, dword [0x42d760]
test eax, eax
je 0x408011
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x68], 1
mov dword [ebp - 0x64], eax
jmp 0x40801f
mov edx, dword [0x42d838]
mov ebx, 1
mov eax, edx
shr edx, 0xc
shr eax, 0x11
mov ecx, edx
and eax, 0x1fff
shl ebx, cl
add eax, 0x307c
lock or dword [eax*4 + 0x42d780], ebx
jmp 0x408004
test ebx, ebx
js 0x4081c7
jmp 0x408284
cmp dword [ebp - 0x54], 5
mov dword [esp + 8], 0x8000
jne 0x408891
mov dword [esp + 4], 0
mov dword [esp], 0x439970
call sub.msvcrt.dll_memset
mov eax, dword [0x42d808]
cmp dword [0x44a2f8], 0x1000
je 0x40887a
mov dword [ebp - 0x4c], 2
test eax, eax
je 0x408882
xor edi, edi
jmp 0x408548
mov ebx, dword [0x422180]
mov ecx, 0x20
mov eax, 2
mov dword [esp + 4], esi
mov dword [esp + 0xc], 0x44a2fc
test ebx, ebx
mov dword [esp], edx
cmovne eax, ecx
mov dword [esp + 8], eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
sub esp, 0x10
test eax, eax
je 0x40864f
mov eax, dword [0x42d808]
add edi, 1
cmp edi, eax
jae 0x4086c7
mov edx, dword [0x441970]
lea ecx, [edx + edi*8]
mov edx, dword [ecx]
mov esi, dword [ecx + 4]
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
jne 0x4084ff
add esi, edx
cmp edx, esi
jae 0x40853d
mov dword [ebp - 0x50], edi
mov eax, edx
mov edi, edx
jmp 0x4085bb
shr ebx, 0xc
cmp eax, edi
jae 0x4085b0
mov edx, dword [0x422180]
mov ecx, 2
mov dword [esp], eax
mov dword [esp + 0xc], 0x44a2fc
test edx, edx
mov edx, 0x20
cmovne ecx, edx
mov dword [esp + 8], ecx
mov ecx, edi
sub ecx, eax
mov dword [esp + 4], ecx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
sub esp, 0x10
test eax, eax
je 0x40884d
shl ebx, 0xc
add edi, ebx
mov eax, edi
cmp edi, esi
jae 0x408607
mov ecx, edi
shr ecx, 0x16
mov ebx, dword [ecx*4 + 0x449174]
mov ecx, edi
shr ecx, 0xc
and ecx, 0x3ff
mov ecx, dword [ebx + ecx*4]
cmp ecx, 0xfff
jbe 0x408840
mov ebx, dword [ecx + 0x10]
test byte [ecx + 0xd], 4
jne 0x40856c
mov ecx, dword [ecx + 0x14]
add ebx, 0xfff
shr ebx, 0xc
test ecx, ecx
je 0x40856f
shl ebx, 0xc
add edi, ebx
cmp edi, esi
jb 0x4085bb
mov edx, edi
mov edi, dword [ebp - 0x50]
cmp eax, edx
jae 0x408538
mov ebx, dword [0x422180]
mov ecx, 2
mov dword [esp], eax
mov dword [esp + 0xc], 0x44a2fc
test ebx, ebx
mov ebx, 0x20
cmovne ecx, ebx
sub edx, eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
sub esp, 0x10
test eax, eax
jne 0x408538
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp], str.VirtualProtect_failed:_errcode_0x_X_n
mov dword [esp + 4], eax
call fcn.00402d00
mov dword [esp], str.VirtualProtect_failed
call fcn.004020f0
call dword [sym.imp.KERNEL32.dll_DebugBreak]
jmp 0x408538
shr ebx, 0xc
je 0x40833e
shl ebx, 0xc
add ebx, esi
nop
mov eax, esi
mov ecx, esi
mov edx, edi
add esi, 0x1000
shr eax, 0x11
shr ecx, 0xc
and eax, 0x1fff
shl edx, cl
or dword [eax*4 + 0x431970], edx
cmp ebx, esi
jne 0x408690
add dword [ebp - 0x60], 1
mov eax, dword [ebp - 0x60]
cmp eax, dword [0x42d808]
jne 0x408351
mov eax, dword [0x42d800]
mov dword [ebp - 0x54], eax
jmp 0x4080b6
lea ecx, [eax*4]
lea edx, [ecx + 0x44a320]
test ecx, ecx
je 0x4083b2
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x74], ebx
mov esi, 0x44a320
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x58], edx
mov edx, ecx
lea esi, [esi]
mov eax, dword [esi]
add esi, 4
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], esi
lea ebx, [eax + edx]
nop
mov esi, eax
mov ecx, eax
mov edx, edi
add eax, 0x1000
shr esi, 0x11
shr ecx, 0xc
and esi, 0x1fff
shl edx, cl
or dword [esi*4 + 0x431970], edx
cmp eax, ebx
jb 0x408710
mov esi, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x50]
cmp dword [ebp - 0x58], esi
jne 0x408700
mov ebx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x78]
jmp 0x4083b2
xor edx, edx
mov dword [esp + 8], 0
div esi
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.00402d00
jmp 0x4081c7
shr esi, 1
shr edx, 1
jmp 0x4083f7
cmp dword [ebp - 0x54], 5
mov dword [esp + 8], 0x8000
jne 0x4087ca
mov dword [esp + 4], 0
mov dword [esp], 0x439970
call sub.msvcrt.dll_memset
mov dword [0x44c320], 0
jmp 0x4080d1
mov dword [ebp - 0x4c], edx
mov dword [esp + 4], esi
mov dword [esp], str.Found_new_system_malloc_AllocationBase_at__p_n
call fcn.00402d00
mov ecx, dword [0x42d0c0]
mov edx, dword [ebp - 0x4c]
jmp 0x408267
mov dword [esp + 4], 0x439970
mov dword [esp], 0x431970
call sub.msvcrt.dll_memcpy
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], 0x439970
call sub.msvcrt.dll_memset
jmp 0x4080b6
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], 0x431970
call sub.msvcrt.dll_memset
mov eax, dword [0x42d808]
test eax, eax
jne 0x4082d4
jmp 0x4080b6
mov edx, dword [ebp - 0x4c]
mov dword [esp], edx
call sub.msvcrt.dll_free
jmp 0x407f47
add edi, 0x1000
mov eax, edi
jmp 0x4085b7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp], str.VirtualProtect_failed:_errcode_0x_X_n
mov dword [esp + 4], eax
call fcn.00402d00
mov dword [esp], str.VirtualProtect_failed
call fcn.004020f0
call dword [sym.imp.KERNEL32.dll_DebugBreak]
jmp 0x4085b0
test eax, eax
jne 0x4084fb
mov dword [0x44c320], 0
jmp 0x4080d1
mov dword [esp + 4], 0x439970
xor ebx, ebx
mov dword [esp], 0x431970
call sub.msvcrt.dll_memcpy
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], 0x439970
call sub.msvcrt.dll_memset
cmp dword [0x44a2f8], 0x1000
setne bl
lea eax, [ebx + ebx]
mov dword [ebp - 0x4c], eax
mov eax, dword [0x42d808]
test eax, eax
jne 0x4084fb
jmp 0x4080b6