joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400a5700
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r13
push r14
sub rsp, 0x50
mov edi, r8d
mov r13, rdx
mov r14, rcx
call fcn.140096130
xor ebx, ebx
cmp qword [0x1400fbc80], rbx
mov rbp, rax
mov dword [rsp + 0x98], ebx
mov dword [rsp + 0x30], ebx
jne 0x1400a582c
lea rcx, str.USER32.DLL
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
mov rsi, rax
je 0x1400a593f
lea rdx, str.MessageBoxA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x1400a593f
mov rcx, rax
call fcn.140096060
lea rdx, [0x1400bfec0]
mov rcx, rsi
mov qword [0x1400fbc80], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call fcn.140096060
lea rdx, [0x1400bfea8]
mov rcx, rsi
mov qword [0x1400fbc88], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call fcn.140096060
lea rcx, [rsp + 0x98]
mov qword [0x1400fbc90], rax
call fcn.140093d40
test eax, eax
je 0x1400a57df
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.140096a00
cmp dword [rsp + 0x98], 2
jne 0x1400a582c
lea rdx, str.GetUserObjectInformationA
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call fcn.140096060
test rax, rax
mov qword [0x1400fbca0], rax
je 0x1400a582c
lea rdx, str.GetProcessWindowStation
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call fcn.140096060
mov qword [0x1400fbc98], rax
mov rcx, qword [0x1400fbc98]
mov qword [rsp + 0x80], r12
cmp rcx, rbp
je 0x1400a58d8
cmp qword [0x1400fbca0], rbp
je 0x1400a58d8
call fcn.140096220
mov rcx, qword [0x1400fbca0]
mov rsi, rax
call fcn.140096220
test rsi, rsi
mov r12, rax
je 0x1400a58d8
test rax, rax
je 0x1400a58d8
call rsi
test rax, rax
je 0x1400a58a3
lea rcx, [rsp + 0x34]
mov r9d, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
lea r8, [rsp + 0x38]
mov qword [rsp + 0x20], rcx
lea edx, [r9 - 0xb]
mov rcx, rax
call r12
test eax, eax
je 0x1400a58a3
test byte [rsp + 0x40], 1
jne 0x1400a58d8
lea rcx, [rsp + 0x30]
call fcn.140093d90
test eax, eax
je 0x1400a58c5
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.140096a00
cmp dword [rsp + 0x30], 4
jb 0x1400a58d2
bts edi, 0x15
jmp 0x1400a5916
bts edi, 0x12
jmp 0x1400a5916
mov rcx, qword [0x1400fbc88]
cmp rcx, rbp
je 0x1400a5916
call fcn.140096220
test rax, rax
je 0x1400a5916
call rax
test rax, rax
mov rbx, rax
je 0x1400a5916
mov rcx, qword [0x1400fbc90]
cmp rcx, rbp
je 0x1400a5916
call fcn.140096220
test rax, rax
je 0x1400a5916
mov rcx, rbx
call rax
mov rbx, rax
mov rcx, qword [0x1400fbc80]
call fcn.140096220
mov r12, qword [rsp + 0x80]
test rax, rax
je 0x1400a593f
mov r9d, edi
mov r8, r13
mov rdx, r14
mov rcx, rbx
call rax
jmp 0x1400a5941
xor eax, eax
mov rbx, qword [rsp + 0x88]
add rsp, 0x50
pop r14
pop r13
pop rdi
pop rsi
pop rbp
ret
Function at 0x1400a8280
Capabilities:
Get geographical location

Disassembly:
sub rsp, 0x38
mov rax, qword [0x1400f2bd8]
xor rax, rsp
mov qword [rsp + 0x28], rax
lea r8, [rsp + 0x20]
mov r9d, 6
mov edx, 0x1004
mov byte [rsp + 0x26], 0
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
jne 0x1400a82c7
or eax, 0xffffffff
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.14008f240
add rsp, 0x38
ret
lea rcx, [rsp + 0x20]
call fcn.1400ab740
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.14008f240
add rsp, 0x38
ret

Function at 0x1400ab9f0
Capabilities:
Clear file content

