joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140008140
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x50
mov rax, qword [r8]
mov r10, r8
mov rbx, rdx
mov qword [rdx + 0x48], rax
mov rax, qword [r8 + 8]
mov rdi, r9
mov qword [rdx + 0x50], rax
movzx r8d, word [r8]
mov rdx, qword [r10 + 8]
lea r9, [rsp + 0x68]
shr r8d, 1
call qword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov r11, qword [rsp + 0x80]
mov rax, qword [rsp + 0x68]
mov r8d, dword [r11]
mov r10d, dword [r11 + 8]
mov esi, dword [r11 + 4]
mov edx, dword [r11 + 0xc]
mov r11d, dword [rsp + 0x6c]
mov ecx, dword [rsp + 0x88]
add r10d, r8d
add edx, esi
add r10d, eax
add edx, r11d
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x2c], edx
test cl, 1
je 0x1400081c3
mov r9d, dword [rdi]
jmp 0x1400081da
mov r9d, dword [rbx]
test cl, 2
je 0x1400081d4
sub r9d, dword [rdi + 8]
sub r9d, r10d
jmp 0x1400081da
sub r9d, r10d
shr r9d, 1
mov dword [rsp + 0x20], r9d
test cl, 4
je 0x1400081e9
mov ecx, dword [rdi + 4]
jmp 0x1400081fc
test cl, 8
mov ecx, dword [rbx + 4]
je 0x1400081f8
sub ecx, dword [rdi + 0xc]
sub ecx, edx
jmp 0x1400081fc
sub ecx, edx
shr ecx, 1
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x24], ecx
add ecx, esi
mov rsi, qword [rsp + 0x70]
mov dword [rsp + 0x34], ecx
add r8d, r9d
lea ecx, [r8 + rax]
mov dword [rsp + 0x40], r8d
mov dword [rsp + 0x30], r8d
mov rdx, qword [rsp + 0x30]
mov dword [rsp + 0x48], ecx
lea rcx, [rsp + 0x40]
shr rdx, 0x20
mov dword [rsp + 0x3c], r11d
mov rax, qword [rsp + 0x38]
shr rax, 0x20
mov dword [rsp + 0x44], edx
add eax, edx
mov dword [rsp + 0x4c], eax
mov eax, dword [rcx]
mov dword [rbx + 0x58], eax
mov eax, dword [rcx + 4]
mov dword [rbx + 0x5c], eax
mov eax, dword [rcx + 8]
mov dword [rbx + 0x60], eax
mov eax, dword [rcx + 0xc]
mov rcx, qword [rsp + 0x20]
mov dword [rbx + 0x64], eax
mov dword [rsp + 0x40], r9d
shr rcx, 0x20
mov dword [rsp + 0x44], ecx
lea eax, [r9 + r10]
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x28]
shr rax, 0x20
add eax, ecx
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x4c], eax
mov eax, dword [rcx]
mov dword [rbx + 0x68], eax
mov eax, dword [rcx + 4]
mov dword [rbx + 0x6c], eax
mov eax, dword [rcx + 8]
mov dword [rbx + 0x70], eax
mov eax, dword [rcx + 0xc]
mov dword [rbx + 0x74], eax
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret
Function at 0x140009060
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
lea rcx, str.shell32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
lea rcx, str.shlwapi.dll
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
lea rcx, str.uxtheme.dll
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
cmp dword [0x1400d8fc0], 0x3c
mov rbx, rax
jb 0x1400090cc
lea rcx, str.user32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea rdx, str.ChangeWindowMessageFilter
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400d8f48], rax
mov edx, 0x3d
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.SetWindowTheme
mov rcx, rbx
mov qword [0x1400d8f98], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.IsThemeActive
mov rcx, rbx
mov qword [0x1400d8f68], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.OpenThemeData
mov rcx, rbx
mov qword [0x1400d8f50], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CloseThemeData
mov rcx, rbx
mov qword [0x1400d8f60], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.DrawThemeBackground
mov rcx, rbx
mov qword [0x1400d8f80], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.SHAutoComplete
mov rcx, rsi
mov qword [0x1400d8f88], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.SHCreateShellItem
mov rcx, rdi
mov qword [0x1400d8f40], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.SHOpenFolderAndSelectItems
mov rcx, rdi
mov qword [0x1400d8f70], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.SHParseDisplayName
mov rcx, rdi
mov qword [0x1400d8f78], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.StrCmpLogicalW
mov rcx, rsi
mov qword [0x1400d8f38], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, str.comctl32.dll
mov qword [0x1400d8f90], rax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea rdx, str.TaskDialogIndirect
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov qword [0x1400d8f58], rax
add rsp, 0x20
pop rdi
ret
Function at 0x140009a40
Capabilities:
Get graphical window text

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
sub rsp, 0x20
mov rbp, rcx
call qword [sym.imp.USER32.dll_GetWindowTextLengthW]
test eax, eax
jne 0x140009aaa
mov rbx, qword [0x1400d91a8]
lea edx, [rax + 0x12]
xor r8d, r8d
mov rcx, rbx
call fcn.14001fbe0
lock add dword [rbx + 0x18], 1
mov dword [rax], 1
mov qword [rax + 8], 0x12
mov qword [rax + 0x10], rbx
add rax, 0x20
xor r8d, r8d
lea rcx, [rax + 0x10]
mov word [rax], r8w
mov word [rax + 2], r8w
mov qword [rax + 8], rcx
mov word [rcx], r8w
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rbp
ret
add eax, eax
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x40], rdi
mov rdi, qword [0x1400d91a8]
lea rbx, [rax + 0x12]
xor r8d, r8d
mov rdx, rbx
mov rcx, rdi
mov esi, eax
call fcn.14001fbe0
lock add dword [rdi + 0x18], 1
mov qword [rax + 8], rbx
lea rbx, [rax + 0x20]
mov dword [rax], 1
mov qword [rax + 0x10], rdi
xor r8d, r8d
mov word [rbx], si
mov word [rbx + 2], si
lea rdx, [rbx + 0x10]
shr rsi, 1
mov qword [rbx + 8], rdx
mov word [rbx + rsi*2 + 0x10], r8w
movzx r8d, word [rbx]
shr r8d, 1
mov rcx, rbp
inc r8d
call qword [sym.imp.USER32.dll_GetWindowTextW]
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x30]
test eax, eax
je 0x140009b32
mov rax, rbx
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rbp
ret
lea rcx, [rbx - 0x20]
or eax, 0xffffffff
lock xadd dword [rcx], eax
add eax, 0xffffffff
jne 0x140009b47
call fcn.14001fcd0
xor eax, eax
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rbp
ret

