Function at 0x61cc4900
Capabilities:
Query environment variable

Disassembly:
push rbp
mov rbp, rsp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x78
test rdx, rdx
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov qword [rbp + 0x20], r8
mov dword [rbp + 0x28], r9d
je 0x61cc4fef
mov rax, qword [sym.imp.msvcrt.dll__errno]
mov qword [rbp - 0x70], rax
call rax
mov eax, dword [rax]
lea rcx, sym.libintl_8.dll__nl_state_lock
mov dword [rbp - 0x74], eax
call sym.libintl_8.dll_libintl_rwlock_rdlock_func
test eax, eax
jne 0x61cc4d43
cmp qword [rbp + 0x10], 0
mov rdx, qword [rbp + 0x10]
mov ebx, dword [0x61ce0060]
cmove rdx, qword [sym.libintl_8.dll_libintl_nl_current_default_domain]
test ebx, ebx
mov qword [rbp + 0x10], rdx
je 0x61cc4d50
mov rbx, qword [sym.libintl_8.dll_libintl_nl_domain_bindings]
test rbx, rbx
je 0x61cc4ef1
mov rsi, qword [rbp + 0x10]
jmp 0x61cc49a2
jl 0x61cc4f3f
mov rbx, qword [rbx]
test rbx, rbx
je 0x61cc4ef1
lea rdx, [rbx + 0x18]
mov rcx, rsi
call sub.msvcrt.dll_strcmp
cmp eax, 0
jne 0x61cc4990
mov rax, qword [rbx + 8]
mov qword [rbp - 0x58], rax
movzx eax, byte [rax]
cmp al, 0x5c
je 0x61cc4a9b
cmp al, 0x2f
je 0x61cc4a9b
and eax, 0xffffffdf
sub eax, 0x41
cmp al, 0x19
ja 0x61cc49e6
mov rdx, qword [rbp - 0x58]
cmp byte [rdx + 1], 0x3a
je 0x61cc4a9b
mov rcx, qword [rbp - 0x58]
mov r12d, 0x106
call sub.msvcrt.dll_strlen
mov rdi, qword [rbp - 0x70]
lea rsi, [rax + 1]
jmp 0x61cc4a16
call rdi
cmp dword [rax], 0x22
jne 0x61cc4e50
mov rax, r12
shr rax, 1
lea r12, [r12 + rax + 0x20]
lea rax, [r12 + rsi + 0x1e]
and rax, 0xfffffffffffffff0
call fcn.61cd1480
sub rsp, rax
lea r14, [rsp + 0x30]
call rdi
mov edx, r12d
mov dword [rax], 0
mov rcx, r14
call sub.msvcrt.dll__getcwd
test rax, rax
je 0x61cc4a00
mov rcx, r14
xor edx, edx
call sub.msvcrt.dll_strchr
lea rcx, [0x61cda0e9]
jmp 0x61cc4a63
mov rax, rdx
movzx r8d, byte [rcx]
add rcx, 1
lea rdx, [rax + 1]
test r8b, r8b
mov byte [rax], r8b
jne 0x61cc4a60
mov rcx, qword [rbp - 0x58]
jmp 0x61cc4a84
add rdx, 1
movzx r8d, byte [rcx]
add rcx, 1
test r8b, r8b
mov byte [rax], r8b
mov rax, rdx
jne 0x61cc4a80
mov qword [rbp - 0x58], r14
cmp dword [rbp + 0x38], 3
lea r12, [0x61cda0ff]
je 0x61cc4ad0
jg 0x61cc4f01
cmp dword [rbp + 0x38], 1
lea r12, [0x61cda0eb]
je 0x61cc4ad0
lea r12, [0x61cda0f6]
jle 0x61cc4fa6
nop dword [rax + rax]
mov ecx, dword [rbp + 0x38]
mov rdx, r12
xor r14d, r14d
call sym.libintl_8.dll__nl_locale_name_posix
test rax, rax
mov r13, rax
je 0x61cc4fdf
lea rdi, [0x61cda13c]
mov ecx, 2
mov rsi, r13
repe cmpsb byte [rsi], byte [rdi]
jne 0x61cc4ebf
mov rcx, qword [rbp + 0x10]
call sub.msvcrt.dll_strlen
mov rcx, r12
mov qword [rbp - 0x68], rax
call sub.msvcrt.dll_strlen
mov rdx, qword [rbp - 0x68]
lea rax, [rdx + rax + 0x23]
and rax, 0xfffffffffffffff0
call fcn.61cd1480
sub rsp, rax
lea rax, [rsp + 0x30]
mov qword [rbp - 0x60], rax
mov rcx, rax
jmp 0x61cc4b43
mov rcx, rax
movzx edx, byte [r12]
add r12, 1
lea rax, [rcx + 1]
test dl, dl
mov byte [rcx], dl
jne 0x61cc4b40
lea rdx, [0x61cda0e9]
jmp 0x61cc4b67
mov rcx, rax
add rax, 1
movzx r8d, byte [rdx]
add rdx, 1
test r8b, r8b
mov byte [rcx], r8b
jne 0x61cc4b60
mov rdx, qword [rbp + 0x10]
mov r8, qword [rbp - 0x68]
call fcn.61cd1500
lea rdx, [0x61cda138]
nop dword [rax + rax]
movzx ecx, byte [rdx]
add rdx, 1
mov byte [rax], cl
add rax, 1
test cl, cl
jne 0x61cc4b90
mov rcx, r13
call sub.msvcrt.dll_strlen
add rax, 0x1f
and rax, 0xfffffffffffffff0
call fcn.61cd1480
sub rsp, rax
lea r14, [rbp - 0x48]
lea r12, [rsp + 0x30]
movzx eax, byte [r13]
cmp al, 0x3a
je 0x61cc4de0
test al, al
jne 0x61cc4d60
mov byte [r12], 0x43
mov byte [r12 + 1], 0
lea rdi, [0x61cda13c]
mov rsi, r12
mov ecx, 2
repe cmpsb byte [rsi], byte [rdi]
je 0x61cc4e50
lea rdi, str.POSIX
mov rsi, r12
mov ecx, 6
repe cmpsb byte [rsi], byte [rdi]
je 0x61cc4e50
mov r8, qword [rbp - 0x60]
mov rcx, qword [rbp - 0x58]
mov r9, rbx
mov rdx, r12
call sym.libintl_8.dll__nl_find_domain
test rax, rax
mov rsi, rax
je 0x61cc4bc2
mov r8, qword [rbp + 0x18]
mov qword [rsp + 0x20], r14
mov r9d, 1
mov rdx, rbx
mov rcx, rax
call sym.libintl_8.dll__nl_find_msg
test rax, rax
je 0x61cc4df0
mov rdi, rax
cmp rdi, 0xffffffffffffffff
je 0x61cc4e50
mov rcx, qword [rbp + 0x18]
call sub.msvcrt.dll_strlen
lea r12, [rax + 1]
mov rax, qword [rbp - 0x68]
lea rcx, [r12 + rax + 0x29]
call sub.msvcrt.dll_malloc
test rax, rax
mov rbx, rax
je 0x61cc4d17
mov rdx, qword [rbp + 0x18]
lea rcx, [rax + 0x28]
mov r8, r12
call fcn.61cd1500
mov r8, qword [rbp - 0x68]
mov rdx, qword [rbp + 0x10]
mov rcx, rax
mov r12, rax
add r8, 1
call sub.msvcrt.dll_memcpy
mov eax, dword [sym.libintl_8.dll__nl_msg_cat_cntr]
mov edx, dword [rbp + 0x38]
lea rcx, [0x61cd7180]
mov qword [rbx], r12
mov qword [rbx + 0x10], rsi
mov qword [rbx + 0x18], rdi
mov dword [rbx + 0xc], eax
mov rax, qword [rbp - 0x48]
mov dword [rbx + 8], edx
mov qword [rbx + 0x20], rax
call sym.libintl_8.dll_libintl_rwlock_wrlock_func
test eax, eax
jne 0x61cc4d43
lea r8, [0x61cc3ff0]
lea rdx, [0x61ce0068]
mov rcx, rbx
call fcn.61cd1520
lea rcx, [0x61cd7180]
mov r12, rax
call sym.libintl_8.dll_libintl_rwlock_unlock_func
test eax, eax
jne 0x61cc4d43
test r12, r12
je 0x61cc4ff6
cmp rbx, qword [r12]
jne 0x61cc4ff6
mov rdx, qword [rbp - 0x70]
call rdx
mov r10d, dword [rbp + 0x28]
mov edx, dword [rbp - 0x74]
test r10d, r10d
mov dword [rax], edx
jne 0x61cc4f59
lea rcx, sym.libintl_8.dll__nl_state_lock
call sym.libintl_8.dll_libintl_rwlock_unlock_func
test eax, eax
je 0x61cc4ea5
call sub.msvcrt.dll_abort
nop dword [rax + rax]
mov dword [0x61ce0060], 0xffffffff
jmp 0x61cc4975
mov rdx, r12
jmp 0x61cc4d69
test al, al
je 0x61cc4d7c
add r13, 1
mov byte [rdx], al
add rdx, 1
movzx eax, byte [r13]
cmp al, 0x3a
jne 0x61cc4d65
cmp dword [0x61ce0060], 1
mov byte [rdx], 0
jne 0x61cc4be2
mov edx, 0x2f
mov rcx, r12
call sub.msvcrt.dll_strchr
test rax, rax
jne 0x61cc4bc2
mov edx, 0x5c
mov rcx, r12
call sub.msvcrt.dll_strchr
test rax, rax
jne 0x61cc4bc2
movzx eax, byte [r12]
and eax, 0xffffffdf
sub eax, 0x41
cmp al, 0x19
ja 0x61cc4be2
cmp byte [r12 + 1], 0x3a
jne 0x61cc4be2
jmp 0x61cc4bc2
add r13, 1
jmp 0x61cc4bc2
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x61cc4bc2
xor r15d, r15d
mov rdi, qword [rbp + 0x18]
jmp 0x61cc4e25
add r15d, 1
movsxd rax, r15d
mov rcx, qword [rsi + rax*8 + 0x20]
test rcx, rcx
je 0x61cc4bc2
mov qword [rsp + 0x20], r14
mov r9d, 1
mov r8, rdi
mov rdx, rbx
call sym.libintl_8.dll__nl_find_msg
test rax, rax
je 0x61cc4e10
movsxd r11, r15d
mov rdi, rax
mov rsi, qword [rsi + r11*8 + 0x20]
jmp 0x61cc4c51
lea rcx, sym.libintl_8.dll__nl_state_lock
call sym.libintl_8.dll_libintl_rwlock_unlock_func
test eax, eax
jne 0x61cc4d43
cmp dword [0x61ce0060], 1
je 0x61cc4e87
lea rcx, str.GETTEXT_LOG_UNTRANSLATED
call sub.msvcrt.dll_getenv
test rax, rax
je 0x61cc4e87
cmp byte [rax], 0
jne 0x61cc4fbf
mov rdx, qword [rbp - 0x70]
call rdx
mov r9d, dword [rbp + 0x28]
mov edx, dword [rbp - 0x74]
test r9d, r9d
mov dword [rax], edx
je 0x61cc4eb9
cmp dword [rbp + 0x30], 1
je 0x61cc4eb9
mov rdi, qword [rbp + 0x20]
mov rax, rdi
lea rsp, [rbp - 0x38]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rdi, qword [rbp + 0x18]
jmp 0x61cc4ea5
lea rcx, str.LANGUAGE
call sub.msvcrt.dll_getenv
test rax, rax
je 0x61cc4ed5
cmp byte [rax], 0
jne 0x61cc4f51
test r14d, r14d
je 0x61cc4b01
nop
call sym.libintl_8.dll__nl_language_preferences_default
test rax, rax
cmovne r13, rax
jmp 0x61cc4b01
lea rax, sym.libintl_8.dll_libintl_nl_default_dirname
mov qword [rbp - 0x58], rax
jmp 0x61cc4a9b
cmp dword [rbp + 0x38], 5
lea r12, [0x61cda116]
je 0x61cc4ad0
lea r12, [0x61cda10b]
jl 0x61cc4ad0
cmp dword [rbp + 0x38], 0x6c1
lea r12, [0x61cda11e]
je 0x61cc4ad0
lea r12, [0x61cda131]
jmp 0x61cc4ad0
lea rdx, sym.libintl_8.dll_libintl_nl_default_dirname
xor ebx, ebx
mov qword [rbp - 0x58], rdx
jmp 0x61cc4a9b
mov r13, rax
jmp 0x61cc4b01
mov r12, qword [rsi + 0x10]
mov edx, dword [rbp + 0x30]
mov r13, qword [rbp - 0x48]
mov rcx, qword [r12 + 0xe8]
lea rsi, [rdi + r13]
call fcn.61cc3e50
cmp eax, dword [r12 + 0xf0]
mov ebx, eax
mov eax, 0
mov rcx, rdi
cmovae ebx, eax
test ebx, ebx
je 0x61cc5005
xor edx, edx
sub ebx, 1
call sub.msvcrt.dll_strchr
lea rcx, [rax + 1]
cmp rcx, rsi
jb 0x61cc4f8a
jmp 0x61cc4d2f
mov r11d, dword [rbp + 0x38]
lea r12, [0x61cda12a]
test r11d, r11d
je 0x61cc4ad0
jmp 0x61cc4f33
mov edx, dword [rbp + 0x28]
mov r9, qword [rbp + 0x20]
mov rcx, rax
mov r8, qword [rbp + 0x18]
mov dword [rsp + 0x20], edx
mov rdx, qword [rbp + 0x10]
call sym.libintl_8.dll__nl_log_untranslated
jmp 0x61cc4e87
call sym.libintl_8.dll__nl_locale_name_default
mov r14b, 1
mov r13, rax
jmp 0x61cc4aea
xor edi, edi
jmp 0x61cc4ea5
mov rcx, rbx
call sub.msvcrt.dll_free
nop
jmp 0x61cc4d17
mov rdi, rcx
jmp 0x61cc4d2f