Function at 0x412660
Capabilities:
Query environment variable

Disassembly:
push ebp
mov eax, 1
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xcc
mov edi, dword [0x467b74]
mov esi, dword [ebp + 8]
mov ecx, edi
shl eax, cl
cmp eax, 0x10000
lea edx, [eax - 1]
mov dword [ebp - 0xc8], edx
ja 0x412f49
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x94]
test edx, edx
je 0x412be5
mov eax, dword [ebp + 0xc]
xor ebx, ebx
and eax, dword [ebp - 0xc8]
xor edx, edx
mov ecx, 1
mov dword [ebp - 0xc4], 0x48f3bc
mov dword [ebp - 0xd0], eax
jmp 0x41270e
cmp eax, 0x10000
je 0x412a56
cmp eax, 0x20000
je 0x412a4c
test eax, eax
je 0x412706
cmp edi, edx
jbe 0x412706
mov eax, dword [ebp - 0xd0]
mov ebx, str.The_following_options_are_specific_to_just_the_language
test eax, eax
jne 0x4126f9
mov ebx, str.The_following_options_are_supported_by_the_language
mov eax, dword [edx*4 + 0x467b40]
mov dword [ebp - 0xc4], eax
add ecx, ecx
cmp edx, 0x15
je 0x412743
inc edx
mov eax, ecx
and eax, esi
cmp eax, 0x40000
je 0x412a60
jbe 0x4126c7
cmp eax, 0x100000
je 0x412a74
cmp eax, 0x200000
je 0x412a6a
cmp eax, 0x80000
jne 0x4126e1
add ecx, ecx
cmp edx, 0x15
jne 0x41270d
test ebx, ebx
je 0x412b9a
mov edi, dword [ebp - 0xc4]
push eax
push edi
push ebx
push str._s_s:_n
call fcn.00411090
mov ecx, dword [ebp + 0x14]
add esp, 0x10
cmp esi, 0x10000
mov ecx, dword [ecx + 0x94]
mov dword [ebp - 0xc0], ecx
je 0x412b12
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x20]
test eax, eax
je 0x412d98
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x412db5
mov ebx, dword [0x467b70]
test ebx, ebx
je 0x412aab
lea eax, [ebp - 0x90]
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0xb4], 0
xor edi, edi
mov dword [ebp - 0xd4], eax
test esi, esi
jne 0x412a80
mov edx, dword [edi + 0x479bc4]
test dword [ebp + 0x10], edx
je 0x412897
test dword [ebp + 0xc], edx
jne 0x412897
test edx, 0x80000
je 0x4127fd
mov eax, dword [ebp - 0xc8]
or eax, 0x300000
test edx, eax
je 0x412897
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0xb4]
mov ecx, dword [edx + 0x20]
add eax, ecx
cmp byte [eax], 0
jne 0x412aa4
mov byte [eax], 1
mov ecx, dword [edi + 0x479ba4]
mov dword [ebp - 0xa0], ecx
test ecx, ecx
je 0x412a97
mov ebx, dword [ebp - 0xa0]
push eax
push eax
push 9
push ebx
call sub.msvcrt.dll_strchr
add esp, 0x10
test eax, eax
je 0x412dd3
mov edx, eax
mov ecx, dword [ebp - 0xa0]
sub edx, ecx
inc eax
mov dword [ebp - 0xb8], edx
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0xa20]
test edx, edx
je 0x412c50
sub esp, 0xc
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xa0]
push ecx
mov ecx, dword [ebp - 0xb8]
call fcn.004110b0
add esp, 0x10
cmp dword [edi + 0x479bd0], 5
je 0x412d03
mov cl, 1
mov bl, 1
mov eax, dword [ebp - 0xb4]
add edi, 0x40
inc eax
mov dword [ebp - 0xb4], eax
mov eax, dword [0x467b70]
cmp dword [ebp - 0xb4], eax
jne 0x4127c2
test cl, cl
je 0x412aab
test bl, bl
je 0x412d50
mov edx, dword [sym.imp.msvcrt.dll__iob]
mov eax, dword [edx + 0x24]
dec eax
mov dword [edx + 0x24], eax
test eax, eax
js 0x412d7e
mov eax, dword [edx + 0x20]
mov byte [eax], 0xa
inc eax
mov dword [edx + 0x20], eax
mov esi, dword [0x467080]
test esi, esi
je 0x412b92
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa8], 0
jmp 0x41293d
mov eax, dword [ebp - 0xa4]
inc eax
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xa8]
add eax, 0x18
mov dword [ebp - 0xa8], eax
mov eax, dword [0x467080]
cmp dword [ebp - 0xa4], eax
je 0x412b92
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp - 0xa4]
mov eax, dword [edx + 0x1c]
cmp byte [eax + ecx], 1
jne 0x412910
mov edx, dword [ebp - 0xa8]
mov eax, dword [edx + 0x466ea0]
test eax, eax
je 0x412910
push ecx
push ecx
push eax
push str.___s_n
call fcn.00411090
mov ecx, dword [ebp - 0xa8]
mov esi, dword [ecx + 0x466ea8]
add esp, 0x10
mov ebx, dword [esi]
test ebx, ebx
je 0x412aed
mov edi, 4
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 0xc
jmp 0x4129e2
push edx
push edx
push ebx
push 0x48f739
call fcn.00411090
add esp, 0x10
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0xb0], ecx
mov esi, dword [eax + 0x466ea8]
mov eax, dword [ebp - 0xac]
add eax, 0xc
mov ebx, dword [esi + ecx]
mov dword [ebp - 0xac], eax
test ebx, ebx
je 0x412aed
sub esp, 0xc
push ebx
call sub.msvcrt.dll_strlen
add esp, 0x10
mov dword [ebp - 0xbc], eax
cmp edi, 4
jbe 0x412a26
lea edi, [edi + eax + 1]
cmp dword [ebp - 0xc0], edi
jae 0x4129a0
sub esp, 0xc
mov edi, 4
push str._n
call fcn.00411090
mov eax, dword [ebp - 0xa8]
add esp, 0x10
mov esi, dword [eax + 0x466ea8]
mov edx, dword [ebp - 0xb0]
push eax
push eax
mov eax, dword [edx + esi]
push eax
push 0x48f743
call fcn.00411090
mov eax, dword [ebp - 0xbc]
add edi, eax
add esp, 0x10
jmp 0x4129b0
mov ebx, str.The_following_options_control_compiler_warning_messages
jmp 0x412706
mov ebx, str.The___param_option_recognizes_the_following_as_parameters
jmp 0x412706
mov ebx, str.The_following_options_control_optimizations
jmp 0x412706
mov ebx, str.The_following_options_are_language_independent
jmp 0x412706
mov ebx, str.The_following_options_are_target_specific
jmp 0x412706
mov edx, dword [edi + 0x479bc4]
mov eax, esi
and eax, edx
cmp esi, eax
jne 0x4127d0
jmp 0x4127d9
test dword [ebp + 0xc], 0x1000000
je 0x412d2c
mov cl, 1
jmp 0x412897
and esi, 0x7ff
je 0x412d3b
xor ebx, ebx
xor ecx, ecx
jmp 0x412acc
inc ebx
mov ecx, ebx
cmp ebx, 0xb
je 0x4128c8
mov eax, esi
shr eax, cl
test al, 1
je 0x412ac0
mov eax, dword [ebx*4 + 0x467b40]
push edi
push eax
push eax
push str._None_found.__Use___help_s_to_show_all_the_options_supported_by_the__s_front_end_n
call fcn.00411090
add esp, 0x10
jmp 0x412ac0
sub esp, 0xc
push 0x48f746
call fcn.00411090
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp - 0xa4]
add esp, 0x10
mov eax, dword [edx + 0x1c]
mov byte [eax + ecx], 2
jmp 0x412910
mov eax, dword [ebp + 0xc]
xor esi, esi
and eax, 0x1000000
mov dword [ebp - 0xcc], eax
mov ebx, dword [0x4a5b40]
mov eax, esi
add eax, ebx
mov ebx, dword [eax + 0x10]
mov edi, dword [eax]
test ebx, ebx
je 0x412b3a
cmp byte [ebx], 0
jne 0x412b49
mov ecx, dword [ebp - 0xcc]
test ecx, ecx
jne 0x412b68
mov ebx, str.This_switch_lacks_documentation
sub esp, 0xc
push edi
call sub.msvcrt.dll_strlen
pop edx
mov ecx, eax
mov eax, dword [ebp - 0xc0]
mov edx, edi
push eax
mov eax, ebx
call fcn.004110b0
add esp, 0x10
add esi, 0x14
cmp esi, 0x10cc
jne 0x412b22
mov edx, dword [sym.imp.msvcrt.dll__iob]
mov eax, dword [edx + 0x24]
dec eax
mov dword [edx + 0x24], eax
test eax, eax
js 0x412ea5
mov eax, dword [edx + 0x20]
mov byte [eax], 0xa
inc eax
mov dword [edx + 0x20], eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x412c32
mov ebx, str.The_following_options_are_not_documented
test esi, 0x1000000
jne 0x41274b
mov ebx, str.The_following_options_take_separate_arguments
test esi, 0x800000
jne 0x41274b
mov ebx, str.The_following_options_take_joined_arguments
test esi, 0x400000
jne 0x41274b
push eax
push eax
push esi
push str.unrecognized_include_flags_0x_x_passed_to_print_specific_help
call fcn.00418370
sub esp, 0xc
push 0x48f3b4
call sub.msvcrt.dll_getenv
add esp, 0x10
test eax, eax
je 0x412c12
sub esp, 0xc
push eax
call fcn.00457c60
add esp, 0x10
test eax, eax
jle 0x412c12
mov edx, dword [ebp + 0x14]
mov dword [edx + 0x94], eax
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 0x94]
test eax, eax
jne 0x4126a3
mov dword [ecx + 0x94], 0x50
jmp 0x4126a3
mov edx, dword [ebp - 0xc8]
mov ebx, str.The_following_options_are_language_related
test dword [ebp + 0x10], edx
jne 0x41274b
mov ebx, str.The_following_options_are_language_independent
jmp 0x41274b
push eax
push eax
mov eax, dword [ebp - 0xb4]
push ecx
push eax
call fcn.00414960
add esp, 0x10
cmp dword [ebp - 0xb8], 0x1c
ja 0x412d65
mov word [ebp - 0x90], 0x909
mov byte [ebp - 0x8e], 0
test eax, eax
je 0x412d73
mov edx, dword [edi + 0x479bd0]
cmp edx, 6
je 0x412d73
test byte [edi + 0x479bc6], 0x40
je 0x412ebf
cmp edx, 4
je 0x412eff
cmp edx, 5
je 0x412dfc
push edx
lea ecx, [ebp - 0x90]
mov eax, dword [eax]
push eax
push 0x48f634
mov eax, dword [ecx]
add ecx, 4
lea edx, [eax - 0x1010101]
xor eax, 0xffffffff
and edx, eax
and edx, 0x80808080
je 0x412cc4
test edx, 0x8080
jne 0x412cea
shr edx, 0x10
add ecx, 2
add dl, dl
sbb ecx, 3
push ecx
call fcn.00411200
lea eax, [ebp - 0x90]
add esp, 0x10
jmp 0x412868
mov ecx, dword [ebp + 0x14]
mov ax, word [edi + 0x479bcc]
and eax, 0xffff
mov edx, dword [ecx + 0x1c]
add eax, edx
cmp byte [eax], 2
je 0x412893
mov cl, 1
mov bl, 1
mov byte [eax], 1
jmp 0x412897
mov dword [ebp - 0xa0], str.This_switch_lacks_documentation
jmp 0x41282b
sub esp, 0xc
push str._No_options_with_the_desired_characteristics_were_found_n
call fcn.00411090
add esp, 0x10
jmp 0x4128c8
sub esp, 0xc
push str._All_options_with_the_desired_characteristics_have_already_been_displayed_n
call fcn.00411090
add esp, 0x10
jmp 0x4128c8
mov word [ebp - 0x90], 9
jmp 0x412c7f
lea eax, [ebp - 0x90]
jmp 0x412868
mov eax, dword [sym.imp.msvcrt.dll__iob]
push ebx
add eax, 0x20
push ebx
push eax
push 0xa
call sub.msvcrt.dll__flsbuf
add esp, 0x10
jmp 0x4128e7
push eax
push eax
mov eax, dword [0x467b70]
push eax
push 1
call fcn.0043b770
mov ecx, dword [ebp + 0x14]
add esp, 0x10
mov dword [ecx + 0x20], eax
jmp 0x41278a
mov edi, dword [0x467080]
push eax
push eax
push edi
push 1
call fcn.0043b770
mov edx, dword [ebp + 0x14]
add esp, 0x10
mov dword [edx + 0x1c], eax
jmp 0x412798
sub esp, 0xc
mov ebx, dword [edi + 0x479ba0]
push ebx
call sub.msvcrt.dll_strlen
add esp, 0x10
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0xa0], ebx
jmp 0x412857
mov bx, word [edi + 0x479bcc]
sub esp, 0xc
and ebx, 0xffff
mov dword [ebp - 0x10], 0
push eax
lea ebx, [ebx + ebx*2]
shl ebx, 3
call dword [ebx + 0x466eb4]
mov edx, dword [ebp + 0x18]
push edx
push eax
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebx + 0x466ea8]
push eax
call fcn.00414830
mov eax, dword [ebp - 0x10]
add esp, 0x20
test eax, eax
je 0x412f5e
lea ecx, [ebp - 0x90]
mov eax, dword [ecx]
add ecx, 4
lea edx, [eax - 0x1010101]
xor eax, 0xffffffff
and edx, eax
and edx, 0x80808080
je 0x412e49
test edx, 0x8080
jne 0x412e6f
shr edx, 0x10
add ecx, 2
add dl, dl
mov eax, dword [ebp - 0xd4]
sbb ecx, 3
mov ebx, dword [ebp - 0x10]
sub ecx, eax
push eax
push ebx
mov eax, pe_nt_image_headers32
sub eax, ecx
push eax
lea eax, [ebp - 0x90]
add eax, ecx
push eax
call fcn.00453120
lea eax, [ebp - 0x90]
add esp, 0x10
jmp 0x412868
mov eax, dword [sym.imp.msvcrt.dll__iob]
push edx
add eax, 0x20
push edx
push eax
push 0xa
call sub.msvcrt.dll__flsbuf
add esp, 0x10
jmp 0x412b92
push eax
push eax
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp - 0xb4]
push eax
call fcn.00414990
add esp, 0x10
mov edx, str._enabled_
test eax, eax
jne 0x412ee2
mov edx, str._disabled_
push ebx
push ebx
push edx
lea edx, [ebp - 0x90]
push edx
call sub.msvcrt.dll_strcat
lea eax, [ebp - 0x90]
add esp, 0x10
jmp 0x412868
mov ebx, dword [eax]
test ebx, ebx
je 0x412d73
lea ecx, [ebp - 0x90]
mov eax, dword [ecx]
add ecx, 4
lea edx, [eax - 0x1010101]
xor eax, 0xffffffff
and edx, eax
and edx, 0x80808080
je 0x412f0f
test edx, 0x8080
jne 0x412f35
shr edx, 0x10
add ecx, 2
add dl, dl
mov eax, dword [ebp - 0xd4]
sbb ecx, 3
sub ecx, eax
push eax
push ebx
jmp 0x412e81
push ecx
push str.print_specific_help
push 0x4ea
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._gcc_gcc_4.9_gcc_opts.c
call fcn.004183c0
mov dword [ebp - 0x10], str._default_
jmp 0x412e43