joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400013d0
Capabilities:
Access peb ldr_data
Encode data using xor
Get process filename
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x60
xor eax, eax
xorps xmm0, xmm0
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x70], rax
mov eax, 9
movups xmmword [rsp + 0x20], xmm0
mov word [rsp + 0x20], ax
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x40], xmm0
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x140001497
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x140001497
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rcx, [rdi + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x140001492
nop
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x140001470
cmp r8d, 0x20a0780
je 0x14000149c
test r9d, r9d
jne 0x140001450
mov rax, qword [rax]
jmp 0x140001420
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
add rax, r10
call rax
mov eax, eax
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x40], rax
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x140001557
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x140001557
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rcx, [rdi + r9*4]
mov ecx, dword [rcx + r10]
add rcx, r10
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x140001552
nop
movsx edx, dl
lea rcx, [rcx + 1]
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx - 1]
test dl, dl
jne 0x140001530
cmp r8d, 0x218059d
je 0x14000155c
test r9d, r9d
jne 0x140001510
mov rax, qword [rax]
jmp 0x1400014e0
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
lea rcx, [rsp + 0x20]
add rax, r10
call rax
mov rax, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x78]
add rsp, 0x60
pop rdi
ret
Function at 0x140001630
Capabilities:
Access peb ldr_data
Encode data using xor
Get kernel32 base address
Get process filename
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x60
xor eax, eax
xorps xmm0, xmm0
mov qword [rsp + 0x50], rax
mov rsi, rcx
movups xmmword [rsp + 0x20], xmm0
mov eax, setsockopt
mov word [rsp + 0x20], ax
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x40], xmm0
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x1400016f7
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x1400016f7
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rcx, [rdi + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x1400016f2
nop
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x1400016d0
cmp r8d, 0x20a0780
je 0x1400016fc
test r9d, r9d
jne 0x1400016b0
mov rax, qword [rax]
jmp 0x140001680
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
add rax, r10
call rax
mov eax, eax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x40], rsi
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x1400017b7
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x1400017b7
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rcx, [rdi + r9*4]
mov ecx, dword [rcx + r10]
add rcx, r10
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x1400017b2
nop
movsx edx, dl
lea rcx, [rcx + 1]
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx - 1]
test dl, dl
jne 0x140001790
cmp r8d, 0x218059d
je 0x1400017bc
test r9d, r9d
jne 0x140001770
mov rax, qword [rax]
jmp 0x140001740
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
lea rcx, [rsp + 0x20]
add rax, r10
call rax
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x60
pop rdi
ret
Function at 0x1400017f0
Capabilities:
Access peb ldr_data
Encode data using xor
Get ntdll base address
Get process filename
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x60
xor eax, eax
xorps xmm0, xmm0
mov qword [rsp + 0x50], rax
mov eax, 0x18
movups xmmword [rsp + 0x20], xmm0
mov word [rsp + 0x20], ax
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x40], xmm0
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x1400018a7
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x1400018a7
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rcx, [rdi + r9*4]
mov ecx, dword [rcx + r10]
add rcx, r10
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x1400018a2
nop
movsx edx, dl
lea rcx, [rcx + 1]
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx - 1]
test dl, dl
jne 0x140001880
cmp r8d, 0x20a0780
je 0x1400018ac
test r9d, r9d
jne 0x140001860
mov rax, qword [rax]
jmp 0x140001830
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
add rax, r10
call rax
mov eax, eax
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x30], rax
call fcn.140001030
mov rbx, qword [rsp + 0x70]
add rsp, 0x60
pop rdi
ret

