Function at 0x403e30
Capabilities:
Get system information on windows
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov dword [esp], 0x42a524
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_GetSystemInfo]
sub esp, 4
mov dword [esp], 0x42a500
call ebx
mov eax, dword [0x42a504]
sub esp, 4
mov dword [0x42a4e0], eax
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov edx, eax
not edx
shr edx, 0x1f
mov dword [0x42a4cc], edx
xor edx, edx
test eax, eax
jns 0x403e85
xor edx, edx
test al, 0xfc
sete dl
mov dword [esp], str.GC_PRINT_VERBOSE_STATS
or dword [0x42a5d4], edx
call sub.msvcrt.dll_getenv
test eax, eax
je 0x404b7c
mov dword [0x42a7dc], 2
mov dword [esp], str.GC_DUMP_REGULARLY
call sub.msvcrt.dll_getenv
test eax, eax
je 0x403ec3
mov dword [0x42a4dc], 1
mov dword [esp], str.GC_FIND_LEAK
call sub.msvcrt.dll_getenv
test eax, eax
je 0x403edd
mov dword [0x42a5cc], 1
mov dword [esp], str.GC_FINDLEAK_DELAY_FREE
call sub.msvcrt.dll_getenv
test eax, eax
je 0x403ef7
mov dword [0x42a4d8], 1
mov dword [esp], str.GC_ALL_INTERIOR_POINTERS
call sub.msvcrt.dll_getenv
test eax, eax
je 0x403f11
mov dword [0x42a800], 1
mov dword [esp], str.GC_DONT_GC
call sub.msvcrt.dll_getenv
test eax, eax
je 0x403f2b
mov dword [0x42a5c4], 1
mov dword [esp], str.GC_PRINT_BACK_HEIGHT
call sub.msvcrt.dll_getenv
test eax, eax
je 0x403f45
mov dword [0x42a4d4], 1
mov dword [esp], str.GC_NO_BLACKLIST_WARNING
call sub.msvcrt.dll_getenv
test eax, eax
je 0x403f5f
mov dword [0x421840], 0x7fffffff
mov dword [esp], str.GC_TRACE
call sub.msvcrt.dll_getenv
test eax, eax
je 0x403f84
mov dword [esp + 4], 0
mov dword [esp], str.GC_Warning:_Tracing_not_enabled:_Ignoring_GC_TRACE_value_n
call dword [0x42184c]
mov dword [esp], str.GC_PAUSE_TIME_TARGET
call sub.msvcrt.dll_getenv
test eax, eax
je 0x403fa5
mov dword [esp], eax
call sub.msvcrt.dll_atol
test eax, eax
jle 0x403fa5
mov dword [0x41f028], eax
mov dword [esp], str.GC_FULL_FREQUENCY
call sub.msvcrt.dll_getenv
test eax, eax
je 0x403fc6
mov dword [esp], eax
call sub.msvcrt.dll_atoi
test eax, eax
jle 0x403fc6
mov dword [0x41f024], eax
mov dword [esp], str.GC_LARGE_ALLOC_WARN_INTERVAL
call sub.msvcrt.dll_getenv
test eax, eax
je 0x403feb
mov dword [esp], eax
call sub.msvcrt.dll_atol
test eax, eax
jle 0x4042d6
mov dword [0x421840], eax
mov dword [esp], str.GC_FREE_SPACE_DIVISOR
call sub.msvcrt.dll_getenv
test eax, eax
je 0x40400c
mov dword [esp], eax
call sub.msvcrt.dll_atoi
test eax, eax
jle 0x40400c
mov dword [0x4216e0], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x48], eax
call eax
mov dword [0x447278], eax
mov eax, dword [0x42a800]
test eax, eax
je 0x40402e
mov dword [0x42171c], 0xfffffffc
mov edx, 0x447214
mov eax, 0x42a820
call sym._GC_exclude_static_roots_inner.lto_priv.81
mov eax, 0x421700
mov edx, 0x421840
call sym._GC_exclude_static_roots_inner.lto_priv.81
mov eax, dword [0x42a4d0]
test eax, eax
je 0x404b00
mov eax, 0x100c
call sym._GC_scratch_alloc.lto_priv.60
mov dword [0x42a894], eax
test eax, eax
je 0x404d46
lea edi, [eax + 4]
mov dword [eax], 0
mov dword [eax + 0x1008], 0
and edi, 0xfffffffc
sub eax, edi
lea ecx, [eax + 0x100c]
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov edx, dword [0x42a894]
lea esi, [esi]
nop
mov dword [eax*4 + 0x446214], edx
add eax, 1
cmp eax, 0x400
jne 0x4040a0
mov eax, dword [0x42a7e8]
test eax, eax
je 0x4048f4
cmp dword [0x42a7dc], 2
je 0x404ce5
test word [0x42a4e0], 0xfff
jne 0x404999
call sym._detect_GetWriteWatch.lto_priv.83
mov eax, dword [0x42a7e0]
test eax, eax
je 0x404c02
mov eax, dword [0x42a7dc]
test eax, eax
jne 0x404cd4
mov dword [0x42a7e8], 1
mov esi, dword [0x42a5d4]
test esi, esi
je 0x404212
mov eax, dword [0x42a4e0]
mov esi, dword [0x42a508]
neg eax
mov edi, eax
and edi, 0x421848
add eax, edi
cmp eax, esi
jb 0x40417e
cmp edi, eax
jb 0x40417e
lea ebx, [ebp - 0x34]
jmp 0x404161
mov edx, dword [ebp - 0x30]
test edx, edx
je 0x40417e
mov eax, edx
sub eax, dword [0x42a4e0]
mov edi, edx
cmp edx, eax
jb 0x404bc6
cmp eax, esi
jb 0x404bc6
mov dword [esp + 8], 0x1c
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
sub esp, 0xc
cmp eax, 0x1c
je 0x404140
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x40], edi
lea esi, [esi]
lea esi, [esi]
nop
mov ebx, edi
cmp dword [0x42a50c], edi
jbe 0x4041ff
lea eax, [ebp - 0x34]
mov dword [esp + 8], 0x1c
mov dword [esp + 4], eax
mov dword [esp], edi
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
sub esp, 0xc
cmp eax, 0x1c
jne 0x4041ff
mov edx, dword [ebp - 0x30]
test edx, edx
je 0x4041ff
mov eax, dword [0x42a7d4]
cmp eax, dword [0x41f020]
jbe 0x4041d3
mov dword [0x41f020], eax
mov eax, dword [0x42a4c4]
test eax, eax
jne 0x4041fb
jmp 0x4046e0
mov eax, dword [eax + 4]
test eax, eax
je 0x4046e0
cmp edx, dword [eax]
jne 0x4041f0
mov eax, dword [ebp - 0x40]
mov esi, dword [ebp - 0x3c]
cmp eax, esi
je 0x404212
xor ecx, ecx
mov edx, esi
call sym._GC_add_roots_inner.lto_priv.84
mov ebx, dword [0x42a800]
test ebx, ebx
je 0x404886
call sym._GC_scratch_alloc.constprop.39
mov dword [0x42a7f4], eax
call sym._GC_scratch_alloc.constprop.39
mov ebx, eax
mov dword [0x42a7f0], eax
mov eax, dword [0x42a7f4]
test eax, eax
je 0x404d73
test ebx, ebx
je 0x404d73
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._memset
mov dword [esp], ebx
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
call sym._memset
mov eax, 0x1000
call sym._alloc_mark_stack.lto_priv.82
mov dword [esp], str.GC_INITIAL_HEAP_SIZE
call sub.msvcrt.dll_getenv
mov ebx, eax
test eax, eax
je 0x40430a
cmp byte [eax], 0
je case.0x4042cf.1
lea eax, [ebp - 0x34]
mov dword [esp + 8], 0xa
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.msvcrt.dll_strtoul
mov edx, dword [ebp - 0x34]
mov esi, eax
movzx eax, byte [edx]
test al, al
je 0x4042f0
cmp byte [edx + 1], 0
jne case.0x4042cf.1
sub eax, 0x47
cmp al, 0x26
ja case.0x4042cf.1
movzx eax, al
jmp dword [eax*4 + 0x422b24]
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 [0x42184c]
jmp 0x403feb
cmp esi, 0xffffffff
jne 0x404959
mov dword [esp + 4], ebx
mov dword [esp], str.GC_Warning:_Bad_initial_heap_size__s___ignoring_n
call dword [0x42184c]
mov dword [esp], str.GC_MAXIMUM_HEAP_SIZE
mov esi, 0x10000
call sub.msvcrt.dll_getenv
mov ebx, eax
mov eax, 0x10
test ebx, ebx
je 0x40482d
cmp byte [ebx], 0
je case.0x404983.1
lea eax, [ebp - 0x34]
mov dword [esp + 8], 0xa
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.msvcrt.dll_strtoul
mov ecx, dword [ebp - 0x34]
movzx edx, byte [ecx]
test dl, dl
jne 0x404805
cmp eax, esi
setb dl
cmp eax, 0xffffffff
sete cl
or edx, ecx
test dl, dl
jne case.0x404983.1
mov edx, dword [0x447264]
test edx, edx
je 0x40498a
mov dword [0x42a55c], eax
test esi, esi
jne 0x404828
mov ebx, dword [0x42a800]
mov edx, 0x100
sub edx, ebx
test ebx, ebx
je 0x404778
mov esi, 0x42da10
mov ecx, 0x400
mov eax, 0x1010101
mov edi, esi
rep stosd dword es:[edi], eax
cmp byte [0x42da10], 0
jne 0x4043c7
mov byte [0x42da10], 1
mov byte [0x42a9f8], 1
mov dword [0x42b608], 1
test edx, edx
je 0x404402
lea esi, [ebx + 7]
mov eax, esi
not eax
cmp eax, 1
ja 0x404799
mov eax, 1
lea esi, [esi]
mov dword [eax*4 + 0x42b608], 0x1fffffff
add eax, 1
cmp eax, edx
jbe 0x4043f0
mov dword [0x42a558], 1
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [esp], 0x4229af
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [0x42a4c0], edi
sub esp, 4
test eax, eax
je 0x4047d0
mov dword [esp + 4], str.IsWow64Process
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
sub esp, 8
mov ebx, eax
test eax, eax
je 0x4047d0
mov eax, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0x40], eax
call eax
lea edx, [ebp - 0x34]
mov dword [esp + 4], edx
mov dword [esp], eax
call ebx
sub esp, 8
test eax, eax
jne 0x4049f3
xor eax, eax
mov dword [0x42a4bc], eax
mov eax, dword [0x42a4d0]
mov dword [ebp - 0x3c], eax
mov eax, dword [0x42a7e8]
test eax, eax
je 0x404496
mov eax, dword [0x42a7e4]
test eax, eax
je 0x404b9f
mov esi, edi
shr esi, 8
xor esi, edi
mov eax, esi
movzx esi, al
mov eax, dword [0x42a484]
test eax, eax
je 0x404bd7
mov edx, 1
mov eax, 0x18
mov dword [0x42a464], 1
call sym._GC_generic_malloc_inner_small.lto_priv.79
mov edx, 1
mov dword [0x42a460], eax
mov dword [ebp - 0x44], eax
mov eax, 0x3c
call sym._GC_generic_malloc_inner_small.lto_priv.79
mov ecx, dword [ebp - 0x44]
mov dword [0x42a460], 0
mov dword [0x42a464], 0
mov ebx, eax
test ecx, ecx
je 0x4047dd
test eax, eax
je 0x4047dd
mov eax, dword [esi*4 + 0x42a060]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov dword [esi*4 + 0x42a060], ebx
cmp ebx, 0x42a480
je 0x404530
mov eax, dword [0x42a7e4]
test eax, eax
jne 0x40492c
mov eax, dword [ebp - 0x40]
call eax
mov dword [ebp - 0x44], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov esi, eax
mov eax, dword [ebp - 0x40]
call eax
mov edx, dword [ebp - 0x44]
lea ecx, [ebx + 0xc]
mov dword [esp + 0x18], 2
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
sub esp, 0x1c
test eax, eax
je 0x404859
mov esi, dword [ebx + 4]
mov eax, dword [ebp - 0x3c]
mov dword [esi + 8], 0xffffffff
mov dword [esi], eax
test eax, eax
je 0x404915
mov eax, dword [ebp - 0x3c]
mov dword [esi + 0xc], eax
mov esi, dword [0x42a4dc]
mov dword [ebx + 8], edi
test esi, esi
jne 0x404bcd
mov ebx, dword [0x42a5c4]
test ebx, ebx
jne 0x4046c0
mov eax, dword [0x42a7dc]
mov ecx, dword [0x42a7e8]
mov dword [ebp - 0x40], eax
test ecx, ecx
je 0x40460b
mov edx, dword [0x42a8a0]
test edx, edx
je 0x40460b
test eax, eax
jne 0x404d35
lea esi, [esi]
lea esi, [esi]
mov eax, 1
call sym._GC_collect_a_little_inner.lto_priv.77
mov eax, dword [0x42a8a0]
test eax, eax
jne 0x4045f0
mov eax, dword [0x42a7dc]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x44], 0
test eax, eax
je 0x404634
mov dword [esp], 0x422aa4
call sym._GC_log_printf
mov eax, dword [ebp - 0x48]
call eax
mov dword [ebp - 0x40], 1
mov dword [ebp - 0x44], eax
call sym._GC_promote_black_lists.lto_priv.87
mov edi, dword [0x42a5cc]
test edi, edi
jne 0x4049fb
mov eax, dword [0x42a86c]
mov dword [esp + 4], 0
mov dword [esp], sym._clear_marks_for_block.lto_priv.57
mov dword [0x42a8a0], 5
sub eax, 8
mov dword [0x42a874], eax
call sym._GC_apply_to_all_blocks.constprop.49
mov eax, sym._GC_never_stop_func.lto_priv.64
mov dword [0x42a87c], 0
mov dword [0x42a8a0], 5
mov dword [0x42a898], 0
mov dword [0x42a048], 1
call sym._GC_stopped_mark.lto_priv.86
test eax, eax
jne 0x4049b0
mov esi, dword [0x42a7e8]
test esi, esi
je 0x404c90
lea esi, [esi]
mov eax, dword [0x42a5cc]
test eax, eax
jne 0x404845
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [0x42a8ac]
test ecx, ecx
jle 0x404714
cmp edx, dword [0x43ea14]
je 0x4041ff
xor eax, eax
jmp 0x40470d
cmp edx, dword [eax*4 + 0x43ea14]
je 0x4041ff
add eax, 1
cmp eax, ecx
jne 0x404700
mov esi, dword [ebp - 0x28]
add esi, edi
cmp dword [ebp - 0x24], 0x1000
je 0x404740
mov edi, esi
cmp esi, ebx
jae 0x404190
jmp 0x4041ff
mov eax, dword [ebp - 0x20]
lea edx, [eax - 4]
and edx, 0xfffffffb
je 0x404753
sub eax, 0x40
and eax, 0xffffffbf
jne 0x404722
mov edx, dword [ebp - 0x3c]
cmp edi, edx
je 0x40490d
mov eax, dword [ebp - 0x40]
cmp edx, eax
je 0x4047fa
xor ecx, ecx
call sym._GC_add_roots_inner.lto_priv.84
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x40], edi
jmp 0x404722
cmp byte [0x42da10], 0
je 0x4043b9
mov dword [0x42b608], 1
mov eax, 0xfffffff8
mov esi, 7
mov ecx, 0x101
sub ecx, ebx
cmp ecx, eax
mov ebx, ecx
cmova ebx, eax
mov eax, 1
lea esi, [esi]
lea ecx, [eax + esi]
shr ecx, 3
mov dword [eax*4 + 0x42b608], ecx
add eax, 1
cmp eax, ebx
jb 0x4047b0
jmp 0x4043fe
mov eax, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0x40], eax
jmp 0x404471
mov dword [esp], str.Failed_to_allocate_memory_for_thread_registering
mov dword [ebp - 0x44], ecx
call sym._GC_default_on_abort.lto_priv.70
call dword [sym.imp.KERNEL32.dll_DebugBreak]
mov ecx, dword [ebp - 0x44]
jmp 0x404508
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x40], edi
jmp 0x404722
cmp byte [ecx + 1], 0
je 0x404974
mov dword [esp + 4], ebx
mov dword [esp], str.GC_Warning:_Bad_maximum_heap_size__s___ignoring_n
call dword [0x42184c]
test esi, esi
je 0x404388
mov eax, esi
shr eax, 0xc
call sym._GC_expand_hp_inner.lto_priv.76
test eax, eax
je 0x404d6a
add dword [0x42a824], esi
jmp 0x404388
mov dword [esp], sym._GC_exit_check.lto_priv.65
call sym._atexit
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp], str.DuplicateHandle_failed:_errcode_0x_X_n
mov dword [esp + 4], eax
call sym._GC_log_printf
mov dword [esp], str.DuplicateHandle_failed
call sym._GC_default_on_abort.lto_priv.70
call dword [sym.imp.KERNEL32.dll_DebugBreak]
jmp 0x404583
mov ecx, dword [0x42a7f8]
test ecx, ecx
jne 0x404220
call sym._GC_scratch_alloc.constprop.39
mov dword [0x42a7fc], eax
call sym._GC_scratch_alloc.constprop.39
mov ebx, eax
mov dword [0x42a7f8], eax
mov eax, dword [0x42a7fc]
test eax, eax
je 0x404d73
test ebx, ebx
je 0x404d73
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._memset
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], ebx
call sym._memset
jmp 0x404220
mov dword [esp], str.GC_ENABLE_INCREMENTAL
call sub.msvcrt.dll_getenv
test eax, eax
jne 0x4040be
jmp 0x404103
mov dword [ebp - 0x3c], esi
jmp 0x404722
mov dword [esp], str.Bad_stack_base_in_GC_register_my_thread
call sym._GC_default_on_abort.lto_priv.70
call dword [sym.imp.KERNEL32.dll_DebugBreak]
jmp 0x40459a
mov edx, ebx
mov ecx, ebx
mov eax, 1
shr edx, 0x11
shr ecx, 0xc
and edx, 0x1fff
shl eax, cl
add edx, 0x307c
lock or dword [edx*4 + 0x42a820], eax
jmp 0x404530
shl esi, 0x14
mov dword [esp], str.GC_MAXIMUM_HEAP_SIZE
call sub.msvcrt.dll_getenv
mov ebx, eax
test eax, eax
jne 0x40432a
jmp 0x404380
sub edx, 0x47
cmp dl, 0x26
ja case.0x404983.1
movzx edx, dl
jmp dword [edx*4 + 0x422bc0]
mov dword [0x447264], 2
jmp 0x40437b
mov dword [esp], str.Page_size_not_multiple_of_HBLKSIZE
call sym._GC_default_on_abort.lto_priv.70
call dword [sym.imp.KERNEL32.dll_DebugBreak]
jmp 0x4040da
call sym._GC_finish_collection.lto_priv.85
mov ecx, dword [ebp - 0x40]
test ecx, ecx
je 0x4046c0
mov eax, dword [ebp - 0x48]
call eax
mov edx, dword [0x42a7dc]
test edx, edx
je 0x4046c0
sub eax, dword [ebp - 0x44]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], 0x422afc
call sym._GC_log_printf
jmp 0x4046c0
mov eax, dword [ebp - 0x34]
jmp 0x404473
cmp dword [0x42a7dc], 2
mov dword [ebp - 0x50], 0
je 0x404d05
mov dword [ebp - 0x4c], 0x421700
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 4]
lea esi, [eax + 0x404]
lea edi, [eax + 4]
mov dword [ebp - 0x54], esi
test eax, eax
je 0x404ab4
mov eax, dword [edi]
test eax, eax
je 0x404aa8
mov dword [ebp - 0x3c], edi
lea esi, [esi]
mov edx, eax
mov esi, dword [ebp - 0x3c]
shr edx, 0x16
mov ecx, dword [edx*4 + 0x446214]
mov edx, eax
shr edx, 0xc
and edx, 0x3ff
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx]
mov dword [esi], ecx
movzx ebx, byte [edx + 0xc]
mov ecx, dword [edx + 0x10]
lea esi, [ebx + ebx*4]
mov edi, dword [esi*4 + 0x421700]
mov ebx, ecx
mov esi, dword [esi*4 + 0x421710]
shr ebx, 3
lea ebx, [edi + ebx*4]
movzx edi, word [0x42a7d8]
mov word [edx + 0xe], di
mov edi, dword [ebx]
mov dword [esp], esi
mov dword [esp + 4], edi
call sym._GC_reclaim_generic.constprop.48
mov dword [ebx], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax]
test eax, eax
jne 0x404a40
mov edi, dword [ebp - 0x3c]
add edi, 4
cmp edi, dword [ebp - 0x54]
jne 0x404a30
add dword [ebp - 0x4c], 0x14
mov eax, dword [ebp - 0x4c]
mov esi, 0x42173c
cmp esi, eax
jne 0x404a16
cmp dword [0x42a7dc], 2
jne 0x404647
mov eax, dword [ebp - 0x48]
call eax
sub eax, dword [ebp - 0x50]
mov dword [esp], 0x422acc
mov dword [esp + 8], 0
mov dword [esp + 4], eax
call sym._GC_log_printf
jmp 0x404647
mov eax, dword [0x42a4e0]
test eax, eax
je 0x404c3e
mov esi, dword [0x42a4e0]
mov dword [ebp - 0x38], ebp
lea ebx, [ebp - 0x34]
mov eax, dword [ebp - 0x38]
mov dword [esp + 8], 0x1c
neg esi
mov dword [esp + 4], ebx
and esi, eax
mov dword [esp], esi
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
sub esp, 0xc
cmp eax, 0x1c
je 0x404b4f
mov dword [esp], 0x4227de
call sym._GC_default_on_abort.lto_priv.70
call dword [sym.imp.KERNEL32.dll_DebugBreak]
mov eax, dword [ebp - 0x20]
and ah, 0xfc
lea edx, [eax - 4]
and edx, 0xfffffffb
je 0x404b65
sub eax, 0x40
and eax, 0xffffffbf
jne 0x404b71
cmp dword [ebp - 0x24], 0x1000
jne 0x404b71
add esi, dword [ebp - 0x28]
mov dword [0x42a4d0], esi
jmp 0x404059
mov dword [esp], str.GC_PRINT_STATS
call sub.msvcrt.dll_getenv
test eax, eax
je 0x403ea9
mov dword [0x42a7dc], 1
jmp 0x403ea9
call sym._detect_GetWriteWatch.lto_priv.83
mov eax, dword [0x42a7e0]
test eax, eax
jne 0x404496
mov dword [esp], sym._GC_write_fault_handler_4.lto_priv.66
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
sub esp, 4
jmp 0x404496
mov edi, edx
jmp 0x40417e
call sym._GC_dump_named.constprop.41
jmp 0x4045b1
mov eax, dword [esi*4 + 0x42a060]
mov ebx, 0x42a480
mov dword [0x42a484], 0x42a468
mov dword [esi*4 + 0x42a060], 0x42a480
mov dword [0x42a480], eax
jmp 0x404530
mov dword [esp], sym._GC_write_fault_handler_4.lto_priv.66
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
sub esp, 4
mov dword [0x42a4c8], eax
test eax, eax
je 0x404cf6
mov edi, dword [0x42a7dc]
test edi, edi
je 0x4040f9
mov dword [esp], str.Replaced_other_UnhandledExceptionFilter_n
call sym._GC_log_printf
jmp 0x4040f9
mov dword [esp], 0x42a500
call ebx
mov eax, dword [0x42a504]
sub esp, 4
mov dword [0x42a4e0], eax
jmp 0x404b0d
shl esi, 0xa
jmp 0x404959
shl esi, 0x1e
jmp 0x404959
shl eax, 0x14
cmp eax, esi
setb dl
jmp 0x404365
shl eax, 0xa
cmp eax, esi
setb dl
jmp 0x404365
shl eax, 0x1e
cmp eax, esi
setb dl
jmp 0x404365
mov eax, dword [0x42a86c]
mov ebx, dword [0x42a800]
mov dword [0x42a8a0], 5
sub eax, 8
mov dword [0x42a874], eax
test ebx, ebx
je 0x404d12
mov eax, dword [0x42a7f4]
mov dword [esp + 8], 0x8000
mov dword [esp + 4], eax
mov eax, dword [0x42a7f0]
mov dword [esp], eax
call sym._memcpy
jmp 0x4046c0
mov dword [esp], str.Using_GetWriteWatch___n
call sym._GC_log_printf
jmp 0x4040f9
mov dword [esp], str.Initializing_mprotect_virtual_dirty_bit_implementation_n
call sym._GC_log_printf
jmp 0x4040cb
mov dword [0x42a4c8], 0xffffffff
jmp 0x4040f9
mov eax, dword [ebp - 0x48]
call eax
mov dword [ebp - 0x50], eax
jmp 0x404a0f
mov eax, dword [0x42a7fc]
mov dword [esp + 8], 0x8000
mov dword [esp + 4], eax
mov eax, dword [0x42a7f8]
mov dword [esp], eax
call sym._memcpy
jmp 0x404cb1
mov dword [esp], 0x422a68
call sym._GC_log_printf
jmp 0x4045f0
mov dword [esp], str.Insufficient_memory_for_GC_all_nils_n
call sym._GC_err_printf
mov dword [esp], 0
call sym._GC_default_on_abort.lto_priv.70
mov dword [esp], 1
call sym._exit
mov dword [esp], str.Cant_start_up:_not_enough_memory_n
jmp 0x404d4d
mov dword [esp], str.Insufficient_memory_for_black_list_n
jmp 0x404d4d