Function at 0x45a520
Capabilities:
Check for time delay via gettickcount
Query environment variable

Disassembly:
push edi
push esi
push ebx
sub esp, 0x20
mov dword [esp], 0x48fba2
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
sub esp, 4
test eax, eax
je 0x45a570
mov dword [esp + 4], str.InitializeCriticalSectionAndSpinCount
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
sub esp, 8
test eax, eax
je 0x45a570
mov dword [esp + 4], 0xfa0
mov dword [esp], 0x51eafc
call eax
mov ebx, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
sub esp, 8
jmp 0x45a582
mov dword [esp], 0x51eafc
mov ebx, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call ebx
sub esp, 4
mov dword [esp], 0x4b1524
call ebx
sub esp, 4
call fcn.0045efd0
call fcn.0045f150
mov dword [esp], str.GC_PRINT_VERBOSE_STATS
call sub.msvcrt.dll_getenv
test eax, eax
je 0x45ab80
mov dword [0x4b1564], 2
mov dword [esp], str.GC_DUMP_REGULARLY
call sub.msvcrt.dll_getenv
test eax, eax
je 0x45a5d0
mov dword [0x4b155c], 1
mov dword [esp], str.GC_FIND_LEAK
call sub.msvcrt.dll_getenv
test eax, eax
je 0x45a5ea
mov dword [0x4b1558], 1
mov dword [esp], str.GC_FINDLEAK_DELAY_FREE
call sub.msvcrt.dll_getenv
test eax, eax
je 0x45a604
mov dword [0x4b1554], 1
mov dword [esp], str.GC_ALL_INTERIOR_POINTERS
call sub.msvcrt.dll_getenv
test eax, eax
je 0x45a61e
mov dword [0x4b1550], 1
mov dword [esp], str.GC_DONT_GC
call sub.msvcrt.dll_getenv
test eax, eax
je 0x45a638
mov dword [0x4b1570], 1
mov dword [esp], str.GC_PRINT_BACK_HEIGHT
call sub.msvcrt.dll_getenv
test eax, eax
je 0x45a652
mov dword [0x4b1560], 1
mov dword [esp], str.GC_NO_BLACKLIST_WARNING
call sub.msvcrt.dll_getenv
test eax, eax
je 0x45a66c
mov dword [0x48820c], 0x7fffffff
mov dword [esp], str.GC_TRACE
call sub.msvcrt.dll_getenv
test eax, eax
je 0x45a691
mov dword [esp + 4], 0
mov dword [esp], str.GC_Warning:_Tracing_not_enabled:_Ignoring_GC_TRACE_value_n
call dword [0x488204]
mov dword [esp], str.GC_PAUSE_TIME_TARGET
call sub.msvcrt.dll_getenv
test eax, eax
je 0x45a6b2
mov dword [esp], eax
call sub.msvcrt.dll_atol
test eax, eax
jle 0x45a6b2
mov dword [0x488238], eax
mov dword [esp], str.GC_FULL_FREQUENCY
call sub.msvcrt.dll_getenv
test eax, eax
je 0x45a6d3
mov dword [esp], eax
call sub.msvcrt.dll_atoi
test eax, eax
jle 0x45a6d3
mov dword [0x488240], eax
mov dword [esp], str.GC_LARGE_ALLOC_WARN_INTERVAL
call sub.msvcrt.dll_getenv
test eax, eax
je 0x45a6f8
mov dword [esp], eax
call sub.msvcrt.dll_atol
test eax, eax
jle 0x45aa80
mov dword [0x48820c], eax
mov dword [esp], str.GC_FREE_SPACE_DIVISOR
call sub.msvcrt.dll_getenv
test eax, eax
je 0x45a719
mov dword [esp], eax
call sub.msvcrt.dll_atoi
test eax, eax
jle 0x45a719
mov dword [0x48823c], eax
mov dword [esp], str.GC_UNMAP_THRESHOLD
call sub.msvcrt.dll_getenv
test eax, eax
je 0x45a750
cmp byte [eax], 0x30
jne 0x45a890
cmp byte [eax + 1], 0
jne 0x45a890
mov dword [0x488224], 0
lea esi, [esi]
lea esi, [esi]
mov dword [esp], str.GC_FORCE_UNMAP_ON_GCOLLECT
call sub.msvcrt.dll_getenv
test eax, eax
je 0x45a773
cmp byte [eax], 0x30
je 0x45aa60
mov dword [0x4b1544], 1
mov dword [esp], str.GC_USE_ENTIRE_HEAP
call sub.msvcrt.dll_getenv
test eax, eax
je 0x45a796
cmp byte [eax], 0x30
je 0x45aa40
mov dword [0x51ecc0], 1
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [0x51a394], eax
mov eax, dword [0x4b1550]
test eax, eax
je 0x45a7b6
mov dword [0x48827c], 0xfffffffc
mov dword [esp + 4], 0x51a384
mov dword [esp], 0x4b1580
call fcn.00460b20
mov dword [esp + 4], 0x4883a0
mov dword [esp], 0x488260
call fcn.00460b20
mov edi, dword [0x4b1574]
test edi, edi
je 0x45aba8
call fcn.00461290
mov esi, dword [0x51a3c8]
test esi, esi
je 0x45aaf0
mov ecx, dword [0x51a38c]
test ecx, ecx
je 0x45ab12
mov dword [0x51a440], 1
mov dword [0x51a3c8], 1
call fcn.0045f3b0
call fcn.00464450
call fcn.00463380
mov dword [esp], str.GC_INITIAL_HEAP_SIZE
call sub.msvcrt.dll_getenv
mov esi, eax
test eax, eax
je 0x45a8c1
cmp byte [eax], 0
je case.0x45a880.1
lea eax, [esp + 0x1c]
mov dword [esp + 8], 0xa
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.msvcrt.dll_strtoul
mov edx, dword [esp + 0x1c]
mov edi, eax
movzx eax, byte [edx]
test al, al
je 0x45ab28
cmp byte [edx + 1], 0
jne case.0x45a880.1
sub eax, 0x47
cmp al, 0x26
ja case.0x45a880.1
movzx eax, al
jmp dword [eax*4 + 0x48ff10]
mov dword [esp], eax
call sub.msvcrt.dll_atoi
test eax, eax
jle 0x45a750
mov dword [0x488224], eax
jmp 0x45a750
mov dword [esp + 4], esi
mov dword [esp], str.GC_Warning:_Bad_initial_heap_size__s___ignoring_n
call dword [0x488204]
mov dword [esp], str.GC_MAXIMUM_HEAP_SIZE
mov edi, 0x40000
call sub.msvcrt.dll_getenv
mov esi, eax
test eax, eax
je 0x45a940
cmp byte [esi], 0
je case.0x45ab71.1
lea eax, [esp + 0x1c]
mov dword [esp + 8], 0xa
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.msvcrt.dll_strtoul
mov ecx, dword [esp + 0x1c]
movzx edx, byte [ecx]
test dl, dl
jne 0x45ab58
cmp eax, 0xffffffff
sete dl
cmp eax, edi
jb case.0x45ab71.1
test dl, dl
jne case.0x45ab71.1
mov edx, dword [0x51a3a4]
test edx, edx
jne 0x45a932
mov dword [0x51a3a4], 2
mov dword [esp], eax
call fcn.0045df70
jmp 0x45aab1
mov eax, 0x40
mov edi, 0x40000
mov dword [esp], eax
call fcn.0045e030
test eax, eax
je 0x45ac7f
add dword [0x4b1584], edi
mov edi, dword [0x4b1550]
test edi, edi
jne 0x45aac8
mov dword [esp], 0
mov edi, 0x100
call fcn.004641a0
mov edx, dword [0x4b1550]
mov dword [0x4b2778], 1
sub edi, edx
cmp edx, 0x100
je 0x45a9ea
mov eax, 0xfffffff8
sub eax, edx
cmp eax, 1
jbe 0x45ac3f
mov ecx, 0x101
lea esi, [edx + 7]
sub ecx, edx
cmp ecx, eax
cmova ecx, eax
mov eax, 1
lea esi, [esi]
lea edx, [esi + eax]
shr edx, 3
mov dword [eax*4 + 0x4b2778], edx
add eax, 1
cmp eax, ecx
jb 0x45a9c0
cmp edi, eax
jb 0x45a9ea
mov dword [eax*4 + 0x4b2778], 0x1fffffff
add eax, 1
cmp edi, eax
jae 0x45a9d8
mov dword [0x4b153c], 1
call fcn.0046c6f0
mov esi, dword [0x4b155c]
test esi, esi
jne 0x45abc0
mov ecx, dword [0x4b156c]
test ecx, ecx
je 0x45aa1b
mov edx, dword [0x51a3c8]
test edx, edx
je 0x45aa27
mov dword [esp], 0x45bf60
call fcn.0045d830
mov eax, dword [0x4b1558]
test eax, eax
jne 0x45aad8
add esp, 0x20
pop ebx
pop esi
pop edi
jmp 0x4694a0
cmp byte [eax + 1], 0
jne 0x45a78c
mov dword [0x51ecc0], 0
jmp 0x45a796
cmp byte [eax + 1], 0
jne 0x45a769
mov dword [0x4b1544], 0
jmp 0x45a773
mov dword [esp + 4], 0
mov dword [esp], str.GC_Warning:_GC_LARGE_ALLOC_WARN_INTERVAL_environment_variable_has_bad_value___ignoring_n
call dword [0x488204]
jmp 0x45a6f8
mov dword [esp + 4], esi
mov dword [esp], str.GC_Warning:_Bad_maximum_heap_size__s___ignoring_n
call dword [0x488204]
test edi, edi
je 0x45a960
mov eax, edi
shr eax, 0xc
jmp 0x45a94a
call fcn.00464300
jmp 0x45a96e
mov dword [esp], 0x459a50
call fcn.004014a0
add esp, 0x20
pop ebx
pop esi
pop edi
jmp 0x4694a0
mov dword [esp], str.GC_ENABLE_INCREMENTAL
call sub.msvcrt.dll_getenv
test eax, eax
je 0x45a821
mov ecx, dword [0x51a38c]
test ecx, ecx
jne 0x45a80d
call fcn.0045fbb0
mov dword [0x51a3c8], eax
jmp 0x45a821
cmp edi, 0xffffffff
je case.0x45a880.1
mov dword [esp], str.GC_MAXIMUM_HEAP_SIZE
call sub.msvcrt.dll_getenv
mov esi, eax
test eax, eax
je 0x45aab1
cmp byte [esi], 0
jne 0x45a8e1
jmp case.0x45ab71.1
cmp byte [ecx + 1], 0
jne case.0x45ab71.1
sub edx, 0x47
cmp dl, 0x26
ja case.0x45ab71.1
movzx edx, dl
jmp dword [edx*4 + 0x48ffac]
mov dword [esp], str.GC_PRINT_STATS
call sub.msvcrt.dll_getenv
test eax, eax
je 0x45a5b6
mov dword [0x4b1564], 1
jmp 0x45a5b6
call fcn.0045f120
mov dword [0x4b1574], eax
jmp 0x45a7ec
call ebx
mov dword [esp], str._nGC_Dump_collection__lu_n
mov ebx, eax
mov eax, dword [0x51a3cc]
mov dword [esp + 4], eax
call fcn.0045a3e0
mov eax, ebx
sub eax, dword [0x51a394]
mov dword [esp], str.Time_since_GC_init:__lu_ms_n
mov dword [esp + 4], eax
call fcn.0045a3e0
mov dword [esp], str._nStatic_roots:_n
call fcn.0045a3e0
call fcn.00460570
mov dword [esp], str._nHeap_sections:_n
call fcn.0045a3e0
call fcn.0045deb0
mov dword [esp], str._nFree_blocks:_n
call fcn.0045a3e0
call fcn.0046f380
mov dword [esp], str._nBlocks_in_use:_n
call fcn.0045a3e0
call fcn.0046e3a0
call fcn.00465f50
jmp 0x45aa07
mov eax, 1
jmp 0x45a9d8
shl eax, 0x14
xor edx, edx
jmp 0x45a90e
shl eax, 0xa
xor edx, edx
jmp 0x45a90e
shl eax, 0x1e
xor edx, edx
jmp 0x45a90e
shl edi, 0x14
jmp 0x45ab31
shl edi, 0xa
jmp 0x45ab31
shl edi, 0x1e
jmp 0x45ab31
mov dword [esp], str.Cant_start_up:_not_enough_memory_n
call fcn.0045a490
xor eax, eax
mov dword [esp], eax
call dword [0x488200]
mov dword [esp], 1
call sub.msvcrt.dll_exit
lea esi, [esi]
lea esi, [esi]
ret