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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x3c
mov eax, dword [0x51a3c8]
or eax, dword [0x4b1570]
mov esi, dword [esp + 0x50]
jne 0x45e3f0
mov eax, dword [0x51a3c0]
test eax, eax
je 0x45e720
mov edi, dword [0x4b15a4]
test edi, edi
je 0x45e720
mov edx, dword [esp + 0x58]
test edx, edx
sete bl
test eax, eax
sete al
or al, bl
je 0x45e9f8
mov eax, dword [0x488234]
mov dword [esp], eax
call fcn.0045d830
mov edi, eax
cmp eax, 1
je 0x45e3d1
test bl, bl
je 0x45e3f5
mov eax, dword [0x4b1614]
mov dword [0x51a3e8], eax
mov eax, dword [0x4b15ac]
mov dword [0x51a3e4], eax
jmp 0x45e6f0
mov edi, 1
mov ecx, dword [0x4b1580]
mov ebx, dword [0x48823c]
xor edx, edx
shl ebx, 0xc
mov eax, ecx
sub eax, dword [0x51a3f0]
div ebx
mov ebx, 0x40
add eax, esi
cmp eax, ebx
cmovae ebx, eax
cmp eax, 0x1000
jbe 0x45e456
mov ebp, dword [esp + 0x54]
mov ebx, 4
test ebp, ebp
jne 0x45e440
mov ebx, dword [0x4883a4]
shr ebx, 0xc
add ebx, ebx
cmp ebx, esi
cmova ebx, esi
mov eax, 0xfffff
add ebx, esi
cmp ebx, eax
cmova ebx, eax
mov eax, 0x1000
cmp ebx, eax
cmovb ebx, eax
mov eax, dword [0x51a3ec]
cmp ecx, eax
jb 0x45e700
cmp dword [0x488224], 1
jbe 0x45e478
mov dword [esp], 0
call fcn.0046f6b0
mov dword [esp], ebx
call fcn.0045e030
mov ebp, eax
test eax, eax
jne 0x45e6d8
cmp ebx, esi
je 0x45e49e
mov dword [esp], esi
call fcn.0045e030
test eax, eax
jne 0x45e6d8
test edi, edi
je 0x45e7b0
mov eax, dword [0x51a3a0]
lea edx, [eax + 1]
mov dword [0x51a3a0], edx
mov edx, dword [0x488204]
cmp eax, dword [0x51a3a4]
jae 0x45e788
mov dword [esp + 4], 0
mov dword [esp], str.GC_Warning:_Out_of_Memory___Trying_to_continue..._n
call edx
mov ebx, dword [0x4b1570]
test ebx, ebx
jne 0x45e6f0
mov eax, dword [0x51a400]
test eax, eax
je 0x45e4f7
mov dword [esp], 0
call eax
mov eax, dword [0x51a3c8]
test eax, eax
jne 0x45e910
mov eax, dword [0x51a3b8]
test eax, eax
je 0x45e50f
call eax
mov eax, dword [0x4b1564]
xor edi, edi
mov ebp, eax
or ebp, dword [0x51a428]
je 0x45e535
test eax, eax
jne 0x45eba8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebp, 1
mov edi, eax
call fcn.00464500
mov eax, dword [0x51a3c4]
test eax, eax
jne 0x45e950
mov esi, dword [0x4b1558]
test esi, esi
jne 0x45e960
call fcn.00461ed0
call fcn.00461e30
mov dword [0x51a404], 1
call fcn.00460b00
mov esi, eax
call fcn.0045f1a0
mov ecx, dword [0x4b1564]
test ecx, ecx
jne 0x45e988
mov dword [esp + 0x2c], 0
call fcn.00465720
mov eax, dword [0x51a400]
test eax, eax
je 0x45e5a2
mov dword [esp], 6
call eax
call fcn.0046b5b0
mov eax, dword [0x51a400]
test eax, eax
je 0x45ea08
mov dword [esp], 7
call eax
mov edx, dword [0x4b1564]
test edx, edx
jne 0x45ea15
mov eax, dword [0x51a400]
test eax, eax
je 0x45e5dd
mov dword [esp], 1
call eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00461c80
call fcn.00461e70
jmp 0x45e623
add ebx, 1
mov dword [esp], esi
call fcn.00463190
test eax, eax
je 0x45e620
mov eax, dword [0x51a3c4]
test eax, eax
je 0x45e64e
mov eax, dword [0x51e510]
test eax, eax
je 0x45e64e
mov eax, dword [0x4b1564]
test eax, eax
jne 0x45ebd3
mov eax, dword [0x4b1578]
add dword [0x51a3cc], 1
mov dword [0x51e510], 0
test eax, eax
je 0x45e66e
call dword [0x51a3b4]
mov eax, dword [0x51a400]
test eax, eax
je 0x45e68d
mov dword [esp], 2
call eax
mov dword [esp], 8
call dword [0x51a400]
call fcn.0046b6f0
mov eax, dword [0x51a400]
test eax, eax
je 0x45e6a4
mov dword [esp], 9
call eax
mov eax, dword [0x4b1564]
test eax, eax
jne 0x45eab0
call fcn.0045c9f0
test ebp, ebp
jne 0x45ea40
mov eax, dword [0x51a400]
test eax, eax
je 0x45e6f0
mov dword [esp], 5
call eax
jmp 0x45e6f0
mov ebx, dword [0x51a3a0]
test ebx, ebx
je 0x45e6f0
mov ecx, dword [0x4b1564]
test ecx, ecx
jne 0x45e9e0
mov ebp, 1
add esp, 0x3c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret
sub eax, ecx
shr eax, 0xc
cmp esi, eax
mov edx, eax
cmovae edx, esi
cmp eax, ebx
cmovb ebx, edx
jmp 0x45e463
mov eax, dword [0x4b1614]
mov edx, dword [0x51a3e8]
cmp edx, eax
jae 0x45e750
mov ecx, dword [0x4b15ac]
or ecx, dword [0x51a3e4]
je 0x45e750
sub eax, edx
imul eax, dword [0x48821c]
mov ecx, dword [0x4b15a4]
cmp ecx, eax
jb 0x45e763
call fcn.0045c690
test eax, eax
je 0x45e3f0
mov ecx, dword [0x4b15a4]
mov ebx, dword [esp + 0x58]
mov eax, 0x45bf60
test ebx, ebx
sete bl
test ecx, ecx
je 0x45e3be
mov eax, dword [0x51a3c0]
jmp 0x45e3a3
mov eax, dword [0x4b1580]
sub eax, dword [0x4b15e4]
mov dword [esp], str.GC_Warning:_Out_of_Memory__Heap_size:__lu_MiB._Returning_NULL__n
shr eax, 0x14
mov dword [esp + 4], eax
call edx
jmp 0x45e6f5
mov ebx, dword [0x4b1570]
test ebx, ebx
jne 0x45e6f0
mov eax, dword [0x51a400]
test eax, eax
je 0x45e7d0
mov dword [esp], 0
call eax
mov edi, dword [0x51a3c8]
test edi, edi
jne 0x45e9a0
mov eax, dword [0x51a3b8]
test eax, eax
je 0x45e7e9
call eax
mov eax, dword [0x4b1564]
xor edi, edi
mov ebp, eax
or ebp, dword [0x51a428]
je 0x45e80f
test eax, eax
jne 0x45ebb9
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebp, 1
mov edi, eax
call fcn.00464500
mov ecx, dword [0x51a3c4]
test ecx, ecx
jne 0x45eb48
mov edx, dword [0x4b1558]
test edx, edx
jne 0x45eb20
call fcn.00461ed0
call fcn.00461e30
mov dword [0x51a404], 1
call fcn.00460b00
mov esi, eax
call fcn.0045f1a0
mov eax, dword [0x4b1564]
test eax, eax
jne 0x45eb58
mov dword [esp + 0x2c], 0
call fcn.00465720
mov eax, dword [0x51a400]
test eax, eax
je 0x45e87c
mov dword [esp], 6
call eax
call fcn.0046b5b0
mov eax, dword [0x51a400]
test eax, eax
je 0x45eb70
mov dword [esp], 7
call eax
mov eax, dword [0x4b1564]
test eax, eax
jne 0x45eb7e
mov eax, dword [0x51a400]
test eax, eax
je 0x45e8b6
mov dword [esp], 1
call eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00461c80
call fcn.00461e70
jmp 0x45e8fb
add ebx, 1
mov dword [esp], esi
call fcn.00463190
test eax, eax
je 0x45e8f8
jmp 0x45e62f
call fcn.00461ca0
test eax, eax
je 0x45e504
mov eax, dword [0x4b1564]
test eax, eax
je 0x45e93c
jmp 0x45ebe8
mov dword [esp], 1
call fcn.0045cf30
call fcn.00461ca0
test eax, eax
jne 0x45e930
jmp 0x45e504
call fcn.0046c020
jmp 0x45e547
mov dword [esp + 4], 0
mov dword [esp], 0x45bf60
call fcn.0046e630
test eax, eax
jne 0x45e555
jmp 0x45e6f0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x2c], eax
jmp 0x45e58b
call fcn.00461ca0
test eax, eax
je 0x45e7de
mov esi, dword [0x4b1564]
test esi, esi
je 0x45e9cc
jmp 0x45ebf9
mov dword [esp], 1
call fcn.0045cf30
call fcn.00461ca0
test eax, eax
jne 0x45e9c0
jmp 0x45e7de
mov dword [esp], str.Memory_available_again..._n
call fcn.0045aed0
jmp 0x45e6f0
xor ebx, ebx
mov eax, 0x45bf60
jmp 0x45e3be
mov eax, dword [0x4b1564]
test eax, eax
je 0x45e5dd
mov eax, dword [0x4b15a4]
mov dword [esp], str._n____Marking_for_collection__lu_after__lu_allocated_bytes_n
mov dword [esp + 8], eax
mov eax, dword [0x51a3cc]
add eax, 1
mov dword [esp + 4], eax
call fcn.0045aed0
jmp 0x45e5cb
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, edi
mov edi, dword [0x51a428]
test edi, edi
je 0x45ea83
mov edx, dword [0x51a430]
mov ecx, dword [0x51a42c]
add edx, eax
mov dword [0x51a430], edx
cmp ecx, 0xf423f
jbe 0x45ea83
sub ecx, 0xf4240
add edx, 1
mov dword [0x51a42c], ecx
mov dword [0x51a430], edx
mov esi, dword [0x4b1564]
test esi, esi
je 0x45e6be
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], str.Complete_collection_took__lu_ms__lu_ns_n
call fcn.0045aed0
jmp 0x45e6be
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x2c]
mov edx, dword [0x51a3f8]
mov ebx, dword [0x51a3f4]
sub eax, ecx
mov ecx, eax
test edx, edx
js 0x45ebca
cmp ebx, 0x3e7
ja 0x45ebca
mov eax, 0x7fffffff
mov dword [esp + 8], 0
cmp ecx, eax
mov dword [esp + 4], ecx
cmovbe eax, ecx
add ebx, 1
mov dword [esp], str.World_stopped_marking_took__lu_ms__lu_ns___u_ms_in_average__n
mov dword [0x51a3f4], ebx
add eax, edx
xor edx, edx
mov dword [0x51a3f8], eax
div ebx
mov dword [esp + 0xc], eax
call fcn.0045aed0
jmp 0x45e6b1
mov dword [esp + 4], 0
mov dword [esp], 0x45bf60
call fcn.0046e630
test eax, eax
jne 0x45e830
jmp 0x45e6f0
call fcn.0046c020
jmp 0x45e822
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x2c], eax
jmp 0x45e865
mov edx, dword [0x4b1564]
test edx, edx
je 0x45e8b6
mov eax, dword [0x4b15a4]
mov dword [esp], str._n____Marking_for_collection__lu_after__lu_allocated_bytes_n
mov dword [esp + 8], eax
mov eax, dword [0x51a3cc]
add eax, 1
mov dword [esp + 4], eax
call fcn.0045aed0
jmp 0x45e8a4
mov dword [esp], str.Initiating_full_world_stop_collection__n
call fcn.0045aed0
jmp 0x45e528
mov dword [esp], str.Initiating_full_world_stop_collection__n
call fcn.0045aed0
jmp 0x45e802
shr edx, 1
shr ebx, 1
jmp 0x45eade
mov dword [esp + 4], ebx
mov dword [esp], str.Stopped_marking_done_after__d_iterations_with_disabled_parallel_marker_n
call fcn.0045aed0
jmp 0x45e64e
mov dword [esp], str.GC_try_to_collect_inner:_finishing_collection_in_progress_n
call fcn.0045aed0
jmp 0x45e93c
mov dword [esp], str.GC_try_to_collect_inner:_finishing_collection_in_progress_n
call fcn.0045aed0
jmp 0x45e9cc