Function at 0x180040990
Capabilities:
Create directory
Initialize winsock library

Disassembly:
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0x2f8
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov rax, qword [0x1800b7480]
xor rax, rsp
mov qword [rsp + 0x2e0], rax
mov rcx, qword [rsp + 0x310]
call fcn.180042f30
nop
mov rax, qword [rsp + 0x310]
add rax, 0x28
mov rcx, rax
call fcn.180042ef0
mov rax, qword [rsp + 0x310]
add rax, 0x30
mov rcx, rax
call fcn.180042ed0
mov rax, qword [rsp + 0x310]
add rax, 0x38
mov rcx, rax
call fcn.180042eb0
mov rax, qword [rsp + 0x310]
add rax, 0x40
mov rcx, rax
call fcn.180042f10
mov rax, qword [rsp + 0x310]
lea rcx, vtable.CAuth.0
mov qword [rax], rcx
mov rax, qword [rsp + 0x310]
lea rcx, vtable.CAuth.1.0
mov qword [rax + 0x28], rcx
mov rax, qword [rsp + 0x310]
lea rcx, vtable.CAuth.2.0
mov qword [rax + 0x30], rcx
mov rax, qword [rsp + 0x310]
lea rcx, vtable.CAuth.3.0
mov qword [rax + 0x38], rcx
mov rax, qword [rsp + 0x310]
lea rcx, vtable.CAuth.4.0
mov qword [rax + 0x40], rcx
mov rax, qword [rsp + 0x310]
add rax, 0xf8
mov rcx, rax
call fcn.18003e3b0
nop
mov rax, qword [rsp + 0x310]
add rax, 0x160
mov rcx, rax
call fcn.18003fc20
nop
mov rax, qword [rsp + 0x310]
add rax, 0x1d8
mov rcx, rax
call fcn.180045370
nop
mov rax, qword [rsp + 0x310]
add rax, 0x26c
mov rcx, rax
call fcn.180032718
nop
mov rax, qword [rsp + 0x310]
add rax, 0x28c
mov rcx, rax
call fcn.180044770
nop
mov rcx, qword [rsp + 0x310]
call fcn.180040e50
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventA]
mov rcx, qword [rsp + 0x310]
mov qword [rcx + 0xf0], rax
lea rdx, [rsp + 0x40]
mov cx, 0x202
call qword [sym.imp.WS2_32.dll_WSAStartup]
mov rax, qword [rsp + 0x310]
add rax, 0x320
mov rcx, rax
call fcn.180040560
mov rax, qword [rsp + 0x310]
add rax, 0x320
mov rcx, qword [rsp + 0x310]
add rcx, 0x1d8
mov rdx, rax
call fcn.180045480
mov rax, qword [rsp + 0x310]
add rax, 0x320
mov r8, rax
lea rdx, str._stemp
lea rcx, [rsp + 0x1e0]
call fcn.180017030
xor edx, edx
lea rcx, [rsp + 0x1e0]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
lea rcx, [rsp + 0x1e0]
call fcn.180040690
mov rax, qword [rsp + 0x310]
lea rcx, [0x18009bc38]
lea rdi, [rax + 0x10]
mov rsi, rcx
mov ecx, reloc.WS2_32.dll_recv
rep movsb byte [rdi], byte [rsi]
call fcn.180040790
xor edx, edx
mov ecx, 0xffff
div ecx
mov eax, edx
inc eax
mov rcx, qword [rsp + 0x310]
mov word [rcx + 0x20], ax
mov rax, qword [rsp + 0x310]
add rax, 0x420
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
cmp qword [rsp + 0x310], 0
je 0x180040c10
mov rax, qword [rsp + 0x310]
add rax, 0x38
mov qword [rsp + 0x20], rax
jmp 0x180040c19
mov qword [rsp + 0x20], 0
mov rax, qword [rsp + 0x310]
mov rcx, qword [rsp + 0x20]
mov qword [rax + 0x23c], rcx
cmp qword [rsp + 0x310], 0
je 0x180040c4b
mov rax, qword [rsp + 0x310]
add rax, 0x28
mov qword [rsp + 0x28], rax
jmp 0x180040c54
mov qword [rsp + 0x28], 0
mov rax, qword [rsp + 0x310]
mov rcx, qword [rsp + 0x28]
mov qword [rax + 0x158], rcx
cmp qword [rsp + 0x310], 0
je 0x180040c86
mov rax, qword [rsp + 0x310]
add rax, 0x30
mov qword [rsp + 0x30], rax
jmp 0x180040c8f
mov qword [rsp + 0x30], 0
mov rax, qword [rsp + 0x30]
mov qword [0x1800b9b20], rax
mov rax, qword [rsp + 0x310]
mov rcx, qword [rsp + 0x2e0]
xor rcx, rsp
call fcn.1800336f0
add rsp, 0x2f8
pop rdi
pop rsi
ret