Disassembly:
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r13
sub rsp, 0x20
mov rbp, rdx
xor edi, edi
xor edx, edx
lea r8d, [rdi + 1]
mov esi, ecx
call fcn.1400a59d0
cmp rax, 0xffffffffffffffff
mov r13, rax
je 0x1400abb94
lea r8d, [rdi + 2]
xor edx, edx
mov ecx, esi
call fcn.1400a59d0
cmp rax, 0xffffffffffffffff
je 0x1400abb94
mov qword [rsp + 0x40], rbx
mov rbx, rbp
mov qword [rsp + 0x50], r14
sub rbx, rax
test rbx, rbx
jle 0x1400abb13
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r14d, 0x1000
lea edx, [rdi + 8]
mov rcx, rax
mov r8, r14
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
mov rbp, rax
jne 0x1400aba99
call fcn.140093150
mov dword [rax], reloc.OLEAUT32.dll_VariantTimeToDosDateTime
call fcn.140093150
mov eax, dword [rax]
mov rbx, qword [rsp + 0x40]
mov r14, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
add rsp, 0x20
pop r13
pop rdi
pop rsi
ret
mov edx, 0x8000
mov ecx, esi
mov qword [rsp + 0x48], r12
call fcn.1400abbb0
mov r12d, eax
nop
mov r8d, ebx
cmp rbx, r14
mov rdx, rbp
cmovge r8d, r14d
mov ecx, esi
call fcn.1400998d0
cmp eax, 0xffffffff
je 0x1400abad5
cdqe
sub rbx, rax
test rbx, rbx
jg 0x1400abab0
jmp 0x1400abaee
call fcn.140093180
cmp dword [rax], 5
jne 0x1400abaea
call fcn.140093150
mov dword [rax], SafeArrayGetDim
or rdi, 0xffffffffffffffff
mov edx, r12d
mov ecx, esi
call fcn.1400abbb0
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbp
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r12, qword [rsp + 0x48]
jmp 0x1400abb6c
test rbx, rbx
jns 0x1400abb76
xor r8d, r8d
mov rdx, rbp
mov ecx, esi
call fcn.1400a59d0
cmp rax, 0xffffffffffffffff
je 0x1400aba7a
mov ecx, esi
call fcn.1400a7030
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
neg eax
sbb rdi, rdi
neg rdi
sub rdi, 1
cmp rdi, 0xffffffffffffffff
jne 0x1400abb76
call fcn.140093150
mov dword [rax], SafeArrayGetDim
call fcn.140093180
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbx], eax
cmp rdi, 0xffffffffffffffff
je 0x1400aba7a
xor r8d, r8d
mov rdx, r13
mov ecx, esi
call fcn.1400a59d0
cmp rax, 0xffffffffffffffff
je 0x1400aba7a
xor eax, eax
jmp 0x1400aba81
call fcn.140093150
mov rbp, qword [rsp + 0x58]
mov eax, dword [rax]
add rsp, 0x20
pop r13
pop rdi
pop rsi
ret
Function at 0x1400b039c
Capabilities:
Check os version

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0xd0
mov rax, qword [0x1400f2bd8]
xor rax, rsp
mov qword [rsp + 0xc0], rax
xor edx, edx
mov rbx, rcx
lea r8d, [rdx + 0x28]
add rcx, r8
call fcn.1400935f0
and qword [rbx + 0x50], 0
and dword [rbx + 0x58], 0
and dword [rbx + 0x5c], 0
lea rax, [0x140000000]
mov esi, 0x94
lea rcx, [rsp + 0x20]
mov r8, rsi
xor edx, edx
mov qword [rbx + 0x10], rax
mov qword [rbx + 8], rax
mov dword [rbx], 0x60
mov byte [rbx + 0x18], 0
call fcn.1400935f0
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], esi
call qword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [rsp + 0x30], 2
mov esi, 1
jne 0x1400b042f
cmp dword [rsp + 0x24], 5
jb 0x1400b0449
jmp 0x1400b0445
cmp dword [rsp + 0x30], esi
jne 0x1400b0449
cmp dword [rsp + 0x24], 4
ja 0x1400b0445
jne 0x1400b0449
cmp dword [rsp + 0x28], 0
jbe 0x1400b0449
mov byte [rbx + 0x18], sil
lea rax, [0x1400c19f8]
lea rcx, [rbx + 0x28]
mov dword [rbx + 0x1c], 0x800
mov qword [rbx + 0x20], rax
call fcn.1400599c0
movzx ecx, byte [0x1400fd5f8]
test eax, eax
mov rax, rbx
cmovs ecx, esi
mov byte [0x1400fd5f8], cl
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.14008f240
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
Function at 0x140006040
Capabilities:
Create process on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rdi
push r14
sub rsp, 0x60
mov rax, qword [0x1400850c0]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov rbx, rdx
mov rbp, rcx
xor r14d, r14d
mov rdi, qword [rdx + 0x10]
mov rcx, rdx
cmp qword [rdx + 0x18], 0xf
jbe 0x14000607e
mov rcx, qword [rdx]
cmp rdi, 8
jne 0x1400060de
mov r8, rdi
lea rdx, str.register
call fcn.1400482c0
test eax, eax
jne 0x1400060de
mov dword [rsp + 0x28], 5
mov qword [rsp + 0x20], r14
xor r9d, r9d
lea r8, str.https:__flingtrainer.com_cn_community_register_
xor edx, edx
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.14002c020
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x80]
add rsp, 0x60
pop r14
ret
cmp qword [rbx + 0x18], 0xf
jbe 0x1400060e8
mov rbx, qword [rbx]
cmp rdi, 5
jne 0x1400060b8
mov r8, rdi
lea rdx, str.login
mov rcx, rbx
call fcn.1400482c0
test eax, eax
jne 0x1400060b8
lea ecx, [rdi + 3]
call fcn.14002bb00
test rax, rax
je 0x140006116
mov qword [rax], rbp
jmp 0x140006119
mov rax, r14
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r14d
mov r9, rax
lea r8, [0x140004ad0]
xor edx, edx
xor ecx, ecx
call fcn.140033500
mov qword [rsp + 0x30], rax
test rax, rax
je 0x14000617a
cmp dword [rsp + 0x38], 0
je 0x14000616f
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x40], xmm0
lea rcx, [rsp + 0x40]
call fcn.140029ef8
test eax, eax
jne 0x14000616f
jmp 0x1400060b8
mov ecx, 1
call fcn.14002a2dc
nop
mov dword [rsp + 0x38], r14d
mov ecx, 6
call fcn.14002a2dc
int3
Function at 0x14000cc60
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x30
mov rdi, r8
mov rsi, rdx
sub rdi, rdx
mov rbp, rcx
sar rdi, 2
test rdi, rdi
je 0x14000ce3f
mov qword [rsp + 0x50], rbx
mov rbx, qword [rcx + 8]
sub rbx, qword [rcx]
mov qword [rsp + 0x60], r13
sar rbx, 2
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r15
cmp rdi, 0x26f
jb 0x14000ccb0
mov eax, ntohs
jmp 0x14000ccde
cmp rdi, 0x44
jb 0x14000ccbd
mov eax, 7
jmp 0x14000ccde
cmp rdi, 0x27
jb 0x14000ccca
mov eax, 5
jmp 0x14000ccde
cmp rdi, 7
jb 0x14000ccd7
mov eax, 3
jmp 0x14000ccde
lea rax, [rdi - 1]
shr rax, 1
mov r14, rdi
lea r15, [rbx + 1]
sub r14, rax
shr r14, 1
lea r13, [r14 + rax]
cmp rdi, rbx
jbe 0x14000ccf7
mov r15, rdi
mov r8, rdi
mov edx, 0x8b8b8b8b
shl r8, 2
mov rcx, rsi
call fcn.140048a60
xor ecx, ecx
test r15, r15
je 0x14000cdaf
mov qword [rsp + 0x58], r12
nop dword [rax + rax]
xor edx, edx
lea rax, [rcx + r14]
div rdi
mov r11d, dword [rsi + rdx*4]
lea r10, [rsi + rdx*4]
xor edx, edx
mov rax, rcx
div rdi
lea r12, [rsi + rdx*4]
mov r8d, r11d
mov r9, rdx
lea rax, [rcx - 1]
xor edx, edx
div rdi
xor r8d, dword [rsi + rdx*4]
xor r8d, dword [r12]
mov eax, r8d
shr eax, 0x1b
xor eax, r8d
imul edx, eax, 0x19660d
test rcx, rcx
jne 0x14000cd6d
mov rax, rbx
jmp 0x14000cd82
cmp rcx, rbx
ja 0x14000cd7f
mov rax, qword [rbp]
mov eax, dword [rax + rcx*4 - 4]
add rax, r9
jmp 0x14000cd82
mov rax, r9
lea r8d, [rax + rdx]
lea eax, [r11 + rdx]
xor edx, edx
mov dword [r10], eax
lea rax, [rcx + r13]
div rdi
inc rcx
add dword [rsi + rdx*4], r8d
mov dword [r12], r8d
cmp rcx, r15
jb 0x14000cd20
mov r12, qword [rsp + 0x58]
add r15, rdi
cmp rcx, r15
jae 0x14000ce2b
inc r14
lea rbp, [rcx - 1]
inc r13
xor edx, edx
lea rax, [r14 + rbp]
div rdi
mov r10d, dword [rsi + rdx*4]
lea r11, [rsi + rdx*4]
xor edx, edx
lea rbx, [rbp + 1]
mov rax, rbx
div rdi
mov rax, rbp
mov r9, rdx
xor edx, edx
div rdi
mov ecx, dword [rsi + rdx*4]
xor edx, edx
add ecx, r10d
add ecx, dword [rsi + r9*4]
mov eax, ecx
shr eax, 0x1b
xor eax, ecx
imul ecx, eax, 0x5d588b65
mov rax, rbp
add rax, r13
mov rbp, rbx
div rdi
xor r10d, ecx
lea rax, [rbx + 1]
mov dword [r11], r10d
mov r8d, ecx
sub r8d, r9d
xor dword [rsi + rdx*4], r8d
mov dword [rsi + r9*4], r8d
cmp rax, r15
jb 0x14000cdc1
mov r14, qword [rsp + 0x28]
mov r13, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x50]
mov r15, qword [rsp + 0x20]
add rsp, 0x30
pop rdi
pop rsi
pop rbp
ret
Function at 0x14001b150
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov esi, edx
mov dword [rcx + 0x74], 0
mov rbx, rcx
mov edi, 0x7fffffff
movsx ecx, byte [rbx + 0x78]
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x14001b21c
lea r8d, [rcx - 0x30]
cmp r8d, 0xffffffff
je 0x14001b21c
mov r9d, dword [rbx + 0x74]
mov ecx, 0x7fffffff
sub ecx, r8d
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp r9d, edx
jg 0x14001b235
lea eax, [r9 + r9*4]
dec edi
lea ecx, [r8 + rax*2]
mov rax, qword [rbx]
mov dword [rbx + 0x74], ecx
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x14001b20c
cmp byte [rax], 0x5c
jne 0x14001b206
lea rdx, [rax + 1]
cmp rdx, rcx
je 0x14001b206
mov r8d, dword [rbx + 0x80]
test r8b, 8
jne 0x14001b1f2
movzx ecx, byte [rdx]
sub cl, 0x28
cmp cl, 1
jbe 0x14001b203
test r8b, 0x10
jne 0x14001b206
movzx ecx, byte [rdx]
sub cl, 0x7b
test cl, 0xfd
jne 0x14001b206
mov rax, rdx
inc rax
mov qword [rbx], rax
mov rcx, rbx
call fcn.14001f380
test edi, edi
jne 0x14001b170
mov rbx, qword [rsp + 0x30]
cmp edi, 0x7fffffff
mov rsi, qword [rsp + 0x38]
setne al
add rsp, 0x20
pop rdi
ret
mov edx, esi
mov rcx, rbx
call fcn.14001d0c0
int3
Function at 0x14001fc90
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov rbx, rdx
mov rdi, rcx
mov qword [rsp + 0x30], rcx
xor r14d, r14d
mov dword [rsp + 0x24], r14d
xorps xmm0, xmm0
movups xmmword [rcx], xmm0
mov qword [rcx + 0x10], r14
mov qword [rcx + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rcx], r14b
mov dword [rsp + 0x24], 1
mov rax, qword [rdx + 0x10]
cmp rax, 0xf
jbe 0x14001fcf4
movzx r8d, byte [rsp + 0x20]
mov rdx, rax
call fcn.14000b8a0
mov qword [rdi + 0x10], r14
mov rax, qword [rbx + 0x10]
mov r13d, 0xfffffffa
cmp qword [rbx + 0x18], 0xf
jbe 0x14001fd0c
mov r15, qword [rbx]
mov rcx, r15
mov rbx, r15
jmp 0x14001fd12
mov r15, rbx
mov rcx, rbx
add rax, rcx
mov qword [rsp + 0x28], rax
cmp rbx, rax
je 0x14001fe28
lea r8, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
movzx ebx, byte [rsp + 0x20]
nop
shl r14d, 8
movzx eax, byte [r15]
add r14d, eax
add r13d, 8
js 0x14001fdbf
movsxd r12, r14d
movsxd rsi, r13d
lea ecx, [r13 + 6]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 2
mov ebp, edx
imul eax, edx, 0xfffffffa
add r13d, eax
nop dword [rax]
mov rax, r12
mov rcx, rsi
sar rax, cl
and eax, 0x3f
movzx r9d, byte [rax + r8]
mov rcx, qword [rdi + 0x10]
mov rdx, qword [rdi + 0x18]
cmp rcx, rdx
jae 0x14001fd9d
lea rax, [rcx + 1]
mov qword [rdi + 0x10], rax
mov rax, rdi
cmp rdx, 0xf
jbe 0x14001fd92
mov rax, qword [rdi]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x14001fdb5
movzx r8d, bl
mov edx, 1
mov rcx, rdi
call fcn.14000b730
lea r8, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
sub rsi, 6
sub rbp, 1
jne 0x14001fd60
inc r15
cmp r15, qword [rsp + 0x28]
jne 0x14001fd30
cmp r13d, 0xfffffffa
jle 0x14001fe28
lea ecx, [r13 + 8]
shl r14d, 8
movsxd rax, r14d
sar rax, cl
and eax, 0x3f
movzx r9d, byte [rax + r8]
mov rcx, qword [rdi + 0x10]
mov rdx, qword [rdi + 0x18]
cmp rcx, rdx
jae 0x14001fe15
lea rax, [rcx + 1]
mov qword [rdi + 0x10], rax
mov rax, rdi
cmp rdx, 0xf
jbe 0x14001fe0a
mov rax, qword [rdi]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x14001fe28
movzx r8d, byte [rsp + 0x20]
mov edx, 1
mov rcx, rdi
call fcn.14000b730
mov rcx, qword [rdi + 0x10]
test cl, 3
je 0x14001fe78
movzx ebx, byte [rsp + 0x20]
mov rdx, qword [rdi + 0x18]
cmp rcx, rdx
jae 0x14001fe5b
lea rax, [rcx + 1]
mov qword [rdi + 0x10], rax
mov rax, rdi
cmp rdx, 0xf
jbe 0x14001fe53
mov rax, qword [rdi]
mov word [rax + rcx], 0x3d
jmp 0x14001fe6f
mov r9b, 0x3d
movzx r8d, bl
mov edx, 1
mov rcx, rdi
call fcn.14000b730
mov rcx, qword [rdi + 0x10]
test cl, 3
jne 0x14001fe36
mov rax, rdi
mov rbx, qword [rsp + 0x90]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret

Function at 0x140021180
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
movabs rax, 0xcbf29ce484222325
mov r9d, 0
sub r8, rdx
je 0x1400211b4
movabs r10, 0x100000001b3
nop
movzx ecx, byte [rdx + r9]
inc r9
xor rax, rcx
imul rax, r10
cmp r9, r8
jb 0x1400211a0
ret
Function at 0x140022050
Capabilities:
Resolve dns

Disassembly:
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x478
mov rax, qword [0x1400850c0]
xor rax, rsp
mov qword [rsp + 0x460], rax
movzx eax, word [rcx]
mov rsi, r9
mov rdi, r8
mov ebp, edx
mov rbx, rcx
cmp ax, 2
je 0x14002208c
cmp ax, 0x17
jne 0x14002213a
movzx ecx, word [rcx + 2]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
xor edx, edx
lea rcx, [rsp + 0x50]
mov dword [rsi], eax
mov r8d, 0x401
call fcn.140048a60
xor eax, eax
mov dword [rsp + 0x30], 2
mov dword [rsp + 0x28], eax
lea r8, [rsp + 0x50]
mov r9d, 0x401
mov qword [rsp + 0x20], rax
mov edx, ebp
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_getnameinfo]
test eax, eax
jne 0x14002213a
lea rax, [rsp + 0x50]
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rax + rbx], 0
jne 0x1400220e6
mov rax, qword [rdi + 0x18]
cmp rbx, rax
ja 0x140022120
mov rsi, rdi
cmp rax, 0xf
jbe 0x140022104
mov rsi, qword [rdi]
mov r8, rbx
mov qword [rdi + 0x10], rbx
lea rdx, [rsp + 0x50]
mov rcx, rsi
call fcn.1400483c0
mov al, 1
mov byte [rsi + rbx], 0
jmp 0x14002213c
movzx r8d, byte [rsp + 0x40]
lea r9, [rsp + 0x50]
mov rdx, rbx
mov rcx, rdi
call fcn.14000af20
mov al, 1
jmp 0x14002213c
xor al, al
mov rcx, qword [rsp + 0x460]
xor rcx, rsp
call fcn.14002c020
add rsp, 0x478
pop rdi
pop rsi
pop rbp
pop rbx
ret

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

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0xc0
mov rax, qword [0x1400850c0]
xor rax, rsp
mov qword [rsp + 0xb0], rax
mov rcx, qword [rcx + 8]
mov rdi, r8
mov rbx, rdx
mov dword [rsp + 0x20], 0x80
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x1400221b9
mov edx, dword [rsp + 0x20]
lea rcx, [rsp + 0x30]
mov r9, rdi
mov r8, rbx
call fcn.140022050
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.14002c020
mov rbx, qword [rsp + 0xe8]
add rsp, 0xc0
pop rdi
ret

