joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400a2a10
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x30
mov rsi, rdx
mov ecx, dword [0x140104050]
movzx r15d, cl
movabs rax, 0xcbf29ce484222325
xor r15, rax
movabs rdx, 0x100000001b3
imul r15, rdx
movzx eax, byte [0x140104051]
xor r15, rax
imul r15, rdx
movzx eax, byte [0x140104052]
xor r15, rax
imul r15, rdx
movzx eax, byte [0x140104053]
xor r15, rax
imul r15, rdx
mov rax, qword [0x1401023f0]
and rax, r15
add rax, rax
mov rdx, qword [0x1401023d8]
mov rbx, qword [rdx + rax*8 + 8]
mov r14, qword [0x1401023c8]
cmp rbx, r14
jne 0x1400a2aa5
mov rbx, r14
mov rbp, r14
jmp 0x1400a2ae5
mov rax, qword [rdx + rax*8]
cmp ecx, dword [rbx + 0x10]
je 0x1400a2abe
nop
cmp rbx, rax
je 0x1400a2adf
mov rbx, qword [rbx + 8]
cmp ecx, dword [rbx + 0x10]
jne 0x1400a2ab0
mov qword [rsi], rbx
mov byte [rsi + 8], 0
mov rax, rsi
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
mov r14, rbx
mov rbp, rbx
movabs rax, 0x7ffffffffffffff
cmp qword [0x1401023d0], rax
jne 0x1400a2b06
lea rcx, str.unordered_map_set_too_long
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
lea rax, [0x1401023c8]
mov qword [rsp + 0x20], rax
xor r12d, r12d
mov qword [rsp + 0x28], r12
mov ecx, 0x20
call fcn.1400aee04
mov rdi, rax
mov qword [rsp + 0x28], rax
mov eax, dword [0x140104050]
mov dword [rdi + 0x10], eax
mov qword [rdi + 0x18], r12
mov rdx, qword [0x1401023d0]
lea rcx, [rdx + 1]
xorps xmm0, xmm0
test rcx, rcx
js 0x1400a2b53
cvtsi2ss xmm0, rcx
jmp 0x1400a2b68
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mov rcx, qword [0x1401023f8]
xorps xmm1, xmm1
test rcx, rcx
js 0x1400a2b7e
cvtsi2ss xmm1, rcx
jmp 0x1400a2b93
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
divss xmm0, xmm1
comiss xmm0, dword [0x1401023c0]
jbe 0x1400a2bfe
call fcn.140066150
mov rcx, qword [0x1401023f0]
and rcx, r15
add rcx, rcx
mov rdx, qword [0x1401023d8]
mov rax, qword [rdx + rcx*8 + 8]
mov rbx, qword [0x1401023c8]
cmp rax, rbx
je 0x1400a2bea
mov rdx, qword [rdx + rcx*8]
mov ecx, dword [rdi + 0x10]
cmp ecx, dword [rax + 0x10]
je 0x1400a2be7
mov rbx, rax
cmp rax, rdx
je 0x1400a2c41
mov rax, qword [rax + 8]
cmp ecx, dword [rax + 0x10]
jne 0x1400a2bd6
mov rbx, qword [rax]
mov qword [rsp + 0x20], rbx
mov rbp, rbx
mov r14, qword [rsp + 0x20]
mov rdx, qword [0x1401023d0]
mov r8, qword [rbx + 8]
inc rdx
mov qword [0x1401023d0], rdx
mov qword [rdi], r14
mov qword [rdi + 8], r8
mov qword [r8], rdi
mov qword [rbx + 8], rdi
mov rcx, qword [0x1401023d8]
mov rax, qword [0x1401023f0]
and rax, r15
add rax, rax
mov rdx, qword [rcx + rax*8]
cmp rdx, qword [0x1401023c8]
jne 0x1400a2c48
mov qword [rcx + rax*8], rdi
jmp 0x1400a2c5a
mov qword [rsp + 0x20], rax
jmp 0x1400a2bef
cmp rdx, rbp
jne 0x1400a2c53
mov qword [rcx + rax*8], rdi
jmp 0x1400a2c5f
cmp qword [rcx + rax*8 + 8], r8
jne 0x1400a2c5f
mov qword [rcx + rax*8 + 8], rdi
mov qword [rsi], rdi
mov byte [rsi + 8], 1
jmp 0x1400a2ac5
Function at 0x1400a7810
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r14
push r15
sub rsp, 0x40
mov rax, qword [0x140102040]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0xfc
mov ecx, 4
mov rax, qword gs:[0x58]
mov rax, qword [rax]
lea r14, [0x14010213c]
lea r15, str.none
mov rdi, 0xffffffffffffffff
lea rsi, [0x1401045d0]
mov eax, dword [rcx + rax]
cmp dword [0x1401045b8], eax
jle 0x1400a790b
lea rcx, [0x1401045b8]
call fcn.1400ae888
cmp dword [0x1401045b8], edi
jne 0x1400a790b
mov dword [rsp + 0x20], 0
mov edx, dword [0x14010213c]
lea rcx, [rsp + 0x20]
test edx, edx
cmovns rcx, r14
lea rax, [rsp + 0x28]
cmp edx, 0xfc
cmovle rax, rcx
movsxd rax, dword [rax]
mov rdx, qword [r15 + rax*8]
xorps xmm0, xmm0
movups xmmword [0x1401045d0], xmm0
xorps xmm1, xmm1
movdqu xmmword [0x1401045e0], xmm1
mov r8, rdi
nop dword [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x1400a78e0
mov rcx, rsi
call fcn.140064f40
lea rcx, [0x1400b5cb0]
call fcn.1400aed74
nop
lea rcx, [0x1401045b8]
call fcn.1400ae81c
cmp byte [0x140104392], 0
je 0x1400a79ad
mov qword [rsp + 0x20], 0
xor r8d, r8d
lea rdx, [rsp + 0x20]
lea rcx, str._..._
call fcn.140045f90
xor ebx, ebx
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400a7953
inc ebx
cmp ebx, 0xfc
jl 0x1400a7937
jmp 0x1400a79f3
cmp ebx, 0x1b
cmove ebx, edi
mov dword [0x14010213c], ebx
mov dword [rsp + 0x20], 0
lea rcx, [rsp + 0x20]
test ebx, ebx
cmovns rcx, r14
lea rax, [rsp + 0x28]
cmp ebx, 0xfc
cmovle rax, rcx
movsxd rax, dword [rax]
mov rdx, qword [r15 + rax*8]
nop dword [rax + rax]
inc rdi
cmp byte [rdx + rdi], 0
jne 0x1400a7990
mov r8, rdi
mov rcx, rsi
call fcn.140076530
mov byte [0x140104392], 0
jmp 0x1400a79f3
cmp dword [0x14010213c], 0xffffffff
jne 0x1400a79bf
lea rsi, str._none_
jmp 0x1400a79cf
cmp qword [0x1401045e8], 0xf
cmova rsi, qword [0x1401045d0]
mov qword [rsp + 0x20], 0
xor r8d, r8d
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.140045f90
test al, al
je 0x1400a79f3
mov byte [0x140104392], 1
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.1400ae7c0
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x60]
mov r14, qword [rsp + 0x68]
add rsp, 0x40
pop r15
ret
Function at 0x1400acce0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
sub rsp, 0x40
mov rdi, r8
mov r14, rdx
mov r8, qword [r8 + 0x10]
mov rdx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x1400acd09
mov rdx, qword [rdi]
movabs rbx, 0xcbf29ce484222325
xor ecx, ecx
test r8, r8
je 0x1400acd43
movabs r9, 0x100000001b3
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdx + rcx]
xor rbx, rax
imul rbx, r9
inc rcx
cmp rcx, r8
jb 0x1400acd30
mov r9, rbx
mov r8, rdi
lea rdx, [rsp + 0x20]
call fcn.1400ad3e0
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x1400acd6a
mov qword [r14], rax
mov byte [r14 + 8], 0
jmp 0x1400acf2a
movabs rax, 0x492492492492492
cmp qword [0x140102330], rax
jne 0x1400acd8b
lea rcx, str.unordered_map_set_too_long
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
lea rax, [0x140102328]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 0
mov ecx, 0x38
call fcn.1400aee04
mov rsi, rax
mov qword [rsp + 0x38], rax
mov rdx, rdi
lea rcx, [rax + 0x10]
call fcn.140065600
mov rcx, qword [rdi + 0x20]
mov qword [rsi + 0x30], rcx
mov r9, qword [0x140102330]
lea rcx, [r9 + 1]
xorps xmm0, xmm0
test rcx, rcx
js 0x1400acde0
cvtsi2ss xmm0, rcx
jmp 0x1400acdf5
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mov rdi, qword [0x140102358]
xorps xmm2, xmm2
test rdi, rdi
js 0x1400ace0b
cvtsi2ss xmm2, rdi
jmp 0x1400ace23
mov rcx, rdi
shr rcx, 1
mov rax, rdi
and eax, 1
or rcx, rax
cvtsi2ss xmm2, rcx
addss xmm2, xmm2
movaps xmm1, xmm0
divss xmm1, xmm2
movss xmm3, dword [0x140102320]
comiss xmm1, xmm3
jbe 0x1400acec3
divss xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_ceilf
xor ecx, ecx
movss xmm1, dword [0x1400ee158]
comiss xmm0, xmm1
jb 0x1400ace69
subss xmm0, xmm1
comiss xmm0, xmm1
jae 0x1400ace69
movabs rax, 0x8000000000000000
mov rcx, rax
cvttss2si rax, xmm0
add rax, rcx
mov ecx, 8
cmp rax, rcx
cmova rcx, rax
cmp rdi, rcx
jae 0x1400ace9b
cmp rdi, 0x200
jae 0x1400ace98
lea rdi, [rdi*8]
cmp rdi, rcx
jae 0x1400ace9b
mov rdi, rcx
mov rdx, rdi
call fcn.1400ad160
mov r9, rbx
lea r8, [rsi + 0x10]
lea rdx, [rsp + 0x30]
call fcn.1400ad3e0
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x20], xmm0
mov r9, qword [0x140102330]
mov rdx, qword [rsp + 0x20]
mov r8, qword [rdx + 8]
inc r9
mov qword [0x140102330], r9
mov qword [rsi], rdx
mov qword [rsi + 8], r8
mov qword [r8], rsi
mov qword [rdx + 8], rsi
mov rcx, qword [0x140102338]
mov rax, qword [0x140102350]
and rax, rbx
add rax, rax
mov r9, qword [rcx + rax*8]
cmp r9, qword [0x140102328]
jne 0x1400acf0b
mov qword [rcx + rax*8], rsi
jmp 0x1400acf1d
cmp r9, rdx
jne 0x1400acf16
mov qword [rcx + rax*8], rsi
jmp 0x1400acf22
cmp qword [rcx + rax*8 + 8], r8
jne 0x1400acf22
mov qword [rcx + rax*8 + 8], rsi
mov qword [r14], rsi
mov byte [r14 + 8], 1
mov rax, r14
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x78]
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret
Function at 0x1400acf80
Capabilities:
Hash data using fnv

Disassembly:
push rdi
sub rsp, 0x20
movabs rax, 0xfffffffffffffff
mov edi, 1
bsr rcx, rax
mov eax, edi
shl rax, cl
cmp rdx, rax
jbe 0x1400acfb1
lea rcx, str.invalid_hash_bucket_count
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
lea rax, [rdx - 1]
mov qword [rsp + 0x30], rbx
mov rbx, qword [0x140102408]
or rax, rdi
bsr rcx, rax
mov r8, rbx
inc ecx
shl rdi, cl
lea rcx, [0x140102418]
lea rdx, [rdi + rdi]
call fcn.140065990
mov rax, qword [0x140102408]
lea r9, [rdi - 1]
mov qword [0x140102430], r9
mov qword [0x140102438], rdi
mov rax, qword [rax]
mov rcx, rax
cmp rax, rbx
je 0x1400ad152
mov qword [rsp + 0x40], rsi
movabs rdi, 0x100000001b3
movabs rsi, 0xcbf29ce484222325
movzx edx, byte [rax + 0x11]
movzx r11d, byte [rax + 0x10]
mov rcx, qword [rcx]
xor r11, rsi
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x12]
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x13]
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x14]
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x15]
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x16]
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x17]
imul r11, rdi
xor r11, rdx
imul r11, rdi
and r11, r9
shl r11, 4
add r11, qword [0x140102418]
mov r9, qword [r11]
cmp r9, rbx
jne 0x1400ad09c
mov qword [r11], rax
mov qword [r11 + 8], rax
jmp 0x1400ad113
mov rdx, qword [r11 + 8]
mov r8, qword [rax + 0x10]
cmp r8, qword [rdx + 0x10]
jne 0x1400ad0d9
mov r10, qword [rdx]
cmp r10, rax
je 0x1400ad0d3
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], r10
mov rdx, qword [r10 + 8]
mov qword [rdx], rax
mov qword [r10 + 8], r8
mov qword [rcx + 8], r9
mov qword [rax + 8], rdx
mov qword [r11 + 8], rax
jmp 0x1400ad113
cmp r9, rdx
je 0x1400ad0ef
nop
mov rdx, qword [rdx + 8]
cmp r8, qword [rdx + 0x10]
je 0x1400ad127
cmp r9, rdx
jne 0x1400ad0e0
mov r10, qword [rax + 8]
mov qword [r10], rcx
mov r9, qword [rcx + 8]
mov qword [r9], rdx
mov r8, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r9
mov qword [rcx + 8], r10
mov qword [rax + 8], r8
mov qword [r11], rax
mov rax, rcx
cmp rcx, rbx
je 0x1400ad14d
mov r9, qword [0x140102430]
jmp 0x1400ad021
mov r10, qword [rdx]
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], r10
mov rdx, qword [r10 + 8]
mov qword [rdx], rax
mov qword [r10 + 8], r8
mov qword [rcx + 8], r9
mov qword [rax + 8], rdx
jmp 0x1400ad113
mov rsi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x1400ad540
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov eax, 0x13e8
call fcn.1400b02f0
sub rsp, rax
movaps xmmword [rsp + 0x13d0], xmm6
movaps xmmword [rsp + 0x13c0], xmm7
mov rax, qword [0x140102040]
xor rax, rsp
mov qword [rsp + 0x13b0], rax
movaps xmm6, xmm1
movaps xmm7, xmm0
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rsp + 0x13a4], 0xffffffff
mov edx, 1
mov dword [rsp + 0x24], eax
nop
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x24], eax
inc rdx
cmp rdx, 0x270
jb 0x1400ad590
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x270
call fcn.1400673f0
xorps xmm0, xmm0
mov eax, eax
xorps xmm1, xmm1
subss xmm6, xmm7
cvtsi2ss xmm0, rax
subss xmm0, xmm1
addss xmm0, xmm1
mulss xmm0, dword [0x1400edf7c]
mulss xmm0, xmm6
addss xmm0, xmm7
mov rcx, qword [rsp + 0x13b0]
xor rcx, rsp
call fcn.1400ae7c0
movaps xmm6, xmmword [rsp + 0x13d0]
movaps xmm7, xmmword [rsp + 0x13c0]
add rsp, 0x13e8
ret

Function at 0x1400ad730
Capabilities:
Create thread

Disassembly:
push rbx
sub rsp, 0x50
mov rax, qword [0x140102040]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rbx, rcx
mov eax, 1
xchg byte [rcx + 0x48], al
mov ecx, 0x10
call fcn.1400aee04
mov qword [rax], rbx
lea rcx, [0x1400ad9a0]
mov qword [rax + 8], rcx
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], 0
mov r9, rax
lea r8, [0x1400ae780]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rsp + 0x30], rax
test rax, rax
je 0x1400ad7c6
cmp dword [rbx + 0x40], 0
jne 0x1400ad7bf
movaps xmm1, xmmword [rsp + 0x30]
movups xmmword [rbx + 0x38], xmm1
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1400ae7c0
add rsp, 0x50
pop rbx
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_terminate]
nop
mov dword [rsp + 0x38], 0
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3

Function at 0x1400af528
Capabilities:
Parse pe header

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

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x40
mov rbx, rdx
lea r8, [rsp + 0x60]
mov edi, ecx
mov edx, 0x20000001
lea rcx, str._x_sys_default_locale
mov r9d, 2
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
test eax, eax
jne 0x1400af7da
xor r9d, r9d
mov dword [rsp + 0x60], r9d
jmp 0x1400af7df
mov r9d, dword [rsp + 0x60]
and qword [rsp + 0x30], 0
mov r8d, edi
and dword [rsp + 0x28], 0
xor edx, edx
mov ecx, 0x1300
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov edx, eax
test eax, eax
je 0x1400af828
mov r8, qword [rbx]
dec r8
add r8, rdx
movzx ecx, byte [r8]
lea rax, [0x1400b6c90]
cmp byte [rcx + rax], 0
je 0x1400af828
dec r8
sub rdx, 1
jne 0x1400af80e
mov rbx, qword [rsp + 0x50]
mov rax, rdx
add rsp, 0x40
pop rdi
ret
Function at 0x1400046c5
Capabilities:
Enumerate pe sections

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
movzx ebp, word [rcx]
mov r14, qword [rcx + 8]
mov eax, 1
cmp bp, 3
je 0x140004826
mov qword [rsp + 0x50], r14
mov r13d, dword [rcx + 0x10]
mov eax, dword [rcx + 0x14]
mov dword [rsp + 0x2c], eax
mov ebx, dword [rcx + 0x18]
movzx eax, word [rcx + 0x1c]
mov edx, dword [rcx + 2]
movzx ecx, word [rcx + 6]
mov r12, rcx
shl r12, 0x20
mov qword [rsp + 0x48], rdx
or r12, rdx
shr r12, 0x10
rol ax, 8
mov word [rsp + 0x2a], ax
rol cx, 8
mov qword [rsp + 0x40], rcx
lea rsi, [rsp + 0x64]
xor edi, edi

