joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14000b2d0
Capabilities:
Send data
Send data on socket

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rbp
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov rdi, qword [rbp + 0x50]
xor r15d, r15d
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], r9d
lea r9, [rbp + 0x48]
mov dword [rbp + 0x48], r15d
call qword [sym.imp.WS2_32.dll_WSASend]
mov r14d, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rdx, qword [0x1401c1020]
lea rbx, [0x1401c1018]
movabs r12, 0x4d54ee85da812030
mov dword [rbp - 0x1c], r15d
add rdx, r12
mov esi, eax
cmp rdx, 1
jbe 0x14000b352
mov rcx, qword [0x1401c1018]
mov edx, eax
mov r8, qword [rcx + 0x30]
mov rcx, rbx
call r8
jmp 0x14000b357
test esi, esi
setne al
movzx eax, al
movabs r10, 0x4800144005b3
add rax, 2
mov dword [rbp - 0x20], esi
mov qword [rbp - 0x18], rbx
movups xmm0, xmmword [rbp - 0x20]
mov qword [rbp - 0x10], rax
movsd xmm1, qword [rbp - 0x10]
movups xmmword [rdi], xmm0
movsd qword [rdi + 0x10], xmm1
mov r9, qword [rdi + 0x10]
cmp r9, 1
je 0x14000b395
mov eax, dword [rdi]
mov r8d, eax
jmp 0x14000b3c5
mov rcx, qword [rdi + 8]
mov rax, r10
mov r8d, dword [rdi]
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 0x14
imul rax, rax, 0x1ffff7
sub rcx, rax
imul eax, ecx, 0x3e8
add eax, r8d
cmp eax, 0x40
jne 0x14000b404
mov rcx, qword [0x1401c1020]
add rcx, r12
mov dword [rbp - 0x1c], r15d
cmp rcx, 1
jbe 0x14000b3f9
mov rax, qword [0x1401c1018]
mov edx, 0x2746
mov rcx, rbx
call qword [rax + 0x30]
mov dword [rbp - 0x20], 0x2746
jmp 0x14000b471
mov al, 1
mov dword [rbp - 0x20], 0x2746
jmp 0x14000b471
cmp r9, 1
jne 0x14000b437
mov rcx, qword [rdi + 8]
mov rax, r10
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 0x14
imul rax, rax, 0x1ffff7
sub rcx, rax
imul eax, ecx, 0x3e8
add r8d, eax
cmp r8d, 0x4d2
jne 0x14000b491
mov rcx, qword [0x1401c1020]
add rcx, r12
mov dword [rbp - 0x1c], r15d
cmp rcx, 1
jbe 0x14000b468
mov rax, qword [0x1401c1018]
mov edx, 0x274d
mov rcx, rbx
call qword [rax + 0x30]
jmp 0x14000b46a
mov al, 1
mov dword [rbp - 0x20], 0x274d
movzx eax, al
mov qword [rbp - 0x18], rbx
add rax, 2
movups xmm0, xmmword [rbp - 0x20]
mov qword [rbp - 0x10], rax
movsd xmm1, qword [rbp - 0x10]
movups xmmword [rdi], xmm0
movsd qword [rdi + 0x10], xmm1
test r14d, r14d
je 0x14000b49d
mov eax, 0xffffffff
jmp 0x14000b4fe
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x14000b4b7
lea rbx, section..data
cmp rax, 1
je 0x14000b4b7
mov rbx, qword [rdi + 8]
mov rax, qword [rbx + 8]
add rax, r12
mov dword [rbp - 0x1c], r15d
cmp rax, 1
jbe 0x14000b4d5
mov rax, qword [rbx]
xor edx, edx
mov rcx, rbx
call qword [rax + 0x30]
jmp 0x14000b4d7
xor al, al
movzx eax, al
add rax, 2
mov dword [rbp - 0x20], r15d
mov qword [rbp - 0x10], rax
movsd xmm1, qword [rbp - 0x10]
mov eax, dword [rbp + 0x48]
mov qword [rbp - 0x18], rbx
movups xmm0, xmmword [rbp - 0x20]
movups xmmword [rdi], xmm0
movsd qword [rdi + 0x10], xmm1
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
Function at 0x14000cb90
Capabilities:
Delete file

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
call fcn.1400726a0
lea rdx, str.AcCommIPv6GuardState.leave
mov rcx, rax
call fcn.140072950
mov rcx, qword [rbx + 0x18]
add rsp, 0x20
pop rbx
jmp fcn.1400515b0