Function at 0x140022dd0
Capabilities:
Get socket status

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x260
mov rax, qword [0x1400850c0]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov rax, qword [rcx + 8]
mov rdi, rcx
mov r8, qword [rcx + 0x28]
mov rdx, qword [rcx + 0x20]
mov qword [rsp + 0x48], rax
lea esi, [rax + 1]
mov dword [rsp + 0x40], 1
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x34], r8d
nop dword [rax]
lea rax, [rsp + 0x30]
xor r9d, r9d
lea r8, [rsp + 0x40]
mov qword [rsp + 0x20], rax
xor edx, edx
mov ecx, esi
call qword [sym.imp.WS2_32.dll_select]
mov ebx, eax
test eax, eax
jns 0x140022e4c
call fcn.14003389c
cmp dword [rax], 4
je 0x140022e20
test ebx, ebx
jle 0x140022e61
mov rcx, qword [rdi + 8]
call fcn.140022d40
test al, al
je 0x140022e61
mov al, 1
jmp 0x140022e63
xor al, al
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.14002c020
lea r11, [rsp + 0x260]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
Function at 0x140025210
Capabilities:
Receive data
Receive data on socket

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x20
mov edi, r9d
mov rsi, r8
mov rbp, rdx
mov r14, rcx
nop word [rax + rax]
mov r9d, edi
mov r8d, esi
mov rdx, rbp
mov rcx, r14
call qword [sym.imp.WS2_32.dll_recv]
movsxd rbx, eax
test eax, eax
jns 0x140025263
call fcn.14003389c
cmp dword [rax], 4
je 0x140025240
mov rbp, qword [rsp + 0x38]
mov rax, rbx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret

Function at 0x140026010
Capabilities:
Get socket status

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x260
mov rax, qword [0x1400850c0]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov qword [rsp + 0x48], rcx
lea edi, [rcx + 1]
mov dword [rsp + 0x40], 1
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x34], r8d
nop dword [rax + rax]
lea rax, [rsp + 0x30]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x40]
mov ecx, edi
call qword [sym.imp.WS2_32.dll_select]
movsxd rbx, eax
test eax, eax
jns 0x14002607e
call fcn.14003389c
cmp dword [rax], 4
je 0x140026050
mov rax, rbx
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.14002c020
mov rbx, qword [rsp + 0x270]
add rsp, 0x260
pop rdi
ret

Function at 0x1400277e0
Capabilities:
Send data
Send data on socket

Disassembly:
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
mov rax, qword [rcx]
mov rsi, r8
mov rbp, rdx
mov rdi, rcx
call qword [rax + reloc.WS2_32.dll_recv]
test al, al
jne 0x140027819
mov rax, 0xffffffffffffffff
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
mov rdi, qword [rdi + 8]
mov qword [rsp + 0x38], rbx
xor r9d, r9d
mov r8d, esi
mov rdx, rbp
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_send]
movsxd rbx, eax
test eax, eax
jns 0x140027845
call fcn.14003389c
cmp dword [rax], 4
je 0x140027822
mov rbp, qword [rsp + 0x40]
mov rax, rbx
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret

Function at 0x14002c678
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14002c6c2
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14002c6c2
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x14002c6c2
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14002c6c2
cmp dword [rcx + 0x84], 0xe
jbe 0x14002c6c2
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x14002c6c4
xor al, al
add rsp, 0x28
ret
Function at 0x140033390
Capabilities:
Parse pe header

Disassembly:
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
push rbp
mov rbp, rsp
sub rsp, 0x50
mov qword [rbp - 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x60], rbx
mov ebx, ecx
test r8d, r8d
jne 0x1400331fb
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x1400331fb
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x1400331fb
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x1400331fb
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x1400331fb
cmp dword [rcx + 0x84], 0xe
jbe 0x1400331fb
cmp dword [rcx + 0xf8], 0
je 0x1400331fb
mov ecx, ebx
call fcn.1400332ac
mov byte [rbp + 0x28], 0
lea rax, [rbp + 0x18]
mov qword [rbp - 0x18], rax
lea rax, [rbp + 0x20]
mov qword [rbp - 0x10], rax
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov eax, 2
mov dword [rbp - 0x2c], eax
mov dword [rbp - 0x28], eax
lea r9, [rbp - 0x2c]
lea r8, [rbp - 0x18]
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x30]
call fcn.140033088
nop
cmp dword [rbp + 0x20], 0
je 0x140033249
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rbp
ret
mov ecx, ebx
call fcn.140033254
int3
xor r8d, r8d
xor edx, edx
jmp 0x14003318c

Function at 0x140033500
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x30
xor edi, edi
mov esi, edx
mov rbp, rcx
test r8, r8
jne 0x140033537
call fcn.14003389c
mov dword [rax], reloc.WS2_32.dll_shutdown
call fcn.140032a5c
xor eax, eax
jmp 0x1400335c5
mov rdx, r9
mov rcx, r8
call fcn.14003349c
mov rbx, rax
test rax, rax
je 0x1400335c2
lea rax, [rsp + 0x50]
mov rdx, rsi
mov qword [rsp + 0x28], rax
lea r8, [0x1400333c8]
mov eax, dword [rsp + 0x60]
mov r9, rbx
mov rcx, rbp
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rdx, rax
test rax, rax
jne 0x1400335af
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.140033810
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x140033596
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x1400335a5
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, rbx
call fcn.14003b4e8
jmp 0x1400335c2
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x1400335bf
mov eax, dword [rsp + 0x50]
mov dword [rcx], eax
mov rdi, rdx
mov rax, rdi
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret