joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1401366c0
Capabilities:
Write file on windows

Disassembly:
push rbx
push rbp
push rdi
push r12
push r13
push r14
sub rsp, 0x68
movzx eax, word [rdx + 0xb]
mov r12, rcx
mov rdi, rdx
imul eax, dword [rdx + 0x24]
mov ecx, eax
mov ebx, eax
call fcn.1402b9c60
mov r8d, ebx
xor edx, edx
mov rcx, rax
mov r13, rax
call fcn.1402c22a0
xor ebp, ebp
xor r14b, r14b
movsd xmm0, qword [0x140419c20]
mov ebx, ebp
movsd qword [r13], xmm0
mov ecx, dword [0x140419c28]
mov dword [r13 + 8], ecx
movzx edx, word [rdi + 0xe]
mov dword [rsp + 0xb0], edx
cmp byte [rdi + 0x10], bl
jbe 0x14013682d
mov qword [rsp + 0xa0], rsi
mov qword [rsp + 0x60], r15
nop word [rax + rax]
mov eax, dword [rdi + 0x24]
mov rsi, qword [r12 + 8]
mov qword [rsp + 0x40], rbp
movzx r15d, word [rsi + 0x54]
imul eax, ebx
add eax, edx
xor edx, edx
cdqe
mov dword [rsp + 0xa8], ebp
add rax, qword [r12 + 0x10]
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x58], rdx
imul rax, r15
imul r15d, dword [rdi + 0x24]
mov dword [rsp + 0x50], eax
shr rax, 0x20
mov dword [rsp + 0x54], eax
cmp qword [rsi + 0x70], rdx
jne 0x1401367c2
xor r9d, r9d
mov qword [rsp + 0x30], rbp
lea rcx, [rsi + 0x24]
lea r8d, [r9 + 3]
mov edx, 0x100003
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
je 0x1401367c2
mov qword [rsi + 0x70], rax
mov rcx, qword [rsi + 0x70]
lea rax, [rsp + 0x40]
lea r9, [rsp + 0xa8]
mov r8d, r15d
mov rdx, r13
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WriteFile]
movzx ecx, word [rsi + 0x54]
xor edx, edx
mov r8d, eax
mov eax, dword [rsp + 0xa8]
div ecx
test r8d, r8d
je 0x14013681a
cmp eax, dword [rdi + 0x24]
jne 0x140136820
movzx eax, byte [rdi + 0x10]
mov edx, dword [rsp + 0xb0]
inc ebx
inc r14b
cmp ebx, eax
jl 0x140136740
jmp 0x140136820
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rsi, qword [rsp + 0xa0]
mov r15, qword [rsp + 0x60]
mov rcx, r13
call fcn.1402b9c20
cmp r14b, byte [rdi + 0x10]
sete al
add rsp, 0x68
pop r14
pop r13
pop r12
pop rdi
pop rbp
pop rbx
ret
Function at 0x1401395b0
Capabilities:
Enumerate process modules

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x2a8
mov rax, qword [0x140418a10]
xor rax, rsp
mov qword [rsp + 0x290], rax
mov rbx, qword [rsp + 0x300]
mov rsi, r8
mov r14, rdx
mov ebp, ecx
lea r8, [rsp + 0x38]
mov edx, 8
mov rcx, rbx
mov r15, r9
xor dil, dil
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
jne 0x14013961b
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str._5d_OpenProcessToken_failed_with__d_r_n
mov edx, ebp
mov r8d, eax
call fcn.1402ba358
jmp 0x1401396cd
mov rdx, qword [0x14041a158]
mov rcx, rsi
call fcn.1401fd6c0
mov rcx, qword [rsp + 0x38]
mov rdx, rsi
call fcn.140118610
test al, al
je 0x1401396cd
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea r9, [rsp + 0x48]
lea rdx, [rsp + 0x40]
mov r8d, 8
mov rcx, rbx
call qword [sym.imp.PSAPI.DLL_EnumProcessModules]
test eax, eax
je 0x14013969a
mov rdx, qword [rsp + 0x40]
lea r8, [rsp + 0x80]
mov r9d, 0x104
mov rcx, rbx
call qword [sym.imp.PSAPI.DLL_GetModuleFileNameExW]
test eax, eax
je 0x14013969a
lea rdx, [rsp + 0x80]
mov rcx, r15
call fcn.1401fd6c0
mov dil, 1
lea rax, [rsp + 0x30]
lea r8, [rsp + 0x50]
mov r9d, 0x30
xor edx, edx
mov rcx, rbx
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x20], rax
call qword [0x14042bbe8]
test eax, eax
jne 0x1401396cd
mov edx, dword [rsp + 0x78]
mov dword [r14], edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
movzx eax, dil
mov rcx, qword [rsp + 0x290]
xor rcx, rsp
call fcn.1402b9610
add rsp, 0x2a8
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x14013c890
Capabilities:
Create process on windows

Disassembly:
sub rsp, 0x8f8
mov rax, qword [0x140418a10]
xor rax, rsp
mov qword [rsp + 0x8e0], rax
mov r9, qword [rdx]
lea r8, str.notepad.exe___s_
lea rcx, [rsp + 0xe0]
mov edx, 0x400
call fcn.1402bd1f8
xor edx, edx
lea rcx, [rsp + 0x78]
lea r8d, [rdx + 0x60]
call fcn.1402c22a0
xor eax, eax
xor ecx, ecx
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x70]
lea rdx, [rsp + 0xe0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], ecx
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x50], rcx
mov dword [rsp + 0x70], 0x68
mov dword [rsp + 0x20], 1
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x14013c962
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, 1
mov rcx, qword [rsp + 0x8e0]
xor rcx, rsp
call fcn.1402b9610
add rsp, 0x8f8
ret
xor al, al
mov rcx, qword [rsp + 0x8e0]
xor rcx, rsp
call fcn.1402b9610
add rsp, 0x8f8
ret

Function at 0x14013d0b0
Capabilities:
Delete file

Disassembly:
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
mov rax, qword [rcx]
mov rsi, rcx
call qword [rax]
xor r9d, r9d
xor r8d, r8d
mov rcx, rax
mov edx, 0x188
call qword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0xffffffff
je 0x14013d1df
movsxd rbp, eax
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
xor r9d, r9d
mov r8, rbp
mov rcx, rax
mov edx, 0x199
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x14013d1df
mov qword [rsp + 0x40], rbx
test rax, rax
jne 0x14013d12f
mov ebx, eax
mov qword [rsp + 0x28], rax
lea rax, [0x140348ca0]
mov qword [rsp + 0x20], rax
jmp 0x14013d17b
or rbx, 0xffffffffffffffff
inc rbx
cmp word [rax + rbx*2], 0
jne 0x14013d133
xor eax, eax
mov qword [rsp + 0x28], rax
test ebx, ebx
jne 0x14013d156
lea rax, [0x140348ca0]
mov qword [rsp + 0x20], rax
jmp 0x14013d17b
lea rcx, [rsp + 0x20]
mov edx, ebx
call fcn.1401ff260
mov eax, dword [rsp + 0x28]
mov rcx, qword [rsp + 0x20]
inc eax
movsxd r9, ebx
mov r8, rdi
movsxd rdx, eax
call fcn.1402bd21c
lea rcx, [rsp + 0x20]
mov edx, ebx
call fcn.140200570
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
setne bl
cmp dword [rsp + 0x28], 0
jle 0x14013d1a8
mov rcx, qword [rsp + 0x20]
call fcn.1402b9c20
test bl, bl
mov rbx, qword [rsp + 0x40]
je 0x14013d1df
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
xor r9d, r9d
mov r8, rbp
mov rcx, rax
mov edx, 0x182
call qword [sym.imp.USER32.dll_SendMessageW]
mov al, 1
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
xor al, al
add rsp, 0x30
pop rdi
ret
Function at 0x14013dd80
Capabilities:
Delete file

