Function at 0x668456
Capabilities:
Query environment variable

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0xa0
mov eax, dword [0x0067a4c8]
cmp eax, 0
je 0x668475
jmp 0x668b90
movabs rax, 0x10000
mov qword [rbp - 8], rax
movabs rax, 0
mov qword [rbp - 0x10], rax
lea rax, [0x006b371f]
mov r10, rax
mov rcx, r10
call sub.kernel32.dll_GetModuleHandleA
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
cmp rax, 0
je 0x6684d5
lea rax, str.InitializeCriticalSectionAndSpinCount
mov r11, rax
mov rax, qword [rbp - 0x18]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.kernel32.dll_GetProcAddress
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
cmp rax, 0
je 0x66850f
mov rax, qword [rbp - 0x10]
mov ecx, 0xfa0
mov r11, rcx
lea rcx, [0x0067c0b0]
mov r10, rcx
mov qword [rbp - 0x20], rax
mov rcx, r10
mov rdx, r11
mov r11, qword [rbp - 0x20]
call r11
jmp 0x668521
lea rax, [0x0067c0b0]
mov r10, rax
mov rcx, r10
call sub.kernel32.dll_InitializeCriticalSection
lea rax, [0x0067c3b0]
mov r10, rax
mov rcx, r10
call sub.kernel32.dll_InitializeCriticalSection
call fcn.0066a409
call fcn.0066a783
lea rax, str.GC_PRINT_VERBOSE_STATS
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_getenv
cmp rax, 0
je 0x668569
mov eax, 2
mov dword [0x0067a47c], eax
jmp 0x668590
lea rax, str.GC_PRINT_STATS
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_getenv
cmp rax, 0
je 0x668590
mov eax, 1
mov dword [0x0067a47c], eax
lea rax, str.GC_DUMP_REGULARLY
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_getenv
cmp rax, 0
je 0x6685b7
mov eax, 1
mov dword [0x0067a484], eax
lea rax, str.GC_FIND_LEAK
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_getenv
cmp rax, 0
je 0x6685de
mov eax, 1
mov dword [0x0067a488], eax
lea rax, str.GC_FINDLEAK_DELAY_FREE
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_getenv
cmp rax, 0
je 0x668605
mov eax, 1
mov dword [0x0067a48c], eax
lea rax, str.GC_ALL_INTERIOR_POINTERS
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_getenv
cmp rax, 0
je 0x66862c
mov eax, 1
mov dword [0x0067a490], eax
lea rax, str.GC_DONT_GC
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_getenv
cmp rax, 0
je 0x668653
mov eax, 1
mov dword [0x0067a470], eax
lea rax, str.GC_PRINT_BACK_HEIGHT
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_getenv
cmp rax, 0
je 0x66867a
mov eax, 1
mov dword [0x0067a480], eax
lea rax, str.GC_NO_BLACKLIST_WARNING
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_getenv
cmp rax, 0
je 0x6686a1
mov eax, 0x7fffffff
mov dword [0x0067a4ac], eax
lea rax, str.GC_TRACE
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_getenv
mov qword [rbp - 0x28], rax
mov rax, qword [rbp - 0x28]
cmp rax, 0
je 0x6686f4
mov rax, qword [fcn.00669322]
movabs rcx, 0
mov r11, rcx
lea rcx, str.GC_Warning:_Tracing_not_enabled:_Ignoring_GC_TRACE_value_n
mov r10, rcx
mov qword [rbp - 0x20], rax
mov rcx, r10
mov rdx, r11
mov r11, qword [rbp - 0x20]
call r11
lea rax, str.GC_PAUSE_TIME_TARGET
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_getenv
mov qword [rbp - 0x30], rax
mov rax, qword [rbp - 0x30]
cmp rax, 0
je 0x66873f
mov rax, qword [rbp - 0x30]
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_atol
mov dword [rbp - 0x34], eax
mov eax, dword [rbp - 0x34]
cmp eax, 0
jle 0x66873f
mov eax, dword [rbp - 0x34]
mov dword [0x00679ea8], eax
lea rax, str.GC_FULL_FREQUENCY
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_getenv
mov qword [rbp - 0x40], rax
mov rax, qword [rbp - 0x40]
cmp rax, 0
je 0x66878a
mov rax, qword [rbp - 0x40]
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_atoi
mov dword [rbp - 0x44], eax
mov eax, dword [rbp - 0x44]
cmp eax, 0
jle 0x66878a
mov eax, dword [rbp - 0x44]
mov dword [0x00679e80], eax
lea rax, str.GC_LARGE_ALLOC_WARN_INTERVAL
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_getenv
mov qword [rbp - 0x50], rax
mov rax, qword [rbp - 0x50]
cmp rax, 0
je 0x668809
mov rax, qword [rbp - 0x50]
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_atol
mov dword [rbp - 0x54], eax
mov eax, dword [rbp - 0x54]
cmp eax, 0
jg 0x668800
mov rax, qword [fcn.00669322]
movabs rcx, 0
mov r11, rcx
lea rcx, str.GC_Warning:_GC_LARGE_ALLOC_WARN_INTERVAL_environment_variable_has_bad_value:_Ignoring_n
mov r10, rcx
mov qword [rbp - 0x20], rax
mov rcx, r10
mov rdx, r11
mov r11, qword [rbp - 0x20]
call r11
jmp 0x668809
mov eax, dword [rbp - 0x54]
mov dword [0x0067a4ac], eax
lea rax, str.GC_FREE_SPACE_DIVISOR
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_getenv
mov qword [rbp - 0x60], rax
mov rax, qword [rbp - 0x60]
cmp rax, 0
je 0x668855
mov rax, qword [rbp - 0x60]
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_atoi
mov dword [rbp - 0x64], eax
mov eax, dword [rbp - 0x64]
cmp eax, 0
jle 0x668855
mov eax, dword [rbp - 0x64]
mov qword [0x00679ea0], rax
call sub.kernel32.dll_GetTickCount
mov dword [0x006a68c8], eax
mov eax, dword [0x0067a490]
movsxd rax, eax
cmp rax, 0
je 0x668884
movabs rax, 0xfffffffffffffff8
mov qword [0x0067a100], rax
lea rax, [0x006a68c8]
mov r11, rax
lea rax, [0x0067c4f8]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.00664036
lea rax, [0x0067a2d0]
mov r11, rax
lea rax, [0x0067a0d0]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.00664036
mov rax, qword [0x0067a468]
cmp rax, 0
jne 0x6688e4
call fcn.0066a5ac
mov qword [0x0067a468], rax
jmp 0x6688e4
call fcn.00651fa5
mov eax, dword [0x00679e74]
cmp eax, 0
jne 0x668914
lea rax, str.GC_ENABLE_INCREMENTAL
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_getenv
cmp rax, 0
je 0x668949
mov eax, dword [0x0067a4d0]
cmp eax, 0
je 0x66893e
mov eax, 1
mov dword [0x0067a538], eax
mov eax, 1
mov dword [0x00679e74], eax
jmp 0x668949
call fcn.0066b0c3
mov dword [0x00679e74], eax
call fcn.0066adad
call fcn.00650ea8
call fcn.00661d15
lea rax, str.GC_INITIAL_HEAP_SIZE
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_getenv
mov qword [rbp - 0x70], rax
mov rax, qword [rbp - 0x70]
cmp rax, 0
je 0x6689c9
mov rax, qword [rbp - 0x70]
mov r10, rax
mov rcx, r10
call fcn.0066833a
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
cmp rax, 0x10000
ja 0x6689c9
mov rax, qword [fcn.00669322]
mov rcx, qword [rbp - 0x70]
mov r11, rcx
lea rcx, str.GC_Warning:_Bad_initial_heap_size__s___ignoring_it._n
mov r10, rcx
mov qword [rbp - 0x20], rax
mov rcx, r10
mov rdx, r11
mov r11, qword [rbp - 0x20]
call r11
lea rax, str.GC_MAXIMUM_HEAP_SIZE
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_getenv
mov qword [rbp - 0x78], rax
mov rax, qword [rbp - 0x78]
cmp rax, 0
je 0x668a6b
mov rax, qword [rbp - 0x78]
mov r10, rax
mov rcx, r10
call fcn.0066833a
mov qword [rbp - 0x80], rax
mov rax, qword [rbp - 0x80]
mov rcx, qword [rbp - 8]
cmp rax, rcx
jae 0x668a3a
mov rax, qword [fcn.00669322]
mov rcx, qword [rbp - 0x78]
mov r11, rcx
lea rcx, str.GC_Warning:_Bad_maximum_heap_size__s___ignoring_it._n
mov r10, rcx
mov qword [rbp - 0x20], rax
mov rcx, r10
mov rdx, r11
mov r11, qword [rbp - 0x20]
call r11
mov rax, qword [0x00679f50]
cmp rax, 0
jne 0x668a5c
movabs rax, 2
mov qword [0x00679f50], rax
mov rax, qword [rbp - 0x80]
mov r10, rax
mov rcx, r10
call fcn.00657cd1
mov rax, qword [rbp - 8]
shr rax, 0xc
mov r10, rax
mov rcx, r10
call fcn.00657e09
cmp eax, 0
jne 0x668ac3
lea rax, str.Cant_start_up:_not_enough_memory_n
mov r10, rax
mov rcx, r10
call fcn.00669174
movabs rax, 0
mov r10, rax
mov rcx, r10
mov r11, qword [0x0067a4e8]
call r11
mov eax, 1
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_exit
mov rax, qword [0x0067c500]
mov rcx, qword [rbp - 8]
add rax, rcx
mov qword [0x0067c500], rax
mov eax, dword [0x0067a490]
cmp eax, 0
je 0x668aec
call fcn.006534cb
movabs rax, 0
mov r10, rax
mov rcx, r10
call fcn.0065329c
call fcn.00667844
mov eax, 1
mov dword [0x0067a4c8], eax
call fcn.0066db82
mov eax, dword [0x0067a484]
cmp eax, 0
je 0x668b3f
movabs rax, 0
mov r10, rax
mov rcx, r10
call fcn.00669b58
jmp 0x668b3f
mov eax, dword [0x0067a474]
cmp eax, 0
je 0x668b5d
mov eax, dword [0x00679e74]
cmp eax, 0
je 0x668b6f
lea rax, [0x00655b6e]
mov r10, rax
mov rcx, r10
call fcn.006563cc
mov eax, dword [0x0067a488]
cmp eax, 0
je 0x668b90
lea rax, [0x00668282]
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_atexit
leave
ret