joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180078070
Capabilities:
Hash data with crc32

Disassembly:
movzx r9d, byte [rcx]
lea r8, [rcx + 1]
mov r10d, 0xffffffff
mov eax, r10d
test r9b, r9b
je 0x1800780c0
lea r11, [0x1800b5380]
nop dword [rax]
cmp r9b, 0x23
jne 0x1800780a3
cmp byte [r8], r9b
jne 0x1800780a3
cmp byte [r8 + 1], r9b
cmove eax, r10d
movzx edx, al
movzx ecx, r9b
movzx r9d, byte [r8]
xor rdx, rcx
shr eax, 8
inc r8
xor eax, dword [r11 + rdx*4]
test r9b, r9b
jne 0x180078090
mov rcx, qword [0x18019f800]
not eax
movsxd rdx, dword [rcx + 0x3ee8]
mov r9, qword [rcx + 0x3ef0]
mov r10, rdx
shl r10, 4
add r10, r9
test rdx, rdx
je 0x180078121
nop word [rax + rax]
mov r8, rdx
shr r8, 1
mov rcx, r8
add rcx, rcx
cmp dword [r9 + rcx*8], eax
jae 0x180078119
lea r9, [r9 + rcx*8]
mov rcx, 0xffffffffffffffff
sub rcx, r8
add r9, 0x10
add rdx, rcx
jmp 0x18007811c
mov rdx, r8
test rdx, rdx
jne 0x1800780f0
cmp r9, r10
je 0x180078130
cmp dword [r9], eax
jne 0x180078130
mov rax, qword [r9 + 8]
ret
xor eax, eax
ret
Function at 0x180085790
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
cmp qword [rcx + 0x5ce0], 0
lea rbx, [rcx + 0x5ce8]
mov rsi, r8
mov rbp, rdx
mov rdi, rcx
je 0x180085837
mov r9d, dword [rbx + 4]
mov qword [rsp + 0x30], r14
xor r14d, r14d
test r9d, r9d
jns 0x1800857ea
mov eax, r9d
mov rcx, rbx
cdq
sub eax, edx
mov edx, r14d
sar eax, 1
add eax, r9d
test eax, eax
cmovg edx, eax
call fcn.1800881e0
mov r8, rsi
mov dword [rbx], r14d
mov rdx, rbp
mov rcx, rbx
call fcn.180072b60
mov eax, dword [rbx]
mov edx, 1
mov r9, qword [rdi + 0x5ce0]
test eax, eax
lea ecx, [rax - 1]
mov rax, qword [rdi + 0x5cf0]
cmove ecx, r14d
test rax, rax
movsxd r8, ecx
lea rcx, [0x18019f7ef]
cmovne rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
mov r14, qword [rsp + 0x30]
jmp 0x18008583f
mov rcx, rbx
call fcn.180072b60
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret

Function at 0x180085cc0
Capabilities:
Hash data with crc32