Function at 0x1400018f0
Capabilities:
Access peb ldr_data
Encode data using xor
Get ntdll base address
Get process filename
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x60
xor eax, eax
xorps xmm0, xmm0
mov qword [rsp + 0x50], rax
mov eax, 0x19
movups xmmword [rsp + 0x20], xmm0
mov word [rsp + 0x20], ax
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x40], xmm0
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x1400019a7
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x1400019a7
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rcx, [rdi + r9*4]
mov ecx, dword [rcx + r10]
add rcx, r10
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x1400019a2
nop
movsx edx, dl
lea rcx, [rcx + 1]
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx - 1]
test dl, dl
jne 0x140001980
cmp r8d, 0x20a0780
je 0x1400019ac
test r9d, r9d
jne 0x140001960
mov rax, qword [rax]
jmp 0x140001930
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
add rax, r10
call rax
mov eax, eax
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x30], rax
call fcn.140001030
mov rbx, qword [rsp + 0x70]
add rsp, 0x60
pop rdi
ret
Function at 0x1400019f0
Capabilities:
Access peb ldr_data
Encode data using xor
Get ntdll base address
Get process filename
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x60
xor eax, eax
xorps xmm0, xmm0
mov qword [rsp + 0x50], rax
mov eax, 0x1a
movups xmmword [rsp + 0x20], xmm0
mov word [rsp + 0x20], ax
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x40], xmm0
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x140001aa7
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x140001aa7
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rcx, [rdi + r9*4]
mov ecx, dword [rcx + r10]
add rcx, r10
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x140001aa2
nop
movsx edx, dl
lea rcx, [rcx + 1]
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx - 1]
test dl, dl
jne 0x140001a80
cmp r8d, 0x20a0780
je 0x140001aac
test r9d, r9d
jne 0x140001a60
mov rax, qword [rax]
jmp 0x140001a30
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
add rax, r10
call rax
mov eax, eax
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x30], rax
call fcn.140001030
mov rbx, qword [rsp + 0x70]
add rsp, 0x60
pop rdi
ret

Function at 0x140001af0
Capabilities:
Access peb ldr_data
Encode data using xor
Get ntdll base address
Get process filename
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x60
xor eax, eax
xorps xmm0, xmm0
mov qword [rsp + 0x50], rax
mov eax, 0x1c
movups xmmword [rsp + 0x20], xmm0
mov word [rsp + 0x20], ax
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x40], xmm0
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x140001ba7
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x140001ba7
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rcx, [rdi + r9*4]
mov ecx, dword [rcx + r10]
add rcx, r10
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x140001ba2
nop
movsx edx, dl
lea rcx, [rcx + 1]
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx - 1]
test dl, dl
jne 0x140001b80
cmp r8d, 0x20a0780
je 0x140001bac
test r9d, r9d
jne 0x140001b60
mov rax, qword [rax]
jmp 0x140001b30
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
add rax, r10
call rax
mov eax, eax
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x30], rax
call fcn.140001030
mov rbx, qword [rsp + 0x70]
add rsp, 0x60
pop rdi
ret
Function at 0x1400034c0
Capabilities:
Access peb ldr_data
Encode data using xor
Get file size
Hash data using fnv
Resolve function by fnv-1a hash
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x60
xor eax, eax
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x80], rax
mov r14, rdx
movups xmmword [rsp + 0x50], xmm0
mov rax, qword gs:[0x60]
mov rsi, rcx
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x140003577
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x140003577
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rcx, [rdi + r9*4]
mov ecx, dword [rcx + r10]
add rcx, r10
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x140003572
nop
movsx edx, dl
lea rcx, [rcx + 1]
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx - 1]
test dl, dl
jne 0x140003550
cmp r8d, 0xafcab3c4
je 0x14000357c
test r9d, r9d
jne 0x140003530
mov rax, qword [rax]
jmp 0x140003500
mov ecx, dword [rbx + 0x24]
add rcx, r10
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], pe_nt_image_headers64
mov dword [rsp + 0x20], 3
movzx edx, word [rcx + r9*2]
xor r9d, r9d
mov ecx, dword [rbx + 0x1c]
add rcx, r10
lea r8d, [r9 + 1]
mov eax, dword [rcx + rdx*4]
mov edx, 0x81
add rax, r10
mov rcx, rsi
call rax
mov rbp, rax
lea rcx, [rax - 1]
cmp rcx, 0xfffffffffffffffd
ja 0x1400036e6
lea rdx, [rsp + 0x80]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x1400036e6
mov rdx, qword [rsp + 0x80]
mov r9d, 4
mov r8d, 0x3000
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rsi, rax
test rax, rax
je 0x1400036e6
mov rcx, qword gs:[0x60]
mov rcx, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x10]
mov r10, qword [rcx + 0x30]
movsxd rdx, dword [r10 + 0x3c]
mov ebx, dword [rdx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x140003697
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x140003697
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rax, [rdi + r9*4]
mov edx, dword [rax + r10]
add rdx, r10
movzx eax, byte [rdx]
inc rdx
test al, al
je 0x140003692
nop
movsx eax, al
lea rdx, [rdx + 1]
xor eax, r8d
imul r8d, eax, 0x1000193
movzx eax, byte [rdx - 1]
test al, al
jne 0x140003670
cmp r8d, 0x6186abbe
je 0x14000369c
test r9d, r9d
jne 0x140003650
mov rcx, qword [rcx]
jmp 0x140003620
mov ecx, dword [rbx + 0x24]
mov r8d, dword [rsp + 0x80]
add rcx, r10
mov qword [rsp + 0x20], 0
movzx edx, word [rcx + r9*2]
lea r9, [rsp + 0x40]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
mov rdx, rsi
add rax, r10
mov rcx, rbp
call rax
test eax, eax
jne 0x1400036fd
xor edx, edx
mov r8d, 0x8000
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
xor eax, eax
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rsp + 0x80]
mov qword [r14], rax
mov rax, rsi
jmp 0x1400036e8
Function at 0x14001ae70
Capabilities:
Access peb ldr_data
Encode data using xor

