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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4c
mov dword [esp], 0x44c424
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_GetSystemInfo]
sub esp, 4
mov dword [esp], 0x44c400
call ebx
mov eax, dword [0x44c404]
sub esp, 4
mov dword [0x44c3e8], eax
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov edx, eax
not edx
shr edx, 0x1f
mov dword [0x44c3d4], edx
xor edx, edx
test eax, eax
jns 0x4194d5
xor edx, edx
test al, 0xfc
sete dl
mov dword [esp], str.GC_PRINT_VERBOSE_STATS
or dword [0x42d30c], edx
call sub.msvcrt.dll_getenv
test eax, eax
je 0x419dc4
mov dword [0x42d310], 2
mov dword [esp], str.GC_DUMP_REGULARLY
call sub.msvcrt.dll_getenv
test eax, eax
je 0x419513
mov dword [0x44c3e4], 1
mov dword [esp], str.GC_FIND_LEAK
call sub.msvcrt.dll_getenv
test eax, eax
je 0x41952d
mov dword [0x42d074], 1
mov dword [esp], str.GC_FINDLEAK_DELAY_FREE
call sub.msvcrt.dll_getenv
test eax, eax
je 0x419547
mov dword [0x44c3e0], 1
mov dword [esp], str.GC_ALL_INTERIOR_POINTERS
call sub.msvcrt.dll_getenv
test eax, eax
je 0x419561
mov dword [0x42d314], 1
mov dword [esp], str.GC_DONT_GC
call sub.msvcrt.dll_getenv
test eax, eax
je 0x41957b
mov dword [0x42d088], 1
mov dword [esp], str.GC_PRINT_BACK_HEIGHT
call sub.msvcrt.dll_getenv
test eax, eax
je 0x419595
mov dword [0x44c3dc], 1
mov dword [esp], str.GC_NO_BLACKLIST_WARNING
call sub.msvcrt.dll_getenv
test eax, eax
je 0x4195af
mov dword [0x424800], 0x7fffffff
mov dword [esp], str.GC_TRACE
call sub.msvcrt.dll_getenv
test eax, eax
je 0x4195d4
mov dword [esp + 4], 0
mov dword [esp], str.GC_Warning:_Tracing_not_enabled:_Ignoring_GC_TRACE_value_n
call dword [0x424810]
mov dword [esp], str.GC_PAUSE_TIME_TARGET
call sub.msvcrt.dll_getenv
test eax, eax
je 0x4195f5
mov dword [esp], eax
call sub.msvcrt.dll_atol
test eax, eax
jle 0x4195f5
mov dword [0x42482c], eax
mov dword [esp], str.GC_FULL_FREQUENCY
call sub.msvcrt.dll_getenv
test eax, eax
je 0x419616
mov dword [esp], eax
call sub.msvcrt.dll_atoi
test eax, eax
jle 0x419616
mov dword [0x424828], eax
mov dword [esp], str.GC_LARGE_ALLOC_WARN_INTERVAL
call sub.msvcrt.dll_getenv
test eax, eax
je 0x41963b
mov dword [esp], eax
call sub.msvcrt.dll_atol
test eax, eax
jle 0x419977
mov dword [0x424800], eax
mov dword [esp], str.GC_FREE_SPACE_DIVISOR
call sub.msvcrt.dll_getenv
test eax, eax
je 0x41965c
mov dword [esp], eax
call sub.msvcrt.dll_atoi
test eax, eax
jle 0x41965c
mov dword [0x424808], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x42d314]
mov dword [0x42d298], eax
test ecx, ecx
je 0x41967b
mov dword [0x4246dc], 0xfffffffc
mov edx, 0x449d14
mov eax, 0x42d320
call fcn.00410630
mov edx, 0x424800
mov eax, 0x4246c0
call fcn.00410630
mov edx, dword [0x44c3d8]
test edx, edx
je 0x419d48
mov eax, 0x100c
call fcn.00413790
mov dword [0x42d394], eax
test eax, eax
je 0x419ee3
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 [0x42d394]
lea esi, [esi]
mov dword [eax*4 + 0x448d14], edx
add eax, 1
cmp eax, 0x400
jne 0x4196f0
mov eax, dword [0x42d08c]
test eax, eax
je 0x419c43
cmp dword [0x42d310], 2
je 0x419e96
test word [0x44c3e8], 0xfff
jne 0x419d29
call fcn.00410b70
mov eax, dword [0x42d304]
test eax, eax
je 0x419df8
mov eax, dword [0x42d310]
test eax, eax
jne 0x419e85
mov dword [0x42d08c], 1
mov eax, dword [0x42d30c]
test eax, eax
je 0x4198b3
mov eax, dword [0x44c3e8]
mov esi, dword [0x44c408]
neg eax
mov edi, eax
and edi, 0x42480c
add eax, edi
cmp eax, esi
jb 0x4197ce
cmp eax, edi
ja 0x4197ce
lea ebx, [ebp - 0x34]
jmp 0x4197b1
mov edx, dword [ebp - 0x30]
test edx, edx
je 0x4197ce
mov eax, edx
sub eax, dword [0x44c3e8]
mov edi, edx
cmp edx, eax
jb 0x419de7
cmp eax, esi
jb 0x419de7
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 0x419790
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x40], edi
lea esi, [esi]
lea esi, [esi]
nop
mov ebx, edi
cmp dword [0x44c40c], edi
jbe 0x4198a0
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 0x4198a0
mov edx, dword [ebp - 0x30]
test edx, edx
je 0x4198a0
mov eax, dword [0x42d294]
cmp eax, dword [0x424824]
jbe 0x41982f
mov dword [0x424824], eax
mov eax, dword [0x44c3cc]
test eax, eax
je 0x41984b
cmp dword [eax], edx
jne 0x419844
jmp 0x4198a0
cmp edx, dword [eax]
je 0x4198a0
mov eax, dword [eax + 4]
test eax, eax
jne 0x419840
mov ecx, dword [0x42d3ac]
test ecx, ecx
jle 0x419880
cmp edx, dword [0x441514]
je 0x4198a0
xor eax, eax
jmp 0x419879
cmp edx, dword [eax*4 + 0x441514]
je 0x4198a0
add eax, 1
cmp eax, ecx
jne 0x419870
mov esi, dword [ebp - 0x28]
add esi, edi
cmp dword [ebp - 0x24], 0x1000
je 0x419b60
mov edi, esi
cmp esi, ebx
jae 0x4197e0
lea esi, [esi]
mov eax, dword [ebp - 0x40]
mov esi, dword [ebp - 0x3c]
cmp eax, esi
je 0x4198b3
xor ecx, ecx
mov edx, esi
call fcn.00410810
mov edi, dword [0x42d314]
test edi, edi
je 0x419c5c
call fcn.00402fc0
mov dword [0x42d2a0], eax
call fcn.00402fc0
mov ebx, eax
mov dword [0x42d29c], eax
mov eax, dword [0x42d2a0]
test ebx, ebx
je 0x419eb6
test eax, eax
je 0x419eb6
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msvcrt.dll_memset
mov eax, 0x1000
call fcn.00413e00
mov dword [esp], str.GC_INITIAL_HEAP_SIZE
call sub.msvcrt.dll_getenv
mov esi, eax
test eax, eax
je 0x4199ab
cmp byte [eax], 0
je case.0x419970.1
lea ebx, [ebp - 0x34]
mov dword [esp + 8], 0xa
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_strtoul
mov edx, dword [ebp - 0x34]
mov edi, eax
movzx eax, byte [edx]
test al, al
je 0x419991
cmp byte [edx + 1], 0
jne case.0x419970.1
sub eax, 0x47
cmp al, 0x26
ja case.0x419970.1
movzx eax, al
jmp dword [eax*4 + 0x4272f4]
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 [0x424810]
jmp 0x41963b
cmp edi, 0xffffffff
jne 0x419ce9
mov dword [esp + 4], esi
mov dword [esp], str.GC_Warning:_Bad_initial_heap_size__s___ignoring_n
call dword [0x424810]
mov dword [esp], str.GC_MAXIMUM_HEAP_SIZE
mov edi, 0x10000
call sub.msvcrt.dll_getenv
mov esi, eax
mov eax, 0x10
test esi, esi
je 0x419c2b
cmp byte [esi], 0
je case.0x419d13.1
lea ebx, [ebp - 0x34]
mov dword [esp + 8], 0xa
mov dword [esp + 4], ebx
mov dword [esp], esi
call sub.msvcrt.dll_strtoul
mov ecx, dword [ebp - 0x34]
movzx edx, byte [ecx]
test dl, dl
jne 0x419c03
cmp eax, edi
setb dl
cmp eax, 0xffffffff
sete cl
or edx, ecx
test dl, dl
jne case.0x419d13.1
mov ebx, dword [0x42d078]
test ebx, ebx
je 0x419d1a
mov dword [0x42d080], eax
test edi, edi
jne 0x419c26
mov edx, dword [0x42d314]
mov ebx, 0x100
sub ebx, edx
test edx, edx
je 0x419b9b
mov esi, 0x430510
mov ecx, 0x400
mov eax, 0x1010101
mov edi, esi
rep stosd dword es:[edi], eax
cmp byte [0x430510], 0
jne 0x419a68
mov byte [0x430510], 1
mov byte [0x42d4f8], 1
mov dword [0x42e108], 1
test ebx, ebx
je 0x419aa2
lea esi, [edx + 7]
mov eax, esi
not eax
cmp eax, 1
ja 0x419bbc
mov eax, 1
lea esi, [esi]
nop
mov dword [eax*4 + 0x42e108], 0x1fffffff
add eax, 1
cmp eax, ebx
jbe 0x419a90
mov dword [0x42d06c], 1
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [esp], str.kernel32.dll
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [0x44c3c8], esi
sub esp, 4
test eax, eax
je 0x419bf0
mov dword [esp + 4], str.IsWow64Process
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
sub esp, 8
mov edi, eax
test eax, eax
je 0x419bf0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea ebx, [ebp - 0x34]
mov dword [esp + 4], ebx
mov dword [esp], eax
call edi
sub esp, 8
test eax, eax
jne 0x419d40
xor eax, eax
mov dword [0x44c3c4], eax
mov eax, dword [0x44c3d8]
mov edx, esi
mov dword [ebp - 0x34], eax
mov eax, ebx
call fcn.00419240
mov ecx, dword [0x44c3e4]
test ecx, ecx
jne 0x419dee
mov edx, dword [0x42d088]
test edx, edx
jne 0x419b47
mov eax, fcn.004105c0
call fcn.004186e0
mov eax, dword [0x42d074]
test eax, eax
jne 0x419cca
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x20]
lea edx, [eax - 4]
and edx, 0xfffffffb
je 0x419b77
sub eax, 0x40
and eax, 0xffffffbf
jne 0x419892
mov edx, dword [ebp - 0x3c]
cmp edi, edx
je 0x419cde
mov eax, dword [ebp - 0x40]
cmp edx, eax
je 0x419bf8
xor ecx, ecx
call fcn.00410810
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x40], edi
jmp 0x419892
cmp byte [0x430510], 0
je 0x419a5a
mov dword [0x42e108], 1
mov eax, 0xfffffff8
mov esi, 7
mov ecx, 0x101
sub ecx, edx
cmp ecx, eax
cmova ecx, eax
mov eax, 1
lea esi, [esi]
lea edx, [eax + esi]
shr edx, 3
mov dword [eax*4 + 0x42e108], edx
add eax, 1
cmp eax, ecx
jb 0x419bd0
jmp 0x419a9e
lea ebx, [ebp - 0x34]
jmp 0x419b0d
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x40], edi
jmp 0x419892
cmp byte [ecx + 1], 0
je 0x419d04
mov dword [esp + 4], esi
mov dword [esp], str.GC_Warning:_Bad_maximum_heap_size__s___ignoring_n
call dword [0x424810]
test edi, edi
je 0x419a29
mov eax, edi
shr eax, 0xc
call fcn.00413fe0
test eax, eax
je 0x419eda
add dword [0x42d324], edi
jmp 0x419a29
mov dword [esp], str.GC_ENABLE_INCREMENTAL
call sub.msvcrt.dll_getenv
test eax, eax
jne 0x41970e
jmp 0x419753
mov esi, dword [0x42d2a4]
test esi, esi
jne 0x4198c1
call fcn.00402fc0
mov dword [0x42d2a8], eax
call fcn.00402fc0
mov ebx, eax
mov dword [0x42d2a4], eax
mov eax, dword [0x42d2a8]
test ebx, ebx
je 0x419eb6
test eax, eax
je 0x419eb6
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msvcrt.dll_memset
jmp 0x4198c1
mov dword [esp], 0x419f70
call fcn.004015ad
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [ebp - 0x3c], esi
jmp 0x419892
shl edi, 0x14
mov dword [esp], str.GC_MAXIMUM_HEAP_SIZE
call sub.msvcrt.dll_getenv
mov esi, eax
test eax, eax
jne 0x4199cb
jmp 0x419a21
sub edx, 0x47
cmp dl, 0x26
ja case.0x419d13.1
movzx edx, dl
jmp dword [edx*4 + 0x427390]
mov dword [0x42d078], 2
jmp 0x419a1c
mov dword [esp], str.Page_size_not_multiple_of_HBLKSIZE
call fcn.00410f40
call dword [sym.imp.KERNEL32.dll_DebugBreak]
jmp 0x41972a
mov eax, dword [ebp - 0x34]
jmp 0x419b0f
mov eax, dword [0x44c3e8]
test eax, eax
je 0x419e33
mov esi, dword [0x44c3e8]
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 0x419d97
mov dword [esp], str.Weird_VirtualQuery_result
call fcn.00410f40
call dword [sym.imp.KERNEL32.dll_DebugBreak]
mov eax, dword [ebp - 0x20]
and ah, 0xfc
lea edx, [eax - 4]
and edx, 0xfffffffb
je 0x419dad
sub eax, 0x40
and eax, 0xffffffbf
jne 0x419db9
cmp dword [ebp - 0x24], 0x1000
jne 0x419db9
add esi, dword [ebp - 0x28]
mov dword [0x44c3d8], esi
jmp 0x4196a7
mov dword [esp], str.GC_PRINT_STATS
call sub.msvcrt.dll_getenv
test eax, eax
je 0x4194f9
mov dword [0x42d310], 1
jmp 0x4194f9
mov edi, edx
jmp 0x4197ce
call fcn.00403250
jmp 0x419b33
mov dword [esp], 0x411400
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
sub esp, 4
mov dword [0x44c3d0], eax
test eax, eax
je 0x419ea7
mov eax, dword [0x42d310]
test eax, eax
je 0x419749
mov dword [esp], str.Replaced_other_UnhandledExceptionFilter_n
call fcn.00411380
jmp 0x419749
mov dword [esp], 0x44c400
call ebx
mov eax, dword [0x44c404]
sub esp, 4
mov dword [0x44c3e8], eax
jmp 0x419d55
shl edi, 0xa
jmp 0x419ce9
shl edi, 0x1e
jmp 0x419ce9
shl eax, 0x14
cmp eax, edi
setb dl
jmp 0x419a06
shl eax, 0xa
cmp eax, edi
setb dl
jmp 0x419a06
shl eax, 0x1e
cmp eax, edi
setb dl
jmp 0x419a06
mov dword [esp], str.Using_GetWriteWatch___n
call fcn.00411380
jmp 0x419749
mov dword [esp], str.Initializing_mprotect_virtual_dirty_bit_implementation_n
call fcn.00411380
jmp 0x41971b
mov dword [0x44c3d0], 0xffffffff
jmp 0x419749
mov dword [esp], str.Insufficient_memory_for_black_list_n
call fcn.004123d0
mov dword [esp], 0
call fcn.00410f40
mov dword [esp], 1
call sub.msvcrt.dll_exit
mov dword [esp], str.Cant_start_up:_not_enough_memory_n
jmp 0x419ebd
mov dword [esp], str.Insufficient_memory_for_GC_all_nils_n
jmp 0x419ebd