Function at 0x14000a650
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
movzx r8d, word [rdx]
mov rdx, qword [rdx + 8]
jmp sym.ProcessHacker.exe_PhSetClipboardStringEx

Function at 0x14000a660
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
sub rsp, 0x20
mov rdi, rdx
mov rbp, rcx
lea rdx, [r8 + 2]
mov ecx, 2
mov rsi, r8
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rcx, rax
mov r12, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov r8, rsi
mov rdx, rdi
mov rcx, rax
mov rbx, rax
call fcn.140094930
xor r11d, r11d
mov rcx, rbx
mov word [rbx + rsi], r11w
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, rbp
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x14000a6f2
call qword [sym.imp.USER32.dll_EmptyClipboard]
test eax, eax
je 0x14000a6f2
mov rdx, r12
mov ecx, 0xd
call qword [sym.imp.USER32.dll_SetClipboardData]
test rax, rax
je 0x14000a6f2
call qword [sym.imp.USER32.dll_CloseClipboard]
jmp 0x14000a6fb
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r12
ret
Function at 0x14000f160
Capabilities:
Open clipboard
Read clipboard data

Disassembly:
push rbx
push rbp
sub rsp, 0x28
mov rbx, rdx
mov rbp, rcx
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x14000f354
lea rcx, str.BinaryData
mov qword [rsp + 0x40], rsi
call qword [sym.imp.USER32.dll_RegisterClipboardFormatW]
mov ecx, eax
call qword [sym.imp.USER32.dll_GetClipboardData]
mov rsi, rax
test rax, rax
jne 0x14000f1b2
lea ecx, [rax + 1]
call qword [sym.imp.USER32.dll_GetClipboardData]
mov rsi, rax
test rax, rax
je 0x14000f349
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x50], r12
mov rcx, rsi
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rcx, rsi
mov r14, rax
call qword [sym.imp.KERNEL32.dll_GlobalSize]
mov ecx, dword [rbx + 0x1c]
mov edx, dword [rbx + 0x20]
cmp ecx, edx
mov r13d, dword [rbx + 0x14]
mov r12, rax
jle 0x14000f1f2
mov dword [rbx + 0x20], ecx
mov dword [rbx + 0x1c], edx
cmp byte [rbx + 0x30], 0
je 0x14000f2e0
mov edi, dword [rbx + 0x1c]
cmp edi, 0xffffffff
jne 0x14000f22a
cmp dword [rbx + 0x18], 3
jne 0x14000f211
lea eax, [r13 + 1]
mov dword [rbx + 0x14], eax
mov edi, dword [rbx + 0x14]
mov r9d, r12d
mov rdx, rbx
mov r8d, edi
mov rcx, rbp
call fcn.14000f4d0
jmp 0x14000f304
mov r9d, dword [rbx + 0x20]
mov r8d, edi
mov rdx, rbx
mov rcx, rbp
call fcn.14000f360
mov r9d, r12d
mov r8d, edi
mov rdx, rbx
mov rcx, rbp
call fcn.14000f4d0
call qword [sym.imp.USER32.dll_DestroyCaret]
mov r9d, 0x105
xor r8d, r8d
xor edx, edx
mov rcx, rbp
mov dword [rbx + 0x1c], 0xffffffff
mov dword [rbx + 0x20], 0xffffffff
call qword [sym.imp.USER32.dll_RedrawWindow]
cmp dword [rbx + 0x5c], 0
jne 0x14000f2b0
cmp byte [rbx + 0x2c], 0
je 0x14000f2b0
call qword [sym.imp.USER32.dll_DestroyCaret]
cmp byte [rbx + 0x2f], 0
mov r9d, dword [rbx + 0x40]
mov eax, 8
mov r8d, 4
mov rcx, rbp
cmovne r8d, eax
xor edx, edx
imul r8d, dword [rbx + 0x44]
call qword [sym.imp.USER32.dll_CreateCaret]
jmp 0x14000f2c9
call qword [sym.imp.USER32.dll_DestroyCaret]
mov r9d, dword [rbx + 0x40]
mov r8d, dword [rbx + 0x44]
xor edx, edx
mov rcx, rbp
call qword [sym.imp.USER32.dll_CreateCaret]
mov edx, dword [rbx + 0x60]
mov ecx, dword [rbx + 0x5c]
call qword [sym.imp.USER32.dll_SetCaretPos]
mov rcx, rbp
call qword [sym.imp.USER32.dll_ShowCaret]
jmp 0x14000f304
mov edi, dword [rbx + 0x1c]
cmp edi, 0xffffffff
jne 0x14000f2f8
cmp dword [rbx + 0x18], 3
jne 0x14000f2f5
lea eax, [r13 + 1]
mov dword [rbx + 0x14], eax
mov edi, dword [rbx + 0x14]
mov eax, dword [rbx + 8]
sub eax, edi
cmp r12d, eax
cmova r12d, eax
mov ecx, edi
mov r8d, r12d
mov rdx, r14
add rcx, qword [rbx]
call fcn.140094930
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov r9d, 0x105
xor r8d, r8d
xor edx, edx
mov rcx, rbp
mov dword [rbx + 0x14], r13d
call qword [sym.imp.USER32.dll_RedrawWindow]
mov r14, qword [rsp + 0x20]
mov r13, qword [rsp + 0x58]
mov r12, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x48]
call qword [sym.imp.USER32.dll_CloseClipboard]
mov rsi, qword [rsp + 0x40]
add rsp, 0x28
pop rbp
pop rbx
ret
Function at 0x1400114b0
Capabilities:
Create thread

Disassembly:
sub rsp, 0x38
lock bts qword [0x1400d8f30], 0
jae 0x1400114cc
lea rcx, [0x1400d8f30]
call sym.ProcessHacker.exe_PhfAcquireQueuedLockExclusive
cmp qword [0x1400d62c0], 0
jne 0x140011547
xor eax, eax
lea r8, [0x1400116c0]
xor r9d, r9d
mov qword [rsp + 0x28], rax
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [0x1400d62c0], rax
test rax, rax
jne 0x140011547
or rax, 0xffffffffffffffff
lock xadd qword [0x1400d8f30], rax
test al, 2
je 0x140011540
mov rax, qword [0x1400d8f30]
test al, 2
je 0x140011540
test al, 4
jne 0x140011540
test al, 1
jne 0x140011540
lea rdx, [rax + 4]
lock cmpxchg qword [0x1400d8f30], rdx
jne 0x140011540
lea rcx, [0x1400d8f30]
call fcn.14001eb50
xor al, al
add rsp, 0x38
ret
cmp qword [0x1400d62d0], 0
jne 0x140011575
lea rcx, [0x1400d62d0]
mov r9d, 1
xor r8d, r8d
mov edx, 0x1f0003
mov byte [rsp + 0x20], 0
call qword [sym.imp.ntdll.dll_NtCreateEvent]
test eax, eax
js 0x140011501
cmp qword [0x1400d62d8], 0
jne 0x1400115a7
lea rcx, [0x1400d62d8]
mov r9d, 1
xor r8d, r8d
mov edx, 0x1f0003
mov byte [rsp + 0x20], 0
call qword [sym.imp.ntdll.dll_NtCreateEvent]
test eax, eax
js 0x140011501
mov al, 1
add rsp, 0x38
ret
Function at 0x140012060
Capabilities:
Get file attributes
Set file attributes

