joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180001d18
Capabilities:
Enumerate threads

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x50
mov rax, qword [0x1801c1fc0]
xor rax, rsp
mov qword [rsp + 0x40], rax
xor edx, edx
mov rbx, rcx
lea ecx, [rdx + 4]
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x180001e47
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x1c
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_Thread32First]
jmp 0x180001e1e
cmp dword [rsp + 0x20], 0x10
jb 0x180001e08
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [rsp + 0x2c], eax
jne 0x180001e08
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [rsp + 0x28], eax
je 0x180001e08
mov rdx, qword [rbx]
test rdx, rdx
jne 0x180001dc5
mov rcx, qword [0x1801c9e58]
mov r8d, 0x200
mov dword [rbx + 8], 0x80
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rbx], rax
mov rdx, rax
test rax, rax
je 0x180001e3e
lea rdi, [rbx + 0xc]
jmp 0x180001dfd
mov eax, dword [rbx + 8]
lea rdi, [rbx + 0xc]
cmp dword [rdi], eax
jb 0x180001dfd
mov rcx, qword [0x1801c9e58]
lea r9d, [rax + rax]
mov r8, rdx
shl r9, 2
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov rdx, rax
test rax, rax
je 0x180001e28
mov eax, dword [rbx + 8]
add eax, eax
mov qword [rbx], rdx
mov dword [rbx + 8], eax
mov ecx, dword [rdi]
mov eax, dword [rsp + 0x28]
mov dword [rdx + rcx*4], eax
inc dword [rdi]
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x1c
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_Thread32Next]
test eax, eax
jne 0x180001d6b
jmp 0x180001e3e
mov r8, qword [rbx]
xor edx, edx
mov rcx, qword [0x1801c9e58]
call qword [sym.imp.KERNEL32.dll_HeapFree]
and qword [rbx], 0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.180149d60
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x50
pop rdi
ret

Function at 0x180001e64
Capabilities:
Suspend thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x20
xor ebx, ebx
mov r14d, r8d
mov qword [rcx], rbx
mov r15d, edx
mov qword [rcx + 8], rbx
mov rdi, rcx
call fcn.180001d18
cmp qword [rdi], rbx
je 0x180001ee4
mov esi, ebx
cmp dword [rdi + 0xc], ebx
jbe 0x180001ee9
mov r8, qword [rdi]
xor edx, edx
mov eax, esi
lea ecx, [rdx + 0x5a]
mov r8d, dword [r8 + rax*4]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rbp, rax
test rax, rax
je 0x180001edb
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SuspendThread]
mov r8d, r14d
mov edx, r15d
mov rcx, rbp
call fcn.180001c04
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc esi
cmp esi, dword [rdi + 0xc]
jb 0x180001e9f
jmp 0x180001ee9
mov ebx, 9
mov rbp, qword [rsp + 0x48]
mov eax, ebx
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret
Function at 0x180001f04
Capabilities:
Resume thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
xor ebx, ebx
mov rdi, rcx
cmp dword [rcx + 0xc], ebx
jbe 0x180001f50
mov r8, qword [rdi]
xor edx, edx
mov r8d, dword [r8 + rbx*4]
lea ecx, [rdx + 0x5a]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rsi, rax
test rax, rax
je 0x180001f49
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc ebx
cmp ebx, dword [rdi + 0xc]
jb 0x180001f1d
mov r8, qword [rdi]
xor edx, edx
mov rcx, qword [0x1801c9e58]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp qword [sym.imp.KERNEL32.dll_HeapFree]

