Function at 0x404971
Capabilities:
Create tcp socket
Create udp socket
Initialize winsock library

Disassembly:
push rsi
push rdi
sub rsp, 0x258
movaps xmmword [rsp + 0x240], xmm6
lea rcx, [0x0045c5e8]
call sub.KERNEL32.dll_AcquireSRWLockExclusive
cmp byte [0x0045c5a0], 1
jne 0x4049aa
lea rcx, [0x0045c5e8]
call fcn.00447540
xor esi, esi
jmp 0x404f16
lea rsi, [0x0045c638]
lea rdx, [0x0044a460]
mov r8d, 0x178
mov rcx, rsi
call fcn.00444170
mov qword [0x0045c588], rsi
lea rax, [0x0045c2b8]
mov qword [0x0045c590], rax
mov al, 1
mov byte [0x0045c598], al
xorps xmm6, xmm6
movaps xmmword [rsp + 0x30], xmm6
movups xmm0, xmmword [0x0045c588]
movaps xmmword [rsp + 0x40], xmm0
movups xmmword [0x0045c5f0], xmm6
movups xmmword [0x0045c600], xmm0
mov byte [0x0045c610], al
movaps xmmword [rsp + 0x50], xmm6
movaps xmmword [rsp + 0x60], xmm0
movups xmmword [0x0045c5a8], xmm6
movups xmmword [0x0045c5b8], xmm0
lea rcx, str.BeaconPrintf
lea r8, [0x004457b8]
mov edx, 0xc
call fcn.00406628
test ax, ax
je 0x404a6c
call fcn.00406b21
call fcn.00406b2d
movups xmmword [0x0045c600], xmm6
movups xmmword [0x0045c5f0], xmm6
and qword [0x0045c610], 0
movups xmmword [0x0045c588], xmm6
jmp 0x404ee4
lea rcx, str.BeaconOutput
lea r8, [0x004459f8]
mov edx, 0xc
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.BeaconDataParse
lea r8, [0x00406b60]
mov edx, 0xf
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.BeaconDataInt
lea r8, [0x00406b82]
mov edx, 0xd
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.BeaconDataShort
lea r8, [0x00406ba2]
mov edx, 0xf
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.BeaconDataUSize
lea r8, [0x00406bc4]
mov edx, 0xf
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.BeaconDataExtract
lea r8, [0x00406be5]
mov edx, 0x11
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.BeaconDataLength
lea r8, [0x00406c1d]
mov edx, 0x10
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.BeaconFormatAlloc
lea r8, [0x00406c21]
mov edx, 0x11
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.BeaconFormatReset
lea r8, [0x00406c54]
mov edx, 0x11
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.BeaconFormatFree
lea r8, [0x00406c7b]
mov edx, 0x10
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.BeaconFormatAppend
lea r8, [0x00406ca6]
mov edx, 0x12
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.BeaconFormatPrintf
lea r8, [0x00445a00]
mov edx, 0x12
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.BeaconFormatToString
lea r8, [0x00406ccc]
mov edx, 0x14
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.BeaconFormatInt
lea r8, [0x00406cda]
mov edx, 0xf
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.getOSName
lea r8, [0x00406cf7]
mov edx, 9
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.getEnviron
lea r8, [0x00406620]
mov edx, 0xa
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.memset
lea r8, [fcn.00443720]
mov edx, 6
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.memcpy
lea r8, [fcn.00444170]
mov edx, 6
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.calloc
lea r8, [fcn.00406446]
mov edx, 6
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.free
lea r8, [fcn.00406336]
mov edx, 4
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.__ashlti3
lea r8, [0x0042c780]
mov edx, 9
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.__ashldi3
lea r8, [0x0042c870]
mov edx, 9
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.__udivdi3
lea r8, [0x0042cf40]
mov edx, 9
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.__divti3
lea r8, [0x0042d360]
mov edx, 8
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.__divdi3
lea r8, [0x0042cdf0]
mov edx, 8
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.__modti3
lea r8, [0x0042d420]
mov edx, 8
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.WriteFile
lea r8, [sub.KERNEL32.dll_WriteFile]
mov edx, 9
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.GetLastError
lea r8, [sub.KERNEL32.dll_GetLastError]
mov edx, 0xc
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.ExitProcess
lea r8, [sub.KERNEL32.dll_ExitProcess]
mov edx, 0xb
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.VirtualAlloc
lea r8, [sub.KERNEL32.dll_VirtualAlloc]
mov edx, 0xc
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.VirtualFree
lea r8, [sub.KERNEL32.dll_VirtualFree]
mov edx, 0xb
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.LoadLibraryA
lea r8, [sub.KERNEL32.dll_LoadLibraryA]
mov edx, 0xc
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.GetModuleHandleA
lea r8, [sub.KERNEL32.dll_GetModuleHandleA]
mov edx, 0x10
call fcn.00406628
test ax, ax
jne 0x404eba
lea rcx, str.GetProcAddress
lea r8, [sub.KERNEL32.dll_GetProcAddress]
mov edx, 0xe
call fcn.00406628
test ax, ax
je 0x404f2a
call fcn.00406b21
call fcn.00406b2d
xorps xmm0, xmm0
movups xmmword [0x0045c600], xmm0
movups xmmword [0x0045c5f0], xmm0
and qword [0x0045c610], 0
movups xmmword [0x0045c588], xmm0
and qword [0x0045c598], 0
call fcn.00406b39
lea rcx, [0x0045c638]
mov r8d, 0x178
xor edx, edx
call fcn.00443720
lea rcx, [0x0045c5e8]
call fcn.00447540
mov esi, 0xffffffff
mov eax, esi
movaps xmm6, xmmword [rsp + 0x240]
add rsp, 0x258
pop rdi
pop rsi
ret
xorps xmm0, xmm0
movaps xmmword [rsp + 0x70], xmm0
movups xmm1, xmmword [0x0045c588]
movaps xmmword [rsp + 0x80], xmm1
movups xmmword [0x0045c618], xmm0
movups xmmword [0x0045c628], xmm1
xor eax, eax
test al, al
jne 0x405063
mov rcx, qword [0x0045c588]
mov rax, qword [0x0045c590]
mov rdi, qword [rsp + 0x268]
mov edx, 0x8020
mov r8b, 3
mov r9, rdi
call qword [rax]
test rax, rax
je 0x405063
mov rsi, rax
xor eax, eax
xorps xmm0, xmm0
cmp rax, 0x8020
je 0x404fa4
movups xmmword [rsi + rax + 0x10], xmm0
movups xmmword [rsi + rax], xmm0
add rax, 0x20
jmp 0x404f8d
xor eax, eax
test al, al
jne 0x405063
mov rcx, qword [0x0045c588]
mov rax, qword [0x0045c590]
mov edx, 0x802
mov r8b, 1
mov r9, rdi
call qword [rax]
test rax, rax
je 0x405063
xor ecx, ecx
cmp rcx, 0x401
je 0x404fe7
and word [rax + rcx*2], 0
inc rcx
jmp 0x404fd4
mov qword [0x0045c5c8], rsi
mov ecx, 0x401
mov qword [0x0045c5d0], rcx
mov qword [0x0045c5d8], rax
mov qword [0x0045c5e0], rcx
lea rdx, [rsp + 0x98]
mov cx, 0x202
call sub.WS2_32.dll_WSAStartup
and dword [rsp + 0x28], 0
and dword [rsp + 0x20], 0
xor esi, esi
mov ecx, 2
mov edx, 2
xor r8d, r8d
xor r9d, r9d
call sub.WS2_32.dll_WSASocketW
mov rcx, rax
call sub.WS2_32.dll_closesocket
xor ecx, ecx
xor edx, edx
call sub.ole32.dll_CoInitializeEx
mov byte [0x0045c5a0], 1
lea rcx, [0x0045c5e8]
call fcn.00447540
jmp 0x404f16
lea rcx, [0x0045c2a8]
lea r8, [0x00454b40]
mov edx, 3
call fcn.0040632c
int3