Disassembly:
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rdi
push r12
sub rsp, 0x90
xor r12d, r12d
test byte [rsp + 0xc8], 4
mov rbp, rcx
mov edi, r12d
je 0x140012090
lea eax, [r12 + 0x40]
lea edi, [rax - 0x3c]
jmp 0x140012095
mov eax, 0x60
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0xc0]
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r9d
xor r9d, r9d
call sym.ProcessHacker.exe_PhCreateFileWin32
test eax, eax
js 0x14001220d
xor r8d, r8d
mov qword [rsp + 0xa0], rbx
mov rbx, qword [0x1400d86c0]
lea edx, [r8 + 0x30]
mov rcx, rbx
call fcn.14001fbe0
lock add dword [rbx + 0x18], 1
mov qword [rax + 0x10], rbx
mov dword [rax], 1
mov qword [rax + 8], 0x30
lea rbx, [rax + 0x20]
mov rax, qword [rsp + 0x40]
mov qword [rbx], rax
mov dword [rbx + 8], edi
mov qword [rbx + 0x10], r12
test dil, 2
jne 0x140012119
mov qword [rbx + 0x18], r12
mov dword [rbx + 0x20], 0x1000
jmp 0x140012121
mov qword [rbx + 0x18], r12
mov dword [rbx + 0x20], r12d
bt dword [rsp + 0xc8], 0x18
mov dword [rbx + 0x24], r12d
mov dword [rbx + 0x28], r12d
mov dword [rbx + 0x2c], r12d
jae 0x1400121ff
mov r8d, r12d
test r12d, r12d
je 0x140012161
mov rdx, qword [rbx + 0x18]
mov rcx, rbx
call fcn.140012620
mov r11d, eax
test eax, eax
js 0x1400121e3
mov dword [rbx + 0x2c], r12d
jmp 0x14001216e
cmp r12d, r8d
je 0x14001216e
mov dword [rbx + 0x24], r12d
mov dword [rbx + 0x28], r12d
mov rcx, qword [rbx]
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x50]
mov r9d, 0x18
mov dword [rsp + 0x20], 5
call qword [sym.imp.ntdll.dll_NtQueryInformationFile]
mov r11d, eax
test eax, eax
js 0x1400121a2
mov rax, qword [rsp + 0x78]
mov qword [rbx + 0x10], rax
mov eax, r11d
test r11d, r11d
js 0x1400121e3
test byte [rbx + 8], 8
mov rcx, qword [rbx + 0x10]
jne 0x1400121e0
mov qword [rsp + 0x48], rcx
mov rcx, qword [rbx]
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x60]
mov r9d, 8
mov dword [rsp + 0x20], 0xe
call qword [sym.imp.ntdll.dll_NtSetInformationFile]
test eax, eax
jns 0x1400121e0
mov r11d, eax
jmp 0x1400121e3
mov r11d, eax
test r11d, r11d
jns 0x1400121ff
lea rcx, [rbx - 0x20]
or eax, 0xffffffff
lock xadd dword [rcx], eax
add eax, 0xffffffff
jne 0x140012203
call fcn.14001fcd0
jmp 0x140012203
mov qword [rbp], rbx
mov rbx, qword [rsp + 0xa0]
xor eax, eax
lea r11, [rsp + 0x90]
mov rbp, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop r12
ret

