Function at 0x1400a3948
Capabilities:
Get hostname

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x58
mov qword [rbp - 0x18], 0xfffffffffffffffe
mov rsi, rcx
lea r15, [0x1400f3190]
lea r13, [0x1400d8b88]
mov rcx, qword [0x1400f3190]
cmp rcx, r15
je 0x1400a39a1
test byte [rcx + 0x1c], 1
je 0x1400a39a1
cmp byte [rcx + 0x19], 5
jb 0x1400a39a1
mov edx, SafeArrayDestroy
mov r9, rsi
mov r8, r13
mov rcx, qword [rcx + 0x10]
call fcn.1400036e4
lea rbx, [rsi + 0x48]
mov edx, dword [rbx]
xor r14d, r14d
test edx, edx
je 0x1400a39c5
mov rcx, qword [0x1400f8ca0]
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [str.__f_]
mov dword [rbx], r14d
mov qword [rbp + 0x58], r14
lea rax, [rbp + 0x58]
mov qword [rsp + 0x20], rax
lea r9, [0x1400d8b78]
xor edx, edx
lea r8d, [rdx + 0x17]
lea rcx, [0x1400d8b68]
call qword [sym.imp.ole32.dll_CoCreateInstance]
mov edi, eax
test eax, eax
jns 0x1400a3a46
mov r10, qword [0x1400f3190]
cmp r10, r15
je 0x1400a3a27
test byte [r10 + 0x1c], 2
je 0x1400a3a27
cmp byte [r10 + 0x19], 2
jb 0x1400a3a27
mov edx, SafeArrayDestroy
mov r9d, eax
mov r8, r13
mov rcx, qword [r10 + 0x10]
call fcn.1400036a8
mov r10, qword [0x1400f3190]
mov rcx, qword [rbp + 0x58]
test rcx, rcx
je 0x1400a3e5c
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [str.__f_]
jmp 0x1400a3e55
mov r8, qword [rbp + 0x58]
lea rdx, [0x1400d8b78]
mov rcx, rbx
call fcn.1400b340c
mov edi, eax
test eax, eax
jns 0x1400a3a6e
mov rcx, qword [rbp + 0x58]
test rcx, rcx
je 0x1400a3e55
jmp 0x1400a3a34
mov rcx, qword [0x1400f3190]
cmp rcx, r15
je 0x1400a3a97
test byte [rcx + 0x1c], 2
je 0x1400a3a97
cmp byte [rcx + 0x19], 5
jb 0x1400a3a97
mov edx, reloc.OLEAUT32.dll_SafeArrayDestroy
mov r8, r13
mov rcx, qword [rcx + 0x10]
call fcn.1400035e4
mov rcx, rsi
call fcn.1400a3fd8
mov edi, eax
test eax, eax
js 0x1400a3a5f
mov rax, qword [0x1400f6030]
lea rcx, [0x1400f6030]
mov rax, qword [rax + 0x18]
call qword [str.__f_]
lea rbx, [rax + 0x18]
mov qword [rbp + 0x60], rbx
mov r12d, reloc.OLEAUT32.dll_SafeArrayGetDim
mov dword [rbp + 0x48], r12d
lea ecx, [r12 - 0xf]
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, r12d
or eax, ecx
jge 0x1400a3af1
mov edx, r12d
lea rcx, [rbp + 0x60]
call fcn.140004f6c
mov rbx, qword [rbp + 0x60]
cmp dword [rbx - 0xc], r12d
jl 0x1400a3eb9
mov dword [rbx - 0x10], r12d
mov word [rbx + 0x20], r14w
lea rdx, [rbp + 0x48]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetComputerNameW]
or r15, 0xffffffffffffffff
test eax, eax
je 0x1400a3b78
mov rax, r15
inc rax
cmp word [rbx + rax*2], r14w
jne 0x1400a3b1c
test eax, eax
js 0x1400a3ec4
cmp eax, dword [rbx - 0xc]
jg 0x1400a3ec4
mov dword [rbx - 0x10], eax
cdqe
mov word [rbx + rax*2], r14w
mov rcx, qword [0x1400f3190]
lea rdx, [0x1400f3190]
cmp rcx, rdx
je 0x1400a3bdb
test byte [rcx + 0x1c], 2
je 0x1400a3bdb
cmp byte [rcx + 0x19], 5
jb 0x1400a3bdb
mov edx, r12d
mov r9, rbx
mov r8, r13
mov rcx, qword [rcx + 0x10]
call fcn.140003608
jmp 0x1400a3bdb
cmp dword [rbx - 0xc], r14d
jl 0x1400a3ea3
mov dword [rbx - 0x10], r14d
mov word [rbx], r14w
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx edi, ax
or edi, 0x80070000
test eax, eax
cmovle edi, eax
mov ecx, 0x80004005
test edi, edi
cmovns edi, ecx
mov rcx, qword [0x1400f3190]
lea rdx, [0x1400f3190]
cmp rcx, rdx
je 0x1400a3bdb
test byte [rcx + 0x1c], 2
je 0x1400a3bdb
cmp byte [rcx + 0x19], 2
jb 0x1400a3bdb
mov edx, SafeArrayUnlock
mov r9d, eax
mov r8, r13
mov rcx, qword [rcx + 0x10]
call fcn.1400036a8
lea rcx, [rbp + 0x60]
call fcn.14002dee8
mov rax, qword [0x1400f6030]
lea rcx, [0x1400f6030]
mov rax, qword [rax + 0x18]
call qword [str.__f_]
lea rbx, [rax + 0x18]
mov qword [rbp + 0x50], rbx
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
mov r12d, 0x105
sub eax, r12d
or eax, ecx
jge 0x1400a3c2c
mov edx, r12d
lea rcx, [rbp + 0x50]
call fcn.140004f6c
mov rbx, qword [rbp + 0x50]
cmp dword [rbx - 0xc], r12d
jl 0x1400a3eda
mov dword [rbx - 0x10], r12d
mov word [rbx + 0x20a], r14w
mov r8d, r12d
mov rdx, rbx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x1400a3d0c
mov rax, r15
inc rax
cmp word [rbx + rax*2], r14w
jne 0x1400a3c5b
test eax, eax
js 0x1400a3ecf
cmp eax, dword [rbx - 0xc]
jg 0x1400a3ecf
mov dword [rbx - 0x10], eax
cdqe
mov word [rbx + rax*2], r14w
mov rax, r15
inc rax
cmp word [rbx + rax*2], r14w
jne 0x1400a3c83
cdqe
lea rcx, [rbx + rax*2]
jmp 0x1400a3c9f
cmp word [rcx], 0x5c
je 0x1400a3ca8
sub rcx, 2
cmp rcx, rbx
jne 0x1400a3c95
cmp word [rcx], 0x5c
cmovne rcx, r14
test rcx, rcx
je 0x1400a3d0c
sub rcx, rbx
sar rcx, 1
cmp ecx, r15d
je 0x1400a3d0c
mov r8d, dword [rbx - 0x10]
sub r8d, ecx
dec r8d
lea rdx, [rbp - 0x20]
lea rcx, [rbp + 0x50]
call fcn.14005acc0
nop
mov rdx, rax
lea rcx, [rbp + 0x50]
call fcn.140004d2c
nop
mov rdx, qword [rbp - 0x20]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1400a3d08
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [str.__f_]
mov rbx, qword [rbp + 0x50]
mov rax, qword [0x1400f6030]
lea rcx, [0x1400f6030]
mov rax, qword [rax + 0x18]
call qword [str.__f_]
add rax, 0x18
mov qword [rbp - 0x28], rax
mov r9, qword [rbp + 0x60]
mov r8, rbx
lea rdx, str._ls___ls_
lea rcx, [rbp - 0x28]
call fcn.140008fe8
mov rbx, qword [rbp - 0x28]
mov rcx, qword [0x1400f3190]
lea rax, [0x1400f3190]
cmp rcx, rax
je 0x1400a3d7a
test byte [rcx + 0x1c], 2
je 0x1400a3d7a
cmp byte [rcx + 0x19], 5
jb 0x1400a3d7a
mov edx, SafeArrayAccessData
mov r9, rbx
mov r8, r13
mov rcx, qword [rcx + 0x10]
call fcn.140003608
mov rax, qword [rsi + 0x80]
cmp rbx, rax
je 0x1400a3db9
mov rcx, rax
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test rbx, rbx
je 0x1400a3daf
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rsi + 0x80], rax
test rax, rax
je 0x1400a3eae
jmp 0x1400a3db9
mov qword [rsi + 0x80], r14
mov rax, r14
mov ecx, 0x8007000e
test rax, rax
cmove edi, ecx
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1400a3de8
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [str.__f_]
nop
mov rdx, qword [rbp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1400a3e10
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [str.__f_]
nop
mov rdx, qword [rbp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1400a3e38
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [str.__f_]
nop
mov rcx, qword [rbp + 0x58]
test rcx, rcx
je 0x1400a3e4e
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [str.__f_]
lea r15, [0x1400f3190]
mov r10, qword [0x1400f3190]
cmp r10, r15
je 0x1400a3e90
test byte [r10 + 0x1c], 1
je 0x1400a3e90
mov ecx, edi
sar ecx, 0x1f
and ecx, 0xfffffffd
add ecx, 5
movzx eax, byte [r10 + 0x19]
cmp eax, ecx
jl 0x1400a3e90
mov edx, SafeArrayAccessData
mov r9d, edi
mov r8, r13
mov rcx, qword [r10 + 0x10]
call fcn.1400036a8
mov eax, edi
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x80070057
call fcn.1400051a4
nop
mov ecx, 0x8007000e
call fcn.1400051a4
nop
mov ecx, 0x80070057
call fcn.1400051a4
int3
mov ecx, 0x80070057
call fcn.1400051a4
nop
mov ecx, 0x80070057
call fcn.1400051a4
int3
mov ecx, 0x80070057
call fcn.1400051a4
int3