Function at 0x140012d70
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x460
mov rax, qword [0x1401c5538]
xor rax, rsp
mov qword [rsp + 0x450], rax
mov qword [rsp + 0x30], rdx
lea rcx, [rsp + 0x251]
mov rbx, r8
mov rdi, rdx
xor esi, esi
xor edx, edx
mov r8d, 0x1ff
mov byte [rsp + 0x250], sil
call fcn.140147800
cmp qword [rbx + 0x18], 0x10
jb 0x140012dc8
mov rbx, qword [rbx]
mov r9, rbx
lea r8, str.SYSTEMCurrentControlSetControlNetwork4D36E972_E325_11CE_BFC1_08002BE10318_sConnection
mov edx, 0x200
lea rcx, [rsp + 0x250]
call fcn.14000eef0
lea rax, [rsp + 0x30]
mov r9d, 0x20019
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x250]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x140012e4a
call fcn.1400726a0
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.AcCommMgr.getConnectionName:_Open_registry_error__d_
mov rcx, rbx
mov r8d, eax
call fcn.140072400
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], rsi
mov qword [rdi + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rdi], sil
jmp 0x140012f06
xor edx, edx
mov dword [rsp + 0x38], 0x200
mov r8d, 0x1ff
mov byte [rsp + 0x50], sil
lea rcx, [rsp + 0x51]
call fcn.140147800
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x40]
lea rax, [rsp + 0x50]
xor r8d, r8d
lea rdx, [0x140175598]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x140012ecb
call fcn.1400726a0
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.GetNetworkConnectionNameFromRegistry:_Get_network_connection_name_error__d_
mov rcx, rbx
mov r8d, eax
call fcn.140072400
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x140012e30
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xorps xmm0, xmm0
lea rax, [rsp + 0x50]
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], rsi
mov r8, 0xffffffffffffffff
mov qword [rdi + 0x18], rsi
inc r8
cmp byte [rax + r8], sil
jne 0x140012ef0
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.140003c30
mov rax, rdi
mov rcx, qword [rsp + 0x450]
xor rcx, rsp
call fcn.1401453a0
lea r11, [rsp + 0x460]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
Function at 0x14001b620
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push r14
sub rsp, 0x20
mov r14, r8
mov rsi, rdx
mov rbx, rcx
test r8, r8
jg 0x14001b651
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
cmp qword [rcx + 0x68], 0
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x38], rdi
je 0x14001b6cb
mov rdi, r14
mov rcx, rbx
call fcn.140019970
test rax, rax
jle 0x14001b6a3
mov rdx, qword [rbx + 0x38]
cmp rdi, rax
mov rbp, rdi
mov rcx, rsi
cmovge rbp, rax
mov r8, rbp
mov rdx, qword [rdx]
call fcn.140147160
mov rax, qword [rbx + 0x50]
sub rdi, rbp
sub dword [rax], ebp
mov rcx, qword [rbx + 0x38]
movsxd rax, ebp
add qword [rcx], rax
jmp 0x14001b6bb
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x38]
cmp eax, 0xffffffff
je 0x14001b6c3
mov byte [rsi], al
dec rdi
mov ebp, 1
add rsi, rbp
test rdi, rdi
jg 0x14001b665
sub r14, rdi
jmp 0x14001b7af
mov rax, qword [rcx + 0x38]
mov rbp, r14
mov rdx, qword [rax]
test rdx, rdx
je 0x14001b6e2
mov rax, qword [rcx + 0x50]
mov ecx, dword [rax]
jmp 0x14001b6e4
xor ecx, ecx
movsxd rax, ecx
test ecx, ecx
je 0x14001b716
cmp rax, r14
mov rdi, r14
mov rcx, rsi
cmovb rdi, rax
mov r8, rdi
call fcn.140147160
mov rax, qword [rbx + 0x50]
add rsi, rdi
sub rbp, rdi
sub dword [rax], edi
mov rcx, qword [rbx + 0x38]
movsxd rax, edi
add qword [rcx], rax
cmp qword [rbx + 0x80], 0
je 0x14001b7ac
mov r8, qword [rbx + 0x18]
lea rax, [rbx + 0x70]
cmp qword [r8], rax
jne 0x14001b751
mov rcx, qword [rbx + 0x88]
mov rdx, qword [rbx + 0x90]
mov qword [r8], rcx
sub edx, ecx
mov rax, qword [rbx + 0x38]
mov qword [rax], rcx
mov rax, qword [rbx + 0x50]
mov dword [rax], edx
cmp rbp, 0xfff
jbe 0x14001b78d
nop word [rax + rax]
mov r9, qword [rbx + 0x80]
mov edx, 1
mov r8d, 0xfff
mov rcx, rsi
call fcn.140150850
add rsi, rax
sub rbp, rax
cmp rax, 0xfff
jne 0x14001b7ac
cmp rbp, rax
ja 0x14001b760
test rbp, rbp
je 0x14001b7ac
mov r9, qword [rbx + 0x80]
mov r8, rbp
mov edx, 1
mov rcx, rsi
call fcn.140150850
sub rbp, rax
sub r14, rbp
mov rbp, qword [rsp + 0x30]
mov rax, r14
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
Function at 0x14001d9c0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r14
lea rbp, [rsp - 0x47]
sub rsp, 0xd0
mov rax, qword [0x1401c5538]
xor rax, rsp
mov qword [rbp + 0x37], rax
mov rdi, rdx
xor r14d, r14d
mov rax, qword [rcx + 0x30]
mov rbx, qword [rax + 0x40]
mov rax, qword [rcx + 0x18]
mov rdx, qword [rax + 0x18]
call rdx
lea r8, [rbp - 0x69]
mov rdx, rax
lea rcx, [rbp - 0x49]
call rbx
nop
mov rcx, qword [rbp - 0x31]
mov qword [rbp + 0x17], rcx
mov rax, qword [rbp - 0x21]
mov qword [rbp + 0x27], rax
lea rax, fcn.140019b10
mov qword [rbp - 0x31], rax
lea rax, [0x140176af0]
mov qword [rbp - 0x21], rax
mov rax, qword [rcx + 0x10]
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 1]
call rax
mov qword [rbp - 0x29], r14
mov rax, qword [rbp - 0x19]
mov qword [rbp + 0x2f], rax
lea rax, [0x140176b90]
mov qword [rbp - 0x19], rax
mov rax, qword [rbp - 0x31]
mov rdx, qword [rax]
lea rax, [fcn.140019b10]
cmp rdx, rax
je 0x14001da73
lea rcx, [rbp - 0x49]
call rdx
nop
mov rcx, qword [rbp + 0x27]
mov rax, qword [rcx + 0x18]
test rax, rax
je 0x14001da9e
lea rcx, [0x14001d780]
mov qword [rbp - 0x59], rcx
mov qword [rbp - 0x51], rdi
lea rdx, [rbp - 0x59]
lea rcx, [rbp - 1]
call rax
jmp 0x14001db80
mov rbx, qword [rcx + 0x10]
mov rsi, qword [rdi]
movups xmm0, xmmword [rdi + 8]
movups xmmword [rbp - 0x11], xmm0
movsd xmm0, qword [rdi + 0x18]
movsd qword [rbp - 0x59], xmm0
mov ecx, dword [0x1401c9bf8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x14001db32
mov r9, qword [rax + 8]
test r9, r9
je 0x14001db32
mov r8d, 4
mov ecx, r8d
lea rdx, [r9 + 0x20]
nop
mov rax, qword [rdx]
test rax, rax
je 0x14001daed
cmp byte [rax], 0xc
jae 0x14001db17
inc ecx
add rdx, 8
cmp ecx, 6
jl 0x14001dae0
mov rax, r8
nop dword [rax + rax]
mov rcx, qword [r9 + rax*8]
test rcx, rcx
jne 0x14001db26
inc r8d
inc rax
cmp rax, 6
jl 0x14001db00
jmp 0x14001db32
movsxd rcx, ecx
mov qword [r9 + rcx*8], r14
movzx ecx, byte [rax]
mov byte [rax + 0x30], cl
jmp 0x14001db40
movsxd rax, r8d
mov qword [r9 + rax*8], r14
call fcn.140079780
mov ecx, 0x31
call fcn.1401452c0
mov byte [rax + 0x30], reloc.WS2_32.dll_inet_ntoa
mov qword [rax + 8], rsi
movups xmm0, xmmword [rbp - 0x11]
movups xmmword [rax + 0x10], xmm0
movsd xmm0, qword [rbp - 0x59]
movsd qword [rax + 0x20], xmm0
lea rcx, [0x14001d790]
mov qword [rax], rcx
mov qword [rbp - 0x61], rax
lea rdx, [rbp - 0x61]
lea rcx, [rbp - 1]
call rbx
nop
mov rcx, qword [rbp - 0x61]
test rcx, rcx
je 0x14001db80
mov rax, qword [rcx]
xor edx, edx
call rax
nop
mov rax, qword [rbp + 0x17]
mov rdx, qword [rax]
lea rcx, [rbp - 1]
call rdx
nop
mov rcx, qword [rbp + 0x37]
xor rcx, rsp
call fcn.1401453a0
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
Function at 0x14001f8a0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
push rbx
sub rsp, 0x30
mov rbx, rcx
mov ecx, dword [0x1401c9bf8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x14001f8ce
mov rdx, qword [rax + 8]
jmp 0x14001f8d0
xor edx, edx
movzx ecx, byte [rsp + 0x20]
mov r9d, 1
mov r8, rbx
add rsp, 0x30
pop rbx
jmp fcn.14001d350

Function at 0x14001f8f0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
push rbx
push rdi
sub rsp, 0x28
mov rbx, rcx
mov rdi, rdx
mov ecx, dword [0x1401c9bf8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
xor r8d, r8d
test rax, rax
je 0x14001f920
mov r9, qword [rax + 8]
jmp 0x14001f923
mov r9, r8
cmp rdi, 0x3fc
ja 0x14001f947
test r9, r9
je 0x14001f947
mov rax, r8
cmp qword [r9 + rax*8], 0
je 0x14001f955
inc r8d
inc rax
cmp rax, 2
jl 0x14001f934
mov rcx, rbx
add rsp, 0x28
pop rdi
pop rbx
jmp fcn.140079780
movzx eax, byte [rbx + rdi]
mov byte [rbx], al
movsxd rax, r8d
mov qword [r9 + rax*8], rbx
add rsp, 0x28
pop rdi
pop rbx
ret

Function at 0x14001f990
Capabilities:
Get thread local storage value

Disassembly:
push rbx
sub rsp, 0x70
xor eax, eax
lea rbx, [rcx + 0x28]
test rcx, rcx
mov ecx, dword [0x1401c9bf8]
cmove rbx, rax
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x14001faa4
cmp qword [rax], rbx
je 0x14001f9cc
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x14001f9b8
add rsp, 0x70
pop rbx
ret
mov rbx, qword [rax + 8]
test rbx, rbx
je 0x14001faa4
mov ecx, dword [rbx + 0x50]
test ecx, ecx
je 0x14001fa71
cmp ecx, 1
jne 0x14001faa4
lea rdx, [rbx + 0x58]
mov dword [rbx + 0x50], 2
lea rcx, [rsp + 0x30]
call fcn.14014491c
xorps xmm0, xmm0
lea rax, vtable.boost::asio::multiple_exceptions.0
lea rdx, [rsp + 0x30]
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x58]
movups xmmword [rsp + 0x48], xmm0
call fcn.14014491c
lea rcx, [rsp + 0x30]
call fcn.1401449fc
lea rcx, [rsp + 0x20]
call fcn.140144970
lea r8, [0x1401bdf18]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x20]
call fcn.140144944
lea rcx, [rsp + 0x58]
call fcn.1401449fc
lea rax, vtable.std::exception.0
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x40], rax
call fcn.140146398
jmp 0x14001fa8c
lea rcx, [rsp + 0x20]
mov dword [rbx + 0x50], 1
call fcn.140144970
lea rcx, [rsp + 0x20]
call fcn.14014497c
lea rdx, [rsp + 0x20]
lea rcx, [rbx + 0x58]
call fcn.140144914
lea rcx, [rsp + 0x20]
call fcn.1401449fc
add rsp, 0x70
pop rbx
ret
Function at 0x140020870
Capabilities:
Terminate thread

Disassembly:
push rbx
sub rsp, 0x30
mov rax, qword [rcx + 0x10]
lea rdx, [rsp + 0x20]
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov rax, qword [rcx + 8]
mov rbx, rcx
mov r9d, 0xffffffff
mov qword [rsp + 0x28], rax
lea ecx, [r8 + 2]
call qword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
lock xadd dword [0x1401c9ca0], eax
mov rcx, qword [rbx + 8]
test eax, eax
je 0x1400208cd
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TerminateThread]
add rsp, 0x30
pop rbx
ret
mov rdx, rcx
xor r8d, r8d
lea rcx, [fcn.140019b10]
call qword [sym.imp.KERNEL32.dll_QueueUserAPC]
mov rcx, qword [rbx + 8]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
add rsp, 0x30
pop rbx
ret

Function at 0x140020a90
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rdi, rcx
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x140020abf
mov rcx, qword [rcx + 0x38]
test rcx, rcx
je 0x140020ab7
mov rax, qword [rcx]
xor edx, edx
call rax
nop
mov qword [rdi + 0x10], 0
mov rbx, qword [rdi + 8]
test rbx, rbx
je 0x140020b08
mov ecx, dword [0x1401c9bf8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x140020af8
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x140020af8
xor ecx, ecx
xor eax, eax
cmp qword [rdx + rax*8], 0
je 0x140020b13
inc ecx
inc rax
cmp rax, 2
jl 0x140020ae6
mov rcx, rbx
call fcn.140079780
mov qword [rdi + 8], 0
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [rbx + 0x48]
mov byte [rbx], al
movsxd rax, ecx
mov qword [rdx + rax*8], rbx
mov qword [rdi + 8], 0
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x140020cb0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0xb0
mov rsi, rdx
mov rbx, rcx
xor edi, edi
mov eax, edi
lock xadd dword [rcx + 0x30], eax
test eax, eax
jne 0x140020cf7
call fcn.140021970
xorps xmm0, xmm0
mov qword [rsp + 0x30], rdi
movups xmmword [rsi], xmm0
movsd xmm0, qword [rsp + 0x30]
movsd qword [rsi + 0x10], xmm0
xor eax, eax
jmp 0x140020ded
mov dword [rsp + 0x90], edi
lea rcx, [rsp + 0x98]
call fcn.140144970
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rsp + 0x80], xmm0
lea rax, [rbx + 0x28]
test rbx, rbx
cmove rax, rdi
mov qword [rsp + 0x20], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov ecx, dword [0x1401c9bf8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rsp + 0x30], rax
lea rdx, [rsp + 0x20]
mov ecx, dword [0x1401c9bf8]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
nop
mov r9, rsi
lea r8, [rsp + 0x40]
mov edx, 0xffffffff
mov rcx, rbx
call fcn.14001ff00
test rax, rax
je 0x140020daa
lea rax, [rdi + 1]
cmp rdi, 0xffffffffffffffff
cmove rax, rdi
mov rdi, rax
mov r9, rsi
lea r8, [rsp + 0x40]
mov edx, 0xffffffff
mov rcx, rbx
call fcn.14001ff00
test rax, rax
jne 0x140020d81
mov rdx, qword [rsp + 0x30]
mov ecx, dword [0x1401c9bf8]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
nop
lea rbx, [rsp + 0x40]
mov esi, 0xa
mov rcx, qword [rbx]
test rcx, rcx
je 0x140020dd3
call fcn.140079780
add rbx, 8
sub rsi, 1
jne 0x140020dc6
lea rcx, [rsp + 0x98]
call fcn.1401449fc
mov rax, rdi
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rsp, r11
pop rdi
ret