Function at 0x140012350
Capabilities:
Get file attributes

Disassembly:
push rbx
sub rsp, 0x40
test byte [rcx + 8], 0xc
mov rbx, rcx
jne 0x1400123a4
mov rcx, qword [rcx]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x30]
mov r9d, 8
mov dword [rsp + 0x20], 0xe
call qword [sym.imp.ntdll.dll_NtQueryInformationFile]
test eax, eax
jns 0x14001238d
mov ecx, eax
call qword [sym.imp.ntdll.dll_RtlRaiseStatus]
int3
mov rax, qword [rsp + 0x50]
cmp qword [rbx + 0x10], rax
je 0x1400123a4
mov ecx, 0xc00000e5
call qword [sym.imp.ntdll.dll_RtlRaiseStatus]
int3
add rsp, 0x40
pop rbx
ret
Function at 0x1400123b0
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x30
mov eax, dword [rcx + 0x20]
mov rbx, rcx
lea r9, [rsp + 0x48]
lea rdx, [rsp + 0x40]
xor edi, edi
xor r8d, r8d
or rcx, 0xffffffffffffffff
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rdi
mov dword [rsp + 0x20], 0x1000
call qword [sym.imp.ntdll.dll_NtAllocateVirtualMemory]
test eax, eax
mov rdx, rdi
mov eax, 0xc000009a
cmovns rdx, qword [rsp + 0x40]
test rdx, rdx
mov qword [rbx + 0x18], rdx
mov rbx, qword [rsp + 0x50]
cmovne eax, edi
add rsp, 0x30
pop rdi
ret
Function at 0x140012420
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x60
xor eax, eax
test byte [rcx + 8], 8
mov rdi, r9
mov rbx, rcx
je 0x14001243c
lea rax, [rcx + 0x10]
mov rcx, qword [rcx]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], r8d
mov qword [rsp + 0x28], rdx
lea rax, [rsp + 0x50]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], rax
call qword [sym.imp.ntdll.dll_NtReadFile]
cmp eax, 0x103
jne 0x140012488
mov rcx, qword [rbx]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.ntdll.dll_NtWaitForSingleObject]
mov eax, dword [rsp + 0x50]
test eax, eax
js 0x14001249c
mov rcx, qword [rsp + 0x58]
add qword [rbx + 0x10], rcx
test rdi, rdi
je 0x14001249c
mov dword [rdi], ecx
mov rbx, qword [rsp + 0x70]
add rsp, 0x60
pop rdi
ret
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push r12
push r13
push r15
sub rsp, 0x20
xor r15d, r15d
test byte [rcx + 8], 2
mov rbp, r9
mov r12d, r8d
mov r13, rdx
mov rbx, rcx
mov esi, r15d
je 0x1400124ef
mov rbx, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r13
pop r12
pop rsi
pop rbp
jmp 0x140012420
mov qword [rsp + 0x58], rdi
mov edi, dword [rcx + 0x28]
sub edi, dword [rcx + 0x24]
jne 0x140012591
mov r8d, dword [rcx + 0x2c]
test r8d, r8d
je 0x14001251e
mov rdx, qword [rcx + 0x18]
call fcn.140012620
test eax, eax
js 0x1400125fb
mov dword [rbx + 0x2c], r15d
cmp r12d, dword [rbx + 0x20]
jb 0x140012542
mov r9, rbp
mov r8d, r12d
mov rdx, r13
mov rcx, rbx
mov dword [rbx + 0x24], r15d
mov dword [rbx + 0x28], r15d
call 0x140012420
jmp 0x1400125fb
cmp qword [rbx + 0x18], rsi
jne 0x140012558
mov rcx, rbx
call fcn.1400123b0
test eax, eax
js 0x1400125fb
mov r8d, dword [rbx + 0x20]
mov rdx, qword [rbx + 0x18]
lea r9, [rsp + 0x50]
mov rcx, rbx
call 0x140012420
mov esi, eax
test eax, eax
js 0x1400125fb
mov edi, dword [rsp + 0x50]
test edi, edi
jne 0x14001258a
test rbp, rbp
je 0x1400125fb
mov dword [rbp], r15d
jmp 0x1400125fb
mov dword [rbx + 0x24], r15d
mov dword [rbx + 0x28], edi
mov edx, dword [rbx + 0x24]
cmp edi, r12d
mov rcx, r13
cmova edi, r12d
add rdx, qword [rbx + 0x18]
mov qword [rsp + 0x60], r14
mov r8d, edi
call fcn.140094930
add dword [rbx + 0x24], edi
cmp edi, r12d
jae 0x1400125e8
mov eax, dword [rbx + 0x20]
cmp dword [rbx + 0x28], eax
jne 0x1400125e8
sub r12d, edi
lea rdx, [rdi + r13]
lea r9, [rsp + 0x50]
mov r8d, r12d
mov rcx, rbx
call 0x140012420
mov esi, eax
test eax, eax
js 0x1400125f4
add edi, dword [rsp + 0x50]
mov dword [rbx + 0x24], r15d
mov dword [rbx + 0x28], r15d
test esi, esi
js 0x1400125f4
test rbp, rbp
je 0x1400125f4
mov dword [rbp], edi
mov r14, qword [rsp + 0x60]
mov eax, esi
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r13
pop r12
pop rsi
pop rbp
ret
Function at 0x1400124b0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x60
xor eax, eax
test byte [rcx + 8], 8
mov rdi, r9
mov rbx, rcx
je 0x14001243c
lea rax, [rcx + 0x10]
mov rcx, qword [rcx]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], r8d
mov qword [rsp + 0x28], rdx
lea rax, [rsp + 0x50]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], rax
call qword [sym.imp.ntdll.dll_NtReadFile]
cmp eax, 0x103
jne 0x140012488
mov rcx, qword [rbx]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.ntdll.dll_NtWaitForSingleObject]
mov eax, dword [rsp + 0x50]
test eax, eax
js 0x14001249c
mov rcx, qword [rsp + 0x58]
add qword [rbx + 0x10], rcx
test rdi, rdi
je 0x14001249c
mov dword [rdi], ecx
mov rbx, qword [rsp + 0x70]
add rsp, 0x60
pop rdi
ret
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push r12
push r13
push r15
sub rsp, 0x20
xor r15d, r15d
test byte [rcx + 8], 2
mov rbp, r9
mov r12d, r8d
mov r13, rdx
mov rbx, rcx
mov esi, r15d
je 0x1400124ef
mov rbx, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r13
pop r12
pop rsi
pop rbp
jmp 0x140012420
mov qword [rsp + 0x58], rdi
mov edi, dword [rcx + 0x28]
sub edi, dword [rcx + 0x24]
jne 0x140012591
mov r8d, dword [rcx + 0x2c]
test r8d, r8d
je 0x14001251e
mov rdx, qword [rcx + 0x18]
call fcn.140012620
test eax, eax
js 0x1400125fb
mov dword [rbx + 0x2c], r15d
cmp r12d, dword [rbx + 0x20]
jb 0x140012542
mov r9, rbp
mov r8d, r12d
mov rdx, r13
mov rcx, rbx
mov dword [rbx + 0x24], r15d
mov dword [rbx + 0x28], r15d
call 0x140012420
jmp 0x1400125fb
cmp qword [rbx + 0x18], rsi
jne 0x140012558
mov rcx, rbx
call fcn.1400123b0
test eax, eax
js 0x1400125fb
mov r8d, dword [rbx + 0x20]
mov rdx, qword [rbx + 0x18]
lea r9, [rsp + 0x50]
mov rcx, rbx
call 0x140012420
mov esi, eax
test eax, eax
js 0x1400125fb
mov edi, dword [rsp + 0x50]
test edi, edi
jne 0x14001258a
test rbp, rbp
je 0x1400125fb
mov dword [rbp], r15d
jmp 0x1400125fb
mov dword [rbx + 0x24], r15d
mov dword [rbx + 0x28], edi
mov edx, dword [rbx + 0x24]
cmp edi, r12d
mov rcx, r13
cmova edi, r12d
add rdx, qword [rbx + 0x18]
mov qword [rsp + 0x60], r14
mov r8d, edi
call fcn.140094930
add dword [rbx + 0x24], edi
cmp edi, r12d
jae 0x1400125e8
mov eax, dword [rbx + 0x20]
cmp dword [rbx + 0x28], eax
jne 0x1400125e8
sub r12d, edi
lea rdx, [rdi + r13]
lea r9, [rsp + 0x50]
mov r8d, r12d
mov rcx, rbx
call 0x140012420
mov esi, eax
test eax, eax
js 0x1400125f4
add edi, dword [rsp + 0x50]
mov dword [rbx + 0x24], r15d
mov dword [rbx + 0x28], r15d
test esi, esi
js 0x1400125f4
test rbp, rbp
je 0x1400125f4
mov dword [rbp], edi
mov r14, qword [rsp + 0x60]
mov eax, esi
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r13
pop r12
pop rsi
pop rbp
ret
Function at 0x140012620
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
xor eax, eax
test byte [rcx + 8], 8
mov rbx, rcx
je 0x140012635
lea rax, [rcx + 0x10]
mov rcx, qword [rcx]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], r8d
mov qword [rsp + 0x28], rdx
lea rax, [rsp + 0x50]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], rax
call qword [sym.imp.ntdll.dll_NtWriteFile]
mov r11d, eax
cmp eax, 0x103
jne 0x140012685
mov rcx, qword [rbx]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.ntdll.dll_NtWaitForSingleObject]
mov r11d, dword [rsp + 0x50]
test r11d, r11d
js 0x140012693
mov rax, qword [rsp + 0x58]
add qword [rbx + 0x10], rax
mov eax, r11d
add rsp, 0x60
pop rbx
ret

Function at 0x1400126a0
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
sub rsp, 0x20
xor ebx, ebx
test byte [rcx + 8], 2
mov esi, r8d
mov rbp, rdx
mov rdi, rcx
je 0x1400126ce
mov rbx, qword [rsp + 0x50]
add rsp, 0x20
pop rdi
pop rsi
pop rbp
jmp fcn.140012620
cmp dword [rcx + 0x2c], ebx
jne 0x1400126e2
call fcn.1400127b0
mov ebx, eax
test eax, eax
js 0x140012796
mov eax, dword [rdi + 0x2c]
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x48], r13
test eax, eax
je 0x140012744
mov r12d, dword [rdi + 0x20]
sub r12d, eax
je 0x140012727
mov rcx, rax
cmp r12d, esi
mov rdx, rbp
cmova r12d, esi
add rcx, qword [rdi + 0x18]
mov r8d, r12d
mov r13d, r12d
call fcn.140094930
add dword [rdi + 0x2c], r12d
cmp r12d, esi
je 0x14001278a
add rbp, r13
sub esi, r12d
mov r8d, dword [rdi + 0x2c]
mov rdx, qword [rdi + 0x18]
mov rcx, rdi
call fcn.140012620
mov ebx, eax
test eax, eax
js 0x14001278c
mov dword [rdi + 0x2c], 0
cmp esi, dword [rdi + 0x20]
jb 0x14001275f
mov r8d, esi
mov rdx, rbp
mov rcx, rdi
call fcn.140012620
mov ebx, eax
test eax, eax
jns 0x14001278a
jmp 0x14001278c
test esi, esi
je 0x14001278a
cmp qword [rdi + 0x18], 0
jne 0x140012778
mov rcx, rdi
call fcn.1400123b0
mov ebx, eax
test eax, eax
js 0x14001278c
mov rcx, qword [rdi + 0x18]
mov r8d, esi
mov rdx, rbp
call fcn.140094930
mov dword [rdi + 0x2c], esi
mov eax, ebx
mov r12, qword [rsp + 0x40]
mov r13, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
add rsp, 0x20
pop rdi
pop rsi
pop rbp
ret

Function at 0x1400127b0
Capabilities:
Set file attributes

Disassembly:
push rbx
sub rsp, 0x40
mov r8d, dword [rcx + 0x28]
mov rbx, rcx
mov ecx, dword [rcx + 0x24]
xor edx, edx
cmp r8d, ecx
je 0x140012811
sub ecx, r8d
movsxd rax, ecx
xor ecx, ecx
add qword [rbx + 0x10], rax
test byte [rbx + 8], 8
mov rax, qword [rbx + 0x10]
jne 0x140012803
mov rcx, qword [rbx]
lea r9d, [rdx + 8]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x30]
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x20], 0xe
call qword [sym.imp.ntdll.dll_NtSetInformationFile]
mov ecx, eax
mov edx, ecx
test ecx, ecx
jns 0x140012811
mov eax, ecx
add rsp, 0x40
pop rbx
ret
mov dword [rbx + 0x24], 0
mov dword [rbx + 0x28], 0
mov eax, edx
add rsp, 0x40
pop rbx
ret