Disassembly:
sub rsp, 0x28
call fcn.1400012d0
add rsp, 0x28
jmp fcn.140006c50

Function at 0x14001af30
Capabilities:
Access peb ldr_data
Encode data using xor
Get ntdll base address
Get process filename
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x40
mov dword [rsp + 0x50], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
movups xmmword [rsp + 0x30], xmm0
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x14001afd7
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x14001afd7
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rcx, [rdi + r9*4]
mov ecx, dword [rcx + r10]
add rcx, r10
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x14001afd2
nop
movsx edx, dl
lea rcx, [rcx + 1]
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx - 1]
test dl, dl
jne 0x14001afb0
cmp r8d, 0x7a43974a
je 0x14001afdc
test r9d, r9d
jne 0x14001af90
mov rax, qword [rax]
jmp 0x14001af60
mov ecx, dword [rbx + 0x24]
mov r8d, 0x20
add rcx, r10
movzx edx, word [rcx + r9*2]
lea r9, [rsp + 0x50]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
lea rdx, [rsp + 0x20]
add rax, r10
lea ecx, [r8 + 0x3a]
call rax
cmp dword [rsp + 0x30], 2
mov rbx, qword [rsp + 0x58]
sete al
add rsp, 0x40
pop rdi
ret
Function at 0x14001cc60
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
mov eax, 0x5a4d
mov r10, rcx
cmp word [rcx], ax
jne 0x14001cd11
movsxd rax, dword [rcx + 0x3c]
add rax, rcx
cmp dword [rax], 0x4550
jne 0x14001cd11
movzx edi, word [rax + 6]
test di, di
je 0x14001cd11
movzx edx, word [rax + 0x14]
xor r9d, r9d
mov r11d, dword [rax + 0x50]
add rdx, rax
add r11, 0xfff
and r11, 0xfffffffffffff000
mov ecx, dword [rdx + 0x24]
lea r8, [rcx + r10]
cmp r11, rcx
jb 0x14001cd11
add rdx, 0x20
cmp r8, r10
jb 0x14001cd11
mov ebx, dword [rdx + 8]
lea r8d, [rbx + 1]
and r8d, 0xfffffffe
cmp r8d, ebx
jb 0x14001cd11
mov eax, dword [rdx]
test eax, eax
cmove eax, ebx
add eax, ecx
cmp eax, ecx
jb 0x14001cd11
cmp r11, rax
jb 0x14001cd11
lea eax, [r8 + rcx]
cmp eax, ecx
jb 0x14001cd11
cmp r11, rax
jb 0x14001cd11
inc r9w
add rdx, 0x28
cmp r9w, di
jae 0x14001cd1e
mov ecx, dword [rdx + 4]
lea r8, [rcx + r10]
cmp r11, rcx
jae 0x14001ccc3
xor al, al
mov rbx, qword [rsp + 8]
mov rdi, qword [rsp + 0x10]
ret
mov rbx, qword [rsp + 8]
mov al, 1
mov rdi, qword [rsp + 0x10]
ret
Function at 0x14001df00
Capabilities:
Receive data
Receive data on socket

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], rbx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0xb0
mov rax, qword [0x140142248]
xor rax, rsp
mov qword [rsp + 0xa8], rax
mov rbx, r9
mov r12, rdx
mov r14, rcx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x70], 0x1010
xor edi, edi
mov qword [r11 - 0x50], 8
mov dword [r11 - 0x40], edi
mov dword [r11 - 0x58], edi
xor r15b, r15b
mov qword [r11 - 0x38], rdi
lea rax, [r11 - 0x38]
mov qword [r11 - 0x48], rax
mov qword [rsp + 0x48], rbx
xor edx, edx
mov r8d, 0x1010
mov rcx, r12
call fcn.1400a5760
lea r8d, [rdi + 0x21]
mov rdx, qword [rbx + 0x18]
mov rcx, r14
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rbx
lea rax, [rsp + 0x98]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x80]
lea r8d, [rdi + 1]
lea rdx, [rsp + 0x88]
mov rcx, r14
call qword [sym.imp.WS2_32.dll_WSARecv]
test eax, eax
je 0x14001e048
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
jne 0x14001e17e
nop dword [rax + rax]
nop
mov edx, 0xffffffff
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
je 0x14001e17e
lea rax, [rsp + 0x98]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rsp + 0x80]
mov rdx, rbx
mov rcx, r14
call qword [sym.imp.WS2_32.dll_WSAGetOverlappedResult]
test eax, eax
je 0x14001e17e
lea rcx, [rbx + 0x18]
call qword [sym.imp.WS2_32.dll_WSAResetEvent]
jmp 0x14001e04b
mov r15b, 1
mov rax, qword [rsp + 0xa0]
cmp rax, qword [rsp + 0x70]
ja 0x14001e17e
mov qword [rsp + 0x90], r12
mov dword [rsp + 0x88], eax
mov dword [rsp + 0x80], edi
nop dword [rax]
nop dword [rax + rax]
mov edx, 0x64
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
je 0x14001e17e
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.WS2_32.dll_WSAResetEvent]
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rbx
lea rax, [rsp + 0x98]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x80]
mov r8d, 1
lea rdx, [rsp + 0x88]
mov rcx, r14
call qword [sym.imp.WS2_32.dll_WSARecv]
test eax, eax
je 0x14001e1aa
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
jne 0x14001e17e
mov edx, 0xffffffff
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
je 0x14001e17e
lea rax, [rsp + 0x98]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rsp + 0x80]
mov rdx, rbx
mov rcx, r14
call qword [sym.imp.WS2_32.dll_WSAGetOverlappedResult]
test eax, eax
je 0x14001e17e
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.WS2_32.dll_WSAResetEvent]
mov edx, dword [rsp + 0x88]
test edx, edx
je 0x14001e167
mov ecx, dword [rsp + 0x80]
add qword [rsp + 0x90], rcx
sub edx, ecx
mov dword [rsp + 0x88], edx
mov dword [rsp + 0x80], edi
jne 0x14001e080
mov r15b, 1
lea r8, [rbx + 0xd0]
mov edx, 0x1010
mov rcx, r12
call fcn.14005e620
movzx eax, r15b
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.1400a3970
mov rbx, qword [rsp + 0xf0]
add rsp, 0xb0
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
mov edx, dword [rsp + 0x88]
test edx, edx
je 0x14001e16a
jmp 0x14001e142
Function at 0x14001fde0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov qword [rsp + 8], rbx
mov r11d, dword [r8 + 0x180]
mov r10, rcx
mov dword [rsp + 0x10], 0x3020100
mov rbx, r8
mov ecx, dword [rsp + 0x10]
mov r9d, 1
mov dword [r8 + 0x188], ecx
nop dword [rax + rax]
mov eax, r9d
add ecx, 0x4040404
inc r9d
mov dword [r8 + rax*4 + 0x188], ecx
cmp r9d, r11d
jbe 0x14001fe10
xor r8d, r8d
test edx, edx
je 0x14001fe81
mov r9d, edx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r10]
or r8d, eax
movzx ecx, byte [rax + rbx + 0x188]
mov byte [r10], cl
mov byte [rbx + 0x187], cl
nop dword [rax + rax]
movzx ecx, byte [rax + rbx + 0x187]
mov rdx, rax
sub rax, 1
mov byte [rdx + rbx + 0x188], cl
jns 0x14001fe60
inc r10
sub r9, 1
jne 0x14001fe40
shr r8d, 2
mov dword [rbx + 0x180], r8d
mov rbx, qword [rsp + 8]
ret
Function at 0x140024d90
Capabilities:
Enumerate pe sections