Function at 0x14000a468
Capabilities:
Connect socket
Enumerate pe sections
Set socket configuration

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov rbx, r8
mov rsi, rdx
mov rdi, rcx
movzx eax, byte [rdx + 0x60]
test eax, eax
je 0x14000a4bb
cmp eax, 3
jne 0x14000a7c8
lea r13, [rsi + 0x58]
movzx eax, byte [rsi + 0x58]
lea r14, [rsi + 0x20]
test eax, eax
je 0x14000a561
cmp eax, 3
jne 0x14000a7c8
mov rax, qword [rsi + 0x50]
jmp 0x14000a687
mov qword [rsp + 0x38], rbx
mov r15, qword [rsi + 0x20]
mov r8, qword [rsi + 0x28]
jmp 0x14000a642
add byte [rax], al

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

Disassembly:
jmp 0x140092c8e
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov r12, rdx
mov rbx, rcx
lea r15, [rsp + 0x3a]
jl 0x140092ccc
cmp cl, byte [rbp + rcx*4 + 0x6c]
and al, 0x4a
Function at 0x140029639
Capabilities:
Get geographical location

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov r15, r9
mov r12, r8
mov rdi, rdx
mov rsi, rcx
lea r14, [rsp + 0x40]
and qword [r14], 0
mov qword [r14 + 8], 1
and qword [r14 + 0x10], 0
lea rdx, [0x1400e3020]
lea r8, [0x1400e302b]
mov rcx, r14
call fcn.14003df01
lea rbx, [rdi + 0xb]
mov rcx, r14
mov rdx, rdi
mov r8, rbx
call fcn.14003df01
lea rdx, [0x1400e4cae]
lea r8, [0x1400e4cb5]
mov rcx, r14
call fcn.14003df01
lea r13, [rsp + 0x28]
mov rcx, r13
mov rdx, r12
mov r8, r15
call fcn.140020962
mov rdx, qword [r13 + 8]
mov rbp, qword [r13 + 0x10]
lea r15, str._r_ncountrystateSlocalLorganizationOunitUdaysDcadnsiprfc822ca_fileca_key_ca_file__is_required._ca_key__is_required.cert_is_invalidkey_is_invalidNnameNAMEout_keywrite_private_key_fileFILEoutwrite_certificate_fileCA_certificate_fileECA_key_fileserver_authKey_usageclient_authCertificate_generater_toolkit_nUsage:_n___cert__options___props__nProps:___propvalue_..._n____organization_O__OrganizationName_n____unit_________U__OrganizationUnitName_n____country______C__CountryName_n____state________S__StateOrProvinceName_n____local________L__LocalityName_n____dns_____________Subject_DNS_name_n____ip______________Subject_IP_address_n____days_________D__Expires_days_n____ca______________BasicConstraints_nExamples:_n___cert___out_out.cer___out_key_out.key_nACTCERTIFICATEPRIVATE_KEYCertificate:__n_nPrivate_Key:__n_n_n
lea r12, [0x1400e4dfa]
test rbp, rbp
je 0x140029709
cmp rbp, 0x40
mov eax, 0x40
cmovb rax, rbp
lea r13, [rdx + rax]
sub rbp, rax
mov rcx, r14
mov r8, r13
call fcn.14003df01
mov rcx, r14
mov rdx, r15
mov r8, r12
call fcn.14003df01
mov rdx, r13
jmp 0x1400296d2
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
call fcn.14003e11b
lea rdx, [0x1400e3036]
lea r8, [0x1400e303f]
lea r14, [rsp + 0x40]
mov rcx, r14
call fcn.14003df01
mov rcx, r14
mov rdx, rdi
mov r8, rbx
call fcn.14003df01
lea rdx, [0x1400e4cae]
lea r8, [0x1400e4cb5]
mov rcx, r14
call fcn.14003df01
mov rax, qword [r14 + 0x10]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [r14]
movups xmmword [rsi], xmm0
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
Function at 0x14003bf35
Capabilities:
Set socket configuration

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rsi, rcx
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x68]
or qword [rsp + 0x60], 0xffffffffffffffff
cmp rax, 0xffffffffffffffff
je 0x14003c106
mov ebx, r9d
mov ebp, r8d
lea r14, [rsp + 0x78]
mov qword [r14], rax
mov qword [r14 + 8], rcx
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
mov r8, r14
call fcn.1400907c6
mov rdi, qword [r14]
mov r15, qword [r14 + 8]
test rax, rax
je 0x14003bfbe
mov r12, rax
mov rcx, rdi
mov rdx, r15
call fcn.14009075f
mov rdi, 0xffffffffffffffff
mov r15, r12
lea r12, [rsp + 0x58]
lea r13, [rsp + 0x50]
mov rcx, r13
call fcn.1400906a9
mov rcx, qword [r13 + 0x10]
cmp rcx, 0xffffffffffffffff
je 0x14003bfe4
mov rdx, qword [rsp + 0x68]
call fcn.14009075f
lea r13, [rsp + 0x50]
mov rcx, qword [r13 + 8]
call fcn.1400906fa
mov rcx, r13
call fcn.1400081de
mov rcx, r12
call fcn.14008e8ae
cmp rdi, 0xffffffffffffffff
je 0x14003c0ea
mov rcx, r15
call fcn.140050239
lea r9, [rsp + 0x50]
mov dword [r9], 1
mov dword [rsp + 0x20], 4
mov rcx, rdi
mov edx, 0xffff
mov r8d, 8
call qword [sym.imp.ws2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x14003c0d2
movzx eax, bp
imul eax, eax, 0x3e8
movzx ecx, bx
imul ecx, ecx, 0x3e8
lea r8, [rsp + 0x50]
mov dword [r8], 1
mov dword [r8 + 4], eax
mov dword [r8 + 8], ecx
and dword [rsp + 0x78], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
and dword [rsp + 0x28], 0
mov qword [rsp + 0x30], r14
and qword [rsp + 0x20], 0
mov rcx, rdi
mov edx, 0x98000004
mov r9d, 0xc
call qword [sym.imp.ws2_32.dll_WSAIoctl]
cmp eax, 0xffffffff
je 0x14003c0d2
lea rbx, [rsp + 0x50]
mov rcx, rbx
mov rdx, rdi
xor r8d, r8d
call fcn.1400926f7
mov rax, qword [rbx]
mov rcx, qword [rbx + 8]
test rax, rax
je 0x14003c0c9
movups xmm0, xmmword [rsp + 0x60]
movups xmmword [rsi + 0x10], xmm0
mov qword [rsi + 8], rcx
mov qword [rsi], rax
jmp 0x14003c0f2
call fcn.14004f3c1
mov qword [rsi + 8], rax
and qword [rsi], 0
mov rcx, rdi
call qword [sym.imp.ws2_32.dll_closesocket]
jmp 0x14003c0f2
mov qword [rsi + 8], r15
and qword [rsi], 0
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
Function at 0x14004140f
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
mov r10, qword [rsp + 0x68]
mov r11, qword [rsp + 0x60]
mov rax, qword [rsp + 0x58]
mov esi, ecx
shr esi, 8
lea r8, [rdx + r8*2]
xor edi, edi
cmp rdx, r8
je 0x14004148b
lea rbx, [rdx + 2]
movzx r15d, byte [rdx + 1]
lea r14, [rdi + r15]
cmp byte [rdx], sil
jne 0x14004146b
cmp r14, rdi
jb 0x1400414c8
cmp r14, rax
ja 0x1400414c8
add rdi, r9
xor edx, edx
cmp r15, rdx
je 0x140041475
lea r12, [rdx + 1]
cmp byte [rdi + rdx], cl
mov rdx, r12
jne 0x140041458
jmp 0x14004147d
mov rdx, rbx
mov rdi, r14
jbe 0x140041432
jmp 0x14004148b
mov rdx, rbx
mov rdi, r14
jmp 0x140041432
xor eax, eax
and al, 1
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
movzx ecx, cx
add r10, r11
mov al, 1
cmp r11, r10
je 0x14004147f
lea r8, [r11 + 1]
movzx edx, byte [r11]
test dl, dl
js 0x1400414a9
mov r11, r8
jmp 0x1400414c0
cmp r8, r10
je 0x1400414c8
and edx, 0x7f
shl edx, 8
movzx r8d, byte [r11 + 1]
add r11, 2
or edx, r8d
sub ecx, edx
js 0x14004147f
xor al, 1
jmp 0x140041493
ud2

Function at 0x14004ed13
Capabilities:
Generate random numbers via rtlgenrandom
Generate random numbers via winapi

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rdi, rdx
mov rbx, rcx
mov r12d, 0xffffffff
mov r13, qword [sym.imp.bcrypt.dll_BCryptGenRandom]
mov rsi, qword [sym.imp.advapi32.dll_SystemFunction036]
test rdi, rdi
je 0x14004ed88
mov r14, rbx
cmp rdi, r12
mov r15d, 0xffffffff
cmovb r15, rdi
add rbx, r15
sub rdi, r15
xor ecx, ecx
mov rdx, r14
mov r8d, r15d
mov r9d, 2
call r13
cmp eax, 0xbfffffff
jbe 0x14004ed3d
mov ebp, eax
mov rcx, r14
mov edx, r15d
call rsi
test al, al
jne 0x14004ed3d
and ebp, 0x7fffffff
mov eax, ebp
jmp 0x14004ed8a
xor eax, eax
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
test rdx, rdx
jne 0x14004ed13
xor eax, eax
ret

Function at 0x1400502d7
Capabilities:
Enumerate pe sections

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rax, qword [rcx]
cmp byte [rax], 0
mov byte [rax], 0
je 0x1400504d8
add dword [rax], eax
invalid
lea rdx, [0x1400eaa3c]
lea rsi, [rsp + 0x38]
mov r8d, 0xb
mov rcx, rsi
call fcn.14008d5a3
cmp qword [rsi], 0
je 0x14005048a
add dword [rax], eax
invalid
lea rax, [rsp + 0x38]
mov rcx, qword [rsp + 0x40]