Function at 0x4c76d0
Capabilities:
Query environment variable

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xdc
mov esi, dword [esp + 0x100]
mov edx, dword [esp + 0xf4]
mov edi, dword [esp + 0x108]
mov dword [esp + 0xc8], 0
test esi, esi
je 0x4c7e86
test edi, edi
je 0x4c7c40
cmp dword [esp + 0x104], 0x6f02a5
jne 0x4c7d72
test dl, 2
jne 0x4c7daa
mov eax, dword [esp + 0xfc]
lea ebx, [esp + 0x38]
mov ecx, dword [0x6a8fdc]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0xf8]
mov dword [esp], eax
mov eax, ebx
call fcn.004c33f0
mov dword [esp + 4], ebx
mov dword [esp], 0x4c51d0
call fcn.0048e4f0
mov dword [esp + 0x24], eax
call fcn.005c06a0
mov edx, dword [esp + 0xf0]
mov eax, ebx
call fcn.004c6aa0
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
mov eax, dword [esp + 0xc4]
cmp eax, 1
je 0x4c779a
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x4c7e5a
mov edx, dword [esi + 8]
test edx, edx
je 0x4c7e2e
test eax, eax
mov dword [esi + 4], 1
jle 0x4c780c
mov eax, dword [esp + 0x70]
mov dword [esp], fcn.005c2f40
mov dword [esp + 4], eax
call fcn.0048e4f0
mov eax, dword [esp + 0xc4]
test eax, eax
jle 0x4c780c
mov eax, dword [esp + 0x70]
mov eax, dword [eax]
test eax, eax
je 0x4c7d0e
xor ebx, ebx
jmp 0x4c77f0
mov eax, dword [esp + 0x70]
mov eax, dword [eax + ebx*8]
test eax, eax
je 0x4c7d0e
mov dword [esp + 4], eax
add ebx, 1
mov dword [esp], fcn.005c2f40
call fcn.0048e4f0
cmp dword [esp + 0xc4], ebx
jg 0x4c77e1
mov ebp, dword [esp + 0x104]
test ebp, ebp
je 0x4c7ba1
cmp dword [esp + 0x104], 0x6f02a5
je 0x4c7bc0
mov esi, dword [esp + 0x6c]
mov dword [esp + 0xcc], 0
test esi, esi
je 0x4c7e02
mov ebx, dword [esp + 0xc4]
test ebx, ebx
jle 0x4c7dd6
lea eax, [esp + 0xcc]
mov dword [esp + 4], eax
mov dword [esp], 0x4c3360
call fcn.0048e4f0
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x2c], eax
lea eax, [ebx + ebx*2]
shl eax, 2
mov dword [esp + 0x28], eax
mov dword [esp], eax
call fcn.005c2e50
mov dword [esp], fcn.005c2f40
mov esi, eax
mov dword [esp + 4], eax
call fcn.0048e4f0
test ebx, ebx
jle 0x4c7cc1
mov edi, dword [esp + 0x70]
mov ecx, dword [edi]
test ecx, ecx
je 0x4c7ce2
xor eax, eax
xor ebp, ebp
mov dword [esp + 0x20], ebx
jmp 0x4c790d
mov dword [esp], eax
add ebp, 1
call fcn.00494390
mov edx, dword [edi]
mov dword [esp], str._s:_s
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call fcn.005c2fc0
mov dword [ebx + 4], eax
mov dword [esp + 4], eax
mov dword [esp], fcn.005c2f40
call fcn.0048e4f0
and byte [ebx + 8], 0xfe
cmp ebp, dword [esp + 0x20]
je 0x4c7945
lea edi, [ebp*8]
mov eax, ebp
add edi, dword [esp + 0x70]
mov edx, dword [edi]
test edx, edx
je 0x4c7ce2
lea eax, [eax + eax*2]
lea ebx, [esi + eax*4]
mov eax, edi
call fcn.004c4370
mov dword [ebx], eax
mov dword [esp + 4], eax
mov dword [esp], fcn.005c2f40
call fcn.0048e4f0
mov eax, dword [edi + 4]
test eax, eax
jne 0x4c78b8
mov eax, dword [edi]
add ebp, 1
and byte [ebx + 8], 0xfe
cmp ebp, dword [esp + 0x20]
mov dword [ebx + 4], eax
jne 0x4c78f6
mov ebx, dword [esp + 0x20]
mov dword [esp + 0xc], 0x4c4fc0
mov dword [esp + 8], 0xc
mov dword [esp + 4], ebp
mov dword [esp], esi
call sub.msvcrt.dll_qsort
cmp ebp, 1
jle 0x4c79c6
mov ebp, dword [esp + 0x28]
lea ebx, [esi + 0xc]
add ebp, esi
cmp ebx, ebp
jae 0x4c79b2
mov edi, esi
lea esi, [esi]
mov eax, dword [edi]
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x4c79a8
mov eax, dword [ebx]
mov dword [edi + 0xc], eax
mov eax, dword [ebx + 4]
mov dword [edi + 0x10], eax
mov eax, dword [ebx + 8]
mov dword [edi + 0x14], eax
add edi, 0xc
add ebx, 0xc
cmp ebx, ebp
jb 0x4c7980
lea ebx, [edi + 0xc]
sub ebx, esi
sar ebx, 2
imul ebx, ebx, 0xaaaaaaab
cmp ebx, 1
jg 0x4c7eb2
cmp ebx, 1
je 0x4c7b18
mov dword [esp], str._0__cancel_n_1__all_n
call fcn.0059b030
test ebx, ebx
jle 0x4c7a15
lea eax, [ebx + 2]
mov ebp, esi
mov dword [esp + 0x20], ebx
mov edi, 2
mov ebx, eax
nop
mov eax, dword [ebp + 4]
add ebp, 0xc
mov dword [esp + 4], edi
add edi, 1
mov dword [esp], str.__d___s_n
mov dword [esp + 8], eax
call fcn.0059b030
cmp edi, ebx
jne 0x4c79f0
mov ebx, dword [esp + 0x20]
mov dword [esp], 0x6f35cd
call sub.msvcrt.dll_getenv
mov edx, 0x6f33a6
mov dword [esp + 8], 0x6f35d1
mov dword [esp + 4], 0
test eax, eax
cmove eax, edx
mov dword [esp], eax
call fcn.00598c00
test eax, eax
je 0x4c7d9e
cmp byte [eax], 0
je 0x4c7d9e
lea ebp, [esp + 0xa8]
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.00446ca0
mov eax, dword [esp + 0xa8]
test eax, eax
jne 0x4c7aec
mov dword [esp], ebp
call fcn.00446fa0
test eax, eax
je 0x4c7d3a
cmp eax, 1
je 0x4c7b18
lea edx, [eax - 2]
cmp edx, ebx
jge 0x4c7b65
lea edx, [edx + edx*2]
lea edi, [esi + edx*4]
test byte [edi + 8], 1
jne 0x4c7b50
mov eax, dword [esp + 0xcc]
mov ecx, dword [edi]
test eax, eax
mov dword [esp + 0x20], ecx
je 0x4c7b80
mov ecx, dword [eax + 4]
mov edx, dword [eax]
cmp ecx, edx
je 0x4c7b80
cmp ecx, edx
jbe 0x4c7d46
lea ecx, [edx + 1]
mov dword [eax], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax + edx*4 + 8], ecx
or byte [edi + 8], 1
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x4c7a72
mov eax, dword [esp + 0xcc]
lea ecx, [esp + 0xc0]
lea edx, [esp + 0x70]
mov dword [esp], eax
lea eax, [esp + 0x6c]
call fcn.004c64c0
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.0048e650
jmp 0x4c7b34
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.0048e650
mov eax, dword [esp + 0x6c]
lea edx, [esp + 0xc0]
call fcn.004c5020
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call fcn.0048e650
add esp, 0xdc
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], eax
mov dword [esp], str.duplicate_request_for__d_ignored._n
call fcn.0059b030
jmp 0x4c7a67
mov dword [esp + 4], edx
mov dword [esp], str.No_choice_number__d._n
call fcn.0059b030
jmp 0x4c7a67
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.00575410
mov dword [esp + 0xcc], eax
mov edx, dword [eax]
mov ecx, dword [eax + 4]
jmp 0x4c7ac8
call fcn.004e3f90
mov dword [esp], eax
call fcn.004e3920
mov dword [esp], eax
call fcn.00570520
test eax, eax
je 0x4c7cb0
nop
test edi, edi
je 0x4c7b24
lea eax, [esp + 0xc8]
mov dword [esp + 4], eax
mov dword [esp], 0x4c3360
call fcn.0048e4f0
mov eax, dword [esp + 0xc8]
test eax, eax
je 0x4c7c20
mov ecx, dword [eax + 4]
mov edx, dword [eax]
cmp ecx, edx
je 0x4c7c20
cmp ecx, edx
jbe 0x4c7ecf
lea ecx, [edx + 1]
mov dword [eax + edx*4 + 8], edi
lea edx, [esp + 0x70]
mov dword [eax], ecx
lea ecx, [esp + 0xc0]
mov dword [esp], eax
lea eax, [esp + 0x6c]
call fcn.004c64c0
jmp 0x4c7b34
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.00575410
mov dword [esp + 0xc8], eax
mov edx, dword [eax]
mov ecx, dword [eax + 4]
jmp 0x4c7bf3
mov ebx, dword [esp + 0x104]
test ebx, ebx
je 0x4c771b
cmp dword [esp + 0x104], 0x6f02a5
je 0x4c771b
cmp dword [esp + 0x104], 0x6f02a9
je 0x4c771b
cmp dword [esp + 0x104], str.cancel
je 0x4c771b
mov dword [esp + 0x10], str.select_mode__NULL__select_mode__multiple_symbols_all__select_mode__multiple_symbols_ask__select_mode__multiple_symbols_cancel
mov dword [esp + 0xc], str.decode_line_full
mov dword [esp + 8], 0x6f2fde
mov dword [esp + 4], 0x976
mov dword [esp], str._home_build_work_GCC_4_8_build_src_gdb_gdb_linespec.c
call fcn.0059c0c0
nop
call fcn.004b4320
mov dword [esp + 0x104], eax
jmp 0x4c781b
mov dword [esp + 0xc], 0x4c4fc0
mov dword [esp + 8], 0xc
mov dword [esp + 4], ebx
mov dword [esp], esi
call sub.msvcrt.dll_qsort
jmp 0x4c79c6
mov dword [esp + 0x10], str.canonical__suffix___NULL
mov dword [esp + 0xc], str.decode_line_2
mov dword [esp + 8], 0x6f2fde
mov dword [esp + 4], 0x561
mov dword [esp], str._home_build_work_GCC_4_8_build_src_gdb_gdb_linespec.c
call fcn.0059c0c0
mov dword [esp + 0x10], str.state__canonical_names_i_.suffix___NULL
mov dword [esp + 0xc], str.decode_line_full
mov dword [esp + 8], 0x6f2fde
mov dword [esp + 4], 0x98d
mov dword [esp], str._home_build_work_GCC_4_8_build_src_gdb_gdb_linespec.c
call fcn.0059c0c0
mov dword [esp], str.canceled
call fcn.0059a2d0
mov dword [esp + 0x10], 0x6f30d9
mov dword [esp + 0xc], 0x6f37f1
mov dword [esp + 8], 0x6f2fde
mov dword [esp + 4], 0x5bd
mov dword [esp], str._home_build_work_GCC_4_8_build_src_gdb_gdb_linespec.c
call fcn.0059c0c0
mov dword [esp + 0x10], str.filter__NULL__select_mode__multiple_symbols_all
mov dword [esp + 0xc], str.decode_line_full
mov dword [esp + 8], 0x6f2fde
mov dword [esp + 4], 0x972
mov dword [esp], str._home_build_work_GCC_4_8_build_src_gdb_gdb_linespec.c
call fcn.0059c0c0
mov dword [esp], 0x6f35e1
call fcn.004442a0
mov dword [esp + 0x10], str._flags__DECODE_LINE_LIST_MODE___0
mov dword [esp + 0xc], str.decode_line_full
mov dword [esp + 8], 0x6f2fde
mov dword [esp + 4], 0x977
mov dword [esp], str._home_build_work_GCC_4_8_build_src_gdb_gdb_linespec.c
call fcn.0059c0c0
mov dword [esp + 0x10], str.result__nelts___1
mov dword [esp + 0xc], str.decode_line_2
mov dword [esp + 8], 0x6f2fde
mov dword [esp + 4], 0x553
mov dword [esp], str._home_build_work_GCC_4_8_build_src_gdb_gdb_linespec.c
call fcn.0059c0c0
mov dword [esp + 0x10], str.self__canonical___NULL
mov dword [esp + 0xc], str.decode_line_2
mov dword [esp + 8], 0x6f2fde
mov dword [esp + 4], 0x552
mov dword [esp], str._home_build_work_GCC_4_8_build_src_gdb_gdb_linespec.c
call fcn.0059c0c0
mov dword [esp + 0x10], str.canonical__addr_string___NULL
mov dword [esp + 0xc], str.decode_line_full
mov dword [esp + 8], 0x6f2fde
mov dword [esp + 4], 0x982
mov dword [esp], str._home_build_work_GCC_4_8_build_src_gdb_gdb_linespec.c
call fcn.0059c0c0
mov dword [esp + 0x10], str.result.nelts__1__canonical__pre_expanded
mov dword [esp + 0xc], str.decode_line_full
mov dword [esp + 8], 0x6f2fde
mov dword [esp + 4], 0x981
mov dword [esp], str._home_build_work_GCC_4_8_build_src_gdb_gdb_linespec.c
call fcn.0059c0c0
mov dword [esp + 0x10], str.canonical___NULL
mov dword [esp + 0xc], str.decode_line_full
mov dword [esp + 8], 0x6f2fde
mov dword [esp + 4], 0x970
mov dword [esp], str._home_build_work_GCC_4_8_build_src_gdb_gdb_linespec.c
call fcn.0059c0c0
cmp dword [esp + 0x104], str.cancel
jne 0x4c79c6
mov dword [esp], 0x6f3568
call fcn.0059a2d0
mov dword [esp + 0x10], 0x6f30d9
mov dword [esp + 0xc], 0x6f37f1
mov dword [esp + 8], 0x6f2fde
mov dword [esp + 4], 0x99f
mov dword [esp], str._home_build_work_GCC_4_8_build_src_gdb_gdb_linespec.c
call fcn.0059c0c0
nop
lea esi, [esi]