Function at 0x180016430
Capabilities:
Create thread

Disassembly:
mov rax, rsp
push rbp
push rdi
lea rbp, [rax - 0x5f]
sub rsp, 0xa8
cmp byte [rcx + 0x2f], 0
mov rdi, rcx
jne 0x1800168ca
mov qword [rax + 0x20], rbx
mov qword [rax - 0x18], rsi
mov qword [rax - 0x30], r14
mov qword [rax - 0x38], r15
xor r15d, r15d
mov byte [rcx + 0x2f], 1
mov esi, r15d
lea ecx, [r15 + 0x20]
call fcn.18001b0b8
mov rbx, rax
lea r8, [0x180015bf0]
mov r9, rbx
xor edx, edx
xor ecx, ecx
mov dword [rax + 9], r15d
mov word [rax + 0xd], r15w
mov byte [rax + 0xf], sil
mov qword [rax], rdi
lea rax, [0x180015b90]
mov qword [rbx + 0x10], rax
lea rax, [rbp + 0x67]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r15d
mov qword [rbx + 0x18], rdi
mov byte [rbx + 8], 1
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov r14, rax
test rax, rax
jne 0x1800164d3
lea edx, [rax + 0x20]
mov rcx, rbx
call fcn.18001b0b0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov qword [rdi + 0x50], r14
cmp byte [rdi + 0x28], r15b
je 0x180016588
mov ecx, 0x20
mov esi, r15d
call fcn.18001b0b8
mov rbx, rax
lea r8, [0x180015bf0]
mov r9, rbx
xor edx, edx
xor ecx, ecx
mov dword [rax + 9], r15d
mov word [rax + 0xd], r15w
mov byte [rax + 0xf], sil
mov qword [rax], rdi
lea rax, [0x180015ba0]
mov qword [rbx + 0x10], rax
lea rax, [rbp + 0x67]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r15d
mov qword [rbx + 0x18], rdi
mov byte [rbx + 8], 1
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
je 0x18001656b
lea rcx, [rdi + 0xa0]
mov rdx, qword [rcx + 8]
cmp rdx, qword [rcx + 0x10]
je 0x180016560
mov eax, dword [rbp + 0x67]
mov dword [rdx], eax
add qword [rcx + 8], 4
jmp 0x180016580
lea r8, [rbp + 0x67]
call fcn.1800173e0
jmp 0x180016580
mov edx, 0x20
mov rcx, rbx
call fcn.18001b0b0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rax, qword [rdi]
lea rdx, str.Started
mov r8d, 2
mov rcx, rdi
call qword [rax + 0x10]
mov rcx, qword [rdi + 0x68]
lea rdx, str.Failed_to_connect_to__s_n
mov rax, qword [rdi]
mov r8d, 2
mov r9, qword [rcx + 0x20]
cmp byte [rcx + 0x3d], r15b
mov rcx, rdi
mov r10, qword [rax + 0x10]
jne 0x1800165ca
lea rdx, str.Successfully_connected_to__s_n
call r10
mov r14, qword [rdi + 0x60]
lea rdx, str.filename
xorps xmm0, xmm0
mov qword [rsp + 0x98], r12
mov r8d, 8
mov qword [rsp + 0x90], r13
lea rcx, [rbp - 1]
mov qword [rbp + 0xf], r15
movups xmmword [rbp - 1], xmm0
mov qword [rbp + 0x17], r15
call fcn.1800089e0
lea r8, [rbp - 1]
lea rdx, [rbp - 0x19]
lea rcx, [r14 + 0x48]
call fcn.180018d00
mov rsi, qword [rbp - 9]
mov r15, qword [rbp + 0x17]
mov rbx, qword [rbp - 1]
cmp byte [rsi + 0x19], 0
jne 0x180016668
cmp qword [rsi + 0x38], 0x10
lea rdx, [rsi + 0x20]
jb 0x180016638
mov rdx, qword [rsi + 0x20]
mov r12, qword [rsi + 0x30]
lea rcx, [rbp - 1]
mov r13, qword [rbp + 0xf]
cmp r15, 0x10
mov r8, r13
cmovae rcx, rbx
cmp r12, r13
cmovb r8, r12
call fcn.18001da50
test eax, eax
je 0x180016663
js 0x180016668
jmp 0x18001666c
cmp r13, r12
jae 0x18001666c
mov rsi, qword [r14 + 0x48]
cmp r15, 0x10
jb 0x1800166a3
lea rdx, [r15 + 1]
mov rax, rbx
cmp rdx, 0x1000
jb 0x18001669b
mov rbx, qword [rbx - 8]
add rdx, 0x27
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800168d4
mov rcx, rbx
call fcn.18001b0b0
cmp rsi, qword [r14 + 0x48]
je 0x180016844
mov rax, qword [rsi + 0x40]
lea rdx, str.fileversion
mov rbx, qword [rdi + 0x60]
lea rcx, [rbp - 1]
mov qword [rbp + 0x77], rax
xorps xmm0, xmm0
xor eax, eax
mov qword [rbp + 0x6f], rbx
movups xmmword [rbp - 1], xmm0
mov qword [rbp + 0xf], rax
mov qword [rbp + 0x17], rax
lea r8d, [rax + 0xb]
call fcn.1800089e0
mov rsi, qword [rbx + 0x48]
mov r13, qword [rbp + 0x17]
mov r15, rsi
mov r14, qword [rbp + 0xf]
mov r12, qword [rbp - 1]
mov rbx, qword [rsi + 8]
mov qword [rbp + 0x67], rsi
cmp byte [rbx + 0x19], 0
jne 0x18001675c
nop dword [rax]
nop word [rax + rax]
cmp r13, 0x10
lea rdx, [rbp - 1]
lea rcx, [rbx + 0x20]
cmovae rdx, r12
cmp qword [rbx + 0x38], 0x10
jb 0x18001672b
mov rcx, qword [rbx + 0x20]
mov rsi, qword [rbx + 0x30]
cmp r14, rsi
mov r8, rsi
cmovb r8, r14
call fcn.18001da50
test eax, eax
je 0x180016822
js 0x18001682b
mov r15, rbx
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
je 0x180016710
mov rsi, qword [rbp + 0x67]
cmp byte [r15 + 0x19], 0
jne 0x18001679f
cmp qword [r15 + 0x38], 0x10
lea rdx, [r15 + 0x20]
jb 0x180016772
mov rdx, qword [r15 + 0x20]
mov rbx, qword [r15 + 0x30]
lea rcx, [rbp - 1]
cmp r13, 0x10
mov r8, r14
cmovae rcx, r12
cmp rbx, r14
cmovb r8, rbx
call fcn.18001da50
test eax, eax
je 0x180016834
jns 0x18001683d
xor al, al
test al, al
cmove r15, rsi
cmp r13, 0x10
jb 0x1800167df
lea rdx, [r13 + 1]
mov rax, r12
cmp rdx, 0x1000
jb 0x1800167d7
mov r12, qword [r12 - 8]
add rdx, 0x27
sub rax, r12
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800168d4
mov rcx, r12
call fcn.18001b0b0
mov rax, qword [rbp + 0x6f]
cmp r15, qword [rax + 0x48]
je 0x180016844
mov rax, qword [rdi]
lea rdx, str.filename:__s
mov r9, qword [rbp + 0x77]
mov r8d, 2
mov rbx, qword [r15 + 0x40]
mov rcx, rdi
call qword [rax + 0x10]
mov rax, qword [rdi]
lea rdx, str.fileversion__s
mov r9, rbx
mov r8d, 2
mov rcx, rdi
call qword [rax + 0x10]
jmp 0x18001685a
cmp rsi, r14
jae 0x18001674c
mov rbx, qword [rbx + 0x10]
jmp 0x180016752
cmp r14, rbx
jb 0x18001679f
mov al, 1
jmp 0x1800167a1
mov rax, qword [rdi]
lea rdx, str.Could_not_find_fileversion_and_filename
mov r8d, 2
mov rcx, rdi
call qword [rax + 0x10]
cmp byte [rdi + 0x29], 0
je 0x18001689a
xor ecx, ecx
call fcn.1800175d0
mov r10, qword [rdi]
lea rdx, str.dllloaded
mov rbx, rax
xor r9d, r9d
xor eax, eax
mov r8b, 1
mov qword [rsp + 0x30], rax
mov rcx, rdi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call qword [r10 + 0x20]
mov rcx, rbx
call fcn.18001b0b0
mov r13, qword [rsp + 0x90]
mov r12, qword [rsp + 0x98]
mov r14, qword [rsp + 0x88]
mov rsi, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0xd8]
mov r15, qword [rsp + 0x80]
add rsp, 0xa8
pop rdi
pop rbp
ret
call fcn.180022104
int3