Disassembly:
mov r11, rsp
mov byte [r11 + 0x18], r8b
mov qword [r11 + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
mov qword [r11 - 0x80], 0xfffffffffffffffe
mov qword [r11 + 0x10], rbx
movzx ebp, r8b
mov r13, rdx
mov rbx, rcx
lea rax, vtable.Core::ByteArray.0
mov qword [r11 - 0x58], rax
xor r15d, r15d
mov dword [r11 - 0x50], r15d
mov qword [r11 - 0x48], r15
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov qword [rsp + 0x78], rax
lea rdx, [rsp + 0x60]
mov rcx, rbx
call fcn.140208850
mov rsi, qword [rsp + 0x70]
test al, al
je 0x14013df9e
mov word [rsp + 0x30], 0xbbef
mov word [rsp + 0xd8], 0xfeff
mov rdi, rsi
mov ebx, dword [rsp + 0x68]
cmp ebx, 3
jl 0x14013de2a
movzx eax, word [rsi]
cmp ax, word [rsp + 0x30]
jne 0x14013de2a
cmp byte [rsi + 2], 0xbf
jne 0x14013de2a
mov r15d, 0xfde9
lea rdi, [rsi + 3]
add ebx, 0xfffffffd
jmp 0x14013de5f
cmp ebx, 2
jl 0x14013de59
movzx eax, word [rsi]
cmp ax, word [rsp + 0xd8]
jne 0x14013de45
lea rdi, [rsi + 2]
add ebx, 0xfffffffe
jmp 0x14013de4b
cmp byte [rsi + 1], 0
jne 0x14013de59
xor r12b, r12b
mov r14, rdi
movsxd rax, ebx
shr rax, 1
jmp 0x14013ded4
mov r15d, 0x4e4
xor r14d, r14d
xor r12b, r12b
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r14
mov r9d, ebx
mov r8, rdi
xor edx, edx
mov ecx, r15d
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebp, eax
test eax, eax
jle 0x14013dec5
inc ebp
movsxd rcx, ebp
add rcx, rcx
call fcn.1402b9c60
mov r14, rax
test rax, rax
je 0x14013dec5
mov r12b, 1
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x20], rax
mov r9d, ebx
mov r8, rdi
xor edx, edx
mov ecx, r15d
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rcx, eax
xor r15d, r15d
mov word [r14 + rcx*2], r15w
jmp 0x14013decc
mov eax, dword [rsp + 0xd0]
movzx ebp, byte [rsp + 0xd0]
test eax, eax
jle 0x14013df84
mov rbx, r14
cdqe
lea rdi, [r14 + rax*2]
mov rdx, r14
lea rsi, [0x140348ca0]
nop
movzx ecx, word [rbx]
add rbx, 2
cmp cx, 0xa
je 0x14013df02
cmp rbx, rdi
jne 0x14013df79
mov rax, rbx
sub rax, rdx
sar rax, 1
cmp cx, 0xa
jne 0x14013df14
dec rax
test rax, rax
je 0x14013df73
cmp word [rdx + rax*2 - 2], 0xd
jne 0x14013df24
dec rax
test rax, rax
je 0x14013df73
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], 0
mov r8d, eax
lea rcx, [rsp + 0x40]
call fcn.1401fd9d0
movzx eax, byte [0x14042c16a]
mov byte [rsp + 0x20], al
lea r9, [rsp + 0x40]
lea rdx, [rsp + 0x50]
mov rcx, r13
call fcn.1400e97f0
nop
cmp dword [rsp + 0x48], 0
jle 0x14013df73
mov rcx, qword [rsp + 0x40]
call fcn.1402b9c20
mov rdx, rbx
cmp rbx, rdi
jb 0x14013def0
mov rsi, qword [rsp + 0x70]
test r14, r14
je 0x14013df96
test r12b, r12b
je 0x14013df96
mov rcx, r14
call fcn.1402b9c20
mov rbx, qword [rsp + 0xc0]
test bpl, bpl
je 0x14013dfad
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
nop
test rsi, rsi
je 0x14013dfc2
mov r8, rsi
xor edx, edx
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0xc8]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x140140ea0
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
lea rdi, [r8 + 7]
and rdi, 0xfffffffffffffff8
mov r8, rdi
call fcn.140140f40
mov rbx, rax
test rax, rax
jne 0x140140ecd
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov r9d, dword [rax + 8]
mov qword [rsp + 0x30], rsi
mov rsi, qword [rax + 0x10]
add rsi, qword [rax]
mov r8d, 0x1000
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
je 0x140140f10
mov r8d, dword [rbx + 8]
lea r9, [rsp + 0x40]
mov rdx, rdi
add r8d, r8d
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x140140f22
xor eax, eax
mov rsi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
add qword [rbx + 0x10], rdi
mov rbx, qword [rsp + 0x38]
mov rax, rsi
mov rsi, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x140142690
Capabilities:
Allocate or change rwx memory