Function at 0x1400220f0
Capabilities:
Initialize winsock library

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x1f0
mov rax, qword [0x1401c5538]
xor rax, rsp
mov qword [rsp + 0x1e0], rax
movzx ebx, dl
mov rdi, rcx
mov eax, 1
lock xadd dword [0x1401c9be0], eax
inc eax
cmp eax, 1
jne 0x14002213d
lea ecx, [rax + 1]
lea rdx, [rsp + 0x40]
call qword [sym.imp.WS2_32.dll_WSAStartup]
xchg dword [0x1401c9be4], eax
test bl, bl
je 0x1400221b1
xor ebx, ebx
lock xadd dword [0x1401c9be4], ebx
test ebx, ebx
je 0x1400221b1
movabs rcx, 0x4d54ee85da812030
mov qword [rsp + 0x200], rsi
add rcx, qword [0x1401c1020]
lea rsi, [0x1401c1018]
mov dword [rsp + 0x24], 0
cmp rcx, 1
jbe 0x14002218e
mov rax, qword [0x1401c1018]
mov edx, ebx
mov rcx, rsi
call qword [rax + 0x30]
jmp 0x140022190
mov al, 1
movzx eax, al
add rax, 2
mov qword [rsp + 0x28], rsi
mov rsi, qword [rsp + 0x200]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x20], ebx
test al, 1
jne 0x1400221d5
mov rax, rdi
mov rcx, qword [rsp + 0x1e0]
xor rcx, rsp
call fcn.1401453a0
mov rbx, qword [rsp + 0x208]
add rsp, 0x1f0
pop rdi
ret
lea rdx, str.winsock
lea rcx, [rsp + 0x20]
call fcn.140004d40
int3
Function at 0x140027740
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x10], rdx
push r14
sub rsp, 0x20
mov r14, rdx
mov rsi, rcx
mov ecx, dword [0x1401c9bf8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
xor ebx, ebx
test rax, rax
je 0x1400277e2
mov r9, qword [rax + 8]
test r9, r9
je 0x1400277e2
mov r8d, 4
mov ecx, r8d
lea rdx, [r9 + 0x20]
nop dword [rax]
mov rax, qword [rdx]
test rax, rax
je 0x14002779d
cmp byte [rax], 0x14
jae 0x1400277c7
inc ecx
add rdx, 8
cmp ecx, 6
jl 0x140027790
mov rax, r8
nop dword [rax + rax]
mov rcx, qword [r9 + rax*8]
test rcx, rcx
jne 0x1400277d6
inc r8d
inc rax
cmp rax, 6
jl 0x1400277b0
jmp 0x1400277e2
movsxd rcx, ecx
mov qword [r9 + rcx*8], rbx
movzx ecx, byte [rax]
mov byte [rax + 0x50], cl
jmp 0x1400277f0
movsxd rax, r8d
mov qword [r9 + rax*8], rbx
call fcn.140079780
mov ecx, 0x51
call fcn.1401452c0
mov byte [rax + 0x50], reloc.WS2_32.dll_sendto
mov rcx, qword [r14]
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbx
mov rcx, qword [r14 + 8]
mov qword [rax + 0x10], rcx
mov rcx, qword [r14 + 0x10]
mov qword [rax + 0x18], rcx
mov qword [r14 + 8], rbx
mov qword [r14 + 0x10], rbx
mov qword [rax + 0x20], rbx
mov qword [rax + 0x28], rbx
mov rcx, qword [r14 + 0x18]
mov qword [rax + 0x20], rcx
mov rcx, qword [r14 + 0x20]
mov qword [rax + 0x28], rcx
mov qword [r14 + 0x18], rbx
mov qword [r14 + 0x20], rbx
movups xmm0, xmmword [r14 + 0x28]
movups xmmword [rax + 0x30], xmm0
movsd xmm1, qword [r14 + 0x38]
movsd qword [rax + 0x40], xmm1
lea rcx, [0x140027c60]
mov qword [rax], rcx
mov qword [rsi], rax
mov rbx, qword [r14 + 0x20]
mov edi, 0xffffffff
test rbx, rbx
je 0x14002788f
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14002788f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, edi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14002788f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov rbx, qword [r14 + 0x10]
test rbx, rbx
je 0x1400278bf
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1400278bf
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x1400278bf
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov rax, rsi
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
Function at 0x140029130
Capabilities:
Set socket configuration

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov rbx, qword [rbp + 0x60]
mov r14, r9
mov esi, r8d
mov r12, rdx
mov r15, rcx
cmp qword [rbx + 0x10], 1
je 0x14002916d
mov eax, dword [rbx]
jmp 0x1400291a0
mov rcx, qword [rbx + 8]
movabs rax, 0x4800144005b3
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 0x14
imul rax, rax, 0x1ffff7
sub rcx, rax
imul eax, ecx, 0x3e8
add eax, dword [rbx]
xor r13d, r13d
lea rdi, [0x1401c1018]
movabs rcx, 0x4d54ee85da812030
cmp eax, 0x40
jne 0x140029207
add rcx, qword [0x1401c1020]
mov dword [rbp - 0x1c], r13d
cmp rcx, 1
jbe 0x1400291de
mov rax, qword [0x1401c1018]
mov edx, 0x2745
mov rcx, rdi
call qword [rax + 0x30]
jmp 0x1400291e0
mov al, 1
movzx eax, al
mov dword [rbp - 0x20], 0x2745
add rax, 2
mov qword [rbp - 0x18], rdi
movups xmm0, xmmword [rbp - 0x20]
mov qword [rbp - 0x10], rax
movsd xmm1, qword [rbp - 0x10]
movups xmmword [rbx], xmm0
movsd qword [rbx + 0x10], xmm1
mov rax, qword [rbx + 0x10]
test al, 1
je 0x140029222
cmp rax, 1
jne 0x140029337
cmp dword [rbx], r13d
jne 0x140029337
test r14, r14
je 0x1400292a5
mov rdi, qword [rbp + 0x50]
test rdi, rdi
je 0x14002929e
lea rax, [rbp + 0x60]
mov qword [rbp - 0x30], r13
mov qword [rsp + 0x38], rax
mov r9d, esi
lea rax, [rbp - 0x38]
mov dword [rbp - 0x40], r13d
mov qword [rsp + 0x30], rax
mov r8d, esi
lea rax, [rbp - 0x40]
mov qword [rbp - 0x38], r13
mov qword [rsp + 0x28], rax
xor edx, edx
lea rax, [rbp - 0x30]
mov dword [rbp + 0x60], r13d
mov rcx, r12
mov qword [rsp + 0x20], rax
call sub.MSWSOCK.dll_GetAcceptExSockaddrs
movsxd rsi, dword [rbp + 0x60]
cmp rsi, qword [rdi]
jbe 0x14002928c
mov edx, 0x2726
mov rcx, rbx
call fcn.140027a00
jmp 0x14002929e
mov rdx, qword [rbp - 0x38]
mov r8, rsi
mov rcx, r14
call fcn.140147160
mov qword [rdi], rsi
lea rdi, [0x1401c1018]
mov rcx, qword [rbp + 0x58]
mov qword [rbp - 0x28], r15
cmp rcx, 0xffffffffffffffff
jne 0x14002930d
movabs rcx, 0x4d54ee85da812030
mov dword [rbp - 0x1c], r13d
add rcx, qword [0x1401c1020]
cmp rcx, 1
jbe 0x1400292e2
mov rax, qword [0x1401c1018]
mov edx, 0x2719
mov rcx, rdi
call qword [rax + 0x30]
jmp 0x1400292e4
mov al, 1
movzx eax, al
mov dword [rbp - 0x20], 0x2719
add rax, 2
mov qword [rbp - 0x18], rdi
movups xmm0, xmmword [rbp - 0x20]
mov qword [rbp - 0x10], rax
movsd xmm1, qword [rbp - 0x10]
movups xmmword [rbx], xmm0
movsd qword [rbx + 0x10], xmm1
jmp 0x140029337
lea r9, [rbp - 0x28]
mov dword [rsp + 0x20], 8
mov edx, 0xffff
mov r8d, 0x700b
call qword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
mov rcx, rbx
setne dl
call fcn.14000a290
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
Function at 0x14002b570
Capabilities:
Set socket configuration

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x40
mov rbx, r9
mov dword [rsp + 0x28], 1
xor r9d, r9d
mov dword [rsp + 0x20], 0
mov esi, ecx
call qword [sym.imp.WS2_32.dll_WSASocketW]
cmp rax, 0xffffffffffffffff
mov rcx, rbx
mov rdi, rax
sete dl
call fcn.14000a290
cmp rdi, 0xffffffffffffffff
jne 0x14002b5c8
mov rax, rdi
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x40
pop rdi
ret
cmp esi, 0x17
jne 0x14002b5f2
lea r9, [rsp + 0x30]
mov dword [rsp + 0x30], 0
lea edx, [rsi + 0x12]
mov dword [rsp + 0x20], 4
lea r8d, [rsi + 4]
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_setsockopt]
mov rbx, qword [rsp + 0x50]
mov rax, rdi
mov rsi, qword [rsp + 0x58]
add rsp, 0x40
pop rdi
ret