Function at 0x140014246
Capabilities:
Query environment variable

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0xa0
mov eax, dword [0x1400c3554]
test eax, eax
jne 0x14001477d
mov qword [rbp - 8], 0x10000
mov qword [rbp - 0x10], 0
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
mov qword [rbp - 0x18], rax
cmp qword [rbp - 0x18], 0
je 0x1400142a8
mov rax, qword [rbp - 0x18]
lea rdx, str.InitializeCriticalSectionAndSpinCount
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp - 0x10], rax
cmp qword [rbp - 0x10], 0
je 0x1400142c3
mov rax, qword [rbp - 0x10]
mov edx, 0xfa0
lea rcx, [0x1400c34c0]
call rax
jmp 0x1400142d6
lea rax, [0x1400c34c0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call rax
lea rax, [0x1400c35c0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call rax
call sym.GC_setpagesize
call sym.GC_init_win32
lea rax, str.GC_PRINT_VERBOSE_STATS
mov rcx, rax
call sym.getenv
test rax, rax
je 0x140014313
mov dword [0x1400c3578], 2
jmp 0x140014331
lea rax, str.GC_PRINT_STATS
mov rcx, rax
call sym.getenv
test rax, rax
je 0x140014331
mov dword [0x1400c3578], 1
lea rax, str.GC_DUMP_REGULARLY
mov rcx, rax
call sym.getenv
test rax, rax
je 0x14001434f
mov dword [0x1400c35e8], 1
lea rax, str.GC_FIND_LEAK
mov rcx, rax
call sym.getenv
test rax, rax
je 0x14001436d
mov dword [0x1400c349c], 1
lea rax, str.GC_FINDLEAK_DELAY_FREE
mov rcx, rax
call sym.getenv
test rax, rax
je 0x14001438b
mov dword [0x1400c3568], 1
lea rax, str.GC_ALL_INTERIOR_POINTERS
mov rcx, rax
call sym.getenv
test rax, rax
je 0x1400143a9
mov dword [0x1400c34a0], 1
lea rax, str.GC_DONT_GC
mov rcx, rax
call sym.getenv
test rax, rax
je 0x1400143c7
mov dword [0x1400c3490], 1
lea rax, str.GC_PRINT_BACK_HEIGHT
mov rcx, rax
call sym.getenv
test rax, rax
je 0x1400143e5
mov dword [0x1400c357c], 1
lea rax, str.GC_NO_BLACKLIST_WARNING
mov rcx, rax
call sym.getenv
test rax, rax
je 0x140014403
mov dword [0x140081338], 0x7fffffff
lea rax, str.GC_TRACE
mov rcx, rax
call sym.getenv
mov qword [rbp - 0x20], rax
cmp qword [rbp - 0x20], 0
je 0x140014432
mov rax, qword [section..data]
mov edx, 0
lea rcx, str.GC_Warning:_Tracing_not_enabled:_Ignoring_GC_TRACE_value_n
call rax
lea rax, str.GC_PAUSE_TIME_TARGET
mov rcx, rax
call sym.getenv
mov qword [rbp - 0x28], rax
cmp qword [rbp - 0x28], 0
je 0x14001446a
mov rax, qword [rbp - 0x28]
mov rcx, rax
call sym.atol
mov dword [rbp - 0x2c], eax
cmp dword [rbp - 0x2c], 0
jle 0x14001446a
mov eax, dword [rbp - 0x2c]
mov dword [0x140081368], eax
lea rax, str.GC_FULL_FREQUENCY
mov rcx, rax
call sym.getenv
mov qword [rbp - 0x38], rax
cmp qword [rbp - 0x38], 0
je 0x1400144a2
mov rax, qword [rbp - 0x38]
mov rcx, rax
call sym.atoi
mov dword [rbp - 0x3c], eax
cmp dword [rbp - 0x3c], 0
jle 0x1400144a2
mov eax, dword [rbp - 0x3c]
mov dword [0x140081358], eax
lea rax, str.GC_LARGE_ALLOC_WARN_INTERVAL
mov rcx, rax
call sym.getenv
mov qword [rbp - 0x48], rax
cmp qword [rbp - 0x48], 0
je 0x1400144f1
mov rax, qword [rbp - 0x48]
mov rcx, rax
call sym.atol
mov dword [rbp - 0x4c], eax
cmp dword [rbp - 0x4c], 0
jg 0x1400144e8
mov rax, qword [section..data]
mov edx, 0
lea rcx, str.GC_Warning:_GC_LARGE_ALLOC_WARN_INTERVAL_environment_variable_has_bad_value___ignoring_n
call rax
jmp 0x1400144f1
mov eax, dword [rbp - 0x4c]
mov dword [0x140081338], eax
lea rax, str.GC_FREE_SPACE_DIVISOR
mov rcx, rax
call sym.getenv
mov qword [rbp - 0x58], rax
cmp qword [rbp - 0x58], 0
je 0x14001452c
mov rax, qword [rbp - 0x58]
mov rcx, rax
call sym.atoi
mov dword [rbp - 0x5c], eax
cmp dword [rbp - 0x5c], 0
jle 0x14001452c
mov eax, dword [rbp - 0x5c]
mov eax, eax
mov qword [0x140081360], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetTickCount]
call rax
mov dword [0x1400c3fe0], eax
mov eax, dword [0x1400c34a0]
test eax, eax
je 0x140014550
mov qword [0x140081050], 0xfffffffffffffff8
lea rax, [0x1400c3488]
mov rdx, rax
lea rax, [0x1400990a0]
mov rcx, rax
call sym.GC_exclude_static_roots_inner
lea rax, [0x140081320]
mov rdx, rax
lea rax, [0x140081020]
mov rcx, rax
call sym.GC_exclude_static_roots_inner
mov rax, qword [0x1400c3488]
test rax, rax
jne 0x14001459a
call sym.GC_get_main_stack_base
mov qword [0x1400c3488], rax
call sym.GC_init_headers
mov eax, dword [0x1400c3584]
test eax, eax
jne 0x1400145bd
lea rax, str.GC_ENABLE_INCREMENTAL
mov rcx, rax
call sym.getenv
test rax, rax
je 0x1400145c2
call sym.set_incremental_mode_on
call sym.GC_register_data_segments
call sym.GC_bl_init
call sym.GC_mark_init
lea rax, str.GC_INITIAL_HEAP_SIZE
mov rcx, rax
call sym.getenv
mov qword [rbp - 0x68], rax
cmp qword [rbp - 0x68], 0
je 0x140014627
mov rax, qword [rbp - 0x68]
mov rcx, rax
call sym.GC_parse_mem_size_arg
mov qword [rbp - 0x70], rax
cmp qword [rbp - 0x70], 0xffffffffffffffff
jne 0x14001461f
mov r8, qword [section..data]
mov rax, qword [rbp - 0x68]
mov rdx, rax
lea rax, str.GC_Warning:_Bad_initial_heap_size__s___ignoring_n
mov rcx, rax
call r8
jmp 0x140014627
mov rax, qword [rbp - 0x70]
mov qword [rbp - 8], rax
lea rax, str.GC_MAXIMUM_HEAP_SIZE
mov rcx, rax
call sym.getenv
mov qword [rbp - 0x78], rax
cmp qword [rbp - 0x78], 0
je 0x1400146a2
mov rax, qword [rbp - 0x78]
mov rcx, rax
call sym.GC_parse_mem_size_arg
mov qword [rbp - 0x80], rax
mov rax, qword [rbp - 0x80]
cmp rax, qword [rbp - 8]
jb 0x140014662
cmp qword [rbp - 0x80], 0xffffffffffffffff
jne 0x14001467f
mov r8, qword [section..data]
mov rax, qword [rbp - 0x78]
mov rdx, rax
lea rax, str.GC_Warning:_Bad_maximum_heap_size__s___ignoring_n
mov rcx, rax
call r8
jmp 0x1400146a2
mov rax, qword [0x140099078]
test rax, rax
jne 0x140014696
mov qword [0x140099078], 2
mov rax, qword [rbp - 0x80]
mov rcx, rax
call sym.GC_set_max_heap_size
cmp qword [rbp - 8], 0
je 0x1400146f9
mov rax, qword [rbp - 8]
shr rax, 0xc
mov rcx, rax
call sym.GC_expand_hp_inner
test eax, eax
jne 0x1400146e4
lea rax, str.Cant_start_up:_not_enough_memory_n
mov rcx, rax
call sym.GC_err_printf
mov rax, qword [sym.GC_default_on_abort]
mov ecx, 0
call rax
mov ecx, 1
call sym.exit
mov rdx, qword [0x1400990a8]
mov rax, qword [rbp - 8]
add rax, rdx
mov qword [0x1400990a8], rax
mov eax, dword [0x1400c34a0]
test eax, eax
je 0x140014708
call sym.GC_initialize_offsets
mov ecx, 0
call sym.GC_register_displacement_inner
call sym.GC_init_size_map
mov dword [0x1400c3554], 1
call sym.GC_thr_init
mov eax, dword [0x1400c35e8]
test eax, eax
je 0x14001473a
mov ecx, 0
call sym.GC_dump_named
mov eax, dword [0x1400c3494]
test eax, eax
je 0x14001474e
mov eax, dword [0x1400c3584]
test eax, eax
je 0x14001475d
lea rax, [sym.GC_never_stop_func]
mov rcx, rax
call sym.GC_try_to_collect_inner
mov eax, dword [0x1400c349c]
test eax, eax
je 0x140014776
lea rax, [sym.GC_exit_check]
mov rcx, rax
call dbg.atexit
call sym.GC_init_parallel
jmp 0x14001477e
nop
add rsp, 0xa0
pop rbp
ret