Function at 0x419360
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], 0x44c404
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_GetSystemInfo]
sub esp, 4
mov dword [esp], 0x44c3e0
call ebx
mov eax, dword [0x44c3e4]
sub esp, 4
mov dword [0x44c3c8], eax
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov edx, eax
not edx
shr edx, 0x1f
mov dword [0x44c3b4], edx
xor edx, edx
test eax, eax
jns 0x4193b5
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 0x419ca4
mov dword [0x42d310], 2
mov dword [esp], str.GC_DUMP_REGULARLY
call sub.msvcrt.dll_getenv
test eax, eax
je 0x4193f3
mov dword [0x44c3c4], 1
mov dword [esp], str.GC_FIND_LEAK
call sub.msvcrt.dll_getenv
test eax, eax
je 0x41940d
mov dword [0x42d070], 1
mov dword [esp], str.GC_FINDLEAK_DELAY_FREE
call sub.msvcrt.dll_getenv
test eax, eax
je 0x419427
mov dword [0x44c3c0], 1
mov dword [esp], str.GC_ALL_INTERIOR_POINTERS
call sub.msvcrt.dll_getenv
test eax, eax
je 0x419441
mov dword [0x42d314], 1
mov dword [esp], str.GC_DONT_GC
call sub.msvcrt.dll_getenv
test eax, eax
je 0x41945b
mov dword [0x42d084], 1
mov dword [esp], str.GC_PRINT_BACK_HEIGHT
call sub.msvcrt.dll_getenv
test eax, eax
je 0x419475
mov dword [0x44c3bc], 1
mov dword [esp], str.GC_NO_BLACKLIST_WARNING
call sub.msvcrt.dll_getenv
test eax, eax
je 0x41948f
mov dword [0x424800], 0x7fffffff
mov dword [esp], str.GC_TRACE
call sub.msvcrt.dll_getenv
test eax, eax
je 0x4194b4
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 0x4194d5
mov dword [esp], eax
call sub.msvcrt.dll_atol
test eax, eax
jle 0x4194d5
mov dword [0x42482c], eax
mov dword [esp], str.GC_FULL_FREQUENCY
call sub.msvcrt.dll_getenv
test eax, eax
je 0x4194f6
mov dword [esp], eax
call sub.msvcrt.dll_atoi
test eax, eax
jle 0x4194f6
mov dword [0x424828], eax
mov dword [esp], str.GC_LARGE_ALLOC_WARN_INTERVAL
call sub.msvcrt.dll_getenv
test eax, eax
je 0x41951b
mov dword [esp], eax
call sub.msvcrt.dll_atol
test eax, eax
jle 0x419857
mov dword [0x424800], eax
mov dword [esp], str.GC_FREE_SPACE_DIVISOR
call sub.msvcrt.dll_getenv
test eax, eax
je 0x41953c
mov dword [esp], eax
call sub.msvcrt.dll_atoi
test eax, eax
jle 0x41953c
mov dword [0x424808], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x42d314]
mov dword [0x42d298], eax
test ecx, ecx
je 0x41955b
mov dword [0x4246dc], 0xfffffffc
mov edx, 0x449d14
mov eax, 0x42d320
call fcn.004104d0
mov edx, 0x424800
mov eax, 0x4246c0
call fcn.004104d0
mov edx, dword [0x44c3b8]
test edx, edx
je 0x419c28
mov eax, 0x100c
call fcn.00413670
mov dword [0x42d394], eax
test eax, eax
je 0x419dc3
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 0x4195d0
mov eax, dword [0x42d088]
test eax, eax
je 0x419b23
cmp dword [0x42d310], 2
je 0x419d76
test word [0x44c3c8], 0xfff
jne 0x419c09
call fcn.00410a10
mov eax, dword [0x42d304]
test eax, eax
je 0x419cd8
mov eax, dword [0x42d310]
test eax, eax
jne 0x419d65
mov dword [0x42d088], 1
mov eax, dword [0x42d30c]
test eax, eax
je 0x419793
mov eax, dword [0x44c3c8]
mov esi, dword [0x44c3e8]
neg eax
mov edi, eax
and edi, 0x42480c
add eax, edi
cmp eax, esi
jb 0x4196ae
cmp eax, edi
ja 0x4196ae
lea ebx, [ebp - 0x34]
jmp 0x419691
mov edx, dword [ebp - 0x30]
test edx, edx
je 0x4196ae
mov eax, edx
sub eax, dword [0x44c3c8]
mov edi, edx
cmp edx, eax
jb 0x419cc7
cmp eax, esi
jb 0x419cc7
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 0x419670
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x40], edi
lea esi, [esi]
lea esi, [esi]
nop
mov ebx, edi
cmp dword [0x44c3ec], edi
jbe 0x419780
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 0x419780
mov edx, dword [ebp - 0x30]
test edx, edx
je 0x419780
mov eax, dword [0x42d294]
cmp eax, dword [0x424824]
jbe 0x41970f
mov dword [0x424824], eax
mov eax, dword [0x44c3ac]
test eax, eax
je 0x41972b
cmp dword [eax], edx
jne 0x419724
jmp 0x419780
cmp edx, dword [eax]
je 0x419780
mov eax, dword [eax + 4]
test eax, eax
jne 0x419720
mov ecx, dword [0x42d3ac]
test ecx, ecx
jle 0x419760
cmp edx, dword [0x441514]
je 0x419780
xor eax, eax
jmp 0x419759
cmp edx, dword [eax*4 + 0x441514]
je 0x419780
add eax, 1
cmp eax, ecx
jne 0x419750
mov esi, dword [ebp - 0x28]
add esi, edi
cmp dword [ebp - 0x24], 0x1000
je 0x419a40
mov edi, esi
cmp esi, ebx
jae 0x4196c0
lea esi, [esi]
mov eax, dword [ebp - 0x40]
mov esi, dword [ebp - 0x3c]
cmp eax, esi
je 0x419793
xor ecx, ecx
mov edx, esi
call fcn.004106b0
mov edi, dword [0x42d314]
test edi, edi
je 0x419b3c
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 0x419d96
test eax, eax
je 0x419d96
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.00413ce0
mov dword [esp], str.GC_INITIAL_HEAP_SIZE
call sub.msvcrt.dll_getenv
mov esi, eax
test eax, eax
je 0x41988b
cmp byte [eax], 0
je case.0x419850.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 0x419871
cmp byte [edx + 1], 0
jne case.0x419850.1
sub eax, 0x47
cmp al, 0x26
ja case.0x419850.1
movzx eax, al
jmp dword [eax*4 + 0x427254]
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 0x41951b
cmp edi, 0xffffffff
jne 0x419bc9
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 0x419b0b
cmp byte [esi], 0
je case.0x419bf3.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 0x419ae3
cmp eax, edi
setb dl
cmp eax, 0xffffffff
sete cl
or edx, ecx
test dl, dl
jne case.0x419bf3.1
mov ebx, dword [0x42d074]
test ebx, ebx
je 0x419bfa
mov dword [0x42d07c], eax
test edi, edi
jne 0x419b06
mov edx, dword [0x42d314]
mov ebx, 0x100
sub ebx, edx
test edx, edx
je 0x419a7b
mov esi, 0x430510
mov ecx, 0x400
mov eax, 0x1010101
mov edi, esi
rep stosd dword es:[edi], eax
cmp byte [0x430510], 0
jne 0x419948
mov byte [0x430510], 1
mov byte [0x42d4f8], 1
mov dword [0x42e108], 1
test ebx, ebx
je 0x419982
lea esi, [edx + 7]
mov eax, esi
not eax
cmp eax, 1
ja 0x419a9c
mov eax, 1
lea esi, [esi]
nop
mov dword [eax*4 + 0x42e108], 0x1fffffff
add eax, 1
cmp eax, ebx
jbe 0x419970
mov dword [0x42d068], 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 [0x44c3a8], esi
sub esp, 4
test eax, eax
je 0x419ad0
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 0x419ad0
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 0x419c20
xor eax, eax
mov dword [0x44c3a4], eax
mov eax, dword [0x44c3b8]
mov edx, esi
mov dword [ebp - 0x34], eax
mov eax, ebx
call fcn.00419120
mov ecx, dword [0x44c3c4]
test ecx, ecx
jne 0x419cce
mov edx, dword [0x42d084]
test edx, edx
jne 0x419a27
mov eax, fcn.00410460
call fcn.004185c0
mov eax, dword [0x42d070]
test eax, eax
jne 0x419baa
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 0x419a57
sub eax, 0x40
and eax, 0xffffffbf
jne 0x419772
mov edx, dword [ebp - 0x3c]
cmp edi, edx
je 0x419bbe
mov eax, dword [ebp - 0x40]
cmp edx, eax
je 0x419ad8
xor ecx, ecx
call fcn.004106b0
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x40], edi
jmp 0x419772
cmp byte [0x430510], 0
je 0x41993a
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 0x419ab0
jmp 0x41997e
lea ebx, [ebp - 0x34]
jmp 0x4199ed
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x40], edi
jmp 0x419772
cmp byte [ecx + 1], 0
je 0x419be4
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 0x419909
mov eax, edi
shr eax, 0xc
call fcn.00413ec0
test eax, eax
je 0x419dba
add dword [0x42d324], edi
jmp 0x419909
mov dword [esp], str.GC_ENABLE_INCREMENTAL
call sub.msvcrt.dll_getenv
test eax, eax
jne 0x4195ee
jmp 0x419633
mov esi, dword [0x42d2a4]
test esi, esi
jne 0x4197a1
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 0x419d96
test eax, eax
je 0x419d96
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 0x4197a1
mov dword [esp], 0x419e50
call fcn.004015ad
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [ebp - 0x3c], esi
jmp 0x419772
shl edi, 0x14
mov dword [esp], str.GC_MAXIMUM_HEAP_SIZE
call sub.msvcrt.dll_getenv
mov esi, eax
test eax, eax
jne 0x4198ab
jmp 0x419901
sub edx, 0x47
cmp dl, 0x26
ja case.0x419bf3.1
movzx edx, dl
jmp dword [edx*4 + 0x4272f0]
mov dword [0x42d074], 2
jmp 0x4198fc
mov dword [esp], str.Page_size_not_multiple_of_HBLKSIZE
call fcn.00410de0
call dword [sym.imp.KERNEL32.dll_DebugBreak]
jmp 0x41960a
mov eax, dword [ebp - 0x34]
jmp 0x4199ef
mov eax, dword [0x44c3c8]
test eax, eax
je 0x419d13
mov esi, dword [0x44c3c8]
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 0x419c77
mov dword [esp], str.Weird_VirtualQuery_result
call fcn.00410de0
call dword [sym.imp.KERNEL32.dll_DebugBreak]
mov eax, dword [ebp - 0x20]
and ah, 0xfc
lea edx, [eax - 4]
and edx, 0xfffffffb
je 0x419c8d
sub eax, 0x40
and eax, 0xffffffbf
jne 0x419c99
cmp dword [ebp - 0x24], 0x1000
jne 0x419c99
add esi, dword [ebp - 0x28]
mov dword [0x44c3b8], esi
jmp 0x419587
mov dword [esp], str.GC_PRINT_STATS
call sub.msvcrt.dll_getenv
test eax, eax
je 0x4193d9
mov dword [0x42d310], 1
jmp 0x4193d9
mov edi, edx
jmp 0x4196ae
call fcn.00403250
jmp 0x419a13
mov dword [esp], 0x4112a0
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
sub esp, 4
mov dword [0x44c3b0], eax
test eax, eax
je 0x419d87
mov eax, dword [0x42d310]
test eax, eax
je 0x419629
mov dword [esp], str.Replaced_other_UnhandledExceptionFilter_n
call fcn.00411220
jmp 0x419629
mov dword [esp], 0x44c3e0
call ebx
mov eax, dword [0x44c3e4]
sub esp, 4
mov dword [0x44c3c8], eax
jmp 0x419c35
shl edi, 0xa
jmp 0x419bc9
shl edi, 0x1e
jmp 0x419bc9
shl eax, 0x14
cmp eax, edi
setb dl
jmp 0x4198e6
shl eax, 0xa
cmp eax, edi
setb dl
jmp 0x4198e6
shl eax, 0x1e
cmp eax, edi
setb dl
jmp 0x4198e6
mov dword [esp], str.Using_GetWriteWatch___n
call fcn.00411220
jmp 0x419629
mov dword [esp], str.Initializing_mprotect_virtual_dirty_bit_implementation_n
call fcn.00411220
jmp 0x4195fb
mov dword [0x44c3b0], 0xffffffff
jmp 0x419629
mov dword [esp], str.Insufficient_memory_for_black_list_n
call fcn.00412270
mov dword [esp], 0
call fcn.00410de0
mov dword [esp], 1
call sub.msvcrt.dll_exit
mov dword [esp], str.Cant_start_up:_not_enough_memory_n
jmp 0x419d9d
mov dword [esp], str.Insufficient_memory_for_GC_all_nils_n
jmp 0x419d9d