Disassembly:
mov r11, rcx
cmp r8, 0x20
jb 0x140024f40
mov r10d, dword [rcx + 0x1c]
movzx edx, byte [r9]
inc edx
movzx eax, byte [r9 + 1]
imul edx, r10d
inc eax
movzx r8d, byte [r9 + 2]
movzx ecx, byte [r9 + 3]
inc r8d
inc ecx
add edx, eax
imul edx, r10d
add r8d, edx
movzx edx, byte [r9 + 4]
inc edx
imul r8d, r10d
add ecx, r8d
imul ecx, r10d
add edx, ecx
movzx ecx, byte [r9 + 5]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 6]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 7]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 8]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 9]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0xa]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0xb]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0xc]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0xd]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0xe]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0xf]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0x10]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0x11]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0x12]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0x13]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0x14]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0x15]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0x16]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0x17]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0x18]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0x19]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0x1a]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0x1b]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0x1c]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0x1d]
imul edx, r10d
inc ecx
add ecx, edx
movzx edx, byte [r9 + 0x1e]
imul ecx, r10d
inc edx
add edx, ecx
movzx ecx, byte [r9 + 0x1f]
imul edx, r10d
inc ecx
add ecx, edx
mov dword [r11], ecx
ret
Function at 0x14005e5a0
Capabilities:
Encode data using xor
Encrypt data using aes via x86 extensions

Disassembly:
shr rdx, 4
test rdx, rdx
je 0x14005e617
nop dword [rax]
movdqu xmm0, xmmword [rcx]
lea rcx, [rcx + 0x10]
pxor xmm0, xmmword [r8]
aesenc xmm0, xmmword [r8 + 0x10]
aesenc xmm0, xmmword [r8 + 0x20]
aesenc xmm0, xmmword [r8 + 0x30]
aesenc xmm0, xmmword [r8 + 0x40]
aesenc xmm0, xmmword [r8 + 0x50]
aesenc xmm0, xmmword [r8 + 0x60]
aesenc xmm0, xmmword [r8 + 0x70]
aesenc xmm0, xmmword [r8 + 0x80]
aesenc xmm0, xmmword [r8 + 0x90]
aesenclast xmm0, xmmword [r8 + 0xa0]
movdqu xmmword [rcx - 0x10], xmm0
sub rdx, 1
jne 0x14005e5b0
ret

Function at 0x14005e620
Capabilities:
Decrypt data using aes via x86 extensions
Encode data using xor

Disassembly:
shr rdx, 4
test rdx, rdx
je 0x14005e697
nop dword [rax]
movdqu xmm0, xmmword [rcx]
lea rcx, [rcx + 0x10]
pxor xmm0, xmmword [r8]
aesdec xmm0, xmmword [r8 + 0x10]
aesdec xmm0, xmmword [r8 + 0x20]
aesdec xmm0, xmmword [r8 + 0x30]
aesdec xmm0, xmmword [r8 + 0x40]
aesdec xmm0, xmmword [r8 + 0x50]
aesdec xmm0, xmmword [r8 + 0x60]
aesdec xmm0, xmmword [r8 + 0x70]
aesdec xmm0, xmmword [r8 + 0x80]
aesdec xmm0, xmmword [r8 + 0x90]
aesdeclast xmm0, xmmword [r8 + 0xa0]
movdqu xmmword [rcx - 0x10], xmm0
sub rdx, 1
jne 0x14005e630
ret