joyce8/EMBER2024-capa huggingface dataset:
Function at 0x446d00
Capabilities:
Parse pe header

Disassembly:
cmp word [rcx], 0x5a4d
je 0x446d10
xor eax, eax
ret
jmp sym._ValidateImageBase.part.0

Function at 0x446d20
Capabilities:
Enumerate pe sections

Disassembly:
movsxd rax, dword [rcx + 0x3c]
add rcx, rax
movzx eax, word [rcx + 0x14]
lea rax, [rcx + rax + 0x18]
movzx ecx, word [rcx + 6]
test ecx, ecx
je 0x446d61
sub ecx, 1
lea rcx, [rcx + rcx*4]
lea r9, [rax + rcx*8 + 0x28]
mov r8d, dword [rax + 0xc]
cmp r8, rdx
mov rcx, r8
ja 0x446d58
add ecx, dword [rax + 8]
cmp rcx, rdx
ja 0x446d63
add rax, 0x28
cmp rax, r9
jne 0x446d44
xor eax, eax
ret

Function at 0x446e00
Capabilities:
Enumerate pe sections

Disassembly:
sub rsp, 0x28
mov r8, qword [0x00528eb0]
cmp word [r8], 0x5a4d
mov rdx, rcx
jne 0x446e6d
mov rcx, r8
call sym._ValidateImageBase.part.0
test eax, eax
je 0x446e6d
movsxd rax, dword [r8 + 0x3c]
mov rcx, rdx
sub rcx, r8
add r8, rax
movzx edx, word [r8 + 6]
movzx eax, word [r8 + 0x14]
test edx, edx
lea rax, [r8 + rax + 0x18]
je 0x446e6d
sub edx, 1
lea rdx, [rdx + rdx*4]
lea r9, [rax + rdx*8 + 0x28]
nop
mov r8d, dword [rax + 0xc]
cmp rcx, r8
mov rdx, r8
jb 0x446e64
add edx, dword [rax + 8]
cmp rcx, rdx
jb 0x446e6f
add rax, 0x28
cmp rax, r9
jne 0x446e50
xor eax, eax
add rsp, 0x28
ret

Function at 0x446f70
Capabilities:
Enumerate pe sections

Disassembly:
sub rsp, 0x28
mov r8, qword [0x00528eb0]
xor eax, eax
cmp word [r8], 0x5a4d
mov rdx, rcx
je 0x446f90
add rsp, 0x28
ret
mov rcx, r8
call sym._ValidateImageBase.part.0
test eax, eax
je 0x446f88
movsxd rax, dword [r8 + 0x3c]
mov rcx, rdx
sub rcx, r8
add r8, rax
movzx edx, word [r8 + 6]
movzx eax, word [r8 + 0x14]
test edx, edx
lea rax, [r8 + rax + 0x18]
je 0x446fed
sub edx, 1
lea rdx, [rdx + rdx*4]
lea r9, [rax + rdx*8 + 0x28]
nop dword [rax + rax]
mov r8d, dword [rax + 0xc]
cmp rcx, r8
mov rdx, r8
jb 0x446fe4
add edx, dword [rax + 8]
cmp rcx, rdx
jb 0x446ff4
add rax, 0x28
cmp rax, r9
jne 0x446fd0
xor eax, eax
add rsp, 0x28
ret
mov eax, dword [rax + 0x24]
not eax
shr eax, 0x1f
add rsp, 0x28
ret

Function at 0x447010
Capabilities:
Enumerate pe sections