Disassembly:
push rdi
sub rsp, 0x40
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x68], rsi
mov rbx, rcx
lea rsi, [0x14042c010]
mov qword [rsp + 0x60], rsi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
cmp byte [0x14042baba], 0
jne 0x1401426d5
mov ebx, 2
jmp 0x140142790
mov rcx, rbx
call fcn.1401427b0
mov rdi, rax
test rax, rax
jne 0x1401426ed
lea ebx, [rax + 4]
jmp 0x140142790
cmp byte [rax + 0x28], 0
jne 0x1401426fd
mov ebx, 6
jmp 0x140142790
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
xor ebx, ebx
mov qword [rsp + 0x38], rbx
lea rcx, [rsp + 0x28]
call fcn.140143120
lea r8, [rdi + 0x48]
lea rdx, [rdi + 0x30]
lea rcx, [rsp + 0x28]
call fcn.140143270
nop
lea r9, [rsp + 0x58]
lea edx, [rbx + 5]
lea r8d, [rbx + 0x40]
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x140142754
lea rcx, [rsp + 0x28]
call fcn.1401430a0
mov ebx, 0xa
jmp 0x140142790
mov r8, qword [rdi + 0x20]
mov r9, qword [rdi]
mov eax, dword [r8]
mov dword [r9], eax
movzx eax, byte [r8 + 4]
mov byte [r9 + 4], al
lea r9, [rsp + 0x58]
mov r8d, dword [rsp + 0x58]
mov edx, 5
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
lea rcx, [rsp + 0x28]
call fcn.1401430a0
mov byte [rdi + 0x28], 0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, ebx
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x68]
add rsp, 0x40
pop rdi
ret

Function at 0x1401430a0
Capabilities:
Resume thread

Disassembly:
push rsi
sub rsp, 0x20
mov qword [rsp + 0x38], rdi
mov rdi, qword [rcx]
mov rsi, rcx
cmp rdi, qword [rcx + 8]
je 0x1401430f2
mov qword [rsp + 0x30], rbx
nop dword [rax]
mov r8d, dword [rdi]
xor edx, edx
lea ecx, [rdx + 2]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rcx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add rdi, 4
cmp rdi, qword [rsi + 8]
jne 0x1401430c0
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rsi]
mov rdi, qword [rsp + 0x38]
test rcx, rcx
je 0x140143111
call fcn.1402177e0
xor eax, eax
mov qword [rsi], rax
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rax
add rsp, 0x20
pop rsi
ret
Function at 0x140143120
Capabilities:
Enumerate threads

