Function at 0x450180
Capabilities:
Query environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
test r8, r8
mov edi, ecx
mov r15, rdx
mov qword [rsp + 0x90], r8
mov qword [rsp + 0x98], r9
je 0x45047e
mov r9d, dword [0x0049c53c]
test r9d, r9d
je 0x450410
cmp dword [0x0049c520], 0xffffffff
je 0x450384
mov edx, dword [0x005034c8]
test edx, edx
jne 0x450384
mov rax, qword [rsp + 0x90]
movzx eax, byte [rax]
cmp al, 0x2d
je 0x4503b8
cmp al, 0x2b
je 0x450494
mov r8d, dword [0x0049c520]
test r8d, r8d
jne 0x450494
sub eax, 0x2b
test al, 0xfd
je 0x4503c0
test edx, edx
mov qword [0x005034c0], 0
jne 0x4503f0
mov r14d, dword [rsp + 0xa8]
mov ebp, dword [rsp + 0xa8]
and r14d, 2
and ebp, 1
jmp 0x4502be
lea rax, [0x004e0235]
test r14d, r14d
mov edx, r14d
mov qword [0x0049c530], rax
jne 0x450560
test ebp, ebp
je 0x45047e
mov r12d, dword [0x0049c528]
cmp r12d, 0xffffffff
je 0x4503e0
mov r13d, dword [0x0049c524]
cmp r13d, 0xffffffff
je 0x4502b5
mov edx, r13d
mov r9, r15
mov r8d, ebx
mov ecx, r12d
call fcn.0044fc90
mov esi, dword [0x0049c53c]
mov eax, r12d
mov edx, dword [0x005034c8]
sub eax, r13d
mov dword [0x0049c524], 0xffffffff
add eax, esi
mov dword [0x0049c528], eax
add esi, 1
mov dword [0x0049c53c], esi
test edx, edx
jne 0x4502d4
mov rsi, qword [0x0049c530]
movzx eax, byte [rsi]
test al, al
jne 0x4504ce
movsxd rbx, dword [0x0049c53c]
mov dword [0x005034c8], 0
cmp ebx, edi
mov esi, ebx
jge 0x450430
movsxd rax, ebx
mov r13, qword [r15 + rax*8]
cmp byte [r13], 0x2d
mov qword [0x0049c530], r13
jne 0x450240
movzx eax, byte [r13 + 1]
test al, al
jne 0x4504a1
mov rcx, qword [rsp + 0x90]
mov edx, 0x2d
call sub.msvcrt.dll_strchr
test rax, rax
je 0x450240
cmp dword [0x0049c528], 0xffffffff
mov rsi, r13
je 0x450354
cmp dword [0x0049c524], 0xffffffff
mov eax, 0x2d
jne 0x4504ce
mov dword [0x0049c524], ebx
cmp qword [rsp + 0x98], 0
je 0x45074c
cmp rsi, qword [r15 + rbx*8]
mov eax, 0x2d
je 0x45059e
add rsi, 1
xor edx, edx
mov qword [0x0049c530], rsi
jmp 0x450522
lea rcx, str.POSIXLY_CORRECT
call sub.msvcrt.dll_getenv
test rax, rax
mov edx, dword [0x005034c8]
setne al
movzx eax, al
mov dword [0x0049c520], eax
mov rax, qword [rsp + 0x90]
movzx eax, byte [rax]
cmp al, 0x2d
jne 0x4501ec
or dword [rsp + 0xa8], 2
add qword [rsp + 0x90], 1
test edx, edx
mov qword [0x005034c0], 0
je 0x450222
jmp 0x4503f0
mov dword [0x0049c528], ebx
jmp 0x4502b5
mov dword [0x0049c524], 0xffffffff
mov dword [0x0049c528], 0xffffffff
jmp 0x450222
mov dword [0x005034c8], 1
mov dword [0x0049c53c], 1
jmp 0x4501be
mov esi, dword [0x0049c524]
lea rax, [0x004e0235]
mov qword [0x0049c530], rax
cmp esi, 0xffffffff
je 0x45057a
mov edi, dword [0x0049c528]
mov r9, r15
mov r8d, ebx
mov edx, esi
mov ecx, edi
sub edi, esi
call fcn.0044fc90
add dword [0x0049c53c], edi
mov dword [0x0049c524], 0xffffffff
mov dword [0x0049c528], 0xffffffff
mov eax, 0xffffffff
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
and dword [rsp + 0xa8], 0xfffffffe
jmp 0x450204
mov ebp, dword [0x0049c528]
cmp ebp, 0xffffffff
je 0x4504bb
cmp dword [0x0049c524], 0xffffffff
jne 0x4504bb
mov dword [0x0049c524], ebx
lea rsi, [r13 + 1]
cmp al, 0x2d
mov qword [0x0049c530], rsi
je 0x45067f
cmp qword [rsp + 0x98], 0
je 0x45059e
movsxd rdx, dword [0x0049c53c]
cmp rsi, qword [r15 + rdx*8]
je 0x45059e
cmp al, 0x2d
je 0x450372
test byte [rsp + 0xa8], 4
je 0x45059e
xor edx, edx
cmp al, 0x3a
je 0x450522
mov rcx, qword [rsp + 0x90]
movsx edx, al
call sub.msvcrt.dll_strchr
xor edx, edx
test rax, rax
setne dl
mov dword [rsp + 0x20], edx
mov r9, qword [rsp + 0xa0]
mov rcx, r15
mov r8, qword [rsp + 0x98]
mov rdx, qword [rsp + 0x90]
call fcn.0044fdc0
cmp eax, 0xffffffff
je 0x450594
lea rcx, [0x004e0235]
mov qword [0x0049c530], rcx
jmp 0x450483
add ebx, 1
mov qword [0x005034c0], r13
mov eax, 1
mov dword [0x0049c53c], ebx
jmp 0x450483
mov eax, dword [0x0049c528]
cmp eax, 0xffffffff
je 0x45046a
mov dword [0x0049c53c], eax
jmp 0x45046a
mov rsi, qword [0x0049c530]
movzx eax, byte [rsi]
lea rbp, [rsi + 1]
movsx ebx, al
cmp ebx, 0x3a
mov qword [0x0049c530], rbp
je 0x450614
cmp ebx, 0x2d
je 0x450757
mov rcx, qword [rsp + 0x90]
mov edx, ebx
call sub.msvcrt.dll_strchr
test rax, rax
je 0x450614
cmp ebx, 0x57
jne 0x450676
cmp qword [rsp + 0x98], 0
je 0x450676
movzx edx, byte [rax + 1]
cmp dl, 0x3b
je 0x4506d0
cmp dl, 0x3a
je 0x45076b
cmp byte [rsi + 1], 0
mov eax, ebx
jne 0x450483
add dword [0x0049c53c], 1
jmp 0x450483
cmp byte [rsi + 1], 0
jne 0x450621
add dword [0x0049c53c], 1
mov ecx, dword [0x0049c540]
test ecx, ecx
je 0x450646
mov rax, qword [rsp + 0x90]
cmp byte [rax], 0x3a
je 0x450646
lea rcx, str.unknown_option_____c
mov edx, ebx
call fcn.0044fd40
mov dword [0x0049c538], ebx
mov eax, 0x3f
jmp 0x450483
mov rcx, qword [rsp + 0x90]
mov edx, 0x2d
call sub.msvcrt.dll_strchr
test rax, rax
je 0x45047e
mov ebx, 0x2d
movzx edx, byte [rax + 1]
jmp 0x4505f3
cmp byte [r13 + 2], 0
jne 0x450354
mov esi, dword [0x0049c524]
lea r8d, [rbx + 1]
lea rax, [0x004e0235]
mov dword [0x0049c53c], r8d
mov qword [0x0049c530], rax
cmp esi, 0xffffffff
je 0x45046a
mov ecx, ebp
mov r9, r15
mov edx, esi
call fcn.0044fc90
sub ebp, esi
add dword [0x0049c53c], ebp
jmp 0x45046a
cmp byte [rsi + 1], 0
jne 0x450825
mov eax, dword [0x0049c53c]
add eax, 1
cmp edi, eax
mov dword [0x0049c53c], eax
jg 0x450818
mov edx, dword [0x0049c540]
lea rax, [0x004e0235]
mov qword [0x0049c530], rax
test edx, edx
je 0x450727
mov rax, qword [rsp + 0x90]
cmp byte [rax], 0x3a
je 0x450727
lea rcx, str.option_requires_an_argument_____c
mov edx, 0x57
call fcn.0044fd40
mov rax, qword [rsp + 0x90]
mov dword [0x0049c538], 0x57
cmp byte [rax], 0x3a
je 0x45080e
mov eax, 0x3f
jmp 0x450483
lea rbp, [rsi + 1]
mov qword [0x0049c530], rbp
cmp byte [rsi + 1], 0
je 0x450656
mov ebx, 0x2d
jmp 0x450621
mov qword [0x005034c0], 0
cmp byte [rsi + 1], 0
je 0x4507a7
mov eax, dword [0x0049c53c]
mov qword [0x005034c0], rbp
lea rcx, [0x004e0235]
add eax, 1
mov dword [0x0049c53c], eax
mov eax, ebx
mov qword [0x0049c530], rcx
jmp 0x450483
cmp byte [rax + 2], 0x3a
mov eax, dword [0x0049c53c]
je 0x450789
add eax, 1
cmp edi, eax
mov dword [0x0049c53c], eax
jg 0x450852
lea rax, [0x004e0235]
mov qword [0x0049c530], rax
mov eax, dword [0x0049c540]
test eax, eax
je 0x4507f7
mov rax, qword [rsp + 0x90]
cmp byte [rax], 0x3a
je 0x4507f7
lea rcx, str.option_requires_an_argument_____c
mov edx, ebx
call fcn.0044fd40
mov rax, qword [rsp + 0x90]
mov dword [0x0049c538], ebx
cmp byte [rax], 0x3a
jne 0x450742
mov eax, 0x3a
jmp 0x450483
cdqe
mov rax, qword [r15 + rax*8]
mov qword [0x0049c530], rax
mov r9, qword [rsp + 0xa0]
mov r8, qword [rsp + 0x98]
mov rcx, r15
mov rdx, qword [rsp + 0x90]
mov dword [rsp + 0x20], 0
call fcn.0044fdc0
jmp 0x45054b
movsxd rdx, eax
mov rdx, qword [r15 + rdx*8]
mov qword [0x005034c0], rdx
jmp 0x450789