Disassembly:
sub rsp, 0x28
mov r11, qword [0x00528eb0]
cmp word [r11], 0x5a4d
mov r9d, ecx
jne 0x44707e
mov rcx, r11
call sym._ValidateImageBase.part.0
test eax, eax
je 0x44707e
movsxd rax, dword [r11 + 0x3c]
add rax, r11
mov edx, dword [rax + 0x90]
test edx, edx
je 0x44707e
movzx ecx, word [rax + 0x14]
lea rcx, [rax + rcx + 0x18]
movzx eax, word [rax + 6]
test eax, eax
je 0x44707e
sub eax, 1
lea rax, [rax + rax*4]
lea rax, [rcx + rax*8 + 0x28]
mov r10d, dword [rcx + 0xc]
cmp rdx, r10
mov r8, r10
jb 0x447075
add r8d, dword [rcx + 8]
cmp rdx, r8
jb 0x447085
add rcx, 0x28
cmp rcx, rax
jne 0x447060
xor eax, eax
add rsp, 0x28
ret
add rdx, r11
jne 0x447098
jmp 0x44707e
sub r9d, 1
add rdx, 0x14
mov ecx, dword [rdx + 4]
test ecx, ecx
jne 0x4470a6
mov eax, dword [rdx + 0xc]
test eax, eax
je 0x44707e
test r9d, r9d
jg 0x447090
mov eax, dword [rdx + 0xc]
add rax, r11
add rsp, 0x28
ret
Function at 0x46f150
Capabilities:
Set socket configuration

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x40
mov rbx, qword [sym.imp.WS2_32.dll_setsockopt]
mov r8d, 4
mov edx, 0xffff
lea rdi, [rsp + 0x3c]
mov rsi, rcx
mov dword [rsp + 0x3c], 1
mov r9, rdi
mov dword [rsp + 0x20], 4
call rbx
mov dword [rsp + 0x20], 4
mov r9, rdi
mov rcx, rsi
mov r8d, 0xfffffffb
mov edx, 0xffff
call rbx
nop
add rsp, 0x40
pop rbx
pop rsi
pop rdi
ret

Function at 0x46f1b0
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x108
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
mov r12, rdx
mov rbx, rcx
mov esi, r8d
lea rdx, [method.httplib::Server.is_valid___const]
mov r13d, r9d
cmp rax, rdx
jne 0x46f3a0
mov qword [rsp + 0x50], 0
mov rax, qword [rbx + 0x2d0]
test rax, rax
je 0x46f390
lea rdi, [rsp + 0x40]
mov r8d, 2
lea rdx, [rbx + 0x2c0]
mov rcx, rdi
call rax
mov rdx, qword [rbx + 0x2d8]
mov rax, qword [rbx + 0x2d0]
mov r9, qword [rsp + 0x40]
lea rdi, [rsp + 0x60]
mov r8d, esi
mov rcx, r12
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x98]
lea rbp, [rsp + 0x80]
movdqa xmm0, xmmword [rsp + 0x80]
mov byte [rsp + 0x70], 0
mov r10, qword [rsp + 0x48]
mov qword [rsp + 0x98], rdx
lea rdx, [rdi + 0x10]
mov qword [rsp + 0x80], r9
mov qword [rsp + 0x58], rax
movzx eax, byte [rbx + 0x2bc]
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x20], r13d
mov qword [rsp + 0x60], rdx
mov rdx, rdi
mov dword [rsp + 0x28], eax
mov r9d, dword [rbx + 0x2b8]
movaps xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x88], r10
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x68], 0
call sym._ZN7httplib6detail13create_socketIZNKS_6Server20create_server_socketERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiS
mov rcx, qword [rsp + 0x60]
mov r12, rax
lea rax, [rdi + 0x10]
cmp rcx, rax
je 0x46f2d2
call sym.operator_delete_void_
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x46f2ed
mov r8d, 3
mov rdx, rbp
mov rcx, rbp
call rax
mov qword [rbx + 0x28], r12
mfence
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x46f30e
lea rcx, [rsp + 0x40]
mov r8d, 3
mov rdx, rcx
call rax
mov rax, qword [rbx + 0x28]
cmp rax, 0xffffffffffffffff
je 0x46f3aa
test esi, esi
mov eax, esi
je 0x46f332
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov dword [rsp + 0x60], pe_nt_image_headers64
mov r8, rdi
mov rdx, rbp
mov rcx, qword [rbx + 0x28]
call qword [sym.imp.WS2_32.dll_getsockname]
cmp eax, 0xffffffff
je 0x46f322
movzx edx, word [rsp + 0x80]
cmp dx, 2
je 0x46f368
cmp dx, 0x17
mov eax, 0xffffffff
jne 0x46f322
movzx ecx, word [rsp + 0x82]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov rdx, qword [rsp + 0x58]
jmp 0x46f220
call rax
test al, al
jne 0x46f1e2
mov eax, 0xffffffff
jmp 0x46f322
Function at 0x475dd0
Capabilities:
Get socket status

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x258
mov qword [rsp + 0x48], rcx
lea esi, [rcx + 1]
mov dword [rsp + 0x40], 1
lea rbp, [rsp + 0x40]
mov dword [rsp + 0x38], edx
lea rdi, [rsp + 0x38]
mov dword [rsp + 0x3c], r8d
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rdi
mov rdx, rbp
mov ecx, esi
call qword [sym.imp.WS2_32.dll_select]
movsxd rbx, eax
test rbx, rbx
jns 0x475e27
call qword [sym.imp.msvcrt.dll__errno]
cmp dword [rax], 4
je 0x475dfe
mov rax, rbx
add rsp, 0x258
pop rbx
pop rsi
pop rdi
pop rbp
ret

