joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1401357e0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov ecx, dword [0x14016b250]
test ecx, ecx
je 0x140135810
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jb 0x140135829
mov rdi, rax
cmp qword [rax + 8], 0
je 0x140135829
add rdi, 0x10
jmp 0x14013590a
lea rcx, [0x14016b238]
call fcn.140113520
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jae 0x1401357fd
mov ecx, dword [0x14016b250]
test ecx, ecx
je 0x1401358eb
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
je 0x140135908
mov rsi, rax
test rax, rax
jne 0x1401358ba
movzx eax, byte [0x140222418]
mov rcx, qword [0x140222380]
test rcx, rcx
jne 0x14013587b
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x140135924
mov rcx, rax
mov qword [0x140222380], rax
mov r8d, 0x18
xor edx, edx
call fcn.140167f74
test rax, rax
je 0x140135924
mov rsi, rax
lea rax, [0x14016b238]
mov qword [rsi], rax
mov qword [rsi + 8], 0
mov ecx, dword [0x14016b250]
test ecx, ecx
je 0x140135914
dec ecx
mov rdx, rsi
call sub.kernel32.dll_TlsSetValue
lea rdi, [rsi + 0x10]
mov rcx, qword [rsi + 0x10]
cmp qword [rsi + 8], 0
mov qword [rsi + 8], 1
mov qword [rsi + 0x10], 0
je 0x14013590a
test rcx, rcx
je 0x14013590a
lock dec qword [rcx]
jne 0x14013590a
call fcn.140135940
jmp 0x14013590a
lea rcx, [0x14016b238]
call fcn.140113520
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jne 0x140135848
xor edi, edi
mov rax, rdi
add rsp, 0x28
pop rdi
pop rsi
ret
lea rcx, [0x14016b238]
call fcn.140113520
mov ecx, eax
jmp 0x1401358b2
mov ecx, 8
mov edx, 0x18
call fcn.1400315c0
int3
Function at 0x140135fa0
Capabilities:
Resolve dns

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x1e0
mov rsi, rcx
mov r14, qword [rdx]
mov rbx, qword [rdx + 8]
movzx edi, word [rdx + 0x10]
mov rax, qword [0x140222388]
cmp rax, 3
jne 0x14013615b
cmp rbx, 0x17f
ja 0x14013616d
lea r15, [rsp + 0x60]
mov rcx, r15
mov rdx, r14
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov byte [rsp + rbx + 0x60], 0
lea rax, [rbx + 1]
cmp rbx, 0xe
ja 0x140136018
xor edx, edx
nop
cmp byte [rsp + rdx + 0x60], 0
je 0x1401360c4
inc rdx
cmp rax, rdx
jne 0x140136000
jmp 0x140136122
lea rcx, [rsp + 0x67]
and rcx, 0xfffffffffffffff8
sub rcx, r15
je 0x14013604e
je 0x14013604e
xor edx, edx
nop word [rax + rax]
cmp byte [rsp + rdx + 0x60], 0
je 0x1401360c4
inc rdx
cmp rcx, rdx
jne 0x140136030
lea rdx, [rbx - 0xf]
cmp rcx, rdx
jbe 0x140136054
jmp 0x14013609e
lea rdx, [rbx - 0xf]
xor ecx, ecx
movdqa xmm0, xmmword [0x140172b90]
movabs r8, 0x8080808080808080
nop word cs:[rax + rax]
movdqu xmm1, xmmword [rsp + rcx + 0x60]
movdqa xmm2, xmm1
paddq xmm2, xmm0
pandn xmm1, xmm2
pshufd xmm2, xmm1, 0xee
por xmm2, xmm1
movq r9, xmm2
test r9, r8
jne 0x14013609e
add rcx, 0x10
cmp rcx, rdx
jbe 0x140136070
sub rax, rcx
je 0x140136122
lea r8, [rsp + rcx]
add r8, 0x60
xor edx, edx
nop dword [rax]
cmp byte [r8 + rdx], 0
je 0x1401360c1
inc rdx
cmp rax, rdx
jne 0x1401360b0
jmp 0x140136122
add rdx, rcx
cmp rdx, rbx
jne 0x140136122
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x30], xmm0
movdqa xmmword [rsp + 0x50], xmm0
movdqa xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x38], 1
mov qword [rsp + 0x28], 0
lea rcx, [rsp + 0x60]
lea r8, [rsp + 0x30]
lea r9, [rsp + 0x28]
xor edx, edx
call sub.ws2_32.dll_getaddrinfo
test eax, eax
je 0x140136136
call sub.ws2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov eax, 1
jmp 0x140136149
lea rax, str.file_name_contained_an_unexpected_NUL_byte
mov qword [rsi + 8], rax
mov qword [rsi], 1
jmp 0x14013614c
mov rax, qword [rsp + 0x28]
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rax
mov word [rsi + 0x18], di
xor eax, eax
mov qword [rsi], rax
add rsp, 0x1e0
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
call fcn.140136690
cmp rbx, 0x17f
jbe 0x140135fda
mov rcx, rsi
mov rdx, r14
mov r8, rbx
mov r9d, edi
add rsp, 0x1e0
pop rbx
pop rdi
pop rsi
pop r14
pop r15
jmp fcn.140136700
Function at 0x140136700
Capabilities:
Resolve dns

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x60
mov r15, r8
inc r15
sete bpl
je 0x140136979
js 0x140136991
mov ebx, r9d
mov rdi, r8
mov r12, rdx
mov rsi, rcx
movzx eax, byte [0x140222418]
mov rcx, qword [0x140222380]
test rcx, rcx
jne 0x14013675b
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14013696c
mov rcx, rax
mov qword [0x140222380], rax
xor edx, edx
mov r8, r15
call fcn.140167f74
test rax, rax
je 0x14013696c
mov r14, rax
mov rcx, rax
mov rdx, r12
mov r8, rdi
call sub.msvcrt.dll_memcpy
cmp rdi, 0x10
jae 0x1401367a8
test rdi, rdi
je 0x14013685f
xor eax, eax
cmp byte [r12 + rax], 0
je 0x140136880
inc rax
cmp rdi, rax
jne 0x140136790
jmp 0x14013685f
lea rax, [r12 + 7]
and rax, 0xfffffffffffffff8
sub rax, r12
je 0x1401367ee
cmp rax, rdi
cmovae rax, rdi
test rax, rax
je 0x1401367ee
xor ecx, ecx
nop word cs:[rax + rax]
cmp byte [r12 + rcx], 0
je 0x140136880
inc rcx
cmp rax, rcx
jne 0x1401367d0
lea rcx, [rdi - 0x10]
cmp rax, rcx
jbe 0x1401367f4
jmp 0x14013683e
lea rcx, [rdi - 0x10]
xor eax, eax
movdqa xmm0, xmmword [0x140172ba0]
movabs rdx, 0x8080808080808080
nop word cs:[rax + rax]
movdqu xmm1, xmmword [r12 + rax]
movdqa xmm2, xmm1
paddq xmm2, xmm0
pandn xmm1, xmm2
pshufd xmm2, xmm1, 0xee
por xmm2, xmm1
movq r8, xmm2
test r8, rdx
jne 0x14013683e
add rax, 0x10
cmp rax, rcx
jbe 0x140136810
cmp rax, rdi
je 0x14013685f
nop word cs:[rax + rax]
cmp byte [r12 + rax], 0
je 0x140136880
inc rax
cmp rdi, rax
jne 0x140136850
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x40], rdi
lea rcx, [rsp + 0x30]
call fcn.140031780
mov r14, rax
mov rdi, rdx
jmp 0x140136893
movabs rax, 0x8000000000000000
cmp r15, rax
jne 0x140136936
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x30], xmm0
movdqa xmmword [rsp + 0x50], xmm0
movdqa xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x38], 1
mov qword [rsp + 0x28], 0
lea r8, [rsp + 0x30]
lea r9, [rsp + 0x28]
mov rcx, r14
xor edx, edx
call sub.ws2_32.dll_getaddrinfo
test eax, eax
je 0x1401368f6
call sub.ws2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov eax, 1
mov qword [rsi], rax
mov byte [r14], 0
test rdi, rdi
jne 0x140136915
jmp 0x140136926
mov rax, qword [rsp + 0x28]
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rax
mov word [rsi + 0x18], bx
xor eax, eax
mov qword [rsi], rax
mov byte [r14], 0
test rdi, rdi
je 0x140136926
mov rcx, qword [0x140222380]
xor edx, edx
mov r8, r14
call sub.kernel32.dll_HeapFree
nop
add rsp, 0x60
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea rax, str.file_name_contained_an_unexpected_NUL_byte
mov qword [rsi + 8], rax
mov qword [rsi], 1
test bpl, bpl
jne 0x140136926
mov rcx, qword [0x140222380]
xor edx, edx
mov r8, r14
add rsp, 0x60
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
jmp sub.kernel32.dll_HeapFree
mov ecx, 1
mov rdx, r15
call fcn.1400315c0
lea rcx, str.called__Option::unwrap____on_a__None__value
lea r8, str.library_alloc_src_ffic_str.rs
mov edx, 0x2b
call fcn.140036810
call fcn.140031580
int3
Function at 0x140136ee0
Capabilities:
Create thread

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x38
mov rdi, r8
mov rbx, rdx
mov r14, rcx
movzx eax, byte [0x140222418]
mov rcx, qword [0x140222380]
test rcx, rcx
jne 0x140136f1d
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x140136fcd
mov rcx, rax
mov qword [0x140222380], rax
mov r8d, 0x10
xor edx, edx
call fcn.140167f74
test rax, rax
je 0x140136fcd
mov rsi, rax
mov qword [rax], rbx
mov qword [rax + 8], rdi
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10000
lea r8, [0x140137040]
xor edi, edi
xor ecx, ecx
mov rdx, r14
mov r9, rax
call sub.kernel32.dll_CreateThread
mov rdx, rax
test rax, rax
jne 0x140136fc0
mov rdi, qword [rsi]
mov rbx, qword [rsi + 8]
mov rcx, rdi
call qword [rbx]
cmp qword [rbx + 8], 0
je 0x140136f9b
cmp qword [rbx + 0x10], 0x11
jb 0x140136f8a
mov rdi, qword [rdi - 8]
mov rcx, qword [0x140222380]
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_HeapFree
mov rcx, qword [0x140222380]
xor edx, edx
mov r8, rsi
call sub.kernel32.dll_HeapFree
call fcn.140167f34
mov edx, eax
shl rdx, 0x20
or rdx, 2
mov edi, 1
mov rax, rdi
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r14
ret
mov ecx, 8
mov edx, 0x10
call fcn.1400315c0
ud2

