Function at 0x40ae6d
Capabilities:
Query environment variable

Disassembly:
push rbp
push rsi
push rbx
mov rbp, rsp
sub rsp, 0x60
mov dword [rbp + 0x20], ecx
mov qword [rbp + 0x28], rdx
call fcn.004d7940
mov qword [rbp - 0x10], 0
mov dword [rbp - 0x14], 0
mov rax, qword [rbp + 0x28]
mov rdx, qword [rax]
lea rax, [0x00542198]
mov qword [rax], rdx
lea rax, [0x00542198]
mov rax, qword [rax]
mov rcx, rax
call fcn.004d7560
lea rax, [rbp + 0x28]
mov rdx, rax
lea rcx, [rbp + 0x20]
call fcn.004ce8bd
jmp 0x40b6e6
mov eax, dword [rbp - 0x18]
sub eax, 0x41
cmp eax, 0x57
ja case.0x40aefa.72
mov eax, eax
lea rdx, [rax*4]
lea rax, [0x004f99b8]
mov eax, dword [rdx + rax]
movsxd rdx, eax
lea rax, [0x004f99b8]
add rax, rdx
jmp rax
mov dword [0x0053cce4], 1
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
test rax, rax
je 0x40af31
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 8
mov rcx, rax
call fcn.0040ec60
mov eax, dword [0x0053ccd8]
or eax, 0x10
mov dword [0x0053ccd8], eax
or dword [rbp - 0x14], 0x10
jmp 0x40b6e6
mov dword [0x004da034], 0
jmp 0x40b6e6
mov eax, dword [0x0053ccd8]
or eax, 2
mov dword [0x0053ccd8], eax
or dword [rbp - 0x14], 2
jmp 0x40b6e6
mov dword [0x0053cce0], 1
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
test rax, rax
je 0x40afa5
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 0xa
mov rcx, rax
call fcn.0040ec60
mov eax, dword [0x0053ccd8]
or eax, 8
mov dword [0x0053ccd8], eax
or dword [rbp - 0x14], 8
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
test rax, rax
je 0x40afff
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov rcx, rax
call sub.msvcrt.dll_atoi
mov edx, eax
mov eax, dword [0x0053ccd4]
or eax, edx
mov dword [0x0053ccd4], eax
mov eax, dword [0x0053ccd4]
or eax, 1
mov dword [0x0053ccd4], eax
jmp 0x40b009
mov dword [0x0053ccd4], 0xffffffff
mov eax, dword [0x0053ccd4]
and eax, 1
test eax, eax
je 0x40b6e6
mov eax, dword [0x0053ccd4]
mov edx, eax
lea rcx, str._main__debug_level0x_x_n
call sub.msvcrt.dll_printf
jmp 0x40b6e6
mov dword [0x0053ccf0], 1
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 7
mov rcx, rax
call fcn.0040ec60
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 1
mov rcx, rax
call fcn.0040ec60
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 6
mov rcx, rax
call fcn.0040ec60
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 0
mov rcx, rax
call fcn.0040ec60
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 5
mov rcx, rax
call fcn.0040ec60
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 4
mov rcx, rax
call fcn.0040ec60
jmp 0x40b6e6
mov rax, qword [sym.imp.msvcrt.dll___iob_func]
call rax
add rax, 0x30
mov edx, 0
mov rcx, rax
call fcn.0040ae10
mov eax, dword [0x0053ccd8]
or eax, 0x20
mov dword [0x0053ccd8], eax
or dword [rbp - 0x14], 0x20
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov rdx, rax
mov rcx, qword [0x00527e70]
call fcn.0040dfc0
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
test rax, rax
je 0x40b167
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 9
mov rcx, rax
call fcn.0040ec60
mov eax, dword [0x0053ccd8]
or eax, 0x10
mov dword [0x0053ccd8], eax
jmp 0x40b176
mov eax, dword [0x0053ccd8]
and eax, 0xffffffef
mov dword [0x0053ccd8], eax
or dword [rbp - 0x14], 0x10
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 3
mov rcx, rax
call fcn.0040ec60
jmp 0x40b6e6
mov dword [0x0053cce8], 1
jmp 0x40b6e6
mov dword [0x0053ccec], 1
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov r8d, 0xa
mov edx, 0
mov rcx, rax
call sub.msvcrt.dll_strtoul
mov edx, eax
mov rax, qword [0x00527b20]
mov dword [rax], edx
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 6
mov rcx, rax
call fcn.0040ec60
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 7
mov rcx, rax
call fcn.0040ec60
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
movzx eax, byte [rax]
movsx eax, al
cmp eax, 0x62
je 0x40b268
cmp eax, 0x62
jg 0x40b244
cmp eax, 0x34
je 0x40b274
cmp eax, 0x61
je 0x40b250
jmp 0x40b28c
cmp eax, 0x6d
je 0x40b25c
cmp eax, 0x70
je 0x40b280
jmp 0x40b28c
mov dword [0x0053ccf8], 0
jmp 0x40b2cc
mov dword [0x0053ccf8], 1
jmp 0x40b2cc
mov dword [0x0053ccf8], 2
jmp 0x40b2cc
mov dword [0x0053ccf8], 3
jmp 0x40b2cc
mov dword [0x0053ccf8], 4
jmp 0x40b2cc
lea rax, [0x00542198]
mov rsi, qword [rax]
mov rax, qword [0x00527df0]
mov rbx, qword [rax]
mov rax, qword [sym.imp.msvcrt.dll___iob_func]
call rax
add rax, 0x60
mov r9, rsi
mov r8, rbx
lea rdx, str._s:_unknown_file_format__s_n
mov rcx, rax
call sub.msvcrt.dll_fprintf
mov ecx, 1
call fcn.0040bb92
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
test rax, rax
je 0x40b2f7
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 4
mov rcx, rax
call fcn.0040ec60
mov eax, dword [0x0053ccd8]
or eax, 1
mov dword [0x0053ccd8], eax
or dword [rbp - 0x14], 1
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
test rax, rax
je 0x40b346
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 5
mov rcx, rax
call fcn.0040ec60
mov eax, dword [0x0053ccd8]
or eax, 1
mov dword [0x0053ccd8], eax
jmp 0x40b355
mov eax, dword [0x0053ccd8]
and eax, 0xfffffffe
mov dword [0x0053ccd8], eax
or dword [rbp - 0x14], 1
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
test rax, rax
je 0x40b3b9
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 0x2f
mov rcx, rax
call sub.msvcrt.dll_strchr
test rax, rax
je 0x40b3a2
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 2
mov rcx, rax
call fcn.0040ec60
jmp 0x40b3b9
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 0
mov rcx, rax
call fcn.0040ec60
mov eax, dword [0x0053ccd8]
or eax, 2
mov dword [0x0053ccd8], eax
or dword [rbp - 0x14], 2
jmp 0x40b6e6
mov eax, dword [0x0053ccd8]
or eax, 0x40
mov dword [0x0053ccd8], eax
or dword [rbp - 0x14], 0x40
jmp 0x40b6e6
mov eax, dword [0x0053ccd8]
or al, 0x80
mov dword [0x0053ccd8], eax
or dword [rbp - 0x14], 0x80
mov rax, qword [0x00527df0]
mov rdx, qword [rax]
lea rax, [0x005421a0]
mov qword [rax], rdx
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
test rax, rax
je 0x40b483
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 0x2f
mov rcx, rax
call sub.msvcrt.dll_strchr
test rax, rax
je 0x40b45b
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 3
mov rcx, rax
call fcn.0040ec60
jmp 0x40b472
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 1
mov rcx, rax
call fcn.0040ec60
mov eax, dword [0x0053ccd8]
or eax, 2
mov dword [0x0053ccd8], eax
jmp 0x40b492
mov eax, dword [0x0053ccd8]
and eax, 0xfffffffd
mov dword [0x0053ccd8], eax
or dword [rbp - 0x14], 2
jmp 0x40b6e6
mov eax, dword [0x0053ccd8]
or eax, 4
mov dword [0x0053ccd8], eax
or dword [rbp - 0x14], 4
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov qword [0x0053cd00], rax
mov eax, dword [0x0053ccd4]
and eax, 0x80
test eax, eax
je 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov rdx, rax
lea rcx, str.external_symbol_table:__s_n
call sub.msvcrt.dll_printf
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov rcx, rax
call sub.msvcrt.dll_atoi
mov edx, eax
mov rax, qword [0x00527b30]
mov dword [rax], edx
mov rax, qword [0x00527b30]
mov eax, dword [rax]
test eax, eax
jns 0x40b6e6
mov rax, qword [0x00527b30]
mov dword [rax], 0
jmp 0x40b6e6
mov dword [0x0053ccdc], 1
jmp 0x40b6e6
lea rdx, [0x004f9791]
lea rcx, str.GNU_gprof__s_n
call sub.msvcrt.dll_printf
lea rcx, str.Based_on_BSD_gprof__copyright_1983_Regents_of_the_University_of_California.
call sub.msvcrt.dll_puts
lea rcx, str.This_program_is_free_software.__This_program_has_absolutely_no_warranty.
call sub.msvcrt.dll_puts
mov ecx, 0
call fcn.0040bb92
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov rcx, rax
call sub.msvcrt.dll_atoi
mov dword [0x004da028], eax
mov eax, dword [0x004da028]
test eax, eax
jg 0x40b6e6
mov dword [0x004da028], 1
jmp 0x40b6e6
mov rax, qword [0x00527b10]
mov dword [rax], 1
jmp 0x40b6e6
mov rax, qword [0x00527c10]
mov dword [rax], 1
jmp 0x40b6e6
mov dword [0x004da030], 0
jmp 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
test rax, rax
je 0x40b618
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov edx, 0xb
mov rcx, rax
call fcn.0040ec60
mov eax, dword [0x0053ccd8]
or eax, 8
mov dword [0x0053ccd8], eax
jmp 0x40b627
mov eax, dword [0x0053ccd8]
and eax, 0xfffffff7
mov dword [0x0053ccd8], eax
or dword [rbp - 0x14], 8
jmp 0x40b6e6
mov dword [0x004da02c], 1
mov rax, qword [0x00527df0]
mov rax, qword [rax]
test rax, rax
je 0x40b6e6
mov rax, qword [0x00527df0]
mov rax, qword [rax]
mov rcx, rax
call fcn.004c3950
mov dword [rbp - 0x24], eax
cmp dword [rbp - 0x24], 0
jne 0x40b6a8
mov rax, qword [0x00527df0]
mov rsi, qword [rax]
lea rax, [0x00542198]
mov rbx, qword [rax]
mov rax, qword [sym.imp.msvcrt.dll___iob_func]
call rax
add rax, 0x60
mov r9, rsi
mov r8, rbx
lea rdx, str._s:_unknown_demangling_style___s_n
mov rcx, rax
call sub.msvcrt.dll_fprintf
mov ecx, 1
call fcn.004d7530
mov eax, dword [rbp - 0x24]
mov ecx, eax
call fcn.004c3900
jmp 0x40b6e6
mov dword [0x004da02c], 0
jmp 0x40b6e6
mov dword [0x0053ccf4], 1
jmp 0x40b6e6
mov rax, qword [sym.imp.msvcrt.dll___iob_func]
call rax
add rax, 0x60
mov edx, 1
mov rcx, rax
call fcn.0040ae10
mov rdx, qword [rbp + 0x28]
mov eax, dword [rbp + 0x20]
mov qword [rsp + 0x20], 0
lea r9, str.line
lea r8, str.aA::bBcC::d::De:E:f:F:hiI:J::k:lLm:n:N:O:p::P::q::Q::rR:sS:t:Tvw:xyzZ::
mov ecx, eax
call fcn.004d3640
mov dword [rbp - 0x18], eax
cmp dword [rbp - 0x18], 0xffffffff
jne 0x40aeca
mov eax, dword [rbp - 0x14]
and eax, 0x40
test eax, eax
je 0x40b761
mov eax, dword [rbp - 0x14]
and eax, 0x80
test eax, eax
je 0x40b761
lea rax, [0x00542198]
mov rbx, qword [rax]
mov rax, qword [sym.imp.msvcrt.dll___iob_func]
call rax
add rax, 0x60
mov r8, rbx
lea rdx, str._s:_Only_one_of___function_ordering_and___file_ordering_may_be_specified._n
mov rcx, rax
call sub.msvcrt.dll_fprintf
mov ecx, 1
call fcn.0040bb92
mov eax, dword [0x0053ccd8]
and eax, 4
test eax, eax
je 0x40b778
mov dword [0x0053cce8], 1
lea rcx, str.GPROF_PATH
call sub.msvcrt.dll_getenv
mov qword [rbp - 0x20], rax
cmp qword [rbp - 0x20], 0
je 0x40b7a2
mov rax, qword [rbp - 0x20]
mov rdx, rax
mov rcx, qword [0x00527e70]
call fcn.0040dfc0
mov rax, qword [0x00527e00]
mov edx, dword [rax]
mov eax, dword [rbp + 0x20]
cmp edx, eax
jge 0x40b7de
mov r8, qword [rbp + 0x28]
mov rax, qword [0x00527e00]
mov eax, dword [rax]
lea ecx, [rax + 1]
mov rdx, qword [0x00527e00]
mov dword [rdx], ecx
cdqe
shl rax, 3
add rax, r8
mov rax, qword [rax]
mov qword [0x004da020], rax
mov rax, qword [0x00527e00]
mov edx, dword [rax]
mov eax, dword [rbp + 0x20]
cmp edx, eax
jge 0x40b81a
mov r8, qword [rbp + 0x28]
mov rax, qword [0x00527e00]
mov eax, dword [rax]
lea ecx, [rax + 1]
mov rdx, qword [0x00527e00]
mov dword [rdx], ecx
cdqe
shl rax, 3
add rax, r8
mov rax, qword [rax]
mov qword [str.gmon.out], rax
lea rax, str._gprof_mcount
mov qword [rbp - 8], rax
jmp 0x40b868
mov rax, qword [rbp - 8]
mov rax, qword [rax]
mov edx, 7
mov rcx, rax
call fcn.0040ec60
mov rax, qword [rbp - 8]
mov rax, qword [rax]
mov edx, 1
mov rcx, rax
call fcn.0040ec60
mov rax, qword [rbp - 8]
mov rax, qword [rax]
mov edx, 5
mov rcx, rax
call fcn.0040ec60
add qword [rbp - 8], 8
mov rax, qword [rbp - 8]
mov rax, qword [rax]
test rax, rax
jne 0x40b827
mov rax, qword [0x004da020]
mov rcx, rax
call fcn.00407d83
mov eax, dword [0x0053cce0]
test eax, eax
je 0x40b89f
mov rax, qword [0x00527be0]
mov rax, qword [rax]
mov rcx, rax
call fcn.0040814a
mov rax, qword [0x0053cd00]
test rax, rax
je 0x40b8bc
mov rax, qword [0x0053cd00]
mov rcx, rax
call fcn.0040892e
jmp 0x40b8d2
mov eax, dword [0x0053cce8]
test eax, eax
je 0x40b8cd
call fcn.00409308
jmp 0x40b8d2
call fcn.00408cf7
call fcn.0040f28f
mov eax, dword [0x0053ccf8]
cmp eax, 4
jne 0x40b915
lea rax, [0x00542198]
mov rbx, qword [rax]
mov rax, qword [sym.imp.msvcrt.dll___iob_func]
call rax
add rax, 0x60
mov r8, rbx
lea rdx, str._s:_sorry__file_format__prof_is_not_yet_supported_n
mov rcx, rax
call sub.msvcrt.dll_fprintf
mov ecx, 1
call fcn.0040bb92
mov rax, qword [str.gmon.out]
mov rcx, rax
call fcn.00409f08
mov rax, qword [0x00527e00]
mov edx, dword [rax]
mov eax, dword [rbp + 0x20]
cmp edx, eax
jge 0x40b954
mov rdx, qword [rbp + 0x28]
mov rax, qword [0x00527e00]
mov eax, dword [rax]
cdqe
shl rax, 3
add rax, rdx
mov rax, qword [rax]
mov qword [str.gmon.out], rax
mov rax, qword [0x00527e00]
mov eax, dword [rax]
lea ecx, [rax + 1]
mov rdx, qword [0x00527e00]
mov dword [rdx], ecx
mov edx, dword [rbp + 0x20]
cmp eax, edx
jl 0x40b915
mov eax, dword [0x0053ccd8]
test eax, eax
jne 0x40b9e9
mov rax, qword [0x00527cc0]
mov eax, dword [rax]
and eax, 3
test eax, eax
je 0x40b9ca
mov rax, qword [0x00527cc0]
mov eax, dword [rax]
and eax, 1
test eax, eax
je 0x40b9a9
mov eax, dword [0x0053ccd8]
or eax, 1
mov dword [0x0053ccd8], eax
mov rax, qword [0x00527cc0]
mov eax, dword [rax]
and eax, 2
test eax, eax
je 0x40b9d4
mov eax, dword [0x0053ccd8]
or eax, 2
mov dword [0x0053ccd8], eax
jmp 0x40b9d4
mov dword [0x0053ccd8], 8
mov eax, dword [rbp - 0x14]
not eax
mov edx, eax
mov eax, dword [0x0053ccd8]
and eax, edx
mov dword [0x0053ccd8], eax
mov eax, dword [0x0053ccd8]
and eax, 4
test eax, eax
je 0x40ba02
lea rcx, str.gmon.sum
call fcn.0040a948
mov rax, qword [0x00527cc0]
mov eax, dword [rax]
and eax, 1
test eax, eax
je 0x40ba17
call fcn.0040ca82
mov rax, qword [0x00527cc0]
mov eax, dword [rax]
and eax, 2
test eax, eax
je 0x40ba30
call fcn.00403ff4
mov qword [rbp - 0x10], rax
mov eax, dword [0x0053ccd8]
and eax, 1
test eax, eax
je 0x40ba80
mov rax, qword [0x00527cc0]
mov eax, dword [rax]
and eax, 1
test eax, eax
jne 0x40ba80
lea rax, [0x00542198]
mov rbx, qword [rax]
mov rax, qword [sym.imp.msvcrt.dll___iob_func]
call rax
add rax, 0x60
mov r8, rbx
lea rdx, str._s:_gmon.out_file_is_missing_histogram_n
mov rcx, rax
call sub.msvcrt.dll_fprintf
mov ecx, 1
call fcn.0040bb92
mov eax, dword [0x0053ccd8]
and eax, 2
test eax, eax
je 0x40bad0
mov rax, qword [0x00527cc0]
mov eax, dword [rax]
and eax, 2
test eax, eax
jne 0x40bad0
lea rax, [0x00542198]
mov rbx, qword [rax]
mov rax, qword [sym.imp.msvcrt.dll___iob_func]
call rax
add rax, 0x60
mov r8, rbx
lea rdx, str._s:_gmon.out_file_is_missing_call_graph_data_n
mov rcx, rax
call sub.msvcrt.dll_fprintf
mov ecx, 1
call fcn.0040bb92
cmp qword [rbp - 0x10], 0
je 0x40bafa
mov eax, dword [0x0053ccd8]
and eax, 2
test eax, eax
je 0x40bafa
mov eax, dword [0x0053ccdc]
test eax, eax
je 0x40bafa
mov rax, qword [rbp - 0x10]
mov rcx, rax
call fcn.00405c9d
mov eax, dword [0x0053ccd8]
and eax, 1
test eax, eax
je 0x40bb0c
call fcn.0040d151
cmp qword [rbp - 0x10], 0
je 0x40bb3b
mov eax, dword [0x0053ccd8]
and eax, 2
test eax, eax
je 0x40bb3b
mov eax, dword [0x0053ccdc]
test eax, eax
jne 0x40bb36
mov rax, qword [rbp - 0x10]
mov rcx, rax
call fcn.00405c9d
call fcn.00405ed8
mov eax, dword [0x0053ccd8]
and eax, 8
test eax, eax
je 0x40bb4d
call fcn.00401b36
mov eax, dword [0x0053ccd8]
and eax, 0x10
test eax, eax
je 0x40bb5f
call fcn.004022b9
mov eax, dword [0x0053ccd8]
and eax, 0x40
test eax, eax
je 0x40bb71
call fcn.00406494
mov eax, dword [0x0053ccd8]
and eax, 0x80
test eax, eax
je 0x40bb85
call fcn.00407530
mov eax, 0
add rsp, 0x60
pop rbx
pop rsi
pop rbp
ret