Function at 0x180001f74
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x20
mov eax, ecx
mov esi, edx
imul rbx, rax, 0x38
add rbx, qword [0x1801c9e80]
mov rdx, qword [rbx]
mov cl, byte [rbx + 0x20]
mov rbp, rdx
lea rdi, [rdx - 5]
and cl, 1
je 0x180001faa
mov rbp, rdi
movzx eax, cl
lea r9, [rsp + 0x40]
test cl, cl
mov r8d, 0x40
cmove rdi, rdx
lea r14, [rax*2 + 5]
mov rcx, rdi
mov rdx, r14
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x180001fe0
mov eax, 0xa
jmp 0x18000206f
test esi, esi
je 0x180002002
mov byte [rdi], 0xe9
mov eax, dword [rbx + 8]
sub eax, ebp
sub eax, 5
mov dword [rdi + 1], eax
test byte [rbx + 0x20], 1
je 0x180002023
mov rax, qword [rbx]
mov word [rax], 0xf9eb
jmp 0x180002023
mov eax, dword [rbx + 0x18]
test byte [rbx + 0x20], 1
mov dword [rdi], eax
je 0x18000201d
movzx eax, word [rbx + 0x1c]
mov word [rdi + 4], ax
mov al, byte [rbx + 0x1e]
mov byte [rdi + 6], al
jmp 0x180002023
mov al, byte [rbx + 0x1c]
mov byte [rdi + 4], al
mov r8d, dword [rsp + 0x40]
lea r9, [rsp + 0x40]
mov rdx, r14
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r8, r14
mov rdx, rdi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov al, sil
shl sil, 2
add al, al
xor al, byte [rbx + 0x20]
and al, 2
xor al, byte [rbx + 0x20]
xor sil, al
and sil, 4
xor sil, al
mov byte [rbx + 0x20], sil
xor eax, eax
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
add rsp, 0x20
pop r14
pop rdi
pop rsi
ret

Function at 0x180002880
Capabilities:
Check for software breakpoints

Disassembly:
mov r8b, byte [rcx]
mov r9d, edx
test r8b, r8b
je 0x180002897
cmp r8b, 0x90
je 0x180002897
cmp r8b, 0xcc
jne 0x1800028b9
mov r10d, 1
mov edx, r10d
cmp r9d, r10d
jbe 0x1800028b5
mov eax, edx
cmp byte [rax + rcx], r8b
jne 0x1800028b9
add edx, r10d
cmp edx, r9d
jb 0x1800028a5
mov eax, r10d
ret
xor eax, eax
ret
Function at 0x180002d4c
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
push rdi
push r14
push r15
sub rsp, 0x50
mov rsi, rcx
lea rcx, [rax - 0x48]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov rbp, qword [rsp + 0x28]
cmp rsi, 0x40000000
jbe 0x180002d8d
lea rax, [rsi - 0x40000000]
cmp rbp, rax
cmovb rbp, rax
mov rbx, qword [0x1801c9e70]
lea r14, [rsi + 0x40000000]
cmp qword [rsp + 0x30], r14
cmovbe r14, qword [rsp + 0x30]
sub r14, 0xfff
xor edi, edi
jmp 0x180002dc8
cmp rbx, rbp
jb 0x180002dc5
cmp rbx, r14
jae 0x180002dc5
cmp qword [rbx + 8], rdi
jne 0x180002e95
mov rbx, qword [rbx]
test rbx, rbx
jne 0x180002db1
mov r15, rsi
cmp rsi, rbp
jb 0x180002e53
mov r8d, dword [rsp + 0x48]
mov rdx, rbp
mov rcx, r15
call fcn.180002c4c
mov r15, rax
test rax, rax
je 0x180002e14
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 0x180002e5a
cmp r15, rbp
jae 0x180002dd5
test rbx, rbx
jmp 0x180002e51
mov r8d, dword [rsp + 0x48]
mov rdx, r14
mov rcx, rsi
call fcn.180002cc0
mov rsi, rax
test rax, rax
je 0x180002e95
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 0x180002e5a
cmp rsi, r14
jbe 0x180002e19
jmp 0x180002e95
lea rcx, [rbx + 0x40]
mov dword [rbx + 0x10], edi
mov edx, 0x40
mov qword [rcx], rdi
mov rax, rcx
mov qword [rbx + 8], rcx
add rdx, 0x40
add rcx, 0x40
mov rdi, rax
cmp rdx, 0xfc0
jbe 0x180002e66
mov rax, qword [0x1801c9e70]
mov qword [rbx], rax
mov qword [0x1801c9e70], rbx
lea r11, [rsp + 0x50]
mov rax, rbx
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rdi
ret
Function at 0x1800173e0
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0x108
lea rbp, [rsp + 0x20]
lea rcx, [0x1801d8246]
call fcn.180149ac0
nop
mov qword [rbp + 8], 0
jmp 0x18001741f
mov rax, qword [rbp + 8]
inc rax
mov qword [rbp + 8], rax
mov rax, qword [rbp + 0x110]
cmp qword [rbp + 8], rax
jae 0x180017475
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x108]
add rcx, rax
mov rax, rcx
movzx eax, byte [rax]
mov rcx, qword [rbp + 0x100]
xor rcx, rax
mov rax, rcx
mov qword [rbp + 0x100], rax
movabs rax, 0x100000001b3
mov rcx, qword [rbp + 0x100]
imul rcx, rax
mov rax, rcx
mov qword [rbp + 0x100], rax
jmp 0x180017414
mov rax, qword [rbp + 0x100]
lea rsp, [rbp + 0xe8]
pop rdi
pop rbp
ret
Function at 0x180044e00
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0xe8
lea rbp, [rsp + 0x20]
lea rcx, [0x1801d84ab]
call fcn.180149ac0
nop
mov r9, qword [rbp + 0xf8]
mov r8, qword [rbp + 0xf0]
mov rdx, qword [rbp + 0xe8]
mov rcx, qword [rbp + 0xe0]
call qword [sym.imp.ucrtbased.dll_fread]
lea rsp, [rbp + 0xc8]
pop rdi
pop rbp
ret

