Function at 0x14008c820
Capabilities:
Get common file path

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0x170]
sub rsp, 0x270
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov rax, qword [0x1403ad830]
xor rax, rsp
mov qword [rbp + 0x160], rax
mov rsi, r9
mov rdi, r8
mov rbx, rdx
mov r14, rcx
mov byte [rcx], 1
lea rdx, str.env.get_rand_int
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008c891
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.14004ba30
movsxd rdx, eax
mov rcx, rsi
call fcn.1400427c0
jmp 0x14008d3fb
lea rdx, str.env.get_tickcount
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008c8c3
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.1400303b0
mov rdx, rax
mov rcx, rsi
call fcn.1400427c0
jmp 0x14008d3fb
lea rdx, str.env.get_cmd
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008c996
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
xor edx, edx
mov rcx, rsi
call fcn.140046540
lea rdx, [rsp + 0x28]
mov rcx, qword [rdi + 0x70]
call fcn.1400134b0
nop
mov rdx, rax
mov rcx, rsi
call fcn.140047550
nop
mov rbx, qword [rsp + 0x28]
test rbx, rbx
je 0x14008d3fb
mov rdi, qword [rsp + 0x30]
cmp rbx, rdi
je 0x14008c939
mov rax, qword [rbx]
xor edx, edx
mov rcx, rbx
call qword [rax]
add rbx, 0x28
cmp rbx, rdi
jne 0x14008c921
mov rbx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x38]
sub rcx, rbx
movabs rax, 0x6666666666666667
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*4]
shl rdx, 3
mov rax, rbx
cmp rdx, 0x1000
jb 0x14008c989
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14008d418
mov rcx, rbx
call fcn.140283144
jmp 0x14008d3fb
lea rdx, str.env.is_win7
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008c9c8
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.14002e9a0
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_win8
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008c9fa
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.14002ea40
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_win81
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008ca2c
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.14002e9f0
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_winxp
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008ca5e
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.14002ec40
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_win10
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008ca90
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.14002e940
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_os_64
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008cac2
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.14002e7d0
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_cpu_x86_64
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008caf4
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.14002e7d0
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_cpu_mips64
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008cb26
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.1400305c0
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_cpu_aarch64
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008cb58
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.1400305c0
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_os_server
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008cb8a
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.140030af0
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_lan_zh_CN
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008cbbc
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.1400305f0
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_lan_en_US
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008cbee
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.1400305d0
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.get_current_logon_domain_user
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008cc33
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
lea rcx, [rsp + 0x28]
call fcn.14002f800
nop
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.1400428b0
nop
lea rcx, [rsp + 0x28]
call fcn.14001d440
jmp 0x14008d3fb
lea rdx, str.env.get_current_logon_user
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008cc78
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
lea rcx, [rsp + 0x28]
call fcn.14002f860
nop
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.1400428b0
nop
lea rcx, [rsp + 0x28]
call fcn.14001d440
jmp 0x14008d3fb
lea rdx, str.env.get_host_name_short
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008ccbd
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
lea rcx, [rsp + 0x28]
call fcn.140030220
nop
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.1400428b0
nop
lea rcx, [rsp + 0x28]
call fcn.14001d440
jmp 0x14008d3fb
lea rdx, str.env.get_host_name_full
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008cd02
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
lea rcx, [rsp + 0x28]
call fcn.140030130
nop
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.1400428b0
nop
lea rcx, [rsp + 0x28]
call fcn.14001d440
jmp 0x14008d3fb
lea rdx, str.env.get_domain_name
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008cd47
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
lea rcx, [rsp + 0x28]
call fcn.140030040
nop
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.1400428b0
nop
lea rcx, [rsp + 0x28]
call fcn.14001d440
jmp 0x14008d3fb
lea rdx, str.env.get_dir_win
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008cd8e
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
xor edx, edx
lea rcx, [rsp + 0x28]
call fcn.14002e560
nop
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.1400428b0
nop
lea rcx, [rsp + 0x28]
call fcn.14001d440
jmp 0x14008d3fb
lea rdx, str.env.get_dir_sys32
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008cdd5
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
xor edx, edx
lea rcx, [rsp + 0x28]
call fcn.14002e610
nop
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.1400428b0
nop
lea rcx, [rsp + 0x28]
call fcn.14001d440
jmp 0x14008d3fb
lea rdx, str.env.get_dir_wow64
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008ce1c
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
xor edx, edx
lea rcx, [rsp + 0x28]
call fcn.14002e6c0
nop
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.1400428b0
nop
lea rcx, [rsp + 0x28]
call fcn.14001d440
jmp 0x14008d3fb
lea rdx, str.env.get_cpu_arch
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008ce5f
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
lea rcx, [rsp + 0x28]
call fcn.14002ed60
nop
mov rdx, rax
mov rcx, rsi
call fcn.1400428b0
nop
lea rcx, [rsp + 0x28]
call fcn.14001d440
jmp 0x14008d3fb
lea rdx, str.env.get_os_name
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008cea2
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
lea rcx, [rsp + 0x28]
call fcn.140030310
nop
mov rdx, rax
mov rcx, rsi
call fcn.1400428b0
nop
lea rcx, [rsp + 0x28]
call fcn.14001d440
jmp 0x14008d3fb
lea rdx, str.env.get_dir_agent
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008cef2
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.140034870
mov rcx, rax
xor r8d, r8d
lea rdx, [rsp + 0x28]
call fcn.1400343a0
nop
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.1400428b0
nop
lea rcx, [rsp + 0x28]
call fcn.14001d440
jmp 0x14008d3fb
lea rdx, str.env.get_dir_lvapub
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008cf42
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.140034870
mov rcx, rax
xor r8d, r8d
lea rdx, [rsp + 0x28]
call fcn.1400341e0
nop
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.1400428b0
nop
lea rcx, [rsp + 0x28]
call fcn.14001d440
jmp 0x14008d3fb
lea rdx, str.env.make_uuid
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008cf87
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
lea rcx, [rsp + 0x28]
call fcn.1400202c0
nop
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.1400428b0
nop
lea rcx, [rsp + 0x28]
call fcn.14001d440
jmp 0x14008d3fb
lea rdx, str.env.get_os_type
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008cfca
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
lea rcx, [rsp + 0x28]
call fcn.140030390
nop
mov rdx, rax
mov rcx, rsi
call fcn.1400428b0
nop
lea rcx, [rsp + 0x28]
call fcn.14001d440
jmp 0x14008d3fb
lea rdx, str.env.is_os_linux
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008cffc
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.140030950
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_os_ubuntu
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008d02e
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.140030b50
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_os_redhat
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008d060
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.140030a30
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_os_centos
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008d092
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.140030610
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_os_unios
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008d0c4
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.140030c10
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_os_deepin
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008d0f6
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.1400306d0
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_os_uos
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008d128
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.140030cd0
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_os_kylin
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008d15a
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.1400307d0
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_os_kylin_yh
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008d18c
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.140030890
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_os_mac
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008d1be
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.1400309c0
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.is_os_windows
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008d1f0
xor edx, edx
mov rcx, rdi
call fcn.14006dca0
call fcn.140030d90
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.get_current_dir
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008d241
mov edx, 3
mov rcx, rdi
call fcn.14006e150
mov rax, qword [rdi + 0x40]
movzx edx, byte [rax + 0x80]
lea rcx, [rsp + 0x28]
call fcn.14002d5f0
nop
mov rdx, rax
mov rcx, rsi
call fcn.1400428b0
nop
lea rcx, [rsp + 0x28]
call fcn.14001d440
jmp 0x14008d3fb
lea rdx, str.env.set_current_dir
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008d273
mov edx, 1
mov rcx, rdi
call fcn.14006e150
mov rcx, qword [rdi + 0x40]
add rcx, 0x58
call fcn.140030e00
jmp 0x14008d3fb
lea rdx, str.env.get_temp_dir
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008d2c4
mov edx, 3
mov rcx, rdi
call fcn.14006e150
mov rax, qword [rdi + 0x40]
movzx edx, byte [rax + 0x80]
lea rcx, [rsp + 0x28]
call fcn.14002e330
nop
mov rdx, rax
mov rcx, rsi
call fcn.1400428b0
nop
lea rcx, [rsp + 0x28]
call fcn.14001d440
jmp 0x14008d3fb
lea rdx, str.env.get_user_name
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008d305
mov rcx, rdi
call fcn.14006e4c0
lea rcx, [rsp + 0x28]
call fcn.140030540
nop
mov rdx, rax
mov rcx, rsi
call fcn.1400428b0
nop
lea rcx, [rsp + 0x28]
call fcn.14001d440
jmp 0x14008d3fb
lea rdx, str.env.is_app_64
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008d335
mov rcx, rdi
call fcn.14006e4c0
call fcn.14002e7d0
movzx edx, al
mov rcx, rsi
call fcn.140042650
jmp 0x14008d3fb
lea rdx, str.env.get_desktop_path
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008d396
mov rcx, rdi
call fcn.14006e4c0
xor eax, eax
mov word [rsp + 0x50], ax
lea r9d, [rax + 1]
lea r8d, [rax + 0x10]
lea rdx, [rsp + 0x50]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x28]
call fcn.14001c950
nop
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.1400428b0
nop
lea rcx, [rsp + 0x28]
call fcn.14001d440
jmp 0x14008d3fb
lea rdx, str.env.get_mydocument_path
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14008d3f7
mov rcx, rdi
call fcn.14006e4c0
xor eax, eax
mov word [rsp + 0x50], ax
lea r9d, [rax + 1]
lea r8d, [rax + 5]
lea rdx, [rsp + 0x50]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x28]
call fcn.14001c950
nop
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.1400428b0
nop
lea rcx, [rsp + 0x28]
call fcn.14001d440
jmp 0x14008d3fb
mov byte [r14], 0
mov rcx, qword [rbp + 0x160]
xor rcx, rsp
call fcn.140283120
add rsp, 0x270
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.140287d84
int3