Function at 0x475fc0
Capabilities:
Receive data
Receive data on socket

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
mov esi, 0x7fffffff
mov rbx, qword [rcx + 0x50]
mov rbp, rdx
mov rdx, qword [rcx + 0x48]
mov r12, rcx
mov rdi, r8
cmp r8, 0x7fffffff
cmovbe rsi, r8
cmp rdx, rbx
jae 0x476045
sub rbx, rdx
add rdx, qword [rcx + 0x30]
cmp rbx, rsi
jae 0x476030
mov r8, rbx
mov rcx, rbp
call sym.memcpy
add qword [r12 + 0x48], rbx
mov rax, rbx
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8, rsi
mov rcx, rbp
mov rbx, rsi
call sym.memcpy
add qword [r12 + 0x48], rsi
jmp 0x476012
mov rdx, qword [rcx + 0x10]
mov r8, qword [r12 + 0x18]
mov rcx, qword [rcx + 8]
call method.httplib::detail.select_read_unsigned_long_long__long_long__long_long_
test rax, rax
jle 0x476137
cmp rdi, 0xfff
pxor xmm0, xmm0
mov r13, qword [r12 + 8]
movups xmmword [r12 + 0x48], xmm0
ja 0x4760b2
mov r14, qword [r12 + 0x30]
mov rdi, qword [sym.imp.WS2_32.dll_recv]
mov r15, qword [sym.imp.msvcrt.dll__errno]
xor r9d, r9d
mov r8d, 0x1000
mov rdx, r14
mov rcx, r13
call rdi
movsxd rbx, eax
test rbx, rbx
jns 0x4760f0
call r15
cmp dword [rax], 4
jne 0x476012
jmp 0x47608b
mov rdi, qword [sym.imp.WS2_32.dll_recv]
mov r12, qword [sym.imp.msvcrt.dll__errno]
xor r9d, r9d
mov r8d, esi
mov rdx, rbp
mov rcx, r13
call rdi
movsxd rbx, eax
test rbx, rbx
jns 0x476012
call r12
cmp dword [rax], 4
jne 0x476012
jmp 0x4760c0
je 0x476012
cmp rsi, rbx
mov rdx, qword [r12 + 0x30]
jl 0x476110
mov r8, rbx
mov rcx, rbp
call sym.memcpy
jmp 0x476012
mov r8, rsi
mov rcx, rbp
call sym.memcpy
movq xmm1, rbx
movq xmm0, rsi
mov rbx, rsi
punpcklqdq xmm0, xmm1
movups xmmword [r12 + 0x48], xmm0
jmp 0x476012
mov rbx, 0xffffffffffffffff
jmp 0x476012
Function at 0x476150
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x30
mov rbx, rcx
mov rdi, rdx
mov rsi, r8
mov rdx, qword [rcx + 0x20]
mov r8, qword [rbx + 0x28]
mov rcx, qword [rcx + 8]
call method.httplib::detail.select_write_unsigned_long_long__long_long__long_long_
test rax, rax
jg 0x4761a0
mov rbx, 0xffffffffffffffff
mov rax, rbx
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov rbp, qword [rbx + 8]
xor edx, edx
mov rcx, rbp
call method.httplib::detail.select_read_unsigned_long_long__long_long__long_long___clone_.constprop.3657_
test rax, rax
je 0x4761f2
js 0x476230
mov r12, qword [sym.imp.WS2_32.dll_recv]
lea r13, [rsp + 0x2f]
mov r14, qword [sym.imp.msvcrt.dll__errno]
mov r9d, 2
mov r8d, 1
mov rdx, r13
mov rcx, rbp
call r12
cdqe
test rax, rax
jns 0x4761f0
call r14
cmp dword [rax], 4
jne 0x47617d
jmp 0x4761c8
je 0x47617d
mov r12, qword [rbx + 8]
mov r13, qword [sym.imp.WS2_32.dll_send]
mov rbp, qword [sym.imp.msvcrt.dll__errno]
xor r9d, r9d
mov r8d, esi
mov rdx, rdi
mov rcx, r12
call r13
movsxd rbx, eax
test rbx, rbx
jns 0x476184
call rbp
cmp dword [rax], 4
jne 0x476184
jmp 0x476204
call qword [sym.imp.msvcrt.dll__errno]
cmp dword [rax], 9
jne 0x4761b5
jmp 0x47617d