Function at 0x180044e60
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0xe8
lea rbp, [rsp + 0x20]
lea rcx, [0x1801d84ab]
call fcn.180149ac0
nop
mov r9, qword [rbp + 0xf8]
mov r8, qword [rbp + 0xf0]
mov rdx, qword [rbp + 0xe8]
mov rcx, qword [rbp + 0xe0]
call qword [sym.imp.ucrtbased.dll_fwrite]
lea rsp, [rbp + 0xc8]
pop rdi
pop rbp
ret

Function at 0x1800466f0
Capabilities:
Hash data with crc32

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0x158
lea rbp, [rsp + 0x20]
lea rcx, [0x1801d84ab]
call fcn.180149ac0
nop
mov eax, dword [rbp + 0x160]
not eax
mov dword [rbp + 4], eax
mov rax, qword [rbp + 0x150]
mov qword [rbp + 0x28], rax
lea rax, [0x180158bd0]
mov qword [rbp + 0x48], rax
mov rax, qword [rbp + 0x158]
mov qword [rbp + 0x118], rax
mov rax, qword [rbp + 0x158]
dec rax
mov qword [rbp + 0x158], rax
cmp qword [rbp + 0x118], 0
je 0x180046770
mov dword [rbp + 0x120], 1
jmp 0x18004677a
mov dword [rbp + 0x120], 0
cmp dword [rbp + 0x120], 0
je 0x1800467c3
mov eax, dword [rbp + 4]
shr eax, 8
mov ecx, dword [rbp + 4]
and ecx, 0xff
mov rdx, qword [rbp + 0x28]
movzx edx, byte [rdx]
xor ecx, edx
mov ecx, ecx
mov rdx, qword [rbp + 0x48]
xor eax, dword [rdx + rcx*4]
mov dword [rbp + 0x114], eax
mov rax, qword [rbp + 0x28]
inc rax
mov qword [rbp + 0x28], rax
mov eax, dword [rbp + 0x114]
mov dword [rbp + 4], eax
jmp 0x18004673b
mov eax, dword [rbp + 4]
not eax
lea rsp, [rbp + 0x138]
pop rdi
pop rbp
ret
Function at 0x1800467e0
Capabilities:
Hash data with crc32

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0x198
lea rbp, [rsp + 0x20]
lea rcx, [0x1801d84ab]
call fcn.180149ac0
nop
mov eax, dword [rbp + 0x1a0]
not eax
mov dword [rbp + 0x1a0], eax
mov eax, dword [rbp + 0x1a0]
mov dword [rbp + 4], eax
mov rax, qword [rbp + 0x190]
mov qword [rbp + 0x28], rax
lea rax, [0x180158bd0]
mov qword [rbp + 0x48], rax
cmp qword [rbp + 0x198], 0
je 0x180046926
mov rax, qword [rbp + 0x198]
mov qword [rbp + 0x158], rax
mov rax, qword [rbp + 0x198]
dec rax
mov qword [rbp + 0x198], rax
cmp qword [rbp + 0x158], 0
je 0x18004687a
mov dword [rbp + 0x160], 1
jmp 0x180046884
mov dword [rbp + 0x160], 0
cmp dword [rbp + 0x160], 0
je 0x180046921
mov rax, qword [rbp + 0x28]
movzx eax, byte [rax]
mov byte [rbp + 0x154], al
mov rax, qword [rbp + 0x28]
inc rax
mov qword [rbp + 0x28], rax
movzx eax, byte [rbp + 0x154]
mov byte [rbp + 0x64], al
movzx eax, byte [rbp + 0x64]
cmp eax, 0x23
jne 0x1800468fb
cmp qword [rbp + 0x198], 2
jb 0x1800468fb
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rbp + 0x28]
movzx eax, byte [rcx + rax]
cmp eax, 0x23
jne 0x1800468fb
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rbp + 0x28]
movzx eax, byte [rcx + rax]
cmp eax, 0x23
jne 0x1800468fb
mov eax, dword [rbp + 0x1a0]
mov dword [rbp + 4], eax
mov eax, dword [rbp + 4]
shr eax, 8
mov ecx, dword [rbp + 4]
and ecx, 0xff
movzx edx, byte [rbp + 0x64]
xor ecx, edx
mov ecx, ecx
mov rdx, qword [rbp + 0x48]
xor eax, dword [rdx + rcx*4]
mov dword [rbp + 4], eax
jmp 0x180046845
jmp 0x1800469c0
mov rax, qword [rbp + 0x28]
movzx eax, byte [rax]
mov byte [rbp + 0x154], al
mov rax, qword [rbp + 0x28]
inc rax
mov qword [rbp + 0x28], rax
movzx eax, byte [rbp + 0x154]
mov byte [rbp + 0x84], al
movzx eax, byte [rbp + 0x84]
test eax, eax
je 0x1800469c0
movzx eax, byte [rbp + 0x84]
cmp eax, 0x23
jne 0x180046997
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rbp + 0x28]
movzx eax, byte [rcx + rax]
cmp eax, 0x23
jne 0x180046997
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rbp + 0x28]
movzx eax, byte [rcx + rax]
cmp eax, 0x23
jne 0x180046997
mov eax, dword [rbp + 0x1a0]
mov dword [rbp + 4], eax
mov eax, dword [rbp + 4]
shr eax, 8
mov ecx, dword [rbp + 4]
and ecx, 0xff
movzx edx, byte [rbp + 0x84]
xor ecx, edx
mov ecx, ecx
mov rdx, qword [rbp + 0x48]
xor eax, dword [rdx + rcx*4]
mov dword [rbp + 4], eax
jmp 0x180046926
mov eax, dword [rbp + 4]
not eax
lea rsp, [rbp + 0x178]
pop rdi
pop rbp
ret
Function at 0x1800d5d90
Capabilities:
Get geographical location
Get keyboard layout