Disassembly:
sub rsp, 8
movzx r9d, byte [rcx]
lea r8, [rcx + 1]
mov r10, qword [0x18019f800]
mov r11d, 0xffffffff
mov eax, r11d
test r9b, r9b
je 0x180085d23
mov qword [rsp], rbx
lea rbx, [0x1800b5380]
nop dword [rax]
cmp r9b, 0x23
jne 0x180085d03
cmp byte [r8], r9b
jne 0x180085d03
cmp byte [r8 + 1], r9b
cmove eax, r11d
movzx edx, al
movzx ecx, r9b
movzx r9d, byte [r8]
xor rdx, rcx
shr eax, 8
inc r8
xor eax, dword [rbx + rdx*4]
test r9b, r9b
jne 0x180085cf0
mov rbx, qword [rsp]
movsxd rcx, dword [r10 + 0x5c50]
not eax
mov r8, qword [r10 + 0x5c58]
lea rdx, [rcx + rcx*8]
lea rcx, [r8 + rdx*8]
cmp r8, rcx
je 0x180085d4f
cmp dword [r8 + 8], eax
je 0x180085d56
add r8, 0x48
cmp r8, rcx
jne 0x180085d40
xor eax, eax
add rsp, 8
ret
mov rax, r8
add rsp, 8
ret
Function at 0x1800a1280
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
sub rsp, 0x60
mov rbp, rdx
mov rdi, rcx
mov rbx, qword [0x18019f810]
mov ecx, 0x40
call fcn.1800a79b0
mov rsi, rax
mov r8d, dword [rbx + 0x330]
mov dword [rax], r8d
mov r8d, dword [rbx + 0x340]
mov dword [rax + 4], r8d
mov r8d, dword [rbx + 0x350]
mov dword [rax + 8], r8d
mov edx, dword [rbx + 0x360]
mov dword [rax + 0xc], edx
mov ecx, dword [rbx + 0x334]
mov dword [rax + 0x10], ecx
mov ecx, dword [rbx + 0x344]
mov dword [rax + 0x14], ecx
mov ecx, dword [rbx + 0x354]
mov dword [rax + 0x18], ecx
mov eax, dword [rbx + 0x364]
mov dword [rsi + 0x1c], eax
mov eax, dword [rbx + 0x338]
mov dword [rsi + 0x20], eax
mov eax, dword [rbx + 0x348]
mov dword [rsi + 0x24], eax
mov eax, dword [rbx + 0x358]
mov dword [rsi + 0x28], eax
mov eax, dword [rbx + 0x368]
mov dword [rsi + 0x2c], eax
mov eax, dword [rbx + 0x33c]
mov dword [rsi + 0x30], eax
mov eax, dword [rbx + 0x34c]
mov dword [rsi + 0x34], eax
mov eax, dword [rbx + 0x35c]
mov dword [rsi + 0x38], eax
mov eax, dword [rbx + 0x36c]
mov dword [rsi + 0x3c], eax
mov qword [rsp + 0x90], rsi
mov ecx, 0x18
call fcn.1800a79b0
mov rbx, rax
mov qword [rsp + 0x80], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_struct_glmatrixf_.0
mov qword [rbx], rax
mov qword [rbx + 0x10], rsi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x58], rbx
mov edx, 0x40
xor ecx, ecx
call fcn.1800a7d64
nop
mov rcx, qword [0x18019f810]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x630]
call rdx
mov rcx, qword [rax + 0x308]
movss xmm0, dword [rcx + 0x5f0]
movss dword [rsp + 0x40], xmm0
movss xmm1, dword [rcx + 0x5f4]
movss dword [rsp + 0x44], xmm1
movss xmm0, dword [rcx + 0x5f8]
movss dword [rsp + 0x48], xmm0
mov rax, qword [0x18019f810]
movss xmm1, dword [rax + 0x6f8]
movss xmm0, dword [rax + 0x70c]
movss dword [rsp + 0x80], xmm1
movss dword [rsp + 0x84], xmm0
mov rax, qword [rax + 0x560]
mov rax, qword [rax + 0x30]
movss xmm0, dword [rdi]
movss dword [rsp + 0x30], xmm0
movss xmm1, dword [rdi + 4]
movss dword [rsp + 0x34], xmm1
movss xmm0, dword [rdi + 8]
movss dword [rsp + 0x38], xmm0
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x20], rax
mov r9, rbp
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.1800a0cc0
movzx esi, al
mov edi, 0xffffffff
mov ecx, edi
lock xadd dword [rbx + 8], ecx
cmp ecx, 1
jne 0x1800a1483
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x1800a147f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + htons]
movzx eax, sil
mov rbx, qword [rsp + 0x88]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
ret
Function at 0x1800a411c
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
mov eax, ecx
mov esi, edx
imul rbx, rax, 0x38
add rbx, qword [0x1801a0dc0]
mov r8b, byte [rbx + 0x20]
mov rdx, qword [rbx]
mov rdi, rdx
and r8b, 1
je 0x1800a4153
lea rdi, [rdx - 5]
movzx eax, r8b
lea rcx, [rdx - 5]
test r8b, r8b
lea r9, [rsp + 0x30]
mov r8d, 0x40
cmove rcx, rdx
lea rbp, [rax*2 + 5]
mov rdx, rbp
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x1800a418c
mov eax, 0xa
jmp 0x1800a4218
test esi, esi
je 0x1800a41ae
mov byte [rdi], 0xe9
mov eax, dword [rbx + 8]
sub eax, edi
sub eax, 5
mov dword [rdi + 1], eax
test byte [rbx + 0x20], 1
je 0x1800a41cf
mov rax, qword [rbx]
mov word [rax], 0xf9eb
jmp 0x1800a41cf
mov eax, dword [rbx + 0x18]
test byte [rbx + 0x20], 1
mov dword [rdi], eax
je 0x1800a41c9
movzx eax, word [rbx + 0x1c]
mov word [rdi + 4], ax
mov al, byte [rbx + 0x1e]
mov byte [rdi + 6], al
jmp 0x1800a41cf
mov al, byte [rbx + 0x1c]
mov byte [rdi + 4], al
mov r8d, dword [rsp + 0x30]
lea r9, [rsp + 0x30]
mov rdx, rbp
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r8, rbp
mov rdx, rdi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
and byte [rbx + 0x20], 0xfd
and sil, 1
mov al, sil
shl sil, 2
add al, al
or al, byte [rbx + 0x20]
and al, 0xfb
or al, sil
mov byte [rbx + 0x20], al
xor eax, eax
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
Function at 0x1800a4648
Capabilities:
Resume thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov r8, qword [rcx]
mov rbx, rcx
test r8, r8
je 0x1800a46ae
xor edi, edi
cmp dword [rcx + 0xc], edi
jbe 0x1800a469f
mov rax, qword [rbx]
xor edx, edx
mov r8d, dword [rax + rdi*4]
lea ecx, [rdx + 0x5a]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rsi, rax
test rax, rax
je 0x1800a4695
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc edi
cmp edi, dword [rbx + 0xc]
jb 0x1800a4669
mov r8, qword [rbx]
mov rcx, qword [0x18019f0c8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x1800a47dc
Capabilities:
Allocate or change rwx memory
Get system information on windows

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
push rbp
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov rdi, rcx
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov r14, qword [rbp - 0x58]
cmp rdi, 0x40000000
jbe 0x1800a4826
lea rax, [rdi - 0x40000000]
cmp r14, rax
cmovb r14, rax
mov rbx, qword [0x1801a0db0]
lea r15, [rdi + 0x40000000]
cmp qword [rbp - 0x50], r15
cmovbe r15, qword [rbp - 0x50]
sub r15, 0xfff
test rbx, rbx
je 0x1800a4863
cmp rbx, r14
jb 0x1800a485e
cmp rbx, r15
jae 0x1800a485e
cmp qword [rbx + 8], 0
jne 0x1800a49b8
mov rbx, qword [rbx]
jmp 0x1800a4844
mov rsi, rdi
cmp rdi, r14
jb 0x1800a48e0
mov r12d, dword [rbp - 0x38]
xor edx, edx
mov rax, rsi
div r12
sub rsi, rdx
jmp 0x1800a48a6
mov r8d, 0x30
lea rdx, [rbp - 0x30]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x1800a48ae
cmp dword [rbp - 0x10], 0x10000
je 0x1800a48b0
mov rsi, qword [rbp - 0x28]
cmp rsi, r12
jb 0x1800a48ae
sub rsi, r12
cmp rsi, r14
jae 0x1800a487c
xor esi, esi
test rsi, rsi
je 0x1800a48e0
mov edx, 0x1000
mov r9d, 0x40
mov r8d, 0x3000
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
test rax, rax
jne 0x1800a4979
cmp rsi, r14
jae 0x1800a486b
test rbx, rbx
jmp 0x1800a496c
mov r14d, dword [rbp - 0x38]
xor edx, edx
mov rax, rdi
mov esi, r14d
div r14
mov eax, r14d
sub rax, rdx
add rax, rdi
mov rdi, rax
cmp rax, r15
ja 0x1800a4945
mov r8d, 0x30
lea rdx, [rbp - 0x30]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x1800a4945
cmp dword [rbp - 0x10], 0x10000
je 0x1800a4947
xor edx, edx
lea edi, [r14 - 1]
add rdi, qword [rbp - 0x18]
add rdi, qword [rbp - 0x30]
mov rax, rdi
div rsi
sub rdi, rdx
cmp rdi, r15
jbe 0x1800a4908
xor edi, edi
test rdi, rdi
je 0x1800a49b8
mov edx, 0x1000
mov r9d, 0x40
mov r8d, 0x3000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
test rax, rax
jne 0x1800a4979
cmp rdi, r15
jbe 0x1800a48e8
jmp 0x1800a49b8
and qword [rbx + 8], 0
lea rcx, [rbx + 0x40]
and dword [rbx + 0x10], 0
mov edx, 0x40
mov rax, qword [rbx + 8]
add rdx, 0x40
mov qword [rcx], rax
mov qword [rbx + 8], rcx
add rcx, 0x40
cmp rdx, 0xfc0
jbe 0x1800a498b
mov rax, qword [0x1801a0db0]
mov qword [rbx], rax
mov qword [0x1801a0db0], rbx
lea r11, [rsp + 0x80]
mov rax, rbx
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
Function at 0x1800a4d44
Capabilities:
Check for software breakpoints

Disassembly:
mov r8b, byte [rcx]
mov r9d, edx
test r8b, r8b
je 0x1800a4d5b
cmp r8b, 0x90
je 0x1800a4d5b
cmp r8b, 0xcc
jne 0x1800a4d7d
mov r10d, 1
mov edx, r10d
cmp r9d, r10d
jbe 0x1800a4d79
mov eax, edx
cmp byte [rax + rcx], r8b
jne 0x1800a4d7d
add edx, r10d
cmp edx, r9d
jb 0x1800a4d69
mov eax, r10d
ret
xor eax, eax
ret

Function at 0x1800a5740
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x20
mov eax, 0x5a4d
xor r12d, r12d
mov rbp, rdx
mov r14, rcx
cmp word [rdx], ax
jne 0x1800a57c4
movsxd rsi, dword [rdx + 0x3c]
add rsi, rdx
cmp dword [rsi], 0x4550
jne 0x1800a57c4
movzx ebx, word [rsi + 0x14]
mov edi, r12d
add rbx, 0x18
add rbx, rsi
cmp r12w, word [rsi + 6]
jae 0x1800a57c4
mov r15, qword [r8]
nop dword [rax + rax]
mov r8d, 8
mov rdx, rbx
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
test eax, eax
je 0x1800a57ed
movzx eax, word [rsi + 6]
inc edi
add rbx, 0x28
cmp edi, eax
jl 0x1800a57a0
mov qword [r14], r12
mov qword [r14 + 8], r12
mov rbx, qword [rsp + 0x40]
mov rax, r14
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop r12
ret
mov eax, dword [rbx + 0xc]
add rax, rbp
mov qword [r14], rax
mov eax, dword [rbx + 8]
mov qword [r14 + 8], rax
jmp 0x1800a57cb

Function at 0x1800a6d14
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 0x1800a6d4e
xor r9d, r9d
mov dword [rsp + 0x60], r9d
jmp 0x1800a6d53
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 0x1800a6d9c
mov r8, qword [rbx]
dec r8
add r8, rdx
movzx ecx, byte [r8]
lea rax, reloc.d2d1.dll_Ordinal_1
cmp byte [rcx + rax], 0
je 0x1800a6d9c
dec r8
sub rdx, 1
jne 0x1800a6d82
mov rbx, qword [rsp + 0x50]
mov rax, rdx
add rsp, 0x40
pop rdi
ret
Function at 0x1800045fc
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push r14
sub rsp, 0x50
mov qword [rax - 0x30], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov r14, r8
mov rbp, rcx
xor esi, esi
mov dword [rsp + 0x20], esi
lea rcx, [rax - 0x28]
call fcn.1800048f4
nop
lea rcx, [rsp + 0x30]
call fcn.18001353c
mov rdx, rax
xor r8d, r8d
mov rcx, rbp
call fcn.180004588
lea rcx, [rsp + 0x30]
call fcn.18001353c
test rax, rax
je 0x1800046ab
mov rcx, r14
call fcn.18001353c
mov rcx, rax
xor edx, edx
mov rax, rsi
div rcx
mov rcx, r14
call fcn.1800045e4
mov rdi, rax
mov rdx, rsi
mov rcx, rbp
call fcn.1800045e4
mov rbx, rax
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.1800045e4
mov cl, byte [rax]
xor cl, byte [rdi]
mov byte [rbx], cl
inc rsi
lea rcx, [rsp + 0x30]
call fcn.18001353c
cmp rsi, rax
jb 0x18000465a
lea rcx, [rsp + 0x30]
call fcn.1800011bc
mov rax, rbp
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
add rsp, 0x50
pop r14
ret

Function at 0x1800046d4
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push r14
sub rsp, 0x50
mov qword [rax - 0x30], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov r14, r8
mov rbp, rdx
mov rsi, rcx
xor edi, edi
mov dword [rsp + 0x20], edi
mov rcx, rdx
call fcn.18001353c
mov rdx, rax
xor r8d, r8d
lea rcx, [rsp + 0x30]
call fcn.180004588
nop
mov rcx, rbp
call fcn.18001353c
test rax, rax
je 0x180004773
mov rcx, r14
call fcn.18001353c
mov rcx, rax
xor edx, edx
mov rax, rdi
div rcx
mov rcx, r14
call fcn.1800045e4
mov bl, byte [rax]
mov rdx, rdi
mov rcx, rbp
call fcn.1800045e4
xor bl, byte [rax]
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.1800045e4
mov byte [rax], bl
inc rdi
mov rcx, rbp
call fcn.18001353c
cmp rdi, rax
jb 0x18000472a
lea rdx, [rsp + 0x30]
mov rcx, rsi
call fcn.180004ad8
nop
lea rcx, [rsp + 0x30]
call fcn.1800011bc
mov rax, rsi
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
add rsp, 0x50
pop r14
ret
Function at 0x18000493c
Capabilities:
Decode data using base64 via dword translation table

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x50
mov rbx, qword [r8]
and dword [rsp + 0x20], 0
mov rdi, rdx
mov rsi, rcx
test rbx, rbx
jne 0x18000497d
lea rdx, [0x18003250e]
call fcn.1800010e8
jmp 0x180004ab3
xor ebp, ebp
mov rax, rbx
lea r12d, [rbp + 1]
and eax, 3
jne 0x180004997
cmp byte [rbx + rdx - 1], 0x3d
je 0x180004997
xor r14d, r14d
jmp 0x1800049a7
mov r14, r12
cmp rax, 2
ja 0x1800049ac
cmp byte [rbx + rdx - 2], 0x3d
jne 0x1800049ac
xor r15d, r15d
jmp 0x1800049af
mov r15, r12
sub rbx, r14
lea rcx, [rsp + 0x28]
xor r8d, r8d
and rbx, 0xfffffffffffffffc
mov rdx, rbx
shr rdx, 2
lea rax, [r15 + rdx*2]
add rdx, rax
add rdx, r14
call fcn.180004588
lea rcx, [rsp + 0x28]
xor edx, edx
call fcn.1800045e4
lea r11, [0x180033640]
mov r9, rax
test rbx, rbx
je 0x180004a52
lea r8, [rbx - 1]
lea r10, [rdi + 1]
shr r8, 2
add r8, r12
movzx eax, byte [r10]
movzx ecx, byte [r10 - 1]
lea r10, [r10 + 4]
mov edx, dword [r11 + rcx*4]
shl edx, 6
or edx, dword [r11 + rax*4]
movzx eax, byte [r10 - 3]
shl edx, 6
or edx, dword [r11 + rax*4]
movzx eax, byte [r10 - 2]
shl edx, 6
or edx, dword [r11 + rax*4]
mov eax, edx
sar eax, 0x10
mov byte [r9 + rbp], al
add rbp, r12
mov eax, edx
sar eax, 8
mov byte [r9 + rbp], al
add rbp, r12
mov byte [r9 + rbp], dl
add rbp, r12
sub r8, r12
jne 0x1800049fe
test r14, r14
je 0x180004a9c
movzx eax, byte [rbx + rdi]
movzx edx, byte [rbx + rdi + 1]
mov ecx, dword [r11 + rax*4]
mov r8d, dword [r11 + rdx*4]
shl ecx, 6
or r8d, ecx
shl r8d, 0xc
mov eax, r8d
sar eax, 0x10
mov byte [r9 + rbp], al
test r15, r15
je 0x180004a9c
movzx eax, byte [rbx + rdi + 2]
sar r8d, 8
mov ecx, dword [r11 + rax*4]
shl ecx, 6
sar ecx, 8
or cl, r8b
mov byte [r9 + rbp + 1], cl
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.180004530
lea rcx, [rsp + 0x28]
call fcn.1800011bc
lea r11, [rsp + 0x50]
mov rax, rsi
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r12
ret
Function at 0x1800053f4
Capabilities:
Allocate or change rwx memory
Get system information on windows

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r14
sub rsp, 0x50
mov rdi, rcx
lea rcx, [rax - 0x38]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov rsi, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x30]
cmp rdi, 0x40000000
jbe 0x18000543b
lea rax, [rdi - 0x40000000]
cmp rsi, rax
cmovb rsi, rax
mov rbx, qword [0x18004ba90]
lea rax, [rdi + 0x40000000]
cmp rbp, rax
cmova rbp, rax
sub rbp, 0xfff
test rbx, rbx
je 0x180005476
cmp rbx, rsi
jb 0x180005471
cmp rbx, rbp
jae 0x180005471
cmp qword [rbx + 8], 0
jne 0x180005543
mov rbx, qword [rbx]
jmp 0x180005457
mov r14, rdi
cmp rdi, rsi
jb 0x1800054bd
mov r8d, dword [rsp + 0x48]
mov rdx, rsi
mov rcx, r14
call fcn.180005318
mov r14, rax
test rax, rax
je 0x1800054bd
mov edx, 0x1000
mov r9d, 0x40
mov r8d, 0x3000
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
test rax, rax
jne 0x180005503
cmp r14, rsi
jae 0x18000547e
test rbx, rbx
jmp 0x1800054fa
mov r8d, dword [rsp + 0x48]
mov rdx, rbp
mov rcx, rdi
call fcn.18000528c
mov rdi, rax
test rax, rax
je 0x180005543
mov edx, 0x1000
mov r9d, 0x40
mov r8d, 0x3000
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
test rax, rax
jne 0x180005503
cmp rdi, rbp
jbe 0x1800054c2
jmp 0x180005543
and qword [rbx + 8], 0
and dword [rbx + 0x10], 0
lea rcx, [rbx + 0x40]
mov rdx, rcx
sub rdx, rbx
mov rax, qword [rbx + 8]
add rdx, 0x40
mov qword [rcx], rax
mov qword [rbx + 8], rcx
add rcx, 0x40
cmp rdx, 0xfc0
jbe 0x180005516
mov rax, qword [0x18004ba90]
mov qword [rbx], rax
mov qword [0x18004ba90], rbx
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
mov rax, rbx
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop r14
ret
Function at 0x180005e20
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
mov ebx, ecx
mov esi, edx
mov ebp, 5
imul rbx, rbx, 0x38
add rbx, qword [0x18004ba80]
test byte [rbx + 0x20], 1
mov rdi, qword [rbx]
je 0x180005e59
sub rdi, rbp
mov ebp, 7
lea r9, [rsp + 0x30]
mov r8d, 0x40
mov rdx, rbp
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x180005e7e
mov eax, 0xa
jmp 0x180005f0a
test esi, esi
je 0x180005ea0
mov byte [rdi], 0xe9
mov eax, dword [rbx + 8]
sub eax, edi
sub eax, 5
mov dword [rdi + 1], eax
test byte [rbx + 0x20], 1
je 0x180005ec1
mov rax, qword [rbx]
mov word [rax], 0xf9eb
jmp 0x180005ec1
mov eax, dword [rbx + 0x18]
test byte [rbx + 0x20], 1
mov dword [rdi], eax
je 0x180005ebb
movzx eax, word [rbx + 0x1c]
mov word [rdi + 4], ax
mov al, byte [rbx + 0x1e]
mov byte [rdi + 6], al
jmp 0x180005ec1
mov al, byte [rbx + 0x1c]
mov byte [rdi + 4], al
mov r8d, dword [rsp + 0x30]
lea r9, [rsp + 0x30]
mov rdx, rbp
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r8, rbp
mov rcx, rax
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
and byte [rbx + 0x20], 0xfd
and sil, 1
mov al, sil
shl sil, 2
add al, al
or al, byte [rbx + 0x20]
and al, 0xfb
or al, sil
mov byte [rbx + 0x20], al
xor eax, eax
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret

Function at 0x180005f60
Capabilities:
Enumerate threads

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x40
xor edx, edx
mov rbx, rcx
lea ecx, [rdx + 4]
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x180006054
lea rdx, [rsp + 0x20]
mov rcx, rax
mov dword [rsp + 0x20], 0x1c
call sub.KERNEL32.dll_Thread32First
jmp 0x180006043
cmp dword [rsp + 0x20], 0x10
jb 0x18000602e
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [rsp + 0x2c], eax
jne 0x18000602e
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [rsp + 0x28], eax
je 0x18000602e
mov r8, qword [rbx]
test r8, r8
jne 0x180005fef
mov dword [rbx + 8], 0x80
mov rcx, qword [0x180043a10]
xor edx, edx
mov r8d, 0x200
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rbx], rax
test rax, rax
je 0x18000604b
jmp 0x18000601e
mov eax, dword [rbx + 8]
cmp dword [rbx + 0xc], eax
jb 0x18000601e
mov rcx, qword [0x180043a10]
lea r9d, [rax + rax]
xor edx, edx
shl r9, 2
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
test rax, rax
je 0x18000604b
mov ecx, dword [rbx + 8]
mov qword [rbx], rax
add ecx, ecx
mov dword [rbx + 8], ecx
mov edx, dword [rbx + 0xc]
mov rcx, qword [rbx]
mov eax, dword [rsp + 0x28]
mov dword [rcx + rdx*4], eax
inc dword [rbx + 0xc]
lea rdx, [rsp + 0x20]
mov rcx, rdi
mov dword [rsp + 0x20], 0x1c
call sub.KERNEL32.dll_Thread32Next
test eax, eax
jne 0x180005f9e
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbx, qword [rsp + 0x50]
add rsp, 0x40
pop rdi
ret