Function at 0x140137130
Capabilities:
Generate random numbers via rtlgenrandom

Disassembly:
push rsi
sub rsp, 0x80
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
lea rcx, [rsp + 0x30]
mov edx, 0x10
call sub.advapi32.dll_SystemFunction036
test al, al
je 0x140137166
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
add rsp, 0x80
pop rsi
ret
call fcn.140167f34
shl rax, 0x20
or rax, 2
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x28]
mov qword [rsp + 0x40], rax
lea rax, [fcn.140133d40]
mov qword [rsp + 0x48], rax
lea rax, str.fallback_RNG_broken:
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 1
mov qword [rsp + 0x70], 0
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 1
lea rdx, str.library_std_src_syswindows_rand.rs
lea rcx, [rsp + 0x50]
call fcn.140034e00
ud2
Function at 0x1401373a0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
sub rsp, 0x20
mov ecx, dword [0x14016b210]
test ecx, ecx
je 0x140137466
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jb 0x1401373cd
mov rsi, rax
cmp byte [rax + 8], 0
jne 0x140137460
mov ecx, dword [0x14016b210]
test ecx, ecx
je 0x140137488
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
je 0x1401374a5
mov rsi, rax
test rax, rax
jne 0x14013745a
movzx eax, byte [0x140222418]
mov rcx, qword [0x140222380]
test rcx, rcx
jne 0x14013741f
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x1401374c0
mov rcx, rax
mov qword [0x140222380], rax
mov r8d, 0x10
xor edx, edx
call fcn.140167f74
test rax, rax
je 0x1401374c0
mov rsi, rax
lea rax, [0x14016b1f8]
mov qword [rsi], rax
mov byte [rsi + 8], 0
mov ecx, dword [0x14016b210]
test ecx, ecx
je 0x1401374b0
dec ecx
mov rdx, rsi
call sub.kernel32.dll_TlsSetValue
mov word [rsi + 8], 1
add rsi, 9
jmp 0x1401374a7
lea rcx, [0x14016b1f8]
call fcn.140113520
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jae 0x1401373c0
jmp 0x1401373cd
lea rcx, [0x14016b1f8]
call fcn.140113520
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jne 0x1401373ec
xor esi, esi
mov rax, rsi
add rsp, 0x20
pop rsi
ret
lea rcx, [0x14016b1f8]
call fcn.140113520
mov ecx, eax
jmp 0x140137452
mov ecx, 8
mov edx, 0x10
call fcn.1400315c0
int3
Function at 0x14013c290
Capabilities:
Create tcp socket
Create udp socket

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x50
mov rbx, r8
mov rsi, rcx
test rdx, rdx
je 0x14013c2bb
mov qword [rsi + 8], rbx
mov qword [rsi], 1
add rsp, 0x50
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
mov rax, qword [0x140222388]
cmp rax, 3
jne 0x14013c437
cmp word [rbx], 0
mov eax, 2
mov ebp, 0x17
cmove ebp, eax
mov dword [rsp + 0x28], 0x81
mov dword [rsp + 0x20], 0
mov ecx, ebp
mov edx, 2
xor r8d, r8d
xor r9d, r9d
call sub.ws2_32.dll_WSASocketW
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x14013c330
cmp word [rbx], 0
je 0x14013c3a6
movups xmm0, xmmword [rbx + 4]
mov eax, dword [rbx + 0x14]
mov edx, dword [rbx + 0x18]
movzx ecx, word [rbx + 0x1c]
mov r8d, 0x1c
mov r9w, 0x17
jmp 0x14013c3bb
call sub.ws2_32.dll_WSAGetLastError
cmp eax, 0x2739
je 0x14013c34a
mov r14d, eax
cmp eax, 0x2726
jne 0x14013c426
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 0
mov ecx, ebp
mov edx, 2
xor r8d, r8d
xor r9d, r9d
call sub.ws2_32.dll_WSASocketW
cmp rax, 0xffffffffffffffff
je 0x14013c41e
mov rdi, rax
mov rcx, rax
mov edx, 1
xor r8d, r8d
call sub.kernel32.dll_SetHandleInformation
test eax, eax
jne 0x14013c308
call fcn.140167f34
mov r14d, eax
mov rcx, rdi
call sub.ws2_32.dll_closesocket
jmp 0x14013c426
mov eax, dword [rbx + 2]
movzx ecx, word [rbx + 6]
mov r8d, 0x10
mov r9w, 2
xorps xmm0, xmm0
rol cx, 8
mov word [rsp + 0x34], r9w
mov word [rsp + 0x36], cx
mov dword [rsp + 0x38], eax
movups xmmword [rsp + 0x3c], xmm0
mov dword [rsp + 0x4c], edx
lea rdx, [rsp + 0x34]
mov rcx, rdi
call sub.ws2_32.dll_bind
cmp eax, 0xffffffff
je 0x14013c3f9
mov qword [rsi + 8], rdi
mov qword [rsi], 0
jmp 0x14013c2b0
call sub.ws2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov qword [rsi], 1
mov rcx, rdi
call sub.ws2_32.dll_closesocket
jmp 0x14013c2b0
call sub.ws2_32.dll_WSAGetLastError
mov r14d, eax
shl r14, 0x20
or r14, 2
mov qword [rsi + 8], r14
jmp 0x14013c2a9
call fcn.140136690
jmp 0x14013c2cc
Function at 0x14013c490
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
sub rsp, 0x30
mov ecx, dword [0x14016b230]
test ecx, ecx
je 0x14013c4bc
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jb 0x14013c4d5
mov rsi, rax
cmp qword [rax + 8], 0
je 0x14013c4d5
add rsi, 0x10
jmp 0x14013c4ee
lea rcx, [0x14016b218]
call fcn.140113520
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jae 0x14013c4ac
mov ecx, dword [0x14016b230]
test ecx, ecx
je 0x14013c4f7
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jne 0x14013c510
xor esi, esi
mov rax, rsi
add rsp, 0x30
pop rsi
ret
lea rcx, [0x14016b218]
call fcn.140113520
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
je 0x14013c4ec
mov rsi, rax
test rax, rax
jne 0x14013c592
movzx eax, byte [0x140222418]
mov rcx, qword [0x140222380]
test rcx, rcx
jne 0x14013c543
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14013c5e0
mov rcx, rax
mov qword [0x140222380], rax
mov r8d, 0x18
xor edx, edx
call fcn.140167f74
test rax, rax
je 0x14013c5e0
mov rsi, rax
lea rax, [0x14016b218]
mov qword [rsi], rax
mov qword [rsi + 8], 0
mov ecx, dword [0x14016b230]
test ecx, ecx
jne 0x14013c588
lea rcx, [0x14016b218]
call fcn.140113520
mov ecx, eax
jmp 0x14013c58a
dec ecx
mov rdx, rsi
call sub.kernel32.dll_TlsSetValue
call fcn.140137280
mov rdx, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x28], rcx
mov qword [rsi + 8], 1
mov qword [rsi + 0x10], rax
test rdx, rdx
je 0x14013c4b6
test rcx, rcx
je 0x14013c4b6
lock dec qword [rcx]
jne 0x14013c4b6
lea rcx, [rsp + 0x28]
call fcn.14013c5f0
jmp 0x14013c4b6
mov ecx, 8
mov edx, 0x18
call fcn.1400315c0
int3
Function at 0x14013c710
Capabilities:
Generate random numbers via winapi
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
sub rsp, 0x30
mov ecx, dword [0x14016b270]
test ecx, ecx
je 0x14013c73d
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jb 0x14013c756
cmp qword [rax + 8], 0
je 0x14013c756
add rax, 0x10
add rsp, 0x30
pop rsi
ret
lea rcx, [0x14016b258]
call fcn.140113520
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jae 0x14013c72c
mov ecx, dword [0x14016b270]
test ecx, ecx
je 0x14013c83d
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
je 0x14013c85a
mov rsi, rax
test rax, rax
jne 0x14013c7eb
movzx eax, byte [0x140222418]
mov rcx, qword [0x140222380]
test rcx, rcx
jne 0x14013c7a8
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14013c875
mov rcx, rax
mov qword [0x140222380], rax
mov r8d, 0x20
xor edx, edx
call fcn.140167f74
test rax, rax
je 0x14013c875
mov rsi, rax
lea rax, [0x14016b258]
mov qword [rsi], rax
mov qword [rsi + 8], 0
mov ecx, dword [0x14016b270]
test ecx, ecx
je 0x14013c862
dec ecx
mov rdx, rsi
call sub.kernel32.dll_TlsSetValue
xorps xmm0, xmm0
movaps xmmword [rsp + 0x20], xmm0
lea rdx, [rsp + 0x20]
xor ecx, ecx
mov r8d, 0x10
mov r9d, 2
call sub.bcrypt.dll_BCryptGenRandom
test eax, eax
js 0x14013c81b
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x28]
jmp 0x14013c823
call fcn.140137130
mov rcx, rax
mov qword [rsi + 8], 1
lea rax, [rsi + 0x10]
mov qword [rsi + 0x10], rcx
mov qword [rsi + 0x18], rdx
add rsp, 0x30
pop rsi
ret
lea rcx, [0x14016b258]
call fcn.140113520
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jne 0x14013c775
xor eax, eax
add rsp, 0x30
pop rsi
ret
lea rcx, [0x14016b258]
call fcn.140113520
mov ecx, eax
jmp 0x14013c7e3
mov ecx, 8
mov edx, 0x20
call fcn.1400315c0
int3
Function at 0x14013e2c0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
mov rax, rcx
add qword [rcx + 0x30], r8
mov r11, qword [rcx + 0x40]
test r11, r11
je 0x14013e302
mov r10d, 8
sub r10, r11
cmp r8, r10
mov rdi, r10
cmovb rdi, r8
cmp rdi, 3
jbe 0x14013e30a
mov esi, dword [rdx]
mov r9d, 4
mov rcx, r9
or rcx, 1
cmp rcx, rdi
jb 0x14013e31b
jmp 0x14013e332
xor r10d, r10d
jmp 0x14013e3bd
xor esi, esi
xor r9d, r9d
mov rcx, r9
or rcx, 1
cmp rcx, rdi
jae 0x14013e332
movzx ebx, word [rdx + r9]
lea ecx, [r9*8]
shl rbx, cl
or rsi, rbx
or r9, 2
cmp r9, rdi
jae 0x14013e349
movzx edi, byte [rdx + r9]
shl r9d, 3
mov ecx, r9d
shl rdi, cl
or rsi, rdi
lea ecx, [r11*8]
shl rsi, cl
or rsi, qword [rax + 0x38]
mov qword [rax + 0x38], rsi
cmp r10, r8
jbe 0x14013e369
add r11, r8
jmp 0x14013e49a
mov r11, qword [rax + 0x18]
mov r9, qword [rax + 0x10]
mov rcx, qword [rax]
add rcx, r9
rol r9, 0xd
xor r11, rsi
xor r9, rcx
rol rcx, 0x20
mov rdi, qword [rax + 8]
add rdi, r11
rol r11, 0x10
xor r11, rdi
add rcx, r11
rol r11, 0x15
xor r11, rcx
add rdi, r9
rol r9, 0x11
mov qword [rax + 0x18], r11
xor r9, rdi
rol rdi, 0x20
mov qword [rax + 0x10], r9
mov qword [rax + 8], rdi
xor rcx, rsi
mov qword [rax], rcx
sub r8, r10
mov r11d, r8d
and r11d, 7
and r8, 0xfffffffffffffff8
cmp r10, r8
jae 0x14013e432
mov rcx, qword [rax]
mov r9, qword [rax + 8]
mov rdi, qword [rax + 0x18]
mov rsi, qword [rax + 0x10]
nop
add rcx, rsi
rol rsi, 0xd
mov rbx, qword [rdx + r10]
xor rsi, rcx
rol rcx, 0x20
xor rdi, rbx
add r9, rdi
rol rdi, 0x10
xor rdi, r9
add rcx, rdi
rol rdi, 0x15
add r9, rsi
rol rsi, 0x11
xor rsi, r9
rol r9, 0x20
xor rdi, rcx
xor rcx, rbx
add r10, 8
cmp r10, r8
jb 0x14013e3e0
mov qword [rax + 0x18], rdi
mov qword [rax + 0x10], rsi
mov qword [rax + 8], r9
mov qword [rax], rcx
cmp r11d, 3
jbe 0x14013e450
mov r9d, dword [rdx + r10]
mov r8d, 4
mov rcx, r8
or rcx, 1
cmp rcx, r11
jb 0x14013e462
jmp 0x14013e47c
xor r9d, r9d
xor r8d, r8d
mov rcx, r8
or rcx, 1
cmp rcx, r11
jae 0x14013e47c
lea rcx, [r8 + r10]
movzx esi, word [rdx + rcx]
lea ecx, [r8*8]
shl rsi, cl
or r9, rsi
or r8, 2
cmp r8, r11
jae 0x14013e496
add r10, r8
movzx edx, byte [rdx + r10]
shl r8d, 3
mov ecx, r8d
shl rdx, cl
or r9, rdx
mov qword [rax + 0x38], r9
mov qword [rax + 0x40], r11
pop rbx
pop rdi
pop rsi
ret
Function at 0x14013e4b0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
sub rsp, 0x80
mov ecx, dword [0x14016b298]
test ecx, ecx
je 0x14013e61a
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jb 0x14013e4e1
mov rsi, rax
cmp qword [rax + 8], 0
jne 0x14013e64c
mov ecx, dword [0x14016b298]
test ecx, ecx
je 0x14013e652
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
je 0x14013e66f
mov rsi, rax
test rax, rax
jne 0x14013e576
movzx eax, byte [0x140222418]
mov rcx, qword [0x140222380]
test rcx, rcx
jne 0x14013e533
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14013e690
mov rcx, rax
mov qword [0x140222380], rax
mov r8d, 0x60
xor edx, edx
call fcn.140167f74
test rax, rax
je 0x14013e690
mov rsi, rax
lea rax, [0x14016b280]
mov qword [rsi], rax
mov qword [rsi + 8], 0
mov ecx, dword [0x14016b298]
test ecx, ecx
je 0x14013e67d
dec ecx
mov rdx, rsi
call sub.kernel32.dll_TlsSetValue
mov rax, qword [rsi + 0x58]
mov qword [rsp + 0x70], rax
movups xmm0, xmmword [rsi + 0x48]
movaps xmmword [rsp + 0x60], xmm0
movups xmm0, xmmword [rsi + 8]
movups xmm1, xmmword [rsi + 0x18]
movups xmm2, xmmword [rsi + 0x28]
movups xmm3, xmmword [rsi + 0x38]
movaps xmmword [rsp + 0x50], xmm3
movaps xmmword [rsp + 0x40], xmm2
movaps xmmword [rsp + 0x30], xmm1
movaps xmmword [rsp + 0x20], xmm0
mov qword [rsi + 8], 1
movups xmm0, xmmword [0x1401e6598]
movups xmmword [rsi + 0x50], xmm0
movups xmm0, xmmword [0x1401e6588]
movups xmmword [rsi + 0x40], xmm0
movups xmm0, xmmword [0x1401e6578]
movups xmmword [rsi + 0x30], xmm0
movups xmm0, xmmword [0x1401e6568]
movups xmmword [rsi + 0x20], xmm0
movups xmm0, xmmword [0x1401e6558]
movups xmmword [rsi + 0x10], xmm0
cmp qword [rsp + 0x20], 0
je 0x14013e64c
mov rax, qword [rsp + 0x30]
cmp rax, 2
je 0x14013e64c
lea rcx, [rsp + 0x38]
test rax, rax
je 0x14013e63c
mov rax, qword [rsp + 0x38]
lock dec qword [rax]
jne 0x14013e64c
call fcn.14013ce40
jmp 0x14013e64c
lea rcx, [0x14016b280]
call fcn.140113520
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jae 0x14013e4d3
jmp 0x14013e4e1
mov rax, qword [rsp + 0x38]
lock dec qword [rax]
jne 0x14013e64c
call fcn.14013cda0
add rsi, 0x10
jmp 0x14013e671
lea rcx, [0x14016b280]
call fcn.140113520
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jne 0x14013e500
xor esi, esi
mov rax, rsi
add rsp, 0x80
pop rsi
ret
lea rcx, [0x14016b280]
call fcn.140113520
mov ecx, eax
jmp 0x14013e56e
mov ecx, 8
mov edx, 0x60
call fcn.1400315c0
int3
Function at 0x140141550
Capabilities:
Send data
Send data on socket

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov qword [rsp + 0x40], r9
mov rdi, r8
mov qword [rsp + 0x28], rcx
mov rbx, qword [rdx + 0x10]
mov r15, qword [rdx + 0x18]
cmp r15, 0xffffffffffffffff
je 0x1401416e2
mov rax, qword [rsp + 0xb0]
cmp rax, 0x7fffffff
mov r12d, 0x7fffffff
cmovb r12, rax
mov r13, qword [rdx + 0x20]
nop dword [rax + rax]
lea rcx, [rsp + 0x30]
mov rdx, rbx
mov r8, rdi
mov r9b, 1
call fcn.140140e90
movzx eax, byte [rsp + 0x39]
cmp al, 3
je 0x1401416fe
mov rsi, qword [rsp + 0x30]
cmp al, 2
je 0x140141715
movzx r14d, byte [rsp + 0x38]
mov rcx, r15
mov rdx, qword [rsp + 0x40]
mov r8d, r12d
xor r9d, r9d
call sub.ws2_32.dll_send
cmp eax, 0xffffffff
jne 0x140141727
call sub.ws2_32.dll_WSAGetLastError
mov ebp, eax
shl rbp, 0x20
or rbp, 2
mov rcx, rbp
call fcn.14007fd60
cmp al, 0xd
jne 0x14014163a
test r13, r13
je 0x14014163a
mov rcx, qword [r13]
mov rdx, qword [r13 + 8]
lock inc qword [rdx]
jle 0x14014175c
add rcx, 0x10
mov r8, qword [r13 + 0x10]
movzx r9d, byte [r13 + 0x18]
call fcn.14007ec00
test rax, rax
cmovne rbp, rax
mov rcx, rbp
call fcn.14007fd60
cmp al, 0xd
jne 0x14014173b
and esi, 0x23
mov rax, qword [rbx + 0xd0]
mov rcx, r14
shl rcx, 0x10
xor rsi, 0x2f
nop
mov edx, eax
shr edx, 0x10
cmp r14b, dl
jne 0x14014167c
mov edx, eax
and edx, esi
or rdx, rcx
lock cmpxchg qword [rbx + 0xd0], rdx
jne 0x140141660
mov eax, ebp
and eax, 3
lea rcx, [rax - 2]
cmp rcx, 2
jb 0x1401415a0
test rax, rax
je 0x1401415a0
mov rsi, qword [rbp - 1]
mov r14, qword [rbp + 7]
mov rcx, rsi
call qword [r14]
cmp qword [r14 + 8], 0
je 0x1401416c9
cmp qword [r14 + 0x10], 0x11
jb 0x1401416b8
mov rsi, qword [rsi - 8]
mov rcx, qword [0x140222380]
xor edx, edx
mov r8, rsi
call sub.kernel32.dll_HeapFree
dec rbp
mov rcx, qword [0x140222380]
xor edx, edx
mov r8, rbp
call sub.kernel32.dll_HeapFree
jmp 0x1401415a0
lea rcx, [rsp + 0x30]
mov rdx, rbx
mov r8, rdi
mov r9b, 1
call fcn.140140e90
movzx eax, byte [rsp + 0x39]
cmp al, 3
jne 0x14014170c
mov rax, qword [rsp + 0x28]
mov qword [rax], 2
jmp 0x14014174b
cmp al, 2
jne 0x14014175e
mov rsi, qword [rsp + 0x30]
mov rax, qword [rsp + 0x28]
mov qword [rax], 1
mov qword [rax + 8], rsi
jmp 0x14014174b
cdqe
mov rcx, qword [rsp + 0x28]
mov qword [rcx], 0
mov qword [rcx + 8], rax
jmp 0x14014174b
mov rax, qword [rsp + 0x28]
mov qword [rax], 1
mov qword [rax + 8], rbp
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
lea rcx, str.called__Option::unwrap____on_a__None__value
lea r8, str._home_drados_.cargo_registry_src_index.crates.io_6f17d22bba15001f_tokio_1.33.0_src_io_poll_evented.rs
mov edx, 0x2b
call fcn.140036810
int3