Disassembly:
push rdi
sub rsp, 0x60
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x80], rsi
mov rax, qword [0x140418a10]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov rdi, rcx
xor edx, edx
lea ecx, [rdx + 4]
call qword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov rbx, rax
mov qword [rsp + 0x20], rax
cmp rax, 0xffffffffffffffff
je 0x14014323a
mov dword [rsp + 0x30], 0x1c
xor eax, eax
mov qword [rsp + 0x34], rax
mov qword [rsp + 0x3c], rax
mov qword [rsp + 0x44], rax
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_Thread32First]
test eax, eax
je 0x14014323a
nop word [rax + rax]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [rsp + 0x3c], eax
jne 0x140143224
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [rsp + 0x38]
cmp ecx, eax
je 0x140143224
mov rax, qword [rdi + 8]
lea rdx, [rsp + 0x38]
cmp rdx, rax
jae 0x140143202
mov rdx, qword [rdi]
lea r8, [rsp + 0x38]
cmp rdx, r8
ja 0x140143202
lea rsi, [rsp + 0x38]
sub rsi, rdx
sar rsi, 2
cmp rax, qword [rdi + 0x10]
jne 0x1401431ef
mov rcx, rdi
call fcn.1400bb0b0
mov rax, qword [rdi]
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x14014321f
mov eax, dword [rax + rsi*4]
mov dword [rcx], eax
jmp 0x14014321f
cmp rax, qword [rdi + 0x10]
jne 0x140143214
mov rcx, rdi
call fcn.1400bb0b0
mov ecx, dword [rsp + 0x38]
mov rax, qword [rdi + 8]
test rax, rax
je 0x14014321f
mov dword [rax], ecx
add qword [rdi + 8], 4
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_Thread32Next]
test eax, eax
jne 0x1401431a0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1402b9610
mov rbx, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x60
pop rdi
ret
Function at 0x140143270
Capabilities:
Suspend thread

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], rbx
push rsi
push r14
push r15
sub rsp, 0x500
mov rax, qword [0x140418a10]
xor rax, rsp
mov qword [rsp + 0x4f0], rax
mov rbx, qword [rcx]
mov r15, r8
mov rsi, rdx
mov r14, rcx
cmp rbx, qword [rcx + 8]
je 0x140143392
mov qword [r11 + 8], rbp
mov qword [r11 + 0x10], rdi
xor ebp, ebp
nop word [rax + rax]
mov r8d, dword [rbx]
xor edx, edx
lea ecx, [rdx + 0x5a]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rcx, rax
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_SuspendThread]
lea rcx, [rsp + 0x28]
xor edx, edx
mov r8d, 0x4c8
mov qword [rsp + 0x20], rbp
call fcn.1402c22a0
lea rdx, [rsp + 0x20]
mov rcx, rdi
mov dword [rsp + 0x50], 0x100001
call qword [sym.imp.KERNEL32.dll_GetThreadContext]
test eax, eax
je 0x140143379
mov rax, qword [rsi]
mov rdx, qword [rsi + 8]
mov rcx, rbp
sub rdx, rax
sar rdx, 3
test rdx, rdx
je 0x140143352
mov r8, qword [rsp + 0x118]
nop dword [rax]
cmp r8, qword [rax]
je 0x140143343
inc rcx
add rax, 8
cmp rcx, rdx
jb 0x140143330
jmp 0x140143352
mov rax, qword [r15]
mov rcx, qword [rax + rcx*8]
mov qword [rsp + 0x118], rcx
lea rdx, [rsp + 0x20]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetThreadContext]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add rbx, 4
cmp rbx, qword [r14 + 8]
jne 0x1401432c0
jmp 0x140143382
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbp, qword [rsp + 0x520]
mov rdi, qword [rsp + 0x528]
mov rcx, qword [rsp + 0x4f0]
xor rcx, rsp
call fcn.1402b9610
mov rbx, qword [rsp + 0x530]
add rsp, 0x500
pop r15
pop r14
pop rsi
ret
Function at 0x140143fd0
Capabilities:
Get common file path

