Function at 0x40f690
Capabilities:
Query environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xe8
mov r14d, dword [0x004b7700]
mov eax, 1
mov ebx, ecx
mov r13d, edx
mov ebp, r8d
mov r15, r9
mov ecx, r14d
shl eax, cl
cmp eax, 0x10000
lea esi, [rax - 1]
ja 0x40fede
mov r10d, dword [r9 + 0xc8]
test r10d, r10d
je 0x40fb00
mov r12d, r13d
mov r9d, 1
xor ecx, ecx
lea r8, [0x004b8999]
xor edx, edx
mov r10d, r14d
and r12d, esi
lea rdi, str.The_following_options_are_supported_by_the_language
lea r11, str.The_following_options_are_specific_to_just_the_language
jmp 0x40f751
cmp eax, 0x10000
je 0x40f9f0
cmp eax, 0x20000
je 0x40f9e2
test eax, eax
je 0x40f744
cmp r10, rcx
jbe 0x40f744
lea rax, [0x004b7760]
test r12d, r12d
mov rdx, r11
cmove rdx, rdi
mov r8, qword [rax + rcx*8]
add rcx, 1
add r9d, r9d
cmp rcx, 0x16
je 0x40f790
mov eax, r9d
and eax, ebx
cmp eax, 0x40000
je 0x40fa00
jbe 0x40f710
cmp eax, 0x100000
je 0x40fa20
cmp eax, 0x200000
je 0x40fa10
cmp eax, 0x80000
jne 0x40f72a
add rcx, 1
add r9d, r9d
cmp rcx, 0x16
jne 0x40f751
nop dword [rax]
test rdx, rdx
je 0x40fac4
lea rcx, str._s_s:_n
call fcn.0046b050
mov eax, dword [r15 + 0xc8]
cmp ebx, 0x10000
mov dword [rsp + 0x48], eax
je 0x40fb31
cmp qword [r15 + 0x28], 0
je 0x40fd67
mov r12d, dword [0x004b7704]
cmp qword [r15 + 0x20], 0
je 0x40fd4e
test r12d, r12d
je 0x40fa30
lea rax, [rsp + 0x58]
mov ecx, r14d
lea rsi, str._
xor edi, edi
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x38], rax
mov eax, r13d
and eax, 0x1000000
mov dword [rsp + 0x28], eax
mov eax, 1
shl eax, cl
sub eax, 1
mov dword [rsp + 0x20], eax
or dword [rsp + 0x20], 0x300000
nop
test ebx, ebx
mov eax, dword [rsi + 0x3c]
je 0x40f82f
mov ecx, eax
and ecx, ebx
cmp ebx, ecx
je 0x40f837
test eax, ebp
je 0x40f8c1
test eax, r13d
jne 0x40f8c1
test eax, 0x80000
je 0x40f84d
test dword [rsp + 0x20], eax
je 0x40f8c1
mov rax, rdi
add rax, qword [r15 + 0x28]
cmp byte [rax], 0
jne 0x40f8bc
mov byte [rax], 1
mov r14, qword [rsi + 8]
test r14, r14
je 0x40fce9
mov edx, 9
mov rcx, r14
call sub.msvcrt.dll_strchr
test rax, rax
je 0x40fd3d
mov r11d, eax
lea r10, [rax + 1]
sub r11d, r14d
mov r8d, dword [r15 + 0xaa4]
test r8d, r8d
je 0x40fb9b
mov r9d, dword [rsp + 0x48]
mov r8d, r11d
mov rdx, r14
mov rcx, r10
call fcn.0040f550
cmp dword [rsi + 0x48], 5
je 0x40fc61
mov r8d, 1
mov edx, 1
lea eax, [rdi + 1]
add rsi, 0x58
add rdi, 1
cmp eax, r12d
jb 0x40f820
test dl, dl
je 0x40fa30
test r8b, r8b
je 0x40fd2c
mov ecx, 0xa
xor ebp, ebp
lea r12, str.Known_AArch64_ABIs__for_use_with_the__mabi_option_:
call sub.msvcrt.dll_putchar
mov eax, dword [0x004b8298]
test eax, eax
je 0x40fab0
mov qword [rsp + 0x28], r15
jmp 0x40f91f
add ebp, 1
cmp ebp, dword [0x004b8298]
jae 0x40fab0
mov eax, ebp
mov rdx, rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x20]
cmp byte [rax + rdx], 1
jne 0x40f910
lea r13, [rdx + rdx*2]
shl r13, 4
lea rbx, [r12 + r13]
mov rdx, qword [rbx]
test rdx, rdx
je 0x40f910
lea rcx, str.___s_n
xor esi, esi
xor r14d, r14d
call fcn.0046b050
mov rax, qword [rbx + 0x10]
mov ebx, 4
mov r15, qword [rax]
test r15, r15
jne 0x40f9b7
jmp 0x40fa80
lea rcx, str._n
mov ebx, 4
call fcn.0046b050
mov rax, qword [r12 + r13 + 0x10]
lea rcx, [0x004b8d22]
add ebx, edi
mov rdx, qword [rax + r14]
call fcn.0046b050
add esi, 1
mov rax, qword [r12 + r13 + 0x10]
mov r14d, esi
shl r14, 4
mov r15, qword [rax + r14]
test r15, r15
je 0x40fa80
mov rcx, r15
call sub.msvcrt.dll_strlen
cmp ebx, 4
mov rdi, rax
jbe 0x40f984
lea ebx, [rbx + rax + 1]
cmp ebx, dword [rsp + 0x48]
ja 0x40f973
lea rcx, [0x004b8d18]
mov rdx, r15
call fcn.0046b050
jmp 0x40f99b
lea rdx, str.The_following_options_control_compiler_warning_messages
jmp 0x40f744
lea rdx, str.The___param_option_recognizes_the_following_as_parameters
jmp 0x40f744
lea rdx, str.The_following_options_control_optimizations
jmp 0x40f744
lea rdx, str.The_following_options_are_language_independent
jmp 0x40f744
lea rdx, str.The_following_options_are_target_specific
jmp 0x40f744
and ebx, 0x7ff
je 0x40fd1b
lea rdi, [0x004b7760]
xor esi, esi
xor eax, eax
jmp 0x40fa62
add esi, 1
add rdi, 8
cmp esi, 0xb
mov eax, esi
je 0x40f8e6
bt ebx, eax
jae 0x40fa50
mov rdx, qword [rdi]
lea rcx, str._None_found.__Use___help_s_to_show_all_the_options_supported_by_the__s_front_end_n
mov r8, rdx
call fcn.0046b050
jmp 0x40fa50
lea rcx, [0x004b8d15]
add ebp, 1
call fcn.0046b050
mov rax, qword [rsp + 0x28]
cmp ebp, dword [0x004b8298]
mov rdi, qword [rsp + 0x20]
mov rax, qword [rax + 0x20]
mov byte [rax + rdi], 2
jb 0x40f91f
nop dword [rax]
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test ebp, ebp
jne 0x40fc7a
test ebx, 0x1000000
jne 0x40fca7
test ebx, 0x800000
jne 0x40fd42
test ebx, 0x400000
je 0x40fed0
lea rdx, str.The_following_options_take_joined_arguments
jmp 0x40f799
lea rcx, [0x004b8bcb]
call sub.msvcrt.dll_getenv
test rax, rax
je 0x40fcca
mov rcx, rax
call fcn.00465f20
test eax, eax
jle 0x40fcca
mov dword [r15 + 0xc8], eax
jmp 0x40f6dd
mov ebp, r13d
xor ebx, ebx
mov r12d, eax
and ebp, 0x1000000
nop
mov rax, rbx
add rax, qword [0x004dba60]
mov rsi, qword [rax + 0x18]
mov rdi, qword [rax]
test rsi, rsi
je 0x40fb5b
cmp byte [rsi], 0
jne 0x40fb66
test ebp, ebp
jne 0x40fb7f
lea rsi, str.This_switch_lacks_documentation
mov rcx, rdi
call sub.msvcrt.dll_strlen
mov r9d, r12d
mov r8d, eax
mov rdx, rdi
mov rcx, rsi
call fcn.0040f550
add rbx, 0x20
cmp rbx, 0x1ae0
jne 0x40fb40
mov ecx, 0xa
call sub.msvcrt.dll_putchar
jmp 0x40fab0
mov rdx, r15
mov ecx, edi
mov dword [rsp + 0x30], r11d
mov dword [rsp + 0x40], edi
call fcn.00415070
mov r11d, dword [rsp + 0x30]
lea rdx, [rsp + 0x60]
mov qword [rsp + 0x30], rdx
cmp r11d, 0x1c
jbe 0x40fc93
mov edx, 9
mov word [rsp + 0x60], dx
test rax, rax
je 0x40fdcb
mov edx, dword [rsi + 0x48]
mov r10, qword [rsp + 0x30]
cmp edx, 6
je 0x40f899
test byte [rsi + 0x3e], 0x40
je 0x40fd85
cmp edx, 4
je 0x40fdd5
cmp edx, 5
je 0x40fe42
mov r8d, dword [rax]
mov rdx, qword [rsp + 0x30]
mov ecx, dword [rdx]
add rdx, 4
lea eax, [rcx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x40fc0f
mov ecx, eax
mov dword [rsp + 0x40], r11d
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea rcx, [rdx + 2]
cmovne rcx, rdx
add al, al
lea rdx, [0x004b8c1d]
sbb rcx, 3
call fcn.0046b0e0
mov r10, qword [rsp + 0x30]
mov r11d, dword [rsp + 0x40]
jmp 0x40f899
movzx eax, word [rsi + 0x44]
add rax, qword [r15 + 0x20]
cmp byte [rax], 2
je 0x40f8b6
mov byte [rax], 1
jmp 0x40f8b6
lea rdx, str.The_following_options_are_language_related
lea rax, str.The_following_options_are_language_independent
test ebp, esi
cmove rdx, rax
jmp 0x40f799
mov ecx, 0x909
mov byte [rsp + 0x62], 0
mov word [rsp + 0x60], cx
jmp 0x40fbd1
lea rdx, str.The_following_options_are_not_documented
lea rcx, str._s_s:_n
call fcn.0046b050
mov eax, dword [r15 + 0xc8]
mov dword [rsp + 0x48], eax
jmp 0x40f7bc
mov eax, dword [r15 + 0xc8]
test eax, eax
jne 0x40f6dd
mov dword [r15 + 0xc8], 0x50
jmp 0x40f6dd
mov r9d, dword [rsp + 0x28]
lea r10, str.This_switch_lacks_documentation
test r9d, r9d
jne 0x40f8bc
mov r14, qword [rsi]
mov qword [rsp + 0x30], r10
mov rcx, r14
call sub.msvcrt.dll_strlen
mov r10, qword [rsp + 0x30]
mov r11d, eax
jmp 0x40f889
lea rcx, str._No_options_with_the_desired_characteristics_were_found_n
call fcn.0046b050
jmp 0x40f8e6
lea rcx, str._All_options_with_the_desired_characteristics_have_already_been_displayed_n
call fcn.0046b050
jmp 0x40f8e6
mov r10, r14
jmp 0x40fcfe
lea rdx, str.The_following_options_take_separate_arguments
jmp 0x40f799
mov edx, dword [0x004b8298]
mov ecx, 1
call fcn.004386f0
mov qword [r15 + 0x20], rax
jmp 0x40f7d9
mov esi, dword [0x004b7704]
mov ecx, 1
mov edx, esi
mov r12d, esi
call fcn.004386f0
mov qword [r15 + 0x28], rax
jmp 0x40f7ce
mov ecx, dword [rsp + 0x40]
mov rdx, r15
mov dword [rsp + 0x4c], r11d
mov qword [rsp + 0x30], r10
call fcn.004150a0
mov r10, qword [rsp + 0x30]
test eax, eax
lea rdx, str._enabled_
lea rax, str._disabled_
mov rcx, r10
cmove rdx, rax
call sub.msvcrt.dll_strcat
mov r10, qword [rsp + 0x30]
mov r11d, dword [rsp + 0x4c]
jmp 0x40f899
mov r10, qword [rsp + 0x30]
jmp 0x40f899
mov r8, qword [rax]
mov rcx, r10
test r8, r8
je 0x40f899
mov edx, dword [rcx]
add rcx, 4
lea eax, [rdx - 0x1010101]
not edx
and eax, edx
and eax, 0x80808080
je 0x40fde4
mov edx, eax
mov dword [rsp + 0x40], r11d
shr edx, 0x10
test eax, 0x8080
cmove eax, edx
lea rdx, [rcx + 2]
cmove rcx, rdx
add al, al
mov rax, qword [rsp + 0x30]
sbb rcx, 3
mov edx, pe_nt_image_headers64
sub rcx, rax
sub rdx, rcx
add rcx, rax
call fcn.0046b110
mov r10, qword [rsp + 0x30]
mov r11d, dword [rsp + 0x40]
jmp 0x40f899
movzx edx, word [rsi + 0x44]
lea rcx, str.Known_AArch64_ABIs__for_use_with_the__mabi_option_:
mov dword [rsp + 0x4c], r11d
mov qword [rsp + 0x58], 0
lea rdx, [rdx + rdx*2]
shl rdx, 4
add rdx, rcx
mov rcx, rax
mov qword [rsp + 0x40], rdx
call qword [rdx + 0x28]
mov rdx, qword [rsp + 0x40]
mov r9d, dword [rsp + 0x150]
mov r8d, eax
mov rcx, qword [rdx + 0x10]
mov rdx, qword [rsp + 0x38]
call fcn.004130d0
mov r8, qword [rsp + 0x58]
mov r11d, dword [rsp + 0x4c]
test r8, r8
je 0x40febf
mov rcx, qword [rsp + 0x30]
mov edx, dword [rcx]
add rcx, 4
lea eax, [rdx - 0x1010101]
not edx
and eax, edx
and eax, 0x80808080
je 0x40fea3
jmp 0x40fdfb
lea rax, str._default_
mov qword [rsp + 0x58], rax
mov r8, rax
jmp 0x40fe9e
lea rcx, str.unrecognized_include_flags_0x_x_passed_to_print_specific_help
mov edx, ebx
call fcn.00417750
lea r8, str.print_specific_help
lea rcx, str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._gcc_gcc_4.9_gcc_opts.c
mov edx, 0x4ea
call fcn.00416900
nop
nop word [rax + rax]
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
lea r10, str.dfn:
lea r9, str.ord:
lea rax, [0x004b9972]
mov r15, rcx
mov dword [rsp + 0x2c], edx
mov rbx, r8
mov ebp, 4
mov r11d, 3
jmp 0x40ffad
add rbx, 4
xor r12d, r12d
mov rsi, r9
mov rdi, rbx
mov rcx, rbp
repe cmpsb byte [rsi], byte [rdi]
jne 0x410000
add rbx, 4
xor r14d, r14d
mov r13d, 1
mov rsi, rax
mov rdi, rbx
mov rcx, rbp
repe cmpsb byte [rsi], byte [rdi]
jne 0x410032
add rbx, 4
xor edx, edx
cmp r12d, 3
je 0x4100c0
test r13d, r13d
je 0x40ff93
movsxd rcx, r12d
mov dword [r15 + rcx*4 + 0x6c], edx
test r14d, r14d
je 0x40ff9d
mov dword [r15 + r12*4 + 0x60], edx
movzx edx, byte [rbx]
cmp dl, 0x2c
jne 0x4100f2
add rbx, 1
mov rsi, r10
mov rdi, rbx
mov rcx, rbp
repe cmpsb byte [rsi], byte [rdi]
je 0x40ff40
lea rsi, str.dir:
mov rdi, rbx
mov rcx, rbp
repe cmpsb byte [rsi], byte [rdi]
je 0x410132
lea rsi, str.ind:
mov rdi, rbx
mov rcx, rbp
repe cmpsb byte [rsi], byte [rdi]
je 0x410170
mov rsi, r9
mov rdi, rbx
mov rcx, rbp
repe cmpsb byte [rsi], byte [rdi]
mov r12d, 3
je 0x40ff58
nop dword [rax + rax]
lea rsi, str.gen:
mov rdi, rbx
mov rcx, rbp
repe cmpsb byte [rsi], byte [rdi]
je 0x410150
mov rsi, rax
mov rdi, rbx
mov rcx, rbp
repe cmpsb byte [rsi], byte [rdi]
mov r14d, 1
mov r13d, 1
je 0x40ff76
lea rsi, [0x004b996e]
mov rdi, rbx
mov rcx, r11
repe cmpsb byte [rsi], byte [rdi]
je 0x410141
lea rsi, [0x004b996a]
mov rdi, rbx
mov rcx, r11
repe cmpsb byte [rsi], byte [rdi]
je 0x410162
lea rsi, str.base
mov rdi, rbx
mov rcx, rbp
repe cmpsb byte [rsi], byte [rdi]
je 0x410180
mov ecx, dword [rsp + 0x2c]
lea rdx, str.argument__qs_to____femit_struct_debug_detailed___not_recognized
mov r8, rbx
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x30], rax
call fcn.00417600
cmp r12d, 3
mov edx, 3
mov rax, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x48]
jne 0x40ff86
nop dword [rax + rax]
test r13d, r13d
je 0x4100d1
mov dword [r15 + 0x6c], edx
mov dword [r15 + 0x70], edx
mov dword [r15 + 0x74], edx
test r14d, r14d
je 0x40ff9d
mov dword [r15 + 0x60], edx
mov dword [r15 + 0x64], edx
mov dword [r15 + 0x68], edx
movzx edx, byte [rbx]
cmp dl, 0x2c
je 0x40ffa9
test dl, dl
jne 0x4101a1
mov eax, dword [r15 + 0x74]
cmp dword [r15 + 0x70], eax
jl 0x410112
mov eax, dword [r15 + 0x68]
cmp dword [r15 + 0x64], eax
jge 0x410190
mov ecx, dword [rsp + 0x2c]
lea rdx, str.___femit_struct_debug_detaileddir:...___must_allow_at_least_as_much_as____femit_struct_debug_detailedind:...__
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.00417600
add rbx, 4
mov r12d, 1
jmp 0x40ff47
add rbx, 3
mov edx, 3
jmp 0x40ff7c
add rbx, 4
mov r14d, 1
xor r13d, r13d
jmp 0x40ff65
add rbx, 3
mov edx, 2
jmp 0x40ff7c
add rbx, 4
mov r12d, 2
jmp 0x40ff47
add rbx, 4
mov edx, 1
jmp 0x40ff7c
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, dword [rsp + 0x2c]
lea rdx, str.argument__qs_to____femit_struct_debug_detailed___unknown
mov r8, rbx
call fcn.00417600
jmp 0x4100fa