Function at 0x48be20
Capabilities:
Query environment variable

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x88
lea rbp, [rsp + 0x80]
test rdx, rdx
mov qword [rbp - 0x30], rcx
mov qword [rbp - 0x28], rdx
mov qword [rbp - 0x50], r8
mov dword [rbp - 0x3c], r9d
je 0x48c525
mov rax, qword [sym.imp.msvcrt.dll__errno]
mov qword [rbp - 0x38], rax
call rax
mov eax, dword [rax]
lea rcx, [0x00657120]
mov dword [rbp - 0x40], eax
call fcn.0048d9f0
test eax, eax
jne 0x48c539
mov rax, qword [rbp - 0x30]
mov edi, dword [0x007ef820]
test rax, rax
cmove rax, qword [str.messages]
test edi, edi
mov qword [rbp - 0x30], rax
je 0x48c2ad
mov rbx, qword [0x007f1df8]
test rbx, rbx
je 0x48c258
mov rsi, qword [rbp - 0x30]
jmp 0x48bec3
js 0x48c256
mov rbx, qword [rbx]
test rbx, rbx
je 0x48c258
lea rdx, [rbx + 0x18]
mov rcx, rsi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x48beb1
mov r14, qword [rbx + 8]
movzx eax, byte [r14]
cmp al, 0x5c
je 0x48c2ee
cmp al, 0x2f
je 0x48c2ee
and eax, 0xffffffdf
sub eax, 0x41
cmp al, 0x19
ja 0x48bf00
cmp byte [r14 + 1], 0x3a
je 0x48c2ee
mov rcx, r14
mov r12d, 0x106
call sub.msvcrt.dll_strlen
mov r13, qword [rbp - 0x38]
lea rsi, [rax + 1]
jmp 0x48bf37
call r13
cmp dword [rax], 0x22
jne 0x48c3f0
mov rax, r12
shr rax, 1
lea r12, [r12 + rax + 0x20]
lea rax, [r12 + rsi + 0x1e]
and rax, 0xfffffffffffffff0
call fcn.00649e40
sub rsp, rax
lea rdi, [rsp + 0x30]
call r13
mov edx, r12d
mov dword [rax], 0
mov rcx, rdi
call sub.msvcrt.dll__getcwd
test rax, rax
je 0x48bf20
xor edx, edx
mov rcx, rdi
mov qword [rbp - 0x18], rdi
call sub.msvcrt.dll_strchr
lea rdx, [0x00691c69]
nop dword [rax + rax]
add rdx, 1
movzx ecx, byte [rdx - 1]
add rax, 1
test cl, cl
mov byte [rax - 1], cl
jne 0x48bf80
add r14, 1
movzx edx, byte [r14 - 1]
test dl, dl
mov byte [rax - 1], dl
je 0x48c263
nop word [rax + rax]
add r14, 1
movzx edx, byte [r14 - 1]
add rax, 1
test dl, dl
mov byte [rax - 1], dl
jne 0x48bfb0
cmp dword [rbp + 0x78], 3
jne 0x48c26d
lea r12, str.LC_MONETARY
mov ecx, dword [rbp + 0x78]
mov rdx, r12
xor r14d, r14d
call fcn.0048f940
test rax, rax
mov r13, rax
je 0x48c513
lea rdi, [0x00691cbc]
mov ecx, 2
mov rsi, r13
repe cmpsb byte [rsi], byte [rdi]
jne 0x48c45c
mov rcx, qword [rbp - 0x30]
call sub.msvcrt.dll_strlen
mov rcx, r12
mov rdi, rax
mov qword [rbp - 0x48], rax
call sub.msvcrt.dll_strlen
lea rax, [rdi + rax + 0x23]
and rax, 0xfffffffffffffff0
call fcn.00649e40
sub rsp, rax
lea rax, [rsp + 0x30]
mov qword [rbp - 0x20], rax
nop dword [rax + rax]
add r12, 1
movzx edx, byte [r12 - 1]
mov rcx, rax
lea rax, [rax + 1]
test dl, dl
mov byte [rax - 1], dl
jne 0x48c040
lea rdx, [0x00691c69]
jmp 0x48c068
mov rcx, rax
add rax, 1
add rdx, 1
movzx r8d, byte [rdx - 1]
test r8b, r8b
mov byte [rax - 1], r8b
jne 0x48c061
mov rdx, qword [rbp - 0x30]
mov r8, qword [rbp - 0x48]
call fcn.0064b0e0
lea rdx, [0x00691cb8]
nop
add rdx, 1
movzx ecx, byte [rdx - 1]
add rax, 1
test cl, cl
mov byte [rax - 1], cl
jne 0x48c090
mov rcx, r13
call sub.msvcrt.dll_strlen
add rax, 0x1f
and rax, 0xfffffffffffffff0
call fcn.00649e40
sub rsp, rax
lea r14, [rbp - 8]
lea r12, [rsp + 0x30]
movzx eax, byte [r13]
cmp al, 0x3a
je 0x48c380
test al, al
mov rdx, r12
jne 0x48c304
mov byte [r12], 0x43
mov byte [r12 + 1], 0
lea rdi, [0x00691cbc]
mov rsi, r12
mov ecx, 2
repe cmpsb byte [rsi], byte [rdi]
je 0x48c3f0
lea rdi, str.POSIX
mov rsi, r12
mov ecx, 6
repe cmpsb byte [rsi], byte [rdi]
je 0x48c3f0
mov r8, qword [rbp - 0x20]
mov rcx, qword [rbp - 0x18]
mov r9, rbx
mov rdx, r12
call fcn.0048f990
test rax, rax
mov rsi, rax
je 0x48c0c4
mov r8, qword [rbp - 0x28]
mov qword [rsp + 0x20], r14
mov r9d, 1
mov rdx, rbx
mov rcx, rax
call fcn.0048b5c0
test rax, rax
je 0x48c390
mov rdi, rax
cmp rdi, 0xffffffffffffffff
je 0x48c3f0
mov r14, qword [rbp - 0x28]
mov rcx, r14
call sub.msvcrt.dll_strlen
mov r15, qword [rbp - 0x48]
lea r12, [rax + 1]
lea rcx, [r12 + r15 + 0x29]
call sub.msvcrt.dll_malloc
test rax, rax
mov rbx, rax
je 0x48c222
lea rcx, [rax + 0x28]
mov r8, r12
mov rdx, r14
call fcn.0064b0e0
mov rdx, qword [rbp - 0x30]
mov r8, r15
mov rcx, rax
add r8, 1
call sub.msvcrt.dll_memcpy
mov qword [rbx], rax
mov eax, dword [rbp + 0x78]
lea rcx, [0x006571a0]
mov qword [rbx + 0x10], rsi
mov qword [rbx + 0x18], rdi
mov dword [rbx + 8], eax
mov eax, dword [0x007f1e00]
mov dword [rbx + 0xc], eax
mov rax, qword [rbp - 8]
mov qword [rbx + 0x20], rax
call fcn.0048db40
test eax, eax
jne 0x48c539
lea r8, [0x0048b550]
lea rdx, [0x007ef828]
mov rcx, rbx
call fcn.0064b100
lea rcx, [0x006571a0]
mov r12, rax
call fcn.0048dc80
test eax, eax
jne 0x48c539
test r12, r12
je 0x48c52c
cmp rbx, qword [r12]
jne 0x48c52c
mov rax, qword [rbp - 0x38]
call rax
mov r11d, dword [rbp - 0x3c]
mov ebx, dword [rbp - 0x40]
test r11d, r11d
mov dword [rax], ebx
jne 0x48c499
lea rcx, [0x00657120]
call fcn.0048dc80
test eax, eax
jne 0x48c539
mov rax, rdi
jmp 0x48c445
xor ebx, ebx
lea rax, [0x00691d00]
mov qword [rbp - 0x18], rax
cmp dword [rbp + 0x78], 3
je 0x48bfce
jle 0x48c2bc
cmp dword [rbp + 0x78], 5
lea r12, str.LC_TIME
je 0x48bfd5
lea r12, str.LC_NUMERIC
jl 0x48bfd5
cmp dword [rbp + 0x78], 0x6c1
lea r12, [0x00691c9e]
je 0x48bfd5
lea r12, str.LC_XXX
jmp 0x48bfd5
mov dword [0x007ef820], 0xffffffff
jmp 0x48be9b
cmp dword [rbp + 0x78], 1
lea r12, str.LC_COLLATE
je 0x48bfd5
lea r12, str.LC_CTYPE
jg 0x48bfd5
mov esi, dword [rbp + 0x78]
lea r12, [0x00691caa]
test esi, esi
je 0x48bfd5
jmp 0x48c2a1
mov qword [rbp - 0x18], r14
jmp 0x48c263
test al, al
je 0x48c318
add rdx, 1
add r13, 1
mov byte [rdx - 1], al
movzx eax, byte [r13]
cmp al, 0x3a
jne 0x48c300
cmp dword [0x007ef820], 1
mov byte [rdx], 0
jne 0x48c0e7
mov edx, 0x2f
mov rcx, r12
call sub.msvcrt.dll_strchr
test rax, rax
jne 0x48c0c4
mov edx, 0x5c
mov rcx, r12
call sub.msvcrt.dll_strchr
test rax, rax
jne 0x48c0c4
movzx eax, byte [r12]
and eax, 0xffffffdf
sub eax, 0x41
cmp al, 0x19
ja 0x48c0e7
cmp byte [r12 + 1], 0x3a
jne 0x48c0e7
jmp 0x48c0c4
add r13, 1
jmp 0x48c0c4
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x48c0c4
xor r15d, r15d
mov rdi, qword [rbp - 0x28]
jmp 0x48c3c5
add r15d, 1
movsxd rax, r15d
mov rcx, qword [rsi + rax*8 + 0x20]
test rcx, rcx
je 0x48c0c4
mov qword [rsp + 0x20], r14
mov r9d, 1
mov r8, rdi
mov rdx, rbx
call fcn.0048b5c0
test rax, rax
je 0x48c3b0
movsxd r11, r15d
mov rdi, rax
mov rsi, qword [rsi + r11*8 + 0x20]
jmp 0x48c156
lea rcx, [0x00657120]
call fcn.0048dc80
test eax, eax
jne 0x48c539
cmp dword [0x007ef820], 1
je 0x48c427
lea rcx, str.GETTEXT_LOG_UNTRANSLATED
call sub.msvcrt.dll_getenv
test rax, rax
je 0x48c427
cmp byte [rax], 0
jne 0x48c4f3
mov rax, qword [rbp - 0x38]
call rax
mov r10d, dword [rbp - 0x3c]
mov edi, dword [rbp - 0x40]
test r10d, r10d
mov dword [rax], edi
je 0x48c456
cmp dword [rbp + 0x70], 1
je 0x48c456
mov rax, qword [rbp - 0x50]
lea rsp, [rbp + 8]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rax, qword [rbp - 0x28]
jmp 0x48c445
lea rcx, str.LANGUAGE
call sub.msvcrt.dll_getenv
test rax, rax
je 0x48c472
cmp byte [rax], 0
jne 0x48c491
test r14d, r14d
je 0x48c006
nop dword [rax + rax]
call fcn.0048fc80
test rax, rax
cmovne r13, rax
jmp 0x48c006
mov r13, rax
jmp 0x48c006
mov r12, qword [rsi + 0x10]
mov edx, dword [rbp + 0x70]
xor ebx, ebx
mov r13, qword [rbp - 8]
mov rcx, qword [r12 + 0xe8]
lea rsi, [rdi + r13]
call fcn.0048b3c0
cmp eax, dword [r12 + 0xf0]
mov rcx, rdi
cmovb ebx, eax
jmp 0x48c4e7
xor edx, edx
sub ebx, 1
call sub.msvcrt.dll_strchr
lea rcx, [rax + 1]
cmp rcx, rsi
jae 0x48c23a
test ebx, ebx
jne 0x48c4d0
mov rdi, rcx
jmp 0x48c23a
mov edi, dword [rbp - 0x3c]
mov r9, qword [rbp - 0x50]
mov rcx, rax
mov r8, qword [rbp - 0x28]
mov rdx, qword [rbp - 0x30]
mov dword [rsp + 0x20], edi
call fcn.004900e0
jmp 0x48c427
call fcn.0048f950
mov r14b, 1
mov r13, rax
nop
jmp 0x48bfef
xor eax, eax
jmp 0x48c445
mov rcx, rbx
call sub.msvcrt.dll_free
jmp 0x48c222
call sub.msvcrt.dll_abort
nop
nop