Disassembly:
mov r11, rsp
push rdi
sub rsp, 0x5a0
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rsi
mov rax, qword [0x140418a10]
xor rax, rsp
mov qword [rsp + 0x590], rax
mov rsi, rcx
xor ebx, ebx
movsd xmm0, qword [0x140347f40]
movsd qword [rsp + 0x58], xmm0
mov eax, dword [0x140347f48]
mov dword [rsp + 0x60], eax
movzx eax, word [0x140347f4c]
mov word [rsp + 0x64], ax
mov edx, 0x104
lea rcx, [r11 - 0x438]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
movzx eax, word [rsp + 0x170]
mov word [rsp + 0x60], ax
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x100081
lea r8d, [rbx + 3]
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x14014410c
mov qword [rsp + 0x38], rbx
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x100
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x560000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x140144103
cmp dword [rsp + 0x40], 0x20
jb 0x140144103
mov r9d, dword [rsp + 0x78]
lea r8, str.DosDevicesPhysicalDrive_d
mov edx, 0x104
lea rcx, [rsp + 0x380]
call fcn.1402bd1f8
mov ecx, 0x2a8
call fcn.1402b968c
mov qword [rsp + 0x50], rax
test rax, rax
je 0x140144103
mov r8, rsi
lea rdx, [rsp + 0x380]
mov rcx, rax
call fcn.140143ce0
mov rbx, rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, rbx
mov rcx, qword [rsp + 0x590]
xor rcx, rsp
call fcn.1402b9610
lea r11, [rsp + 0x5a0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rsp, r11
pop rdi
ret
Function at 0x140144ec0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x250
mov rax, qword [0x140418a10]
xor rax, rsp
mov qword [rsp + 0x240], rax
xor esi, esi
mov rdi, rdx
xor dl, dl
or rbx, 0xffffffffffffffff
mov r9, r8
mov dword [rsp + 0x20], esi
mov rax, rbx
inc rax
cmp word [r8 + rax*2], si
jne 0x140144ef2
mov r8, rsi
movsxd r10, eax
test eax, eax
jle 0x140144fd5
lea rax, [rsp + 0x30]
mov r11, r9
mov qword [rsp + 0x270], rbp
sub r11, rax
mov ebp, 1
nop dword [rax]
nop word [rax + rax]
lea rax, [r11 + r8*2]
movzx edx, dl
movzx ecx, word [rsp + rax + 0x30]
movzx eax, cx
xor ax, 0x33
cmp cx, 0x40
cmove edx, ebp
mov word [rsp + r8*2 + 0x30], ax
inc r8
cmp r8, r10
jl 0x140144f30
mov rbp, qword [rsp + 0x270]
test dl, dl
je 0x140144fd5
add r10, r10
cmp r10, 0x208
jae 0x140144ffe
mov word [rsp + r10 + 0x30], si
lea rax, [rsp + 0x30]
nop
inc rbx
cmp word [rax + rbx*2], si
jne 0x140144f80
mov qword [rdi + 8], rsi
test ebx, ebx
jne 0x140144fa7
lea rax, [0x140348ca0]
mov edx, ebx
mov rcx, rdi
mov qword [rdi], rax
call fcn.140200570
jmp 0x140144fe0
mov edx, ebx
mov rcx, rdi
call fcn.1401ff260
mov ecx, dword [rdi + 8]
lea r8, [rsp + 0x30]
inc ecx
movsxd r9, ebx
movsxd rdx, ecx
mov rcx, qword [rdi]
call fcn.1402bd21c
mov edx, ebx
mov rcx, rdi
call fcn.140200570
jmp 0x140144fe0
mov rdx, r9
mov rcx, rdi
call fcn.1401fd200
mov rax, rdi
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.1402b9610
add rsp, 0x250
pop rdi
pop rsi
pop rbx
ret
call fcn.1402bb5f0
int3

Function at 0x140145010
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
push rbx
push rsi
push r14
sub rsp, 0x250
mov rax, qword [0x140418a10]
xor rax, rsp
mov qword [rsp + 0x240], rax
xor r14d, r14d
mov qword [r11 + 8], rbp
mov rsi, rdx
mov ebx, r14d
mov rbp, r8
mov dword [rsp + 0x20], r14d
cmp dword [r8 + 0xc], ebx
jle 0x140145079
mov qword [r11 + 0x20], rdi
lea rdi, [rsp + 0x30]
mov edx, ebx
mov rcx, rbp
call fcn.1401fd730
inc ebx
lea rdi, [rdi + 2]
xor ax, 0x33
mov word [rdi - 2], ax
cmp ebx, dword [rbp + 0xc]
jl 0x140145054
mov rdi, qword [rsp + 0x288]
movsxd rax, dword [rbp + 0xc]
mov rbp, qword [rsp + 0x270]
add rax, rax
cmp rax, 0x208
jae 0x140145109
mov word [rsp + rax + 0x30], r14w
or rbx, 0xffffffffffffffff
lea rax, [rsp + 0x30]
nop
inc rbx
cmp word [rax + rbx*2], r14w
jne 0x1401450a0
mov qword [rsi + 8], r14
test ebx, ebx
jne 0x1401450be
lea rax, [0x140348ca0]
mov qword [rsi], rax
jmp 0x1401450e0
mov edx, ebx
mov rcx, rsi
call fcn.1401ff260
mov ecx, dword [rsi + 8]
lea r8, [rsp + 0x30]
inc ecx
movsxd r9, ebx
movsxd rdx, ecx
mov rcx, qword [rsi]
call fcn.1402bd21c
mov edx, ebx
mov rcx, rsi
call fcn.140200570
mov rax, rsi
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.1402b9610
add rsp, 0x250
pop r14
pop rsi
pop rbx
ret
call fcn.1402bb5f0
int3
Function at 0x140147f70
Capabilities:
Encode data using xor
Hash data using murmur3

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
movsxd rsi, edx
mov r10d, r8d
mov r11d, r8d
mov eax, esi
mov rdi, rcx
movabs rbp, 0x87c37b91114253d5
cdq
movabs r14, 0x4cf5ad432745937f
and edx, 0xf
add eax, edx
sar eax, 4
movsxd rbx, eax
mov r8, rbx
test eax, eax
jle 0x140148015
lea rdx, [rcx + 8]
nop
mov rax, qword [rcx]
lea rcx, [rcx + 0x10]
lea rdx, [rdx + 0x10]
imul rax, rbp
rol rax, 0x1f
imul rax, r14
xor rax, r10
rol rax, 0x1b
add rax, r11
lea r10, [rax*4 + 0x52dce729]
add r10, rax
mov rax, qword [rdx - 0x10]
imul rax, r14
rol rax, 0x21
imul rax, rbp
xor rax, r11
rol rax, 0x1f
add rax, 0xb41def1
add rax, r10
lea r11, [rax + rax*4]
dec r8
jne 0x140147fc0
shl ebx, 4
xor eax, eax
mov ecx, esi
and ecx, 0xf
movsxd r8, ebx
add r8, rdi
dec ecx
cmp ecx, 0xe
ja case.default.0x140148044
lea rbx, [0x140000000]
movsxd rcx, ecx
mov edx, dword [rbx + rcx*4 + 0x1481a0]
add rdx, rbx
jmp rdx
movzx eax, byte [r8 + 0xe]
shl rax, 0x30
movzx ecx, byte [r8 + 0xd]
shl rcx, 0x28
xor rax, rcx
movzx ecx, byte [r8 + 0xc]
shl rcx, 0x20
xor rax, rcx
movzx ecx, byte [r8 + 0xb]
shl rcx, 0x18
xor rax, rcx
movzx ecx, byte [r8 + 0xa]
shl rcx, 0x10
xor rax, rcx
movzx ecx, byte [r8 + 9]
shl rcx, 8
xor rax, rcx
movzx ecx, byte [r8 + 8]
xor rcx, rax
imul rcx, r14
rol rcx, 0x21
imul rcx, rbp
xor r11, rcx
movzx eax, byte [r8 + 7]
shl rax, 0x38
movzx ecx, byte [r8 + 6]
shl rcx, 0x30
xor rax, rcx
movzx ecx, byte [r8 + 5]
shl rcx, 0x28
xor rax, rcx
movzx ecx, byte [r8 + 4]
shl rcx, 0x20
xor rax, rcx
movzx ecx, byte [r8 + 3]
shl rcx, 0x18
xor rax, rcx
movzx ecx, byte [r8 + 2]
shl rcx, 0x10
xor rax, rcx
movzx ecx, byte [r8 + 1]
shl rcx, 8
xor rax, rcx
movzx ecx, byte [r8]
xor rcx, rax
imul rcx, rbp
rol rcx, 0x1f
imul rcx, r14
xor r10, rcx
mov rbx, qword [rsp + 0x10]
mov rbp, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x28]
xor r11, rsi
mov rcx, rsi
mov rsi, qword [rsp + 0x20]
xor rcx, r10
movabs r10, 0xff51afd7ed558ccd
movabs r8, 0xc4ceb9fe1a85ec53
add rcx, r11
mov rax, rcx
shr rax, 0x21
xor rax, rcx
imul rax, r10
mov rdx, rax
shr rdx, 0x21
xor rdx, rax
lea rax, [r11 + rcx]
mov rcx, rax
shr rcx, 0x21
xor rcx, rax
imul rdx, r8
imul rcx, r10
mov rax, rcx
shr rax, 0x21
xor rax, rcx
imul rax, r8
mov rcx, rax
shr rcx, 0x21
xor rcx, rax
mov rax, rdx
shr rax, 0x21
xor rax, rdx
add rax, rcx
mov qword [r9], rax
add rax, rcx
mov qword [r9 + 8], rax
pop r14
ret