Function at 0x4766d0
Capabilities:
Get socket status

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x258
mov qword [rsp + 0x48], rcx
lea esi, [rcx + 1]
mov dword [rsp + 0x40], 1
lea rbp, [rsp + 0x40]
mov dword [rsp + 0x38], edx
lea rdi, [rsp + 0x38]
mov dword [rsp + 0x3c], r8d
xor r9d, r9d
xor edx, edx
mov qword [rsp + 0x20], rdi
mov r8, rbp
mov ecx, esi
call qword [sym.imp.WS2_32.dll_select]
movsxd rbx, eax
test rbx, rbx
jns 0x476726
call qword [sym.imp.msvcrt.dll__errno]
cmp dword [rax], 4
je 0x4766fe
mov rax, rbx
add rsp, 0x258
pop rbx
pop rsi
pop rdi
pop rbp
ret
Function at 0x476740
Capabilities:
Resolve dns
Set socket configuration

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
xor eax, eax
cmp qword [rdx + 8], 0
mov rbp, qword [rsp + 0x110]
movzx r12d, byte [rsp + 0x108]
lea rbx, [rsp + 0x60]
mov r10, rcx
mov ecx, 6
mov rdi, rbx
rep stosq qword [rdi], rax
mov dword [rsp + 0x68], 1
je 0x476962
mov rsi, qword [rdx]
mov dword [rsp + 0x60], 4
lea r15, [rsp + 0x40]
mov dword [rsp + 0x20], r8d
mov r8d, 0x10
lea r9, [0x00515206]
mov rcx, r15
lea rdx, [sym.vsnprintf]
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char______gnu_cxx::__to_xstring_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____char__int____char__unsigned_long_long__char_const__char___unsigned_long_long__char_const__::___clone_constprop3709_
lea r9, [rsp + 0x30]
mov r8, rbx
mov rcx, rsi
mov rdx, qword [rsp + 0x40]
call qword [sym.imp.WS2_32.dll_getaddrinfo]
test eax, eax
jne 0x4768d1
mov rbx, qword [rsp + 0x30]
test rbx, rbx
je 0x4768c8
mov rdi, qword [sym.imp.WS2_32.dll_WSASocketW]
mov r13, qword [sym.imp.WS2_32.dll_bind]
mov r14, qword [sym.imp.WS2_32.dll_closesocket]
nop
mov r8d, dword [rbx + 0xc]
xor r9d, r9d
mov edx, dword [rbx + 8]
mov ecx, dword [rbx + 4]
mov dword [rsp + 0x28], 0x81
mov dword [rsp + 0x20], 0
call rdi
cmp rax, 0xffffffffffffffff
mov rsi, rax
je 0x476940
test r12b, r12b
jne 0x476910
cmp qword [rbp + 0x10], 0
je 0x47684c
mov qword [rsp + 0x38], rsi
lea rdx, [rsp + 0x38]
mov rcx, rbp
call qword [rbp + 0x18]
cmp dword [rbx + 4], 0x17
je 0x4768e0
mov rdx, qword [rbx + 0x20]
mov rcx, rsi
mov r8d, dword [rbx + 0x10]
call r13
test eax, eax
jne 0x4768b0
mov edx, 5
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_listen]
test eax, eax
jne 0x4768b0
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_freeaddrinfo]
mov rcx, qword [rsp + 0x40]
add r15, 0x10
cmp rcx, r15
je 0x476898
call sym.operator_delete_void_
mov rax, rsi
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rsi
call r14
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x476800
mov rbx, qword [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_freeaddrinfo]
mov rsi, 0xffffffffffffffff
jmp 0x476885
mov dword [rsp + 0x38], 0
lea r9, [rsp + 0x38]
mov r8d, 0x1b
mov rcx, rsi
mov dword [rsp + 0x20], 4
mov edx, 0x29
call qword [sym.imp.WS2_32.dll_setsockopt]
jmp 0x476856
mov dword [rsp + 0x38], 1
lea r9, [rsp + 0x38]
mov r8d, 1
mov rcx, rsi
mov dword [rsp + 0x20], 4
mov edx, 6
call qword [sym.imp.WS2_32.dll_setsockopt]
jmp 0x476835
mov edx, dword [rbx + 8]
mov ecx, dword [rbx + 4]
mov r8d, dword [rbx + 0xc]
call qword [sym.imp.WS2_32.dll_socket]
cmp rax, 0xffffffffffffffff
mov rsi, rax
je 0x4768b6
jmp 0x47682c
xor esi, esi
cmp qword [r10 + 8], 0
je 0x47696e
mov rsi, qword [r10]
mov eax, dword [rsp + 0x100]
mov dword [rsp + 0x64], r9d
mov dword [rsp + 0x60], eax
jmp 0x476797
Function at 0x47a8e0
Capabilities:
Get socket status

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x678
lea rbx, [rsp + 0x40]
mov r13, rdx
mov r12, r8
mov qword [rsp + 0x48], rcx
lea rdi, [rsp + 0x250]
mov rsi, rcx
mov rdx, rbx
mov dword [rsp + 0x40], 1
lea r14d, [rsi + 1]
mov r8d, 0x208
mov rcx, rdi
call sym.memcpy
lea rbp, [rsp + 0x460]
mov r8d, 0x208
mov rdx, rbx
mov rcx, rbp
call sym.memcpy
mov dword [rsp + 0x3c], r12d
mov r15, qword [sym.imp.msvcrt.dll__errno]
mov r12, qword [sym.imp.WS2_32.dll_select]
mov dword [rsp + 0x38], r13d
lea r13, [rsp + 0x38]
mov qword [rsp + 0x20], r13
mov r9, rbp
mov r8, rdi
mov rdx, rbx
mov ecx, r14d
call r12
cdqe
test rax, rax
jns 0x47a9a0
call r15
cmp dword [rax], 4
je 0x47a961
mov eax, 2
add rsp, 0x678
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
jne 0x47a9a9
mov eax, 0xd
jmp 0x47a989
mov rdx, rbx
mov rcx, rsi
call sym.__WSAFDIsSet
test eax, eax
jne 0x47a9c7
mov rdx, rdi
mov rcx, rsi
call sym.__WSAFDIsSet
test eax, eax
je 0x47a984
lea rax, [rsp + 0x34]
mov dword [rsp + 0x30], 0
mov r8d, 0x1007
mov rcx, rsi
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x30]
mov edx, 0xffff
mov dword [rsp + 0x34], 4
call qword [sym.imp.WS2_32.dll_getsockopt]
test eax, eax
js 0x47a984
cmp dword [rsp + 0x30], 1
sbb eax, eax
not eax
and eax, 2
jmp 0x47a989
Function at 0x47b890
Capabilities:
Initialize winsock library

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
xor ebx, ebx
mov ebp, 1
mov rax, qword [r9]
movdqa xmm0, xmmword [rsp + 0x40]
mov r10, qword [r9 + 0x10]
mov rdi, rdx
mov rdx, qword [r9 + 8]
mov qword [rsp + 0x40], rax
mov rsi, rcx
mov rax, qword [r9 + 0x18]
movups xmmword [r9], xmm0
lea r13, [rsp + 0x20]
mov r12d, r8d
mov qword [r9 + 0x10], 0
lea r14, [rsp + 0x28]
mov qword [rsp + 0x50], r10
lea r15, [rsp + 0x40]
mov qword [rsp + 0x48], rdx
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x58], rax
mov qword [r9 + 0x18], rdx
xor edx, edx
jmp 0x47b904
mov rbx, rax
test rdi, rdi
je 0x47b9e0
lea rax, [rsi + rbx]
cmp rdi, rax
seta al
test al, al
je 0x47b9ef
cmp r12b, byte [rsi + rbx]
lea rax, [rbx + 1]
jne 0x47b901
cmp rbp, 0xffffffffffffffff
je 0x47b901
lea r8, [rsi + rdx]
cmp rdi, r8
jbe 0x47b973
movzx eax, byte [r8]
cmp al, 9
je 0x47b944
cmp al, 0x20
jne 0x47b973
lea rax, [rdx + 1]
lea rcx, [rsi + rax]
jmp 0x47b968
movzx r9d, byte [rcx]
add rcx, 1
cmp r9b, 0x20
je 0x47b964
cmp r9b, 9
jne 0x47b973
add rax, 1
cmp rdi, rcx
mov rdx, rax
mov r8, rcx
ja 0x47b950
test rbx, rbx
je 0x47b9cf
movzx eax, byte [rsi + rbx - 1]
lea r9, [rbx - 1]
cmp al, 9
je 0x47b98d
cmp al, 0x20
jne 0x47ba81
test r9, r9
je 0x47b9cf
movzx ecx, byte [rsi + rbx - 2]
lea rax, [rbx - 2]
cmp cl, 9
je 0x47b9ca
cmp cl, 0x20
je 0x47b9ca
jmp 0x47baf5
movzx ecx, byte [rsi + rax - 1]
lea r9, [rax - 1]
cmp cl, 0x20
je 0x47b9c7
cmp cl, 9
jne 0x47ba84
mov rax, r9
test rax, rax
jne 0x47b9b0
lea rax, [rbx + 1]
add rbp, 1
mov rdx, rax
jmp 0x47b901
cmp byte [rsi + rbx], 0
setne al
test al, al
jne 0x47b91f
test rbx, rbx
je 0x47ba59
lea r9, [rsi + rdx]
cmp rdi, r9
jbe 0x47ba40
movzx eax, byte [r9]
cmp al, 0x20
je 0x47ba09
cmp al, 9
jne 0x47ba40
lea rax, [rdx + 1]
lea rcx, [rsi + rax]
jmp 0x47ba2b
movzx r8d, byte [rcx]
add rcx, 1
cmp r8b, 0x20
je 0x47ba27
cmp r8b, 9
jne 0x47ba40
add rax, 1
cmp rdi, rcx
mov rdx, rax
mov r9, rcx
ja 0x47ba13
nop word cs:[rax + rax]
movzx eax, byte [rsi + rbx - 1]
lea rcx, [rbx - 1]
cmp al, 0x20
je 0x47ba51
cmp al, 9
jne 0x47bac1
test rcx, rcx
mov rbx, rcx
jne 0x47ba40
test r10, r10
je 0x47ba70
lea rcx, [rsp + 0x40]
mov r8d, 3
mov rdx, rcx
call r10
nop
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, rbx
cmp rax, rdx
jbe 0x47b9cf
add rax, rsi
test r10, r10
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x20], rax
je 0x47bafa
mov r8, r13
mov rdx, r14
mov rcx, r15
call qword [rsp + 0x58]
lea rax, [rbx + 1]
mov r10, qword [rsp + 0x50]
add rbp, 1
mov rdx, rax
jmp 0x47b901
cmp rdx, rbx
jae 0x47ba59
add rbx, rsi
test r10, r10
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x30], rbx
je 0x47baff
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x40]
lea r8, [rsp + 0x30]
call qword [rsp + 0x58]
mov r10, qword [rsp + 0x50]
jmp 0x47ba59
mov rax, r9
jmp 0x47ba84
call sym.std::__throw_bad_function_call__
call sym.std::__throw_bad_function_call__
mov rbx, rax
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x47bb21
lea rcx, [rsp + 0x40]
mov r8d, 3
mov rdx, rcx
call rax
mov rcx, rbx
call sym._Unwind_Resume
nop
nop
nop
nop
nop
nop
nop
Function at 0x47bb30
Capabilities:
Initialize winsock library

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
xor ebx, ebx
mov r13d, 1
mov rsi, rcx
mov rdi, rdx
mov r14, r9
lea rbp, [rsp + 0x28]
mov r12d, r8d
xor ecx, ecx
lea r15, [rsp + 0x20]
jmp 0x47bb86
lea rax, [rsi + rbx]
cmp rdi, rax
seta al
test al, al
je 0x47bb96
cmp byte [rsi + rbx], r12b
lea rax, [rbx + 1]
jne 0x47bb83
cmp r13, r14
jb 0x47bc11
mov rbx, rax
test rdi, rdi
jne 0x47bb62
cmp byte [rsi + rbx], 0
setne al
test al, al
jne 0x47bb70
test rbx, rbx
je 0x47bc00
lea r9, [rsi + rcx]
cmp rdi, r9
jbe 0x47bbe3
movzx eax, byte [r9]
cmp al, 0x20
je 0x47bbb0
cmp al, 9
jne 0x47bbe3
lea rdx, [rcx + 1]
lea rax, [rsi + rdx]
jmp 0x47bbd8
movzx r8d, byte [rax]
add rax, 1
cmp r8b, 0x20
je 0x47bbd4
cmp r8b, 9
jne 0x47bbe3
add rdx, 1
cmp rdi, rax
mov rcx, rdx
mov r9, rax
ja 0x47bbc0
movzx eax, byte [rsi + rbx - 1]
lea rdx, [rbx - 1]
cmp al, 0x20
je 0x47bbf8
cmp al, 9
jne 0x47bd00
test rdx, rdx
mov rbx, rdx
jne 0x47bbe3
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea r10, [rsi + rcx]
cmp rdi, r10
jbe 0x47bc53
movzx eax, byte [r10]
cmp al, 0x20
je 0x47bc26
cmp al, 9
jne 0x47bc53
lea rdx, [rcx + 1]
lea rax, [rsi + rdx]
jmp 0x47bc48
movzx r8d, byte [rax]
add rax, 1
cmp r8b, 0x20
je 0x47bc44
cmp r8b, 9
jne 0x47bc53
add rdx, 1
cmp rdi, rax
mov rcx, rdx
mov r10, rax
ja 0x47bc30
test rbx, rbx
je 0x47bcab
movzx eax, byte [rsi + rbx - 1]
lea r8, [rbx - 1]
cmp al, 0x20
je 0x47bc69
cmp al, 9
jne 0x47bcbb
test r8, r8
je 0x47bcab
movzx edx, byte [rsi + rbx - 2]
lea rax, [rbx - 2]
cmp dl, 9
je 0x47bca6
cmp dl, 0x20
je 0x47bca6
jmp 0x47bd3a
movzx edx, byte [rsi + rax - 1]
lea r8, [rax - 1]
cmp dl, 0x20
je 0x47bca3
cmp dl, 9
jne 0x47bcc0
mov rax, r8
test rax, rax
jne 0x47bc90
lea rax, [rbx + 1]
add r13, 1
mov rcx, rax
jmp 0x47bb83
mov rax, rbx
nop
cmp rax, rcx
jbe 0x47bcab
add rax, rsi
mov qword [rsp + 0x20], r10
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xb0]
cmp qword [rax + 0x10], 0
je 0x47bd3f
mov rcx, rax
mov r8, rbp
mov rdx, r15
call qword [rax + 0x18]
lea rax, [rbx + 1]
add r13, 1
mov rcx, rax
jmp 0x47bb83
cmp rcx, rbx
jae 0x47bc00
mov rax, qword [rsp + 0xb0]
add rbx, rsi
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x38], rbx
cmp qword [rax + 0x10], 0
je 0x47bd3f
lea rdx, [rsp + 0x30]
mov rcx, rax
lea r8, [rsp + 0x38]
call qword [rax + 0x18]
jmp 0x47bc00
mov rax, r8
jmp 0x47bcc0
call sym.std::__throw_bad_function_call__
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop

Function at 0x47bd50
Capabilities:
Initialize winsock library

Disassembly:
push rbx
sub rsp, 0x1c0
mov byte [rcx], 0
lea rdx, [rsp + 0x20]
mov rbx, rcx
mov ecx, 2
call qword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x47bd75
mov byte [rbx], 1
add rsp, 0x1c0
pop rbx
ret
Function at 0x4804b0
Capabilities:
Get socket status

Disassembly:
sub rsp, 0x28
mov rax, qword [rdx]
mov qword [rcx], rax
mov rax, qword [rdx + 8]
mov qword [rcx + 8], rax
movzx eax, byte [rdx]
cmp al, 1
je 0x4805a0
cmp al, 2
jne 0x480510
cmp qword [rdx + 8], 0
je 0x480632
mov byte [rdx], 0
movzx eax, byte [rcx]
mov qword [rdx + 8], 0
cmp al, 1
je 0x4805d0
cmp al, 2
jne 0x480570
cmp qword [rcx + 8], 0
je 0x480651
add rsp, 0x28
ret
cmp al, 3
jne 0x480540
cmp qword [rdx + 8], 0
jne 0x4804dc
lea r9, [0x00515150]
mov edx, 0x4e15
lea r8, [0x0051500b]
lea rcx, [0x00515028]
call sym.ggml_abort
nop word [rax + rax]
cmp al, 8
jne 0x4804dc
cmp qword [rdx + 8], 0
jne 0x4804dc
lea r9, [0x00515198]
mov edx, 0x4e16
lea r8, [0x0051500b]
lea rcx, [0x00515028]
call sym.ggml_abort
nop word [rax + rax]
cmp al, 3
jne 0x480600
cmp qword [rcx + 8], 0
jne 0x480501
lea r9, [0x00515150]
mov edx, 0x4e15
lea r8, [0x0051500b]
lea rcx, [0x00515028]
call sym.ggml_abort
nop
cmp qword [rdx + 8], 0
jne 0x4804dc
lea r9, [0x005150c0]
mov edx, 0x4e13
lea r8, [0x0051500b]
lea rcx, [0x00515028]
call sym.ggml_abort
nop word [rax + rax]
cmp qword [rcx + 8], 0
jne 0x480501
lea r9, [0x005150c0]
mov edx, 0x4e13
lea r8, [0x0051500b]
lea rcx, [0x00515028]
call sym.ggml_abort
nop word [rax + rax]
cmp al, 8
jne 0x480501
cmp qword [rcx + 8], 0
jne 0x480501
lea r9, [0x00515198]
mov edx, 0x4e16
lea r8, [0x0051500b]
lea rcx, [0x00515028]
call sym.ggml_abort
lea r9, [0x00515108]
mov edx, 0x4e14
lea r8, [0x0051500b]
lea rcx, [0x00515028]
call sym.ggml_abort
lea r9, [0x00515108]
mov edx, 0x4e14
lea r8, [0x0051500b]
lea rcx, [0x00515028]
call sym.ggml_abort
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop