Function at 0x458c60
Capabilities:
Query environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov esi, ecx
mov rbx, rdx
mov qword [rsp + 0xa0], r8
mov qword [rsp + 0xa8], r9
test r8, r8
je 0x45903e
mov r9d, dword [0x0046679c]
test r9d, r9d
je 0x458ed4
cmp dword [0x00466780], 0xffffffff
je 0x458ee8
mov eax, dword [0x00488388]
test eax, eax
jne 0x458ee8
mov rcx, qword [rsp + 0xa0]
movzx edx, byte [rcx]
cmp dl, 0x2d
je 0x458f1d
mov r8d, dword [0x00466780]
test r8d, r8d
jne 0x458cde
cmp dl, 0x2b
jne 0x458cef
and dword [rsp + 0xb8], 0xfffffffe
cmp dl, 0x2b
je 0x458f25
mov qword [0x00488380], 0
test eax, eax
je 0x458d12
mov dword [0x00466784], 0xffffffff
mov dword [0x00466788], 0xffffffff
mov edi, dword [rsp + 0xb8]
mov r12d, dword [rsp + 0xb8]
lea rbp, [0x0047baf5]
and edi, 2
and r12d, 1
test eax, eax
je 0x458dab
mov r14d, dword [0x0046679c]
mov dword [0x00488388], 0
cmp r14d, esi
jge 0x459000
movsxd rax, r14d
mov r13, qword [rbx + rax*8]
cmp byte [r13], 0x2d
mov qword [0x00466790], r13
je 0x458f33
mov qword [0x00466790], rbp
test edi, edi
jne 0x459060
test r12d, r12d
je 0x45903e
mov r13d, dword [0x00466788]
cmp r13d, 0xffffffff
je 0x458f94
mov r15d, dword [0x00466784]
cmp r15d, 0xffffffff
jne 0x458fb0
lea r8d, [r14 + 1]
mov dword [0x0046679c], r8d
mov r10, qword [0x00466790]
movzx r15d, byte [r10]
test r15b, r15b
je 0x458d33
cmp qword [rsp + 0xa8], 0
je 0x458def
movsxd rax, dword [0x0046679c]
cmp qword [rbx + rax*8], r10
je 0x458def
cmp r15b, 0x2d
je 0x459191
test byte [rsp + 0xb8], 4
jne 0x459092
lea rbp, [r10 + 1]
movsx edi, r15b
mov qword [0x00466790], rbp
cmp edi, 0x3a
je 0x4591a3
cmp edi, 0x2d
je 0x4592fb
mov rcx, qword [rsp + 0xa0]
mov edx, edi
mov qword [rsp + 0x38], r10
call sub.msvcrt.dll_strchr
mov r10, qword [rsp + 0x38]
test rax, rax
je 0x4591a3
cmp qword [rsp + 0xa8], 0
movzx edx, byte [rax + 1]
je 0x45911d
cmp edi, 0x57
jne 0x45911d
cmp dl, 0x3b
jne 0x45911d
cmp byte [r10 + 1], 0
jne 0x459278
mov eax, dword [0x0046679c]
add eax, 1
mov dword [0x0046679c], eax
cmp eax, esi
jl 0x45926b
mov edx, dword [0x004667a0]
lea rax, [0x0047baf5]
mov qword [0x00466790], rax
test edx, edx
je 0x458eaf
mov rax, qword [rsp + 0xa0]
cmp byte [rax], 0x3a
je 0x458eaf
mov edx, 0x57
lea rcx, str.option_requires_an_argument_____c
call fcn.00458860
mov rax, qword [rsp + 0xa0]
mov dword [0x00466798], 0x57
cmp byte [rax], 0x3a
je 0x4592f1
mov edi, 0x3f
jmp 0x459043
mov dword [0x00488388], 1
mov dword [0x0046679c], 1
lea rcx, str.POSIXLY_CORRECT
call sub.msvcrt.dll_getenv
mov rcx, qword [rsp + 0xa0]
test rax, rax
setne al
movzx edx, byte [rcx]
movzx eax, al
mov dword [0x00466780], eax
mov eax, dword [0x00488388]
cmp dl, 0x2d
jne 0x458ccd
or dword [rsp + 0xb8], 2
add qword [rsp + 0xa0], 1
jmp 0x458cef
movzx r15d, byte [r13 + 1]
test r15b, r15b
jne 0x45913d
mov rcx, qword [rsp + 0xa0]
mov edx, 0x2d
call sub.msvcrt.dll_strchr
test rax, rax
je 0x458d66
mov edi, dword [0x00466788]
cmp edi, 0xffffffff
je 0x458f74
cmp dword [0x00466784], 0xffffffff
je 0x459233
lea rbp, [r13 + 1]
mov qword [0x00466790], rbp
cmp byte [r13 + 1], 0
je 0x4590f6
mov edi, 0x2d
jmp 0x4591b1
lea r8d, [r14 + 1]
mov dword [0x00466788], r14d
mov dword [0x0046679c], r8d
jmp 0x458dab
mov edx, r15d
mov r9, rbx
mov r8d, r14d
mov ecx, r13d
call fcn.004587a0
mov edx, dword [0x0046679c]
mov r10d, r15d
mov dword [0x00466784], 0xffffffff
sub r10d, r13d
mov eax, edx
add edx, 1
sub eax, r10d
mov dword [0x0046679c], edx
mov dword [0x00466788], eax
mov eax, dword [0x00488388]
jmp 0x458d2f
mov esi, dword [0x00466784]
lea rax, [0x0047baf5]
mov edi, dword [0x00466788]
mov qword [0x00466790], rax
cmp esi, 0xffffffff
jne 0x459079
cmp edi, 0xffffffff
je 0x45902a
mov dword [0x0046679c], edi
mov dword [0x00466784], 0xffffffff
mov dword [0x00466788], 0xffffffff
mov edi, 0xffffffff
mov eax, edi
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea r8d, [r14 + 1]
mov qword [0x00488380], r13
mov edi, 1
mov dword [0x0046679c], r8d
jmp 0x459043
mov r9, rbx
mov r8d, r14d
mov edx, esi
mov ecx, edi
sub esi, edi
call fcn.004587a0
sub dword [0x0046679c], esi
jmp 0x45902a
xor eax, eax
cmp r15b, 0x3a
je 0x4590b4
mov rcx, qword [rsp + 0xa0]
movsx edx, r15b
call sub.msvcrt.dll_strchr
test rax, rax
setne al
movzx eax, al
mov dword [rsp + 0x20], eax
mov r9, qword [rsp + 0xb0]
mov rcx, rbx
mov r8, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0xa0]
call fcn.004588f0
mov edi, eax
cmp eax, 0xffffffff
je 0x4591d8
lea rax, [0x0047baf5]
mov qword [0x00466790], rax
jmp 0x459043
mov rcx, qword [rsp + 0xa0]
mov edx, 0x2d
call sub.msvcrt.dll_strchr
test rax, rax
je 0x45903e
movzx edx, byte [rax + 1]
mov r10, r13
mov edi, 0x2d
cmp dl, 0x3a
je 0x4591f8
cmp byte [r10 + 1], 0
jne 0x459043
add dword [0x0046679c], 1
jmp 0x459043
mov edi, dword [0x00466788]
cmp edi, 0xffffffff
je 0x459155
cmp dword [0x00466784], 0xffffffff
je 0x459233
lea r10, [r13 + 1]
mov qword [0x00466790], r10
cmp r15b, 0x2d
jne 0x458dbf
cmp byte [r13 + 2], 0
je 0x459316
cmp qword [rsp + 0xa8], 0
je 0x459303
movsxd r8, r14d
cmp r10, qword [rbx + r8*8]
je 0x458def
add r10, 1
xor eax, eax
mov qword [0x00466790], r10
jmp 0x4590b4
cmp byte [r10 + 1], 0
jne 0x4591b1
add dword [0x0046679c], 1
mov ecx, dword [0x004667a0]
test ecx, ecx
je 0x4591c8
mov rax, qword [rsp + 0xa0]
cmp byte [rax], 0x3a
jne 0x4591e8
mov dword [0x00466798], edi
mov edi, 0x3f
jmp 0x459043
mov r10, qword [0x00466790]
movzx r15d, byte [r10]
jmp 0x458def
mov edx, edi
lea rcx, str.unknown_option_____c
call fcn.00458860
jmp 0x4591c8
mov ecx, dword [0x0046679c]
mov qword [0x00488380], 0
cmp byte [r10 + 1], 0
lea edx, [rcx + 1]
je 0x459248
mov qword [0x00488380], rbp
lea rax, [0x0047baf5]
mov dword [0x0046679c], edx
mov qword [0x00466790], rax
jmp 0x459043
mov dword [0x00466784], r14d
test r15b, r15b
jne 0x459155
jmp 0x458f74
cmp byte [rax + 2], 0x3a
je 0x45921a
mov dword [0x0046679c], edx
cmp esi, edx
jle 0x4592a7
movsxd rdx, edx
mov rax, qword [rbx + rdx*8]
lea edx, [rcx + 2]
mov qword [0x00488380], rax
jmp 0x45921a
cdqe
mov rax, qword [rbx + rax*8]
mov qword [0x00466790], rax
mov dword [rsp + 0x20], 0
mov r9, qword [rsp + 0xb0]
mov rcx, rbx
mov r8, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0xa0]
call fcn.004588f0
mov edi, eax
jmp 0x4590e3
lea rax, [0x0047baf5]
mov qword [0x00466790], rax
mov eax, dword [0x004667a0]
test eax, eax
je 0x4592da
mov rax, qword [rsp + 0xa0]
cmp byte [rax], 0x3a
je 0x4592da
mov edx, edi
lea rcx, str.option_requires_an_argument_____c
call fcn.00458860
mov rax, qword [rsp + 0xa0]
mov dword [0x00466798], edi
cmp byte [rax], 0x3a
jne 0x458eca
mov edi, 0x3a
jmp 0x459043
mov r13, r10
jmp 0x458f7f
lea rbp, [r13 + 2]
mov r13, r10
mov qword [0x00466790], rbp
jmp 0x458f7f
mov esi, dword [0x00466784]
lea r8d, [r14 + 1]
lea rax, [0x0047baf5]
mov dword [0x0046679c], r8d
mov qword [0x00466790], rax
cmp esi, 0xffffffff
je 0x45902a
mov r9, rbx
jmp 0x45907f