Disassembly:
push rbp
push rdi
sub rsp, 0x148
lea rbp, [rsp + 0x20]
lea rcx, [0x1801d8635]
call fcn.180149ac0
nop
call fcn.1800d4670
mov qword [rbp + 8], rax
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
mov qword [rbp + 0x28], rax
mov rax, qword [rbp + 0x28]
shr rax, 0x10
and rax, 0xffff
movzx eax, ax
mov dword [rbp + 0x44], eax
mov rax, qword [rbp + 8]
add rax, 0x2c
mov r9d, 4
mov r8, rax
mov edx, 0x20001004
mov ecx, dword [rbp + 0x44]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
jne 0x1800d5e03
mov rax, qword [rbp + 8]
mov dword [rax + 0x2c], 0
lea rsp, [rbp + 0x128]
pop rdi
pop rbp
ret
Function at 0x180136f40
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0xf8
lea rbp, [rsp + 0x30]
lea rcx, [0x1801d878d]
call fcn.180149ac0
nop
cmp dword [rbp + 0xe8], 1
jne 0x180136fa6
mov rax, qword [rbp + 0xe0]
mov qword [0x1801c9718], rax
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
xor r9d, r9d
lea r8, [0x180136fc0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
nop
mov eax, 1
lea rsp, [rbp + 0xc8]
pop rdi
pop rbp
ret

Function at 0x18013bc50
Capabilities:
Enumerate process modules

Disassembly:
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
push rbp
push rdi
sub rsp, 0x6e8
lea rbp, [rsp + 0x20]
lea rdi, [rsp + 0x20]
mov ecx, 0x122
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov ecx, dword [rsp + 0x708]
mov rax, qword [0x1801c1fc0]
xor rax, rbp
mov qword [rbp + 0x6b8], rax
lea rcx, [0x1801d898a]
call fcn.180149ac0
nop
mov edx, dword [rbp + 0x6e0]
mov ecx, 0x18
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov qword [rbp + 8], rax
cmp qword [rbp + 8], 0xffffffffffffffff
jne 0x18013bcbc
xor al, al
jmp 0x18013bd3b
lea rax, [rbp + 0x30]
mov rdi, rax
xor eax, eax
mov ecx, 0x438
rep stosb byte [rdi], al
mov dword [rbp + 0x30], 0x438
lea rdx, [rbp + 0x30]
mov rcx, qword [rbp + 8]
call sub.KERNEL32.dll_Module32FirstW
test eax, eax
je 0x18013bd2e
mov rdx, qword [rbp + 0x6e8]
lea rcx, [rbp + 0x60]
call qword [sym.imp.ucrtbased.dll__wcsicmp]
test eax, eax
jne 0x18013bd1d
mov rax, qword [rbp + 0x48]
mov qword [0x1801c9760], rax
mov eax, dword [rbp + 0x50]
mov qword [0x1801c9768], rax
mov rcx, qword [rbp + 8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov al, 1
jmp 0x18013bd3b
lea rdx, [rbp + 0x30]
mov rcx, qword [rbp + 8]
call sub.KERNEL32.dll_Module32NextW
test eax, eax
jne 0x18013bce4
mov rcx, qword [rbp + 8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
xor al, al
mov rdi, rax
lea rcx, [rbp - 0x20]
lea rdx, [0x18019e7f0]
call fcn.180149890
mov rax, rdi
mov rcx, qword [rbp + 0x6b8]
xor rcx, rbp
call fcn.180149d60
lea rsp, [rbp + 0x6c8]
pop rdi
pop rbp
ret
Function at 0x18013bd70
Capabilities:
Enumerate processes

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0x428
lea rbp, [rsp + 0x20]
lea rdi, [rsp + 0x20]
mov ecx, 0xa2
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x448]
mov rax, qword [0x1801c1fc0]
xor rax, rbp
mov qword [rbp + 0x3f8], rax
lea rcx, [0x1801d898a]
call fcn.180149ac0
nop
xor edx, edx
mov ecx, 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov qword [rbp + 8], rax
cmp qword [rbp + 8], 0xffffffffffffffff
jne 0x18013bdd5
xor eax, eax
jmp 0x18013be40
lea rax, [rbp + 0x30]
mov rdi, rax
xor eax, eax
mov ecx, 0x238
rep stosb byte [rdi], al
mov dword [rbp + 0x30], 0x238
lea rdx, [rbp + 0x30]
mov rcx, qword [rbp + 8]
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
je 0x18013be33
mov rdx, qword [rbp + 0x420]
lea rcx, [rbp + 0x5c]
call qword [sym.imp.ucrtbased.dll__wcsicmp]
test eax, eax
jne 0x18013be22
mov rcx, qword [rbp + 8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov eax, dword [rbp + 0x38]
jmp 0x18013be40
lea rdx, [rbp + 0x30]
mov rcx, qword [rbp + 8]
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x18013bdfd
mov rcx, qword [rbp + 8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
xor eax, eax
mov rdi, rax
lea rcx, [rbp - 0x20]
lea rdx, [0x18019e790]
call fcn.180149890
mov rax, rdi
mov rcx, qword [rbp + 0x3f8]
xor rcx, rbp
call fcn.180149d60
lea rsp, [rbp + 0x408]
pop rdi
pop rbp
ret
Function at 0x18013e3a0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rdi
sub rsp, 0x188
lea rbp, [rsp + 0x20]
lea rcx, [0x1801d8a75]
call fcn.180149ac0
nop
movzx eax, byte [0x1801c1ef4]
test eax, eax
jne 0x18013e3cc
jmp 0x18013e52e
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 0x8000
test eax, eax
je 0x18013e4e3
movzx eax, byte [0x1801c9780]
test eax, eax
jne 0x18013e414
mov byte [0x1801c9780], 1
mov byte [0x1801c9782], 0
lea rcx, [rbp + 0xe8]
call fcn.18000e660
mov rax, qword [rax]
mov qword [0x1801c9788], rax
lea rcx, [rbp + 0x108]
call fcn.18000e660
lea r8, [0x1801c9788]
mov rdx, rax
lea rcx, [rbp + 0x128]
call fcn.18000c7b0
mov rdx, rax
lea rcx, [rbp + 0x148]
call fcn.18000c8f0
mov rcx, rax
call fcn.18000e390
mov qword [rbp + 8], rax
movsxd rax, dword [0x1801c1f00]
cmp qword [rbp + 8], rax
jle 0x18013e4b1
movsxd rax, dword [0x1801c1efc]
cmp qword [rbp + 8], rax
jge 0x18013e4b1
movsxd rax, dword [0x1801c1ef8]
cmp qword [rbp + 8], rax
jle 0x18013e4af
movzx eax, byte [0x1801c9782]
test eax, eax
jne 0x18013e4af
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov cl, 0x20
call qword [sym.imp.USER32.dll_keybd_event]
nop
xor r9d, r9d
mov r8d, 2
xor edx, edx
mov cl, 0x20
call qword [sym.imp.USER32.dll_keybd_event]
nop
mov byte [0x1801c9782], 1
jmp 0x18013e4e1
movsxd rax, dword [0x1801c1efc]
cmp qword [rbp + 8], rax
jl 0x18013e4e1
movzx eax, byte [0x1801c9781]
test eax, eax
jne 0x18013e4e1
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov cl, 0x11
call qword [sym.imp.USER32.dll_keybd_event]
nop
mov byte [0x1801c9781], 1
jmp 0x18013e52e
movzx eax, byte [0x1801c9780]
test eax, eax
je 0x18013e50d
movzx eax, byte [0x1801c9781]
test eax, eax
je 0x18013e50d
xor r9d, r9d
mov r8d, 2
xor edx, edx
mov cl, 0x11
call qword [sym.imp.USER32.dll_keybd_event]
nop
mov byte [0x1801c9782], 0
movzx eax, byte [0x1801c9782]
mov byte [0x1801c9781], al
movzx eax, byte [0x1801c9781]
mov byte [0x1801c9780], al
lea rsp, [rbp + 0x168]
pop rdi
pop rbp
ret
Function at 0x180140d80
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rdi
sub rsp, 0x1a8
lea rbp, [rsp + 0x20]
lea rdi, [rsp + 0x20]
mov ecx, 0x32
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rax, qword [0x1801c1fc0]
xor rax, rbp
mov qword [rbp + 0x178], rax
lea rcx, [0x1801d8c7f]
call fcn.180149ac0
nop
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov word [rbp + 4], ax
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov word [rbp + 0x24], ax
movsx eax, word [rbp + 4]
and eax, 0x8000
test eax, eax
je 0x180140e1d
lea rax, [rbp + 0x48]
mov rdi, rax
xor eax, eax
mov ecx, 0x28
rep stosb byte [rdi], al
mov dword [rbp + 0x48], 0
mov dword [rbp + 0x5c], 4
mov r8d, 0x28
lea rdx, [rbp + 0x48]
mov ecx, 1
call qword [sym.imp.USER32.dll_SendInput]
nop
movsx eax, word [rbp + 0x24]
and eax, 0x8000
test eax, eax
je 0x180140e6a
lea rax, [rbp + 0x88]
mov rdi, rax
xor eax, eax
mov ecx, 0x28
rep stosb byte [rdi], al
mov dword [rbp + 0x88], 0
mov dword [rbp + 0x9c], 0x10
mov r8d, 0x28
lea rdx, [rbp + 0x88]
mov ecx, 1
call qword [sym.imp.USER32.dll_SendInput]
nop
lea rcx, [rbp - 0x20]
lea rdx, [0x18019f920]
call fcn.180149890
mov rcx, qword [rbp + 0x178]
xor rcx, rbp
call fcn.180149d60
lea rsp, [rbp + 0x188]
pop rdi
pop rbp
ret
Function at 0x140001000
Capabilities:
Accept command line arguments
Query environment variable

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x70
lea rcx, str._JAVA_LAUNCHER_DEBUG
call qword [sym.imp.MSVCR100.dll_getenv]
test rax, rax
je 0x140001066
lea rcx, str.Windows_original_main_args:_n
call qword [sym.imp.MSVCR100.dll_printf]
mov rax, qword [sym.imp.MSVCR100.dll___argc]
xor ebx, ebx
cmp dword [rax], ebx
jle 0x140001066
xor edi, edi
mov rax, qword [sym.imp.MSVCR100.dll___argv]
lea rcx, str.wwwd_args__d____s_n
mov edx, ebx
mov r8, qword [rax]
mov r8, qword [r8 + rdi]
call qword [sym.imp.MSVCR100.dll_printf]
mov rax, qword [sym.imp.MSVCR100.dll___argc]
inc ebx
add rdi, 8
cmp ebx, dword [rax]
jl 0x140001038
call qword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov rcx, rax
call sub.jli.dll_JLI_CmdToArgs
call sub.jli.dll_JLI_GetStdArgc
movsxd rdi, eax
lea ecx, [rdi + 1]
movsxd rcx, ecx
shl rcx, 3
call sub.jli.dll_JLI_MemAlloc
mov rbx, rax
call sub.jli.dll_JLI_GetStdArgs
xor r9d, r9d
xor edx, edx
test edi, edi
jle 0x1400010b2
mov r9d, edi
mov rcx, qword [rax]
add rax, 0x10
mov qword [rbx + rdx*8], rcx
inc rdx
cmp rdx, rdi
jl 0x14000109f
mov rcx, qword [str.java]
movsxd rax, r9d
and qword [rbx + rax*8], 0
test rcx, rcx
jne 0x1400010c9
mov rcx, qword [rbx]
mov rax, qword [str.java]
test rax, rax
jne 0x1400010d8
mov rax, qword [rbx]
and dword [rsp + 0x68], 0
mov byte [rsp + 0x60], 0
mov byte [rsp + 0x58], 0
mov byte [rsp + 0x50], 1
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x40], rax
lea rax, [0x140002250]
lea r9, str._J_ms8m
mov r8d, 3
mov qword [rsp + 0x38], rax
lea rax, [0x140002240]
mov rdx, rbx
mov qword [rsp + 0x30], rax
lea rax, str._lib_tools.jar
mov ecx, edi
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 2
call sub.jli.dll_JLI_Launch
mov rbx, qword [rsp + 0x80]
add rsp, 0x70
pop rdi
ret

Function at 0x1406ecc00
Capabilities:
Encode data using xor

Disassembly:
mov rax, qword gs:[0x60]
movabs r11, 0x6ecc70
movabs r10, 0x6ecc74
mov r9, qword [rax + 0x10]
xor eax, eax
movsxd rcx, dword [r9 + 0x3c]
movsxd r11, dword [r9 + r11]
add rcx, r9
mov r10d, dword [r9 + r10]
movzx r8d, word [rcx + 0x14]
add r8, rcx
cmp dword [r8 + 0x20], eax
jbe 0x1406ecc66
mov edx, eax
nop dword [rax]
nop word [rax + rax]
mov ecx, dword [r8 + 0x24]
inc eax
add rcx, rdx
inc rdx
xor byte [rcx + r9], r10b
cmp eax, dword [r8 + 0x20]
jb 0x1406ecc50
lea rax, [r9 + r11]
jmp rax