Function at 0x14001b520
Capabilities:
Query environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x118
mov rbx, qword [0x14004add0]
mov rax, qword [rbx]
mov qword [rsp + 0x108], rax
xor eax, eax
mov byte [r9], 0
mov r12, r9
mov rdi, rdx
mov qword [rsp + 0x28], rcx
mov rcx, r8
mov rbp, r8
mov qword [rsp + 0x30], rdx
mov edx, 0x989680
call fcn.14001c800
mov byte [rsp + 0x40], 0
mov qword [rsp + 0x38], r12
nop word cs:[rax + rax]
lea rdx, [0x14004a040]
mov rcx, rdi
call sub.msvcrt.dll_strstr
mov rsi, rax
cmp rdi, rax
jae 0x14001b638
cmp byte [rax - 1], 0x5c
je 0x14001b740
lea rdx, [0x14004a043]
mov rcx, rsi
call sub.msvcrt.dll_strstr
mov rbx, rax
test rax, rax
je 0x14001bbd8
lea r12, [rsi + 2]
mov r13, rax
mov edx, 0x3a
sub r13, r12
mov rcx, r12
mov r8, r13
call sub.msvcrt.dll_memchr
mov r15, rax
mov r14, rax
sub r15, r12
test rax, rax
cmove r15, r13
lea rax, [r15 - 1]
cmp rax, 0x7e
jbe 0x14001b690
mov r8, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
lea rdx, str.bad_variable_name_length__s
call fcn.14000e740
mov r8, rbx
mov rdx, rdi
mov rcx, rbp
sub r8, rdi
add r8, 2
call fcn.14001c8d0
test eax, eax
jne 0x14001b730
lea rdi, [rbx + 2]
jmp 0x14001b580
test rax, rax
jne 0x14001b5a5
cmp byte [rsp + 0x40], 0
mov r12, qword [rsp + 0x38]
je 0x14001bc00
cmp byte [rdi], 0
jne 0x14001bc2e
mov byte [r12], 1
xor eax, eax
mov rbx, qword [0x14004add0]
mov rdx, qword [rsp + 0x108]
sub rdx, qword [rbx]
jne 0x14001bc76
add rsp, 0x118
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8, rsi
mov rdx, rdi
mov rcx, rbp
sub r8, rdi
call fcn.14001c8d0
test eax, eax
jne 0x14001b730
lea rcx, [rsp + 0x80]
mov rdx, r12
mov r8, r15
call sub.msvcrt.dll_memcpy
xor edx, edx
mov byte [rsp + r15 + 0x80], 0
mov rcx, rax
jmp 0x14001b6f4
sub eax, 0x41
cmp al, 0x39
ja 0x14001b700
movabs rdi, 0x3ffffff43ffffff
bt rdi, rax
jae 0x14001b700
add rdx, 1
cmp r15, rdx
je 0x14001b780
movzx eax, byte [rcx + rdx]
cmp al, 0x39
jg 0x14001b6d0
cmp al, 0x2f
jg 0x14001b6e7
cmp r15, rdx
je 0x14001b780
mov r8, rcx
mov rcx, qword [rsp + 0x28]
lea rdx, str.bad_variable_name:__s
call fcn.14000e740
lea r8, [r13 + 4]
mov rdx, rsi
mov rcx, rbp
call fcn.14001c8d0
test eax, eax
je 0x14001b62b
mov eax, 0xf
jmp 0x14001b661
mov r8, rax
mov rdx, rdi
mov rcx, rbp
sub r8, rdi
sub r8, 1
call fcn.14001c8d0
test eax, eax
jne 0x14001b730
mov r8d, 2
lea rdx, [0x14004a040]
mov rcx, rbp
call fcn.14001c8d0
test eax, eax
jne 0x14001b730
lea rdi, [rsi + 2]
jmp 0x14001b580
mov rax, qword [rsp + 0x28]
mov rdi, qword [rax + 0x48]
test rdi, rdi
je 0x14001bb90
mov r12, rcx
jmp 0x14001b7ac
mov rdi, qword [rdi]
test rdi, rdi
je 0x14001bb90
lea rsi, [rdi + 0x18]
mov rcx, rsi
call sub.msvcrt.dll_strlen
cmp r15, rax
jne 0x14001b7a0
mov r8, r15
mov rdx, rsi
mov rcx, r12
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x14001b7a0
lea r15, [rsp + 0x60]
mov edx, 0x989680
mov rsi, qword [rdi + 8]
mov r13, qword [rdi + 0x10]
mov rcx, r15
call fcn.14001c800
test r14, r14
je 0x14001b965
movzx eax, byte [r14]
test al, al
sete dl
cmp al, 0x7d
sete al
or dl, al
mov r12d, edx
jne 0x14001b94f
lea rax, [rsp + 0x58]
mov qword [rsp + 0x48], rbp
mov rdi, r14
mov qword [rsp + 0x40], rax
nop dword [rax]
lea rbp, [rdi + 1]
mov r8d, 4
lea rdx, str.trim
mov rcx, rbp
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x14001b9b0
movzx eax, byte [rdi + 5]
cmp al, 0x7d
je 0x14001b8c0
cmp al, 0x3a
je 0x14001b8c0
movzx eax, byte [rbp]
cmp eax, 0x75
jne 0x14001ba28
cmp byte [rbp + 1], 0x72
jne 0x14001ba28
cmp byte [rbp + 2], 0x6c
jne 0x14001ba28
movzx eax, byte [rdi + 4]
cmp al, 0x7d
je 0x14001bb10
cmp al, 0x3a
je 0x14001bb10
mov r8d, ebx
mov rcx, qword [rsp + 0x28]
mov r9, r14
lea rdx, str.unknown_variable_function_in__.s
sub r8d, r14d
call fcn.14000e830
test r12b, r12b
jne 0x14001bc46
mov eax, 0x17
mov rcx, r15
mov dword [rsp + 0x28], eax
call fcn.14001c820
mov eax, dword [rsp + 0x28]
jmp 0x14001b661
add rdi, 5
test r13, r13
jne 0x14001bac8
mov rcx, r15
call fcn.14001c850
mov r8, r13
mov rdx, rsi
mov rcx, r15
call fcn.14001c8d0
test eax, eax
jne 0x14001bbca
test r12b, r12b
jne 0x14001ba00
mov rcx, r15
call fcn.14001ca00
mov rcx, r15
mov r13, rax
call fcn.14001c9e0
lea rcx, [r13 + 1]
mov rbp, rax
call sub.msvcrt.dll_malloc
mov rsi, rax
test rax, rax
je 0x14001bbca
test r13, r13
jne 0x14001ba10
movzx eax, byte [rdi]
mov byte [rsi + r13], 0
mov r12d, 1
test al, al
je 0x14001b942
cmp al, 0x7d
jne 0x14001b820
mov rcx, rsi
mov rbp, qword [rsp + 0x48]
call sub.msvcrt.dll_free
mov rcx, r15
call fcn.14001c9e0
mov rcx, r15
mov rsi, rax
call fcn.14001ca00
mov r13, rax
test rsi, rsi
je 0x14001b985
test r13, r13
je 0x14001b985
xor edx, edx
mov r8, r13
mov rcx, rsi
call sub.msvcrt.dll_memchr
test rax, rax
jne 0x14001bc5b
mov rdx, rsi
mov rcx, rbp
mov r8, r13
call fcn.14001c8d0
mov rcx, r15
mov esi, eax
call fcn.14001c820
test esi, esi
jne 0x14001b730
mov byte [rsp + 0x40], 1
jmp 0x14001b62b
mov r8d, 4
lea rdx, str.json
mov rcx, rbp
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x14001b84d
movzx eax, byte [rdi + 5]
cmp al, 0x7d
je 0x14001b9dd
cmp al, 0x3a
jne 0x14001b84d
mov rcx, r15
call fcn.14001c850
test r13, r13
jne 0x14001bbb1
add rdi, 5
test r12b, r12b
je 0x14001b8f4
nop dword [rax + rax]
mov rcx, rsi
call sub.msvcrt.dll_free
jmp 0x14001b8f4
mov r8, r13
mov rdx, rbp
mov rcx, rax
call sub.msvcrt.dll_memcpy
jmp 0x14001b928
cmp eax, 0x62
jne 0x14001b882
cmp byte [rbp + 1], 0x36
jne 0x14001b882
cmp byte [rbp + 2], 0x34
jne 0x14001b882
movzx eax, byte [rdi + 4]
cmp al, 0x7d
je 0x14001ba55
cmp al, 0x3a
jne 0x14001b882
mov rcx, r15
call fcn.14001c850
test r13, r13
je 0x14001bb1d
mov r9, qword [rsp + 0x40]
lea r8, [rsp + 0x50]
mov rdx, r13
mov rcx, rsi
call fcn.14001c490
test eax, eax
jne 0x14001bc53
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x50]
mov rcx, r15
call fcn.14001c8d0
mov rcx, qword [rsp + 0x50]
test eax, eax
je 0x14001bb80
mov ebx, r12d
call qword [sym.imp.libcurl_4.dll_curl_free]
test bl, bl
je 0x14001bb6f
mov rcx, rsi
call sub.msvcrt.dll_free
jmp 0x14001bb6f
add rsi, 1
sub r13, 1
movzx eax, byte [rsi]
test al, al
je 0x14001baeb
lea edx, [rax - 9]
cmp dl, 4
jbe 0x14001bac0
cmp al, 0x20
jne 0x14001baeb
jmp 0x14001bac0
cmp al, 8
jle 0x14001b8cd
mov r13, rdx
test r13, r13
je 0x14001b8cd
movzx eax, byte [rsi + r13 - 1]
lea rdx, [r13 - 1]
cmp al, 0xd
jle 0x14001bae0
cmp al, 0x20
je 0x14001bae8
jmp 0x14001b8cd
mov rcx, r15
call fcn.14001c850
test r13, r13
jne 0x14001bb30
add rdi, 4
jmp 0x14001b8eb
mov r8d, r13d
mov rdx, rsi
xor ecx, ecx
call qword [sym.imp.libcurl_4.dll_curl_easy_escape]
mov rbp, rax
test rax, rax
je 0x14001bbca
mov rdx, rax
mov rcx, r15
call fcn.14001c8e0
test eax, eax
je 0x14001bc1c
mov rcx, rbp
call qword [sym.imp.libcurl_4.dll_curl_free]
test r12b, r12b
jne 0x14001bab3
mov eax, 0xf
jmp 0x14001b8aa
call qword [sym.imp.libcurl_4.dll_curl_free]
add rdi, 4
jmp 0x14001b8eb
lea r15, [rsp + 0x60]
mov edx, 0x989680
mov rcx, r15
call fcn.14001c800
test r14, r14
je 0x14001bc12
xor r13d, r13d
xor esi, esi
jmp 0x14001b7f2
xor r9d, r9d
mov r8, r15
mov rdx, r13
mov rcx, rsi
call fcn.14001af20
test eax, eax
je 0x14001b9ee
test r12b, r12b
jne 0x14001bab3
jmp 0x14001bb6f
mov r8, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
lea rdx, str.missing_close__in__s
mov r12, qword [rsp + 0x38]
call fcn.14000e740
cmp byte [rsp + 0x40], 0
jne 0x14001b651
nop
mov byte [r12], 0
mov rcx, rbp
call fcn.14001c820
jmp 0x14001b65f
xor esi, esi
xor r13d, r13d
jmp 0x14001b985
mov rcx, rbp
add rdi, 4
call qword [sym.imp.libcurl_4.dll_curl_free]
jmp 0x14001b8eb
mov rdx, rdi
mov rcx, rbp
call fcn.14001c8e0
test eax, eax
je 0x14001b65a
jmp 0x14001b730
mov rcx, rsi
call sub.msvcrt.dll_free
jmp 0x14001b8a5
mov ebx, r12d
jmp 0x14001baab
mov rcx, qword [rsp + 0x28]
lea rdx, str.variable_contains_null_byte
call fcn.14000e830
mov eax, 0x17
jmp 0x14001b661
call fcn.14001e3f0
nop
nop dword [rax]