Function at 0x403f40
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x7c
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], eax
mov dword [esp], 0x47a3a4
call sub.msvcrt.dll_getenv
mov dword [esp], str.5.1.0
mov dword [0x4c6124], eax
mov dword [0x4c60dc], 0
mov dword [0x4c6028], 0
mov dword [0x4c60a8], 0
call fcn.00444790
mov dword [0x4c6210], eax
movzx edx, byte [eax]
test dl, dl
jne 0x403faa
jmp 0x403fb2
add eax, 1
movzx edx, byte [eax]
test dl, dl
je 0x403fb2
cmp dl, 0x20
jne 0x403fa0
mov byte [eax], 0
mov ecx, dword [ebp - 0x4c]
cmp ecx, 1
jbe 0x403feb
mov eax, dword [ebp - 0x50]
cmp dword [eax + 0x2c], 0x508
je 0x4048c4
add eax, 0x58
mov edx, 1
jmp 0x403fe4
add eax, 0x2c
cmp dword [eax - 0x2c], 0x508
je 0x4048c4
add edx, 1
cmp edx, ecx
jne 0x403fd4
mov esi, 0x44b610
mov eax, dword [0x4c6124]
mov dword [0x4c6120], 0x47a3b4
test eax, eax
je 0x404a00
mov dword [esp + 8], 0
mov dword [esp + 4], 0x47a3f3
mov dword [esp], eax
call fcn.00444640
mov dword [esp + 8], str.C:_mingw32tdm_libexec_gcc_
mov ebx, eax
mov dword [esp + 4], str.C:_mingw32tdm_lib_gcc_
mov dword [esp], eax
call esi
mov edx, str.C:_mingw32tdm_libexec_gcc_
test eax, eax
mov dword [esp], ebx
cmove eax, edx
mov dword [0x4c6120], eax
call sub.msvcrt.dll_free
lea eax, [ebp - 0x4c]
mov dword [esp + 8], 0x4c60a8
mov dword [esp + 4], eax
lea eax, [ebp - 0x50]
mov dword [esp], eax
call fcn.0040ea40
mov ebx, dword [0x4c6124]
test ebx, ebx
je 0x4040e8
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
cmp eax, 9
mov edi, eax
jg 0x404821
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.00419ba0
mov edx, dword [0x4c6120]
mov ecx, 0x47a3f7
mov eax, 0x47942c
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004038d0
mov edx, dword [0x4c6124]
mov dword [esp + 8], 0
mov ecx, 0x47a3f7
mov dword [esp + 4], 0
mov dword [esp], 1
mov eax, 0x479420
call fcn.004038d0
mov dword [esp], str.COMPILER_PATH
call sub.msvcrt.dll_getenv
test eax, eax
mov edi, eax
je 0x4041e0
mov dword [esp], eax
call sub.msvcrt.dll_strlen
add eax, 0x21
shr eax, 4
shl eax, 4
call fcn.0046a050
mov ebx, edi
sub esp, eax
movzx eax, byte [ebx]
lea esi, [esp + 0x2f]
and esi, 0xfffffff0
cmp al, 0x3b
je 0x404140
lea esi, [esi]
lea edi, [edi]
test al, al
lea edx, [ebx + 1]
je 0x404140
mov ebx, edx
movzx eax, byte [ebx]
cmp al, 0x3b
jne 0x404130
mov edx, ebx
mov dword [esp + 4], edi
mov dword [esp], esi
sub edx, edi
mov dword [esp + 8], edx
mov dword [ebp - 0x54], edx
call sub.msvcrt.dll_strncpy
cmp edi, ebx
mov edx, dword [ebp - 0x54]
je 0x4046d2
movzx eax, byte [ebx - 1]
cmp al, 0x2f
je 0x4041d2
cmp al, 0x5c
je 0x4041d2
mov byte [esi + edx], 0x2f
mov byte [esi + edx + 1], 0
xor ecx, ecx
mov edx, esi
mov eax, 0x47942c
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004038d0
xor ecx, ecx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 1
mov edx, esi
mov eax, 0x479414
call fcn.004038d0
cmp byte [ebx], 0
je 0x4041e0
lea edx, [ebx + 1]
mov edi, edx
mov ebx, edx
jmp 0x404139
mov byte [esi + edx], 0
jmp 0x404177
mov dword [esp], str.LIBRARY_PATH
call sub.msvcrt.dll_getenv
test eax, eax
mov esi, eax
je 0x404200
mov eax, dword [0x4794bc]
cmp byte [eax], 0x30
je 0x404a6f
mov dword [esp], str.LPATH
call sub.msvcrt.dll_getenv
test eax, eax
mov esi, eax
je 0x404220
mov eax, dword [0x4794bc]
cmp byte [eax], 0x30
je 0x404b26
mov esi, dword [ebp - 0x4c]
mov dword [0x4c60a0], 0xffffffff
mov dword [ebp - 0x3c], 0x403e40
mov dword [ebp - 0x38], 0x403df0
mov dword [ebp - 0x34], 3
mov dword [ebp - 0x30], 0x4056c0
cmp esi, 1
mov dword [ebp - 0x2c], 0x80000
mov dword [ebp - 0x28], 0x41c180
mov dword [ebp - 0x24], 0x200000
mov dword [ebp - 0x20], 0x41b2f0
mov dword [ebp - 0x1c], 0x100000
jbe 0x4043b6
mov ebx, dword [ebp - 0x50]
mov edi, dword [0x4c6104]
mov ecx, 1
lea edx, [ebx + 0x2c]
jmp 0x4042a3
cmp eax, 0x79
je 0x4042b3
test edi, edi
jne 0x4042bd
add ecx, 1
add edx, 0x2c
cmp ecx, esi
je 0x4042bd
mov eax, dword [edx]
cmp eax, 0x94
je 0x4042b3
cmp eax, 0x1c3
jne 0x404290
mov dword [0x4c6104], 1
mov dword [ebp - 0x58], 0x2c
mov dword [ebp - 0x54], 1
jmp 0x40435f
mov ebx, dword [ebx + 8]
mov dword [esp + 4], 0x40
mov dword [esp], ebx
call sub.msvcrt.dll_strrchr
test eax, eax
mov esi, eax
je 0x4042f1
cmp ebx, eax
jne 0x4045e4
mov dword [esp], ebx
call fcn.00444790
mov dword [ebp - 0x5c], 0x47a344
mov edx, eax
mov edi, dword [ebp - 0x5c]
mov ecx, 2
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x404679
mov dword [ebp - 0x5c], edx
mov esi, dword [0x4c60a4]
call fcn.00403ed0
mov ecx, dword [0x4c6028]
mov edx, dword [ebp - 0x5c]
mov eax, ecx
add ecx, 1
shl eax, 4
add eax, dword [0x4c60b4]
mov dword [eax], ebx
mov dword [eax + 4], esi
mov dword [0x4c6028], ecx
mov dword [esp], edx
call sub.msvcrt.dll_free
add dword [ebp - 0x54], 1
add dword [ebp - 0x58], 0x2c
mov eax, dword [ebp - 0x54]
cmp dword [ebp - 0x4c], eax
jbe 0x4043b6
mov ebx, dword [ebp - 0x50]
add ebx, dword [ebp - 0x58]
cmp dword [ebx], 0x578
je 0x4042d0
mov eax, dword [0x479520]
mov dword [esp + 0x10], 0x80000
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x4c6280
mov dword [esp], 0x4c6ee0
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x3c]
mov dword [esp + 0x14], eax
call fcn.004191b0
add dword [ebp - 0x54], 1
add dword [ebp - 0x58], 0x2c
mov eax, dword [ebp - 0x54]
cmp dword [ebp - 0x4c], eax
ja 0x40435c
mov eax, dword [0x4c60fc]
test eax, eax
je 0x4043d3
mov edi, 0x47a344
mov ecx, 2
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4047a0
mov ebx, dword [0x4c621c]
cmp ebx, 2
je 0x404700
mov eax, dword [0x4c6218]
test eax, eax
je 0x4043fd
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [0x4c6218], 0
test ebx, ebx
jne 0x404710
mov edi, dword [0x4c6034]
test edi, edi
je 0x404749
js 0x4049c3
mov ebx, dword [0x4c6124]
test ebx, ebx
je 0x404c2d
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x4813be
mov dword [esp + 4], str.mingw32
mov dword [esp], str..._.._.._.._
call fcn.00444640
mov esi, eax
mov eax, dword [0x4c6124]
mov edx, str.C:_mingw32tdm_lib_gcc_
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0x4813be
mov dword [esp + 0x10], 0x47a040
test eax, eax
mov dword [esp + 0xc], 0x47a487
mov dword [esp + 8], 0x4813be
cmove eax, edx
mov dword [esp + 4], str.mingw32
mov dword [esp], eax
call fcn.00444640
mov dword [esp], esi
mov ebx, eax
call sub.msvcrt.dll_free
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x4813be
mov dword [esp + 4], 0x47a48d
mov dword [esp], ebx
call fcn.00444640
mov ecx, str.BINUTILS
mov edx, eax
mov dword [esp + 8], 0
mov eax, 0x47942c
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004038d0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x4813be
mov dword [esp + 4], 0x47a15d
mov dword [esp], ebx
call fcn.00444640
mov ecx, str.BINUTILS
mov edx, eax
mov dword [esp + 8], 1
mov eax, 0x479420
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004038d0
mov dword [esp], ebx
call sub.msvcrt.dll_free
mov eax, dword [0x4c60a0]
cmp dword [0x4c6028], eax
je 0x4048d0
mov eax, dword [0x4c6034]
sub eax, 2
cmp eax, 1
jbe 0x404906
mov ecx, dword [0x4c6234]
test ecx, ecx
jne 0x404574
mov edx, dword [0x4c6240]
test edx, edx
je 0x4048b2
mov dword [0x4c6028], 0
call fcn.00403ed0
mov edx, dword [0x4c6028]
mov eax, edx
add edx, 1
shl eax, 4
add eax, dword [0x4c60b4]
mov dword [eax], str.help_dummy
mov dword [eax + 4], 0x47a4de
mov dword [0x4c6028], edx
call fcn.00403cc0
mov eax, dword [0x4c60dc]
shl eax, 4
add eax, dword [0x4c60e0]
mov dword [eax], 0
call fcn.00403ed0
mov eax, dword [0x4c6028]
shl eax, 4
add eax, dword [0x4c60b4]
mov dword [eax], 0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0x40]
mov dword [esp + 4], str.__li_n
mov dword [esp], esi
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x44]
mov dword [esp + 8], eax
call sub.msvcrt.dll_sscanf
test eax, eax
jle 0x4042f1
mov dword [esp], esi
call sub.msvcrt.dll_strlen
cmp eax, dword [ebp - 0x40]
jne 0x4042f1
sub esi, ebx
mov edi, 0x47a344
lea eax, [esi + 1]
mov dword [esp], eax
call fcn.00444470
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], eax
mov dword [ebp - 0x5c], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0x5c]
mov ecx, 2
mov dword [ebp - 0x5c], edi
mov byte [edx + esi], 0
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4046b2
mov dword [esp], edx
call sub.msvcrt.dll_free
mov dword [esp], ebx
call fcn.00444790
mov edi, dword [ebp - 0x5c]
mov edx, eax
mov ecx, 2
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x404314
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [ebp - 0x5c], edx
call sub.msvcrt.dll__access
test eax, eax
mov edx, dword [ebp - 0x5c]
jns 0x404314
mov dword [esp + 4], edx
mov dword [esp], str._s:__m
mov dword [ebp - 0x5c], edx
call fcn.00422540
mov edx, dword [ebp - 0x5c]
jmp 0x404344
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [ebp - 0x60], edx
call sub.msvcrt.dll__access
test eax, eax
mov edx, dword [ebp - 0x60]
jns 0x404302
jmp 0x404655
mov dword [esp + 8], 0
mov dword [esp + 4], 0x4813be
mov dword [esp], 0x47a072
call fcn.00444640
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcpy
jmp 0x404177
mov ebx, dword [0x4c6218]
test ebx, ebx
jne 0x404950
nop
mov eax, dword [0x4c7aac]
test eax, eax
je 0x404405
mov dword [esp + 4], str._pipe_ignored_because__save_temps_specified
mov dword [esp], 0
call fcn.00422320
mov edi, dword [0x4c6034]
mov dword [0x4c7aac], 0
test edi, edi
jne 0x404413
mov dword [esp], str.GCC_COMPARE_DEBUG
call sub.msvcrt.dll_getenv
test eax, eax
je 0x404419
movzx edx, byte [eax]
cmp dl, 0x2d
je 0x4049a4
test dl, dl
je 0x404419
mov edi, 0x47a466
mov ecx, 2
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x404419
mov dword [0x4c6034], 3
mov dword [0x4c602c], 0x47a468
jmp 0x404419
mov edi, 0x47a423
mov ecx, 4
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x4043d3
mov eax, dword [0x4c6028]
test eax, eax
jle 0x4043d3
xor ebx, ebx
jmp 0x4047d4
add ebx, 1
cmp dword [0x4c6028], ebx
jle 0x4043d3
mov eax, ebx
shl eax, 4
add eax, dword [0x4c60b4]
mov edx, dword [eax + 4]
test edx, edx
je 0x4047eb
cmp byte [edx], 0x2a
je 0x4047c5
mov edx, dword [0x4c60fc]
mov dword [esp + 4], edx
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00444d20
test eax, eax
je 0x4047c5
mov eax, dword [0x4c60fc]
mov dword [esp + 4], str.input_file__qs_is_the_same_as_output_file
mov dword [esp + 8], eax
mov eax, dword [0x4c7b9c]
mov dword [esp], eax
call fcn.00422700
movzx edx, byte [ebx + eax - 1]
cmp dl, 0x2f
je 0x404834
cmp dl, 0x5c
jne 0x404084
lea esi, [eax - 9]
lea edx, [ebx + esi]
movzx eax, byte [edx]
cmp al, 0x2f
je 0x404849
cmp al, 0x5c
jne 0x404084
lea eax, [edx + 1]
mov dword [esp + 8], 3
mov dword [esp + 4], 0x47a15d
mov dword [ebp - 0x54], edx
mov dword [esp], eax
call fcn.00444bc0
test eax, eax
mov edx, dword [ebp - 0x54]
jne 0x4049b8
movzx eax, byte [edx + 4]
cmp al, 0x2f
je 0x404882
cmp al, 0x5c
jne 0x4049b8
add edx, 5
mov dword [esp + 8], 3
mov dword [esp + 4], 0x47a3f3
mov dword [esp], edx
call fcn.00444bc0
test eax, eax
jne 0x4049b8
mov edi, esi
mov ebx, dword [0x4c6124]
jmp 0x404084
mov eax, dword [0x4c623c]
test eax, eax
jne 0x404574
jmp 0x4045aa
mov esi, 0x44b630
jmp 0x403ff0
mov eax, dword [0x4c60a4]
test eax, eax
je 0x40454b
mov dword [esp + 8], eax
mov dword [esp + 4], str.___x__s___after_last_input_file_has_no_effect
mov dword [esp], 0
call fcn.00422320
mov eax, dword [0x4c6034]
sub eax, 2
cmp eax, 1
ja 0x40455c
mov eax, dword [0x4c602c]
mov dword [esp + 8], 0
mov dword [esp], 0x47a4c2
mov dword [esp + 4], eax
call fcn.00444640
mov dword [esp + 4], 1
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.00403d30
mov dword [0x4c6034], 1
jmp 0x40455c
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp], ebx
mov dword [0x4c6214], eax
call fcn.0044b6d0
mov dword [esp + 4], 0x2e
mov dword [esp], eax
call sub.msvcrt.dll_strrchr
test eax, eax
je 0x404999
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov edi, dword [0x4c6214]
mov edx, dword [0x4c6218]
sub edi, eax
mov dword [0x4c6214], edi
mov byte [edx + edi], 0
mov ebx, dword [0x4c621c]
jmp 0x4043fd
mov dword [0x4c6034], 2
mov dword [0x4c602c], eax
jmp 0x404419
mov ebx, dword [0x4c6124]
jmp 0x404084
mov esi, dword [0x4c602c]
mov dword [0x4c6034], 0
test esi, esi
je 0x404419
mov dword [esp + 8], str.process_command
mov dword [esp + 4], 0x1095
mov dword [esp], str..._.._.._.._src_gcc_5.1.0_gcc_gcc.c
call fcn.00421800
mov esi, esi
lea edi, [edi]
mov eax, dword [ebp - 0x50]
mov dword [esp + 8], str.C:_mingw32tdm_lib_gcc_
mov dword [esp + 4], str.C:_mingw32tdm_bin_
mov eax, dword [eax + 8]
mov dword [esp], eax
call esi
mov dword [0x4c6124], eax
mov eax, dword [ebp - 0x50]
mov dword [esp + 8], str.C:_mingw32tdm_libexec_gcc_
mov dword [esp + 4], str.C:_mingw32tdm_bin_
mov eax, dword [eax + 8]
mov dword [esp], eax
call esi
mov dword [0x4c6120], eax
mov eax, dword [0x4c6124]
test eax, eax
je 0x40404d
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], str.GCC_EXEC_PREFIX
call fcn.00444640
call fcn.004031b0
jmp 0x40404d
mov dword [esp], esi
call sub.msvcrt.dll_strlen
add eax, 0x21
shr eax, 4
shl eax, 4
call fcn.0046a050
mov ebx, esi
sub esp, eax
movzx eax, byte [ebx]
lea edi, [esp + 0x2f]
and edi, 0xfffffff0
cmp al, 0x3b
je 0x404ab0
mov esi, esi
lea edi, [edi]
test al, al
lea edx, [ebx + 1]
je 0x404ab0
mov ebx, edx
movzx eax, byte [ebx]
cmp al, 0x3b
jne 0x404aa0
mov edx, ebx
mov dword [esp + 4], esi
mov dword [esp], edi
sub edx, esi
mov dword [esp + 8], edx
mov dword [ebp - 0x54], edx
call sub.msvcrt.dll_strncpy
cmp esi, ebx
mov edx, dword [ebp - 0x54]
je 0x404c00
movzx eax, byte [ebx - 1]
cmp al, 0x2f
je 0x404b20
cmp al, 0x5c
je 0x404b20
mov byte [edi + edx], 0x2f
mov byte [edi + edx + 1], 0
xor ecx, ecx
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], 1
mov edx, edi
mov eax, 0x479420
call fcn.004038d0
cmp byte [ebx], 0
je 0x404200
lea edx, [ebx + 1]
mov esi, edx
mov ebx, edx
jmp 0x404aa9
mov byte [edi + edx], 0
jmp 0x404ae7
mov dword [esp], esi
call sub.msvcrt.dll_strlen
add eax, 0x21
shr eax, 4
shl eax, 4
call fcn.0046a050
mov ebx, esi
sub esp, eax
movzx eax, byte [ebx]
lea edi, [esp + 0x2f]
and edi, 0xfffffff0
cmp al, 0x3b
je 0x404b60
nop
test al, al
lea edx, [ebx + 1]
je 0x404b60
mov ebx, edx
movzx eax, byte [ebx]
cmp al, 0x3b
jne 0x404b50
mov edx, ebx
mov dword [esp + 4], esi
mov dword [esp], edi
sub edx, esi
mov dword [esp + 8], edx
mov dword [ebp - 0x54], edx
call sub.msvcrt.dll_strncpy
cmp esi, ebx
mov edx, dword [ebp - 0x54]
je 0x404bd6
movzx eax, byte [ebx - 1]
cmp al, 0x2f
je 0x404bd0
cmp al, 0x5c
je 0x404bd0
mov byte [edi + edx], 0x2f
mov byte [edi + edx + 1], 0
xor ecx, ecx
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], 1
mov edx, edi
mov eax, 0x479420
call fcn.004038d0
cmp byte [ebx], 0
je 0x404220
lea edx, [ebx + 1]
mov esi, edx
mov ebx, edx
jmp 0x404b59
mov byte [edi + edx], 0
jmp 0x404b93
mov dword [esp + 8], 0
mov dword [esp + 4], 0x4813be
mov dword [esp], 0x47a072
call fcn.00444640
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcpy
jmp 0x404b93
mov dword [esp + 8], 0
mov dword [esp + 4], 0x4813be
mov dword [esp], 0x47a072
call fcn.00444640
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcpy
jmp 0x404ae7
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov ecx, 0x47a3f7
mov dword [esp], 1
mov edx, str.C:_mingw32tdm_libexec_gcc_
mov eax, 0x47942c
call fcn.004038d0
mov dword [esp + 8], 0
mov dword [esp + 4], 2
mov ecx, str.BINUTILS
mov dword [esp], 1
mov edx, str.C:_mingw32tdm_libexec_gcc_
mov eax, 0x47942c
call fcn.004038d0
mov dword [esp + 8], 0
mov dword [esp + 4], 2
mov ecx, str.BINUTILS
mov dword [esp], 1
mov edx, str.C:_mingw32tdm_lib_gcc_
mov eax, 0x47942c
call fcn.004038d0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov ecx, str.BINUTILS
mov dword [esp], 1
mov edx, str.C:_mingw32tdm_lib_gcc_
mov eax, 0x479420
call fcn.004038d0
jmp 0x404427