Function at 0x408600
Capabilities:
Query environment variable

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0xb8
lea rbp, [rsp + 0xb0]
lea rsi, [0x004c11f4]
mov dword [rbp + 0x50], ecx
mov rcx, rsi
mov qword [rbp + 0x58], rdx
call sub.msvcrt.dll_getenv
cmp byte [0x0059d431], 0
mov rbx, rax
jne 0x4096c8
lea rcx, [0x004c01c5]
mov qword [0x0059d200], rbx
mov dword [0x0059d164], 0
mov dword [0x0059d060], 0
mov dword [0x0059d110], 0
call fcn.0048c9a0
mov qword [0x0059d3a0], rax
movzx edx, byte [rax]
test dl, dl
jne 0x408694
jmp 0x40869c
movzx edx, byte [rax + 1]
add rax, 1
test dl, dl
je 0x40869c
cmp dl, 0x20
jne 0x408688
mov byte [rax], 0
mov edx, dword [rbp + 0x50]
lea r13, [0x0048a380]
cmp edx, 1
jbe 0x4086ed
mov rcx, qword [rbp + 0x58]
sub edx, 2
lea rdx, [rdx + rdx*2]
shl rdx, 5
lea rax, [rcx + 0x60]
lea rdx, [rcx + rdx + 0xc0]
jmp 0x4086dd
add rax, 0x60
cmp rdx, rax
je 0x4093c8
cmp qword [rax], 0x842
jne 0x4086d0
lea r13, [0x0048a390]
mov rcx, qword [0x0059d200]
lea rax, str.E:_msys_mingw64_64_libexec_gcc_
mov qword [0x0059d1f8], rax
test rcx, rcx
je 0x409350
lea rdx, [0x004c122d]
xor r8d, r8d
call fcn.004883c0
lea r8, str.E:_msys_mingw64_64_libexec_gcc_
lea rdx, str.E:_msys_mingw64_64_lib_gcc_
mov rbx, rax
mov rcx, rax
call r13
lea rdi, str.E:_msys_mingw64_64_libexec_gcc_
mov rcx, rbx
test rax, rax
cmove rax, rdi
mov qword [0x0059d1f8], rax
call fcn.004a6450
lea rcx, [rbp + 0x58]
lea r8, [0x0059d110]
lea rdx, [rbp + 0x50]
call fcn.00412cd0
mov rbx, qword [0x0059d200]
test rbx, rbx
je 0x4087f8
mov rcx, rbx
call sub.msvcrt.dll_strlen
cmp eax, 9
mov rsi, rax
mov edi, eax
jg 0x409140
lea rsi, [0x004bf8f0]
mov edx, edi
mov rcx, rbx
call fcn.00418340
mov dword [rsp + 0x28], 0
mov rcx, rsi
mov r9d, 1
mov dword [rsp + 0x20], 0
mov rdx, qword [0x0059d1f8]
lea r8, [0x004c067f]
lea rdi, [0x004bf8d0]
call fcn.00402970
mov dword [rsp + 0x28], 0
mov rcx, rdi
mov r9d, 1
mov dword [rsp + 0x20], 0
mov rdx, qword [0x0059d200]
lea r8, [0x004c067f]
call fcn.00402970
lea rbx, str.COMPILER_PATH
mov rcx, rbx
call sub.msvcrt.dll_getenv
cmp byte [0x0059d431], 0
mov r14, rax
jne 0x4095e0
test r14, r14
je 0x408930
mov rcx, r14
call sub.msvcrt.dll_strlen
add rax, 0x12
and rax, 0xfffffffffffffff0
call fcn.00497ea0
lea rsi, [0x004bf8f0]
lea rdi, [0x004bf8b0]
sub rsp, rax
mov r15, r14
lea rbx, [rsp + 0x40]
jmp 0x4088bb
cmp al, 0x2f
je 0x4088f5
movzx eax, word [0x004c7068]
mov word [r8], ax
xor r8d, r8d
mov r9d, 1
mov rdx, rbx
mov dword [rsp + 0x28], 0
mov rcx, rsi
mov dword [rsp + 0x20], 0
call fcn.00402970
xor r8d, r8d
mov rdx, rbx
mov rcx, rdi
mov dword [rsp + 0x28], 0
mov r9d, 1
mov dword [rsp + 0x20], 0
call fcn.00402970
cmp byte [r15], 0
je 0x408930
lea r10, [r15 + 1]
mov r14, r10
mov r15, r10
movzx eax, byte [r15]
test al, al
je 0x4088cb
lea r10, [r15 + 1]
cmp al, 0x3b
jne 0x4088b8
mov r12, r15
mov rdx, r14
mov rcx, rbx
sub r12, r14
mov r8, r12
call sub.msvcrt.dll_strncpy
cmp r14, r15
je 0x408900
movzx eax, byte [r15 - 1]
lea r8, [rbx + r12]
cmp al, 0x5c
jne 0x408850
mov byte [r8], 0
jmp 0x408863
lea rdx, [0x004c6fce]
xor r8d, r8d
lea rcx, [0x004c123f]
call fcn.004883c0
mov rcx, rbx
mov rdx, rax
call sub.msvcrt.dll_strcpy
jmp 0x408863
lea rbx, str.LIBRARY_PATH
mov rcx, rbx
call sub.msvcrt.dll_getenv
cmp byte [0x0059d431], 0
mov r15, rax
jne 0x409608
test r15, r15
je 0x408964
mov rax, qword [0x004bfa20]
cmp byte [rax], 0x30
je 0x409290
lea rbx, str.LPATH
mov rcx, rbx
call sub.msvcrt.dll_getenv
cmp byte [0x0059d431], 0
mov r15, rax
jne 0x4096a0
test r15, r15
je 0x408998
mov rax, qword [0x004bfa20]
cmp byte [rax], 0x30
je 0x4091d0
lea rax, [0x004036f0]
mov edx, dword [rbp + 0x50]
mov dword [0x0059d100], 0xffffffff
movq xmm1, rax
mov rbx, qword [0x0058b1a0]
mov qword [rbp - 0x38], 3
lea rax, [0x00406c40]
mov dword [rbp - 0x28], 0x80000
mov qword [rbp - 0x30], rax
mov rax, qword [0x0058ac50]
lea rdi, [0x00403650]
movq xmm0, rdi
cmp edx, 1
mov dword [rbp - 0x18], 0x200000
punpcklqdq xmm0, xmm1
mov dword [rbp - 8], 0x100000
movaps xmmword [rbp - 0x50], xmm0
mov qword [rbp - 0x20], rax
mov rax, qword [0x0058ac60]
mov qword [rbp - 0x10], rax
jbe 0x408b00
mov r8, qword [rbp + 0x58]
sub edx, 2
lea rdx, [rdx + rdx*2]
mov r9d, dword [0x0059d1b8]
shl rdx, 5
lea rax, [r8 + 0x60]
lea rcx, [r8 + rdx + 0xc0]
jmp 0x408a4e
test r9d, r9d
jne 0x408a76
add rax, 0x60
cmp rcx, rax
je 0x408a76
mov rdx, qword [rax]
cmp rdx, 0x1a7
je 0x408a6c
cmp rdx, 0x376
je 0x408a6c
cmp rdx, 0x189
jne 0x408a40
mov dword [0x0059d1b8], 1
mov rbx, qword [0x0058b1a0]
mov esi, 0x60
mov r15d, 1
mov r14, qword [0x0058b190]
lea rdi, [rbp - 0x50]
mov r12, qword [0x0058b1c0]
jmp 0x408ad5
mov rdx, qword [r14]
xor r9d, r9d
mov qword [rsp + 0x28], rdi
mov rcx, rbx
mov dword [rsp + 0x20], 0x80000
add r15d, 1
add rsi, 0x60
mov qword [rsp + 0x30], rdx
mov rdx, r12
call fcn.00421bf0
cmp r15d, dword [rbp + 0x50]
jae 0x408b00
mov r8, qword [rbp + 0x58]
add r8, rsi
cmp qword [r8], 0x8d3
jne 0x408aa0
mov rcx, qword [r8 + 0x10]
add r15d, 1
add rsi, 0x60
mov rdx, qword [0x0059d108]
call fcn.00403da0
cmp r15d, dword [rbp + 0x50]
jb 0x408ad1
nop
mov r9d, dword [rbx + 0x15c0]
test r9d, r9d
je 0x408b26
mov r8d, dword [rbx + 0x84]
test r8d, r8d
jne 0x4091c0
mov dword [rbx + 0x84], 2
mov rdi, qword [0x0059d1a8]
test rdi, rdi
je 0x4090e0
cmp byte [rdi], 0x2d
jne 0x409060
cmp byte [rdi + 1], 0
jne 0x409060
cmp byte [rdi], 0
je 0x409e51
mov rax, qword [0x0059d3d8]
cmp byte [0x0059d3e0], 0
mov qword [rbp - 0x60], rax
jne 0x4093d8
test rax, rax
je 0x4093d8
mov eax, dword [0x0059d3e4]
mov rcx, qword [0x0059d3d0]
test eax, eax
je 0x408ba4
mov rax, qword [0x0059d3d8]
mov rcx, qword [0x0059d3d0]
mov dword [0x0059d3e4], 2
test rax, rax
mov rdi, rcx
je 0x408bd9
test rcx, rcx
je 0x409700
call fcn.00489930
mov rdi, qword [0x0059d3d0]
cmp rdi, rax
je 0x409838
mov rcx, qword [0x0059d3d8]
call fcn.004a6450
mov qword [0x0059d3d8], 0
mov r15, qword [0x0059d3c8]
test r15, r15
je 0x4096f0
test rdi, rdi
je 0x409700
cmp byte [rdi], 0
je 0x408c50
mov rcx, rdi
call sub.msvcrt.dll_strlen
mov rcx, r15
mov rsi, rax
call sub.msvcrt.dll_strlen
cmp esi, eax
jle 0x408c2d
movsxd rcx, esi
cdqe
mov rdx, r15
mov rsi, rcx
sub rsi, rax
lea rcx, [rdi + rsi]
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x409851
mov rcx, r15
call fcn.004a6450
cmp byte [rdi], 0
mov qword [0x0059d3c8], 0
jne 0x409851
nop dword [rax]
mov r14d, dword [0x0059d1b8]
test r14d, r14d
je 0x4094e2
mov rax, qword [0x0059d3d0]
mov qword [rbp - 0x68], rax
mov rax, qword [rbp - 0x68]
cmp byte [rax], 0
je 0x408d48
cmp qword [0x0059d3b0], 0
jne 0x4bbf2f
mov edi, dword [0x0059d060]
test edi, edi
jle 0x408cfa
mov rax, qword [rbx + 0x1568]
mov r14d, 0xffffffff
xor esi, esi
lea r12, [0x004c12a9]
mov qword [rbp - 0x58], rax
mov rax, qword [0x0059d120]
lea r15, [rax + 8]
nop dword [rax]
mov rcx, qword [r15]
test rcx, rcx
je 0x408cd8
cmp byte [rcx], 0x2a
je 0x408ce5
cmp qword [rbp - 0x58], 0
je 0x408cd8
mov rdx, r12
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x408ce5
cmp r14d, 0xffffffff
jne 0x4bbeff
mov r14d, esi
add esi, 1
add r15, 0x20
cmp esi, edi
jne 0x408cb8
cmp r14d, 0xfffffffe
je 0x4bbeff
mov rdi, qword [0x0059d3c8]
test rdi, rdi
je 0x409cf0
mov r14, qword [rbp - 0x68]
mov rcx, r14
call sub.msvcrt.dll_strlen
mov rcx, rdi
mov rsi, rax
call sub.msvcrt.dll_strlen
mov rcx, r14
sub rsi, rax
mov rdx, rsi
call fcn.0048ca20
mov rsi, rax
mov qword [0x0059d3b0], rax
mov rcx, rsi
call sub.msvcrt.dll_strlen
mov qword [0x0059d3a8], rax
mov rcx, qword [0x0059d3d8]
xor eax, eax
test rcx, rcx
je 0x408d5b
call sub.msvcrt.dll_strlen
mov rdi, qword [0x0059d3c8]
mov qword [0x0059d3c0], rax
test rdi, rdi
je 0x408db1
mov rsi, qword [0x0059d3d0]
test rsi, rsi
je 0x409590
cmp byte [rsi], 0
je 0x409590
mov rcx, rsi
call sub.msvcrt.dll_strlen
mov rcx, rdi
mov r14, rax
call sub.msvcrt.dll_strlen
mov rdx, rdi
sub r14, rax
lea rcx, [rsi + r14]
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x4bbf17
mov r12d, dword [0x0059d3e4]
test r12d, r12d
je 0x408dcb
mov edi, dword [rbx + 0x16f4]
test edi, edi
jne 0x409be0
mov esi, dword [0x0059d074]
test esi, esi
je 0x409630
js 0x4097a0
cmp qword [0x0059d200], 0
lea rsi, [0x004bf8f0]
lea rdi, [0x004bf8d0]
je 0x409b00
mov rdx, qword [str.x86_64_w64_mingw32]
xor r9d, r9d
lea r8, [0x004c6fce]
lea rcx, str..._.._.._.._
lea r14, [0x004c6fce]
call fcn.004883c0
mov rcx, qword [0x0059d200]
mov r8, r14
mov qword [rsp + 0x38], 0
lea r9, [0x004c01c5]
mov r15, rax
mov qword [rsp + 0x28], r14
lea rax, str.E:_msys_mingw64_64_lib_gcc_
mov qword [rsp + 0x30], r15
lea rdx, str.x86_64_w64_mingw32
test rcx, rcx
cmove rcx, rax
lea rax, [0x004c0061]
mov qword [rsp + 0x20], rax
call fcn.004883c0
mov rcx, r15
mov r12, rax
call fcn.004a6450
xor r9d, r9d
mov r8, r14
mov rcx, r12
lea rdx, [0x004c1337]
call fcn.004883c0
mov r9d, 1
mov rcx, rsi
mov dword [rsp + 0x28], 0
mov rdx, rax
mov dword [rsp + 0x20], 0
lea r8, str.BINUTILS
call fcn.00402970
xor r9d, r9d
mov r8, r14
mov rcx, r12
lea rdx, [0x004c0259]
call fcn.004883c0
lea r8, str.BINUTILS
mov rcx, rdi
mov r9d, 1
mov rdx, rax
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 0
call fcn.00402970
mov rcx, r12
call fcn.004a6450
mov r8, qword [0x004bfa30]
test r8, r8
je 0x408f60
mov r11d, dword [0x0059d3f8]
test r11d, r11d
jne 0x408f60
cmp qword [0x0059d200], 0
je 0x408f60
mov rax, qword [rbp + 0x58]
lea rdx, str.E:_msys_mingw64_64_bin_
mov rcx, qword [rax + 0x10]
call r13
test rax, rax
mov rsi, rax
je 0x408f60
xor edx, edx
mov rcx, rax
call sub.msvcrt.dll__access
test eax, eax
jne 0x408f60
mov qword [0x004bfa30], rsi
mov dword [0x0059d3f8], 1
nop dword [rax + rax]
mov eax, dword [0x0059d060]
test eax, eax
je 0x408f76
cmp eax, dword [0x0059d100]
je 0x409bb8
mov eax, dword [0x0059d074]
sub eax, 2
cmp eax, 1
jbe 0x4097c0
mov r9d, dword [0x0059d060]
mov eax, dword [0x0059d41c]
mov edx, dword [0x0059d418]
test r9d, r9d
jne 0x408fbf
or edx, eax
xor eax, eax
or edx, dword [0x0059d408]
je 0x408fd8
lea rdx, [0x004c136e]
lea rcx, str.help_dummy
call fcn.00403da0
mov r8d, dword [0x0059d418]
xor eax, eax
test r8d, r8d
setne al
cmp dword [0x0059d41c], 1
sbb eax, 0xffffffff
mov ecx, dword [rbx + 0x1750]
mov edx, dword [rbp + 0x50]
test ecx, ecx
je 0x408fef
cmp edx, 2
mov ecx, 1
je 0x408ff7
sub edx, 1
cmp edx, eax
sete cl
mov byte [0x0059d115], cl
call fcn.00403500
movsxd rax, dword [0x0059d164]
mov rdx, qword [0x0059d168]
lea rax, [rax + rax*2]
lea rax, [rdx + rax*8]
mov qword [rax], 0
mov eax, dword [0x0059d118]
test eax, eax
je 0x4095b0
movsxd rdx, dword [0x0059d060]
mov rcx, qword [0x0059d120]
cmp eax, edx
je 0x409cc0
shl rdx, 5
mov qword [rcx + rdx], 0
lea rsp, [rbp + 8]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rdx, [0x004c0d9e]
mov rcx, rdi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x408b49
mov ecx, dword [0x0059d060]
xor esi, esi
test ecx, ecx
jle 0x408b49
nop word [rax + rax]
mov rax, rsi
shl rax, 5
add rax, qword [0x0059d120]
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x4090ac
cmp byte [rdx], 0x2a
je 0x4090c6
mov rcx, qword [rax]
mov rdx, rdi
call fcn.00488700
test eax, eax
jne 0x409e35
mov rdi, qword [0x0059d1a8]
add rsi, 1
cmp dword [0x0059d060], esi
jg 0x409090
test rdi, rdi
jne 0x408b49
nop dword [rax + rax]
mov rax, qword [0x0059d3d8]
cmp byte [0x0059d3e0], 0
mov esi, dword [0x0059d3e4]
mov qword [rbp - 0x60], rax
je 0x409900
cmp qword [rbp - 0x60], 0
je 0x409d35
mov rcx, qword [rbp - 0x60]
call fcn.004a6450
mov qword [0x0059d3d8], 0
mov rcx, qword [0x0059d3d0]
test esi, esi
mov rdi, rcx
je 0x408bd9
mov rax, qword [0x0059d3d8]
jmp 0x408b92
movsxd rdx, eax
movzx eax, byte [rbx + rdx - 1]
cmp al, 0x5c
je 0x409154
cmp al, 0x2f
jne 0x408788
lea r14, [rbx + rdx - 9]
movzx eax, byte [r14]
cmp al, 0x2f
je 0x409169
cmp al, 0x5c
jne 0x408788
lea rcx, [r14 + 1]
mov r8d, 3
lea rdx, [0x004c0259]
call fcn.00488600
test eax, eax
jne 0x4091ad
movzx eax, byte [r14 + 4]
cmp al, 0x2f
je 0x409190
cmp al, 0x5c
jne 0x4091ad
lea rcx, [r14 + 5]
mov r8d, 3
lea rdx, [0x004c122d]
call fcn.00488600
test eax, eax
jne 0x4091ad
lea edi, [rsi - 9]
mov rbx, qword [0x0059d200]
jmp 0x408788
mov dword [rbx + 0x84], 0
jmp 0x408b26
mov rcx, r15
call sub.msvcrt.dll_strlen
add rax, 0x12
and rax, 0xfffffffffffffff0
call fcn.00497ea0
lea rdi, [0x004bf8d0]
lea r12, [0x004c123f]
sub rsp, rax
mov r14, r15
lea rbx, [rsp + 0x40]
jmp 0x40924b
cmp al, 0x5c
je 0x409289
movzx eax, word [0x004c7068]
mov word [r8], ax
xor r8d, r8d
mov r9d, 1
mov rdx, rbx
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 0
mov rcx, rdi
call fcn.00402970
cmp byte [r14], 0
je 0x408998
lea r10, [r14 + 1]
mov r15, r10
mov r14, r10
movzx eax, byte [r14]
test al, al
je 0x40925b
lea r10, [r14 + 1]
cmp al, 0x3b
jne 0x409248
mov rsi, r14
mov rdx, r15
mov rcx, rbx
sub rsi, r15
mov r8, rsi
call sub.msvcrt.dll_strncpy
cmp r15, r14
je 0x4094b8
movzx eax, byte [r14 - 1]
lea r8, [rbx + rsi]
cmp al, 0x2f
jne 0x409200
mov byte [r8], 0
jmp 0x409213
mov rcx, r15
call sub.msvcrt.dll_strlen
add rax, 0x12
and rax, 0xfffffffffffffff0
call fcn.00497ea0
lea rdi, [0x004bf8d0]
lea r12, [0x004c123f]
sub rsp, rax
mov r14, r15
lea rbx, [rsp + 0x40]
jmp 0x40930b
cmp al, 0x5c
je 0x409349
movzx eax, word [0x004c7068]
mov word [r8], ax
xor r8d, r8d
mov r9d, 1
mov rdx, rbx
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 0
mov rcx, rdi
call fcn.00402970
cmp byte [r14], 0
je 0x408964
lea r10, [r14 + 1]
mov r15, r10
mov r14, r10
movzx eax, byte [r14]
cmp al, 0x3b
je 0x40931b
lea r10, [r14 + 1]
test al, al
jne 0x409308
mov rsi, r14
mov rdx, r15
mov rcx, rbx
sub rsi, r15
mov r8, rsi
call sub.msvcrt.dll_strncpy
cmp r15, r14
je 0x409490
movzx eax, byte [r14 - 1]
lea r8, [rbx + rsi]
cmp al, 0x2f
jne 0x4092c0
mov byte [r8], 0
jmp 0x4092d3
mov rax, qword [rbp + 0x58]
lea rbx, str.E:_msys_mingw64_64_bin_
lea r8, str.E:_msys_mingw64_64_lib_gcc_
mov rdx, rbx
mov rcx, qword [rax + 0x10]
call r13
lea r8, str.E:_msys_mingw64_64_libexec_gcc_
mov rdx, rbx
mov qword [0x0059d200], rax
mov rax, qword [rbp + 0x58]
mov rcx, qword [rax + 0x10]
call r13
mov rdx, qword [0x0059d200]
mov qword [0x0059d1f8], rax
test rdx, rdx
je 0x40874e
lea rcx, str.GCC_EXEC_PREFIX
xor r8d, r8d
call fcn.004883c0
lea rcx, [0x0059d430]
mov rdx, rax
call fcn.00407cb0
jmp 0x40874e
lea r13, [0x0048a380]
jmp 0x4086ed
movzx eax, byte [rdi]
sub eax, 0x2d
jne 0x4093e4
movzx eax, byte [rdi + 1]
test eax, eax
mov esi, dword [0x0059d3e4]
je 0x409401
lea rdx, [0x004c0d9e]
mov rcx, rdi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x409420
mov rax, qword [rbp - 0x60]
mov edx, dword [0x0059d3e4]
mov rcx, qword [0x0059d3d0]
test edx, edx
je 0x408b9c
jmp 0x408b92
cmp esi, 1
je 0x409924
mov rcx, qword [rbp - 0x60]
call fcn.004a6450
mov rcx, rdi
mov qword [0x0059d3d8], 0
call fcn.00489930
mov r15, qword [0x0059d1a8]
mov rsi, rax
mov rax, qword [0x0059d3d8]
cmp r15, rsi
je 0x409405
mov rcx, r15
call sub.msvcrt.dll_strlen
mov rcx, rsi
mov rdi, rax
call sub.msvcrt.dll_strlen
mov rcx, r15
sub rdi, rax
mov rdx, rdi
call fcn.0048ca20
mov qword [0x0059d3d8], rax
jmp 0x408b73
lea rdx, [0x004c6fce]
mov rcx, r12
xor r8d, r8d
call fcn.004883c0
mov rcx, rbx
mov rdx, rax
call sub.msvcrt.dll_strcpy
jmp 0x4092d3
lea rdx, [0x004c6fce]
mov rcx, r12
xor r8d, r8d
call fcn.004883c0
mov rcx, rbx
mov rdx, rax
call sub.msvcrt.dll_strcpy
jmp 0x409213
mov qword [rbp - 0x60], 0
mov rsi, qword [0x0059d1a8]
lea rdi, [0x004c0303]
test rsi, rsi
je 0x40950a
cmp byte [rsi], 0x2d
jne 0x409a78
cmp byte [rsi + 1], 0
jne 0x409a78
xor esi, esi
cmp qword [0x0059d3b0], 0
jne 0x4bbf47
cmp qword [0x0059d3d0], 0
mov qword [0x0059d3a8], 0
je 0x40994f
cmp rdi, rsi
je 0x409d53
mov rcx, rdi
call fcn.0048c9a0
mov rcx, rsi
mov qword [0x0059d3b0], rax
call fcn.004a6450
mov rax, qword [0x0059d3d0]
cmp qword [rbp - 0x60], 0
mov qword [rbp - 0x68], rax
je 0x409dfa
test rax, rax
je 0x4098ed
mov rcx, qword [0x0059d3c8]
call fcn.004a6450
mov qword [0x0059d3c8], 0
jmp 0x408c6b
mov rcx, rdi
call fcn.004a6450
mov qword [0x0059d3c8], 0
jmp 0x408db1
mov dword [0x0059d118], 0x10
mov ecx, 0x200
call fcn.0048c870
movsxd rdx, dword [0x0059d060]
mov rcx, rax
mov qword [0x0059d120], rax
jmp 0x409043
mov ecx, 2
call qword [fcn.004a5d20]
mov r9, r14
mov r8, rbx
lea rdx, str.env_manager::getenv___s______s_n
mov rcx, rax
call fcn.004ac0c0
jmp 0x408817
mov ecx, 2
call qword [fcn.004a5d20]
mov r9, r15
mov r8, rbx
lea rdx, str.env_manager::getenv___s______s_n
mov rcx, rax
call fcn.004ac0c0
jmp 0x40894f
lea rdi, str.GCC_COMPARE_DEBUG
mov rcx, rdi
call sub.msvcrt.dll_getenv
cmp byte [0x0059d431], 0
mov rsi, rax
jne 0x409d10
test rsi, rsi
je 0x408ddf
movzx eax, byte [rsi]
cmp al, 0x2d
je 0x40990e
test al, al
je 0x408ddf
cmp byte [rsi], 0x30
jne 0x40967a
cmp byte [rsi + 1], 0
je 0x408ddf
lea rax, [0x004c0cae]
mov dword [0x0059d074], 3
mov qword [0x0059d068], rax
jmp 0x408ddf
mov ecx, 2
call qword [fcn.004a5d20]
mov r9, r15
mov r8, rbx
lea rdx, str.env_manager::getenv___s______s_n
mov rcx, rax
call fcn.004ac0c0
jmp 0x408983
mov ecx, 2
call qword [fcn.004a5d20]
mov r9, rbx
mov r8, rsi
lea rdx, str.env_manager::getenv___s______s_n
mov rcx, rax
call fcn.004ac0c0
jmp 0x408641
test rdi, rdi
jne 0x409848
nop dword [rax]
cmp qword [rbp - 0x60], 0
mov eax, dword [0x0059d1b8]
jne 0x4098f3
test eax, eax
je 0x4094da
cmp qword [0x0059d3b0], 0
jne 0x409e67
mov rsi, qword [0x0059d1a8]
test rsi, rsi
je 0x408d48
cmp byte [rsi], 0x2d
jne 0x409746
cmp byte [rsi + 1], 0
je 0x408d48
lea rdx, [0x004c0d9e]
mov rcx, rsi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x408d48
mov rcx, rsi
call fcn.00489930
mov rcx, rax
call fcn.0048c9a0
mov edx, 0x2e
lea rcx, [rax + 1]
mov rsi, rax
mov qword [0x0059d3b0], rax
call sub.msvcrt.dll_strrchr
test rax, rax
je 0x408d39
mov byte [rax], 0
jmp 0x408d39
cmp qword [0x0059d068], 0
mov dword [0x0059d074], 0
je 0x408ddf
jmp 0x4bbf5f
mov rdx, qword [0x0059d068]
lea rcx, [0x004c0cb7]
xor r8d, r8d
call fcn.004883c0
mov rsi, rax
call fcn.00403500
movsxd rax, dword [0x0059d164]
add rsi, 1
mov r10d, 1
mov dword [0x0059d074], 1
lea rcx, [rax + rax*2]
mov rdx, rax
mov rax, qword [0x0059d168]
add edx, 1
mov dword [0x0059d164], edx
lea rax, [rax + rcx*8]
mov qword [rax], rsi
mov qword [rax + 8], 0
mov dword [rax + 0x10], 0
mov word [rax + 0x14], r10w
mov byte [rax + 0x16], 0
jmp 0x408f88
mov r15, qword [0x0059d3c8]
test r15, r15
jne 0x408bf2
cmp byte [rdi], 0
je 0x408c50
mov eax, dword [0x0059d060]
test eax, eax
mov dword [rbp - 0x58], eax
jle 0x4098c7
mov rax, qword [0x0059d120]
mov r15d, 0xffffffff
xor r14d, r14d
mov r12, qword [rbx + 0x1568]
lea rsi, [rax + 8]
nop dword [rax]
mov rcx, qword [rsi]
test rcx, rcx
je 0x4098a2
cmp byte [rcx], 0x2a
je 0x4098af
test r12, r12
je 0x4098a2
lea rdx, [0x004c12a9]
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x4098af
cmp r15d, 0xffffffff
jne 0x409c10
mov r15d, r14d
add r14d, 1
add rsi, 0x20
cmp dword [rbp - 0x58], r14d
jne 0x409880
cmp r15d, 0xfffffffe
je 0x409c10
mov r15d, dword [0x0059d1b8]
test r15d, r15d
je 0x409c00
mov rax, qword [0x0059d3d0]
mov qword [rbp - 0x68], rax
cmp qword [rbp - 0x68], 0
jne 0x408c6b
mov eax, dword [0x0059d1b8]
test eax, eax
je 0x408d48
jmp 0x409719
test rax, rax
jne 0x408b73
jmp 0x40911d
mov dword [0x0059d074], 2
mov qword [0x0059d068], rsi
jmp 0x408ddf
cmp qword [rbp - 0x60], 0
je 0x409d5f
mov rcx, qword [rbp - 0x60]
call fcn.004a6450
mov rcx, qword [0x0059d3d0]
mov qword [0x0059d3d8], 0
jmp 0x40912f
mov r11d, dword [0x0059d060]
test r11d, r11d
jle 0x409a29
mov rax, qword [0x0059d120]
mov r15d, 0xffffffff
xor r8d, r8d
mov r12, qword [rbx + 0x1568]
lea r9, [rax + 8]
mov r14, rax
nop dword [rax]
mov rcx, qword [r9]
test rcx, rcx
je 0x4099ba
cmp byte [rcx], 0x2a
je 0x4099c3
test r12, r12
je 0x4099ba
lea rdx, [0x004c12a9]
mov qword [rbp - 0x70], r9
mov dword [rbp - 0x68], r11d
mov dword [rbp - 0x58], r8d
call sub.msvcrt.dll_strcmp
mov r8d, dword [rbp - 0x58]
test eax, eax
mov r11d, dword [rbp - 0x68]
mov r9, qword [rbp - 0x70]
je 0x4099c3
cmp r15d, 0xffffffff
jne 0x409a29
mov r15d, r8d
add r8d, 1
add r9, 0x20
cmp r8d, r11d
jne 0x409980
test r15d, r15d
js 0x409a29
movsxd r10, r15d
shl r10, 5
mov rcx, qword [r14 + r10]
call fcn.00489930
mov rcx, rdi
mov r15, rax
call sub.msvcrt.dll_strlen
mov rdx, r15
mov rcx, rdi
mov r8, rax
mov qword [rbp - 0x58], rax
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x409a29
mov r8, qword [rbp - 0x58]
cmp byte [r15 + r8], 0x2e
jne 0x409a29
lea rcx, [r15 + r8 + 1]
mov edx, 0x2e
call sub.msvcrt.dll_strchr
test rax, rax
je 0x409531
mov rcx, qword [0x0059d3d8]
test rcx, rcx
je 0x409d75
lea r8, [0x004c0338]
mov rdx, rdi
xor r9d, r9d
call fcn.004883c0
mov rcx, qword [0x0059d3d8]
mov rdi, rax
call fcn.004a6450
mov rcx, rsi
mov qword [0x0059d3d8], rdi
mov byte [0x0059d3b8], 1
call fcn.004a6450
jmp 0x409551
lea rdx, [0x004c0d9e]
mov rcx, rsi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x409a99
lea rdi, [0x004c0303]
xor esi, esi
jmp 0x40950a
mov rcx, rsi
call fcn.00489930
mov rcx, rax
mov rdi, rax
call sub.msvcrt.dll_strlen
mov rsi, qword [0x0059d3c8]
mov r15, rax
test rsi, rsi
je 0x409d8f
mov rcx, rsi
call sub.msvcrt.dll_strlen
cmp rax, r15
jae 0x409508
sub r15, rax
mov rdx, rsi
lea rcx, [rdi + r15]
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x409508
mov rcx, rdi
mov rdx, r15
call fcn.0048ca20
mov rdi, rax
mov rsi, rax
jmp 0x40950a
mov rcx, rsi
mov dword [rsp + 0x28], 0
mov r9d, 1
mov dword [rsp + 0x20], 1
lea r8, [0x004c067f]
lea rdx, str.E:_msys_mingw64_64_libexec_gcc_
call fcn.00402970
lea r12, str.E:_msys_mingw64_64_lib_gcc_
mov rcx, rsi
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 2
mov r9d, 1
lea r8, str.BINUTILS
lea rdx, str.E:_msys_mingw64_64_libexec_gcc_
call fcn.00402970
mov rdx, r12
mov rcx, rsi
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 2
mov r9d, 1
lea r8, str.BINUTILS
call fcn.00402970
mov dword [rsp + 0x28], 0
mov rdx, r12
mov r9d, 1
mov dword [rsp + 0x20], 1
lea r8, str.BINUTILS
mov rcx, rdi
call fcn.00402970
jmp 0x408dfb
mov r8, qword [0x0059d108]
test r8, r8
je 0x408f76
lea rdx, str.___x__s___after_last_input_file_has_no_effect
xor ecx, ecx
call fcn.00431850
jmp 0x408f76
lea rdx, str.___pipe___ignored_because____save_temps___specified
xor ecx, ecx
call fcn.00431850
mov dword [rbx + 0x16f4], 0
jmp 0x408dcb
cmp qword [rbp - 0x60], 0
jne 0x408c60
nop dword [rax + rax]
mov r14, qword [0x0059d3c8]
test r14, r14
je 0x409c36
mov rcx, rdi
call sub.msvcrt.dll_strlen
mov rcx, r14
mov rsi, rax
call sub.msvcrt.dll_strlen
sub rsi, rax
mov byte [rdi + rsi], 0
mov rcx, qword [0x0059d3d8]
test rcx, rcx
je 0x409de0
lea r8, [0x004c0338]
xor r9d, r9d
mov rdx, rdi
call fcn.004883c0
mov rsi, rax
mov rcx, qword [0x0059d3d8]
call fcn.004a6450
mov rcx, qword [0x0059d3d0]
call fcn.004a6450
mov rcx, qword [0x0059d3c8]
call fcn.004a6450
mov eax, dword [0x0059d1b8]
mov qword [0x0059d3c8], 0
mov qword [0x0059d3d0], 0
mov qword [0x0059d3d8], rsi
mov byte [0x0059d3b8], 1
test eax, eax
je 0x408d48
jmp 0x409719
add edx, edx
mov dword [0x0059d118], edx
movsxd rdx, edx
shl rdx, 5
call fcn.0048c8f0
movsxd rdx, dword [0x0059d060]
mov rcx, rax
mov qword [0x0059d120], rax
jmp 0x409043
mov rcx, qword [rbp - 0x68]
call fcn.0048c9a0
mov rsi, rax
mov qword [0x0059d3b0], rax
jmp 0x408d39
mov ecx, 2
call qword [fcn.004a5d20]
mov r9, rsi
mov r8, rdi
lea rdx, str.env_manager::getenv___s______s_n
mov rcx, rax
call fcn.004ac0c0
jmp 0x40964f
test esi, esi
mov rdi, qword [0x0059d3d0]
je 0x408bd9
mov dword [0x0059d3e4], 2
jmp 0x408bd9
mov qword [0x0059d3b0], rdi
jmp 0x409551
mov rdi, qword [0x0059d3d0]
mov dword [0x0059d3e4], 2
jmp 0x408bd9
lea rdx, [0x004c0338]
mov rcx, rdi
xor r8d, r8d
call fcn.004883c0
mov rdi, rax
jmp 0x409a5a
lea rcx, [rdi + 1]
mov edx, 0x2e
call sub.msvcrt.dll_strrchr
test rax, rax
mov rcx, rax
je 0x40950a
mov qword [rbp - 0x58], rax
call sub.msvcrt.dll_strlen
test rax, rax
mov r14, rax
je 0x40950a
mov rcx, qword [rbp - 0x58]
lea rdx, [0x004c021a]
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x409e16
sub r15, r14
jmp 0x409ae7
lea rdx, [0x004c0338]
xor r8d, r8d
mov rcx, rdi
call fcn.004883c0
mov rsi, rax
jmp 0x409c5b
mov rcx, qword [0x0059d3c8]
call fcn.004a6450
mov qword [0x0059d3c8], 0
jmp 0x4098e2
lea rdx, str.a.out
mov rcx, rdi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x40950a
sub r15, r14
jmp 0x409ae7
mov rax, qword [0x0058b1e0]
lea rdx, str.input_file__qs_is_the_same_as_output_file
mov r8, qword [0x0059d1a8]
mov ecx, dword [rax]
call fcn.00432e40
mov rax, qword [0x0058b1e0]
lea rdx, str.output_filename_may_not_be_empty
mov ecx, dword [rax]
call fcn.00432e40
nop
jmp 0x4bbf2f