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

Disassembly:
mov qword [rsp + 0x10], rbx
push rsi
push rdi
push r14
sub rsp, 0x40
xor edi, edi
lea r9, [rsp + 0x30]
mov rbx, rdx
mov word [rsp + 0x78], di
mov rsi, r8
mov qword [rsp + 0x20], rdi
mov r14, rcx
lea rdx, sym.ErrorReportClient.exe_unsigned_short_int_const_CSfExifMetaDataHelper::JPEG_MARKER_APP1
lea r8d, [rdi + 2]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x1403fb824
mov ecx, 0x8004e009
mov eax, ecx
mov rbx, qword [rsp + 0x68]
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret
mov r9d, 1
mov qword [rsp + 0x60], rbp
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ebp, eax
cmp eax, 0xffffffff
je 0x1403fb983
lea r9, [rsp + 0x30]
mov qword [rsp + 0x20], rdi
mov r8d, 2
lea rdx, [rsp + 0x78]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1403fb8c0
lea r9, [rsp + 0x30]
mov qword [rsp + 0x20], rdi
mov r8d, 6
lea rdx, sym.ErrorReportClient.exe_unsigned_char_const__const_const_CSfExifMetaDataHelper::JpegMarkerApp1ExifIdentifier
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1403fb8c0
lea r9, [rsp + 0x30]
mov dword [rsp + 0x38], 0x2a4949
mov r8d, 8
mov dword [rsp + 0x3c], 8
lea rdx, [rsp + 0x38]
mov qword [rsp + 0x20], rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x1403fb8ca
mov ecx, 0x8004e009
jmp 0x1403fb9a8
lea r8, [0x1403fcc80]
xor edx, edx
mov rcx, rsi
call sym.ErrorReportClient.exe_SfList_HeapSort
mov ecx, eax
test eax, eax
js 0x1403fb9a8
lea r9, [rsp + 0x34]
mov dword [rsp + 0x34], 8
mov r8, rsi
mov rdx, rbx
mov rcx, r14
call sym.ErrorReportClient.exe_private:_long_int___cdecl_CSfExifMetaDataHelper::Write0thIFD_void____ptr64__struct_tSFLIST____ptr64__unsigned_long_int____ptr64____ptr64
mov ecx, eax
test eax, eax
js 0x1403fb9a8
mov r9d, 1
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov esi, eax
cmp eax, 0xffffffff
je 0x1403fb983
sub ax, bp
xor r9d, r9d
xor r8d, r8d
mov word [rsp + 0x78], ax
mov edx, ebp
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x1403fb983
movzx ecx, word [rsp + 0x78]
lea r9, [rsp + 0x30]
mov byte [rsp + 0x79], cl
lea rdx, [rsp + 0x78]
movzx eax, cx
mov qword [rsp + 0x20], rdi
shr ax, 8
mov r8d, 2
mov byte [rsp + 0x78], al
mov rcx, rbx
movzx eax, word [rsp + 0x78]
mov word [rsp + 0x78], ax
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x1403fb98a
mov ecx, 0x80004005
jmp 0x1403fb9a8
xor r9d, r9d
xor r8d, r8d
mov edx, esi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, 0x80004005
cmp eax, 0xffffffff
cmove edi, ecx
mov ecx, edi
mov rbp, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x68]
mov eax, ecx
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret
Function at 0x1403fcfb0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x30
movsxd r10, r8d
mov rdi, r9
movsxd rsi, edx
mov r11, rcx
test edx, edx
je 0x1403fd0bd
test r8d, r8d
je 0x1403fd0bd
xor r9d, r9d
test rdi, rdi
je 0x1403fd0af
mov edx, dword [rdi]
test edx, edx
je 0x1403fd094
sub edx, 1
je 0x1403fd037
cmp edx, 1
jne 0x1403fd0af
mov r8d, esi
mov dword [rsp + 0x48], r9d
mov qword [rsp + 0x20], r9
mov rdx, rcx
mov rcx, qword [rdi + 8]
lea r9, [rsp + 0x48]
imul r8d, r10d
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [rsp + 0x48]
xor edx, edx
div esi
imul eax, esi
mov r9d, eax
mov rsi, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret
movsxd r9, dword [rdi + 8]
mov eax, esi
mov ecx, dword [rdi + 0xc]
imul eax, r10d
sub ecx, r9d
mov qword [rsp + 0x50], rbp
cmp eax, ecx
cmovge eax, ecx
cdq
idiv esi
mov ebp, eax
test eax, eax
jle 0x1403fd07e
mov qword [rsp + 0x40], rbx
mov rdx, r9
add rdx, qword [rdi + 0x10]
mov ebx, eax
imul ebx, esi
mov rcx, r11
movsxd r8, ebx
call sub.VCRUNTIME140.dll_memcpy
add dword [rdi + 8], ebx
mov rbx, qword [rsp + 0x40]
mov r9d, ebp
mov rbp, qword [rsp + 0x50]
mov eax, r9d
mov rsi, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret
mov rax, qword [rdi + 8]
test rax, rax
je 0x1403fd0af
mov r8, r10
mov rdx, rsi
mov r9, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
mov r9d, eax
mov eax, r9d
mov rsi, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret
mov rsi, qword [rsp + 0x58]
xor eax, eax
add rsp, 0x30
pop rdi
ret

Function at 0x1403fd0d0
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
mov r10, rcx
movsxd r11, r8d
xor ecx, ecx
movsxd rsi, edx
mov rdi, r9
test r9, r9
je 0x1403fd1c1
mov r9d, dword [r9]
test r9d, r9d
je 0x1403fd19e
sub r9d, 1
je 0x1403fd145
cmp r9d, 1
jne 0x1403fd1c1
mov r8d, esi
mov dword [rsp + 0x58], ecx
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0x58]
mov rcx, qword [rdi + 8]
mov rdx, r10
imul r8d, r11d
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [rsp + 0x58]
xor edx, edx
div esi
imul eax, esi
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
movsxd r9, dword [rdi + 8]
mov eax, esi
mov ecx, dword [rdi + 0xc]
imul eax, r11d
sub ecx, r9d
mov qword [rsp + 0x48], rbp
cmp eax, ecx
cmovge eax, ecx
cdq
idiv esi
mov ebp, eax
test eax, eax
jle 0x1403fd18c
mov qword [rsp + 0x40], rbx
mov rcx, r9
add rcx, qword [rdi + 0x10]
mov ebx, eax
imul ebx, esi
mov rdx, r10
movsxd r8, ebx
call sub.VCRUNTIME140.dll_memcpy
add dword [rdi + 8], ebx
mov rbx, qword [rsp + 0x40]
mov eax, ebp
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov r9, qword [rdi + 8]
test r9, r9
je 0x1403fd1c1
mov r8, r11
mov rdx, rsi
mov rcx, r10
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
jmp qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
mov rsi, qword [rsp + 0x50]
mov eax, ecx
add rsp, 0x30
pop rdi
ret
Function at 0x14041e420
Capabilities:
Check for software breakpoints

Disassembly:
push rbx
sub rsp, 0x20
mov eax, dword [rcx + 0x24]
mov rbx, rcx
cmp eax, 0xca
jne 0x14041e459
call fcn.140428c40
cmp byte [rbx + 0x160], 0
je 0x14041e450
mov dword [rbx + 0x24], 0xcf
mov al, 1
add rsp, 0x20
pop rbx
ret
mov dword [rbx + 0x24], 0xcb
jmp 0x14041e464
cmp eax, 0xcb
jne 0x14041e4e7
mov rax, qword [rbx + 0x328]
cmp byte [rax + 0x20], 0
je 0x14041e4ce
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x14041e47f
mov rcx, rbx
call qword [rax]
mov rax, qword [rbx + 0x328]
mov rcx, rbx
call qword [rax]
test eax, eax
je 0x14041e4c6
cmp eax, 2
je 0x14041e4ce
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x14041e471
cmp eax, 3
je 0x14041e4a7
cmp eax, 1
jne 0x14041e471
inc dword [rcx + 8]
mov rdx, qword [rbx + 0x10]
mov r8d, dword [rdx + 0xc]
cmp dword [rcx + 8], r8d
jl 0x14041e471
mov ecx, dword [rbx + 0x28c]
add ecx, r8d
mov dword [rdx + 0xc], ecx
jmp 0x14041e471
xor al, al
add rsp, 0x20
pop rbx
ret
mov eax, dword [rbx + 0x1a4]
mov rcx, rbx
mov dword [rbx + 0x1ac], eax
add rsp, 0x20
pop rbx
jmp 0x14041e840
cmp eax, 0xcc
je 0x14041e509
mov rax, qword [rcx]
mov dword [rax + 0x28], ILFindChild
mov rcx, qword [rcx]
mov eax, dword [rbx + 0x24]
mov dword [rcx + 0x2c], eax
mov rcx, rbx
mov rax, qword [rbx]
call qword [rax]
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp 0x14041e840
mov qword [rsp + 0x18], rbx
push rbp
sub rsp, 0x20
xor ebp, ebp
mov rbx, rcx
cmp dword [rcx + 0x24], 0xcc
je 0x14041e86e
mov rax, qword [rcx + 0x308]
call qword [rax]
mov dword [rbx + 0x1a0], ebp
mov dword [rbx + 0x24], 0xcc
mov rax, qword [rbx + 0x308]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], rdi
cmp byte [rax + 0x10], bpl
je 0x14041e926
mov ecx, dword [rbx + 0x1a0]
nop
cmp ecx, dword [rbx + 0x180]
jae 0x14041e8f5
nop dword [rax + rax]
mov rax, qword [rbx + 0x10]
mov edi, ecx
test rax, rax
je 0x14041e8ca
mov dword [rax + 8], ecx
mov rcx, qword [rbx + 0x10]
mov eax, dword [rbx + 0x180]
mov dword [rcx + 0xc], eax
mov rcx, rbx
mov rax, qword [rbx + 0x10]
call qword [rax]
mov edi, dword [rbx + 0x1a0]
mov rax, qword [rbx + 0x310]
lea r8, [rbx + 0x1a0]
xor r9d, r9d
xor edx, edx
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov ecx, dword [rbx + 0x1a0]
cmp ecx, edi
je 0x14041e951
cmp ecx, dword [rbx + 0x180]
jb 0x14041e8a0
mov rax, qword [rbx + 0x308]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rbx + 0x308]
mov rcx, rbx
call qword [rax]
mov dword [rbx + 0x1a0], ebp
mov ecx, ebp
mov rax, qword [rbx + 0x308]
cmp byte [rax + 0x10], cl
jne 0x14041e890
cmp byte [rbx + 0x161], bpl
mov al, 1
setne bpl
add ebp, 0xcd
mov dword [rbx + 0x24], ebp
mov rdi, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop rbp
ret
xor al, al
jmp 0x14041e93c
Function at 0x14041e840
Capabilities:
Check for software breakpoints

Disassembly:
push rbx
sub rsp, 0x20
mov eax, dword [rcx + 0x24]
mov rbx, rcx
cmp eax, 0xca
jne 0x14041e459
call fcn.140428c40
cmp byte [rbx + 0x160], 0
je 0x14041e450
mov dword [rbx + 0x24], 0xcf
mov al, 1
add rsp, 0x20
pop rbx
ret
mov dword [rbx + 0x24], 0xcb
jmp 0x14041e464
cmp eax, 0xcb
jne 0x14041e4e7
mov rax, qword [rbx + 0x328]
cmp byte [rax + 0x20], 0
je 0x14041e4ce
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x14041e47f
mov rcx, rbx
call qword [rax]
mov rax, qword [rbx + 0x328]
mov rcx, rbx
call qword [rax]
test eax, eax
je 0x14041e4c6
cmp eax, 2
je 0x14041e4ce
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x14041e471
cmp eax, 3
je 0x14041e4a7
cmp eax, 1
jne 0x14041e471
inc dword [rcx + 8]
mov rdx, qword [rbx + 0x10]
mov r8d, dword [rdx + 0xc]
cmp dword [rcx + 8], r8d
jl 0x14041e471
mov ecx, dword [rbx + 0x28c]
add ecx, r8d
mov dword [rdx + 0xc], ecx
jmp 0x14041e471
xor al, al
add rsp, 0x20
pop rbx
ret
mov eax, dword [rbx + 0x1a4]
mov rcx, rbx
mov dword [rbx + 0x1ac], eax
add rsp, 0x20
pop rbx
jmp 0x14041e840
cmp eax, 0xcc
je 0x14041e509
mov rax, qword [rcx]
mov dword [rax + 0x28], ILFindChild
mov rcx, qword [rcx]
mov eax, dword [rbx + 0x24]
mov dword [rcx + 0x2c], eax
mov rcx, rbx
mov rax, qword [rbx]
call qword [rax]
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp 0x14041e840
mov qword [rsp + 0x18], rbx
push rbp
sub rsp, 0x20
xor ebp, ebp
mov rbx, rcx
cmp dword [rcx + 0x24], 0xcc
je 0x14041e86e
mov rax, qword [rcx + 0x308]
call qword [rax]
mov dword [rbx + 0x1a0], ebp
mov dword [rbx + 0x24], 0xcc
mov rax, qword [rbx + 0x308]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], rdi
cmp byte [rax + 0x10], bpl
je 0x14041e926
mov ecx, dword [rbx + 0x1a0]
nop
cmp ecx, dword [rbx + 0x180]
jae 0x14041e8f5
nop dword [rax + rax]
mov rax, qword [rbx + 0x10]
mov edi, ecx
test rax, rax
je 0x14041e8ca
mov dword [rax + 8], ecx
mov rcx, qword [rbx + 0x10]
mov eax, dword [rbx + 0x180]
mov dword [rcx + 0xc], eax
mov rcx, rbx
mov rax, qword [rbx + 0x10]
call qword [rax]
mov edi, dword [rbx + 0x1a0]
mov rax, qword [rbx + 0x310]
lea r8, [rbx + 0x1a0]
xor r9d, r9d
xor edx, edx
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov ecx, dword [rbx + 0x1a0]
cmp ecx, edi
je 0x14041e951
cmp ecx, dword [rbx + 0x180]
jb 0x14041e8a0
mov rax, qword [rbx + 0x308]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rbx + 0x308]
mov rcx, rbx
call qword [rax]
mov dword [rbx + 0x1a0], ebp
mov ecx, ebp
mov rax, qword [rbx + 0x308]
cmp byte [rax + 0x10], cl
jne 0x14041e890
cmp byte [rbx + 0x161], bpl
mov al, 1
setne bpl
add ebp, 0xcd
mov dword [rbx + 0x24], ebp
mov rdi, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop rbp
ret
xor al, al
jmp 0x14041e93c
Function at 0x1404393b0
Capabilities:
Create thread
Resume thread

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
test rdx, rdx
jne 0x140302099
mov eax, 0x80004003
add rsp, 0x20
pop rbx
ret
add rcx, 0x48
call fcn.1403029e0
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
lea edx, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rbx + 0x30], rax
test rax, rax
jne 0x1403020c8
mov eax, 0x8004e003
add rsp, 0x20
pop rbx
ret
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp 0x1404393b0
push rdi
sub rsp, 0x30
xor r9d, r9d
mov rdi, rcx
xor r8d, r8d
xor ecx, ecx
lea edx, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rdi + 0x20], rax
test rax, rax
jne 0x1404393df
mov eax, 0x8004e003
add rsp, 0x30
pop rdi
ret
lea rax, [rsp + 0x40]
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x28], rax
lea r8, [0x140439540]
mov r9, rdi
mov dword [rsp + 0x20], 4
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rdi + 0x10], rax
test rax, rax
je 0x140439430
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, qword [rdi + 0x20]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ebx, dword [rdi + 0x28]
jmp 0x140439445
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test eax, eax
jle 0x140439445
movzx ebx, ax
or ebx, 0x80070000
mov rcx, qword [rdi + 0x20]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
mov qword [rdi + 0x20], 0
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret

Function at 0x140439470
Capabilities:
Set thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
xor ebx, ebx
mov eax, ecx
and eax, 4
mov dword [rdx], ebx
mov rsi, rdx
mov edi, ebx
test al, al
je 0x1404394a0
xor ecx, ecx
call qword [sym.imp.ole32.dll_OleInitialize]
mov edi, eax
lea eax, [rbx + 4]
jmp 0x1404394d7
mov eax, ecx
and eax, 1
test al, al
je 0x1404394bf
mov edx, 2
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitializeEx]
test eax, eax
mov edi, eax
setns bl
jmp 0x1404394dc
and ecx, 2
test cl, cl
je 0x1404394e0
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitializeEx]
mov edi, eax
mov eax, 2
test edi, edi
cmovns ebx, eax
or dword [rsi], ebx
mov ebx, dword [rsi]
mov ecx, dword [0x140687f3c]
cmp ecx, 0xffffffff
je 0x1404394f3
mov edx, ebx
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov rbx, qword [rsp + 0x30]
mov eax, edi
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x14043bc60
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
push rsi
push rdi
push r14
sub rsp, 0x40
mov r14, rdx
mov rbx, rcx
xor edi, edi
xor r9d, r9d
mov qword [rsp + 0x30], rdi
xor r8d, r8d
mov dword [rsp + 0x28], 0x80
mov edx, 0x40000000
mov rcx, r14
mov dword [rsp + 0x20], 2
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
mov rcx, rbx
mov rax, qword [rbx]
cmp rsi, 0xffffffffffffffff
jne 0x14043bd27
call qword [rax + 0x10]
test rax, rax
je 0x14043bd14
lea rcx, [rsp + 0x70]
call fcn.1402d5f10
mov rax, qword [rbx]
lea edx, [rdi + 5]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r9, r14
lea rcx, [rsp + 0x70]
mov r8, rax
mov edx, 0x208
call fcn.1402d7570
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
mov r9, qword [rsp + 0x70]
lea edx, [rdi + 1]
mov dword [rsp + 0x30], edi
xor r8d, r8d
mov dword [rsp + 0x28], edi
mov rcx, rax
mov r10, qword [rax]
mov dword [rsp + 0x20], edi
call qword [r10 + 0x20]
lea rcx, [rsp + 0x70]
call fcn.1402d84a0
mov eax, 0x80004005
mov rbx, qword [rsp + 0x68]
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret
mov qword [rsp + 0x60], rbp
call qword [rax + 0x38]
mov rdx, qword [rbx + 0xa8]
mov rbp, rax
test rdx, rdx
je 0x14043bdd5
lea r9, [rsp + 0x70]
mov qword [rsp + 0x20], rdi
mov r8d, ebp
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x14043bd65
mov eax, dword [rsp + 0x70]
cmp rax, rbp
je 0x14043bdda
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
test rax, rax
je 0x14043bdd5
lea rcx, [rsp + 0x78]
call fcn.1402d5f10
mov rax, qword [rbx]
mov edx, 7
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r9, r14
lea rcx, [rsp + 0x78]
mov r8, rax
mov edx, 0x208
call fcn.1402d7570
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
mov r9, qword [rsp + 0x78]
xor r8d, r8d
mov dword [rsp + 0x30], edi
mov rcx, rax
mov dword [rsp + 0x28], edi
mov r10, qword [rax]
lea edx, [r8 + 1]
mov dword [rsp + 0x20], edi
call qword [r10 + 0x20]
lea rcx, [rsp + 0x78]
call fcn.1402d84a0
mov edi, 0x80004005
cmp dword [rbx + 8], 0
mov rbp, qword [rsp + 0x60]
jl 0x14043bde8
mov dword [rbx + 8], edi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbx, qword [rsp + 0x68]
mov eax, edi
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret

Function at 0x140441e20
Capabilities:
Get file size

Disassembly:
push rbx
sub rsp, 0x20
mov rcx, qword [rcx + 8]
mov rbx, rdx
lea rdx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x140441e47
mov eax, 0x80004005
add rsp, 0x20
pop rbx
ret
mov rax, qword [rsp + 0x30]
mov qword [rbx], rax
xor eax, eax
add rsp, 0x20
pop rbx
ret

Function at 0x140441ec0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
mov rcx, qword [rcx + 8]
lea r9, [rsp + 0x40]
xor esi, esi
mov edi, r8d
mov qword [rsp + 0x20], rsi
mov ebx, 0x80004005
call sym.ErrorReportClient.exe_SfReadFile
test eax, eax
je 0x140441ef7
cmp dword [rsp + 0x40], edi
cmove ebx, esi
mov rsi, qword [rsp + 0x50]
mov eax, ebx
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
Function at 0x140441f10
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
mov rcx, qword [rcx + 8]
lea r9, [rsp + 0x40]
xor ebx, ebx
mov edi, r8d
mov qword [rsp + 0x20], rbx
mov esi, 0x80004005
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x140441f5a
cmp dword [rsp + 0x40], edi
cmovne ebx, esi
mov eax, ebx
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov rbx, qword [rsp + 0x48]
mov eax, esi
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret

Function at 0x140442830
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x2a0
mov rax, qword [0x1406836b8]
xor rax, rsp
mov qword [rsp + 0x290], rax
mov rdi, rcx
mov rdx, rcx
lea rcx, [rsp + 0x20]
call fcn.1402d6160
mov rax, qword [rsp + 0x20]
movsxd rcx, dword [rax - 8]
test ecx, ecx
jle 0x140442889
mov edx, 0x5c
cmp dx, word [rax + rcx*2 - 2]
je 0x140442889
lea rdx, [0x14044bfc8]
lea rcx, [rsp + 0x20]
call fcn.1402d6810
lea r8, [0x140450db0]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call fcn.1402d6910
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x140442977
mov qword [rsp + 0x2b8], rbp
xor ebp, ebp
mov qword [rsp + 0x2c0], rsi
mov esi, 0x2e
cmp si, word [rsp + 0x6c]
jne 0x1404428f0
movzx ecx, word [rsp + 0x6e]
cmp bp, cx
je 0x140442948
cmp si, cx
jne 0x1404428f0
cmp bp, word [rsp + 0x70]
je 0x140442948
lea rcx, [rsp + 0x28]
call fcn.1402d5f10
lea r8, [rsp + 0x6c]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x38]
call fcn.1402d6910
mov rdx, rax
lea rcx, [rsp + 0x28]
call fcn.1402d64d0
lea rcx, [rsp + 0x38]
call fcn.1402d84a0
test byte [rsp + 0x40], 0x10
mov rcx, qword [rsp + 0x28]
je 0x140442938
call fcn.140442830
jmp 0x14044293e
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
lea rcx, [rsp + 0x28]
call fcn.1402d84a0
lea rdx, [rsp + 0x40]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x1404428d3
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rsi, qword [rsp + 0x2c0]
mov rbp, qword [rsp + 0x2b8]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
lea rcx, [rsp + 0x30]
call fcn.1402d84a0
lea rcx, [rsp + 0x20]
call fcn.1402d84a0
mov rcx, qword [rsp + 0x290]
xor rcx, rsp
call fcn.14039bbb0
mov rbx, qword [rsp + 0x2c8]
add rsp, 0x2a0
pop rdi
ret
Function at 0x1404433a0
Capabilities:
Get common file path
Set current directory

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x240
mov rax, qword [0x1406836b8]
xor rax, rsp
mov qword [rsp + 0x230], rax
mov rdi, rcx
lea rdx, [rsp + 0x20]
mov ecx, 0x104
xor ebx, ebx
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
mov ecx, 1
cmovne ebx, ecx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov edi, eax
test ebx, ebx
je 0x1404433fa
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov eax, edi
mov rcx, qword [rsp + 0x230]
xor rcx, rsp
call fcn.14039bbb0
mov rbx, qword [rsp + 0x258]
add rsp, 0x240
pop rdi
ret

Function at 0x140445ae0
Capabilities:
Open clipboard

Disassembly:
push rbx
sub rsp, 0x20
mov dword [rcx], 0
mov rbx, rcx
mov qword [rcx + 8], rdx
mov dword [rcx + 0x10], r8d
test r8b, 1
je 0x140445b19
mov rcx, rdx
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
mov rax, rbx
je 0x140445b1c
mov dword [rbx], 1
add rsp, 0x20
pop rbx
ret
mov rax, rbx
add rsp, 0x20
pop rbx
ret

Function at 0x140445b60
Capabilities:
Open clipboard

Disassembly:
push rbx
sub rsp, 0x20
cmp dword [rcx], 0
mov rbx, rcx
jne 0x140445b8c
mov rcx, rdx
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
jne 0x140445b86
mov eax, 0x80004005
add rsp, 0x20
pop rbx
ret
mov dword [rbx], 1
xor eax, eax
add rsp, 0x20
pop rbx
ret

Function at 0x140445c60
Capabilities:
Write clipboard data

Disassembly:
sub rsp, 0x28
cmp dword [rcx], 0
jne 0x140445c73
mov eax, 0x80004005
add rsp, 0x28
ret
mov ecx, r8d
call qword [sym.imp.USER32.dll_SetClipboardData]
xor ecx, ecx
mov edx, 0x80004005
test rax, rax
cmove ecx, edx
mov eax, ecx
add rsp, 0x28
ret
Function at 0x1800232c0
Capabilities:
Resume thread

Disassembly:
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetThreadPriority]
mov esi, eax
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov rcx, rax
mov edx, 0xf
call qword [sym.imp.KERNEL32.dll_SetThreadPriority]
xor edi, edi
cmp dword [0x1800d7db4], edi
jbe 0x180023339
mov qword [rsp + 0x30], rbx
nop
mov rcx, qword [0x1800d7de8]
lea rbx, [rdi*8]
mov rcx, qword [rbx + rcx]
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, qword [0x1800d7de8]
mov rcx, qword [rbx + rcx]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc edi
cmp edi, dword [0x1800d7db4]
jb case.default.0x18002336f
mov rbx, qword [rsp + 0x30]
mov rcx, qword [0x1800d7de8]
call fcn.18005ed80
mov qword [0x1800d7de8], 0
mov dword [0x1800d7db4], 0
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov rcx, rax
mov edx, esi
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp qword [sym.imp.KERNEL32.dll_SetThreadPriority]
cwde
invalid
pop rbp
push rdi
fisttp dword [rdx]
pop rsp
sbb eax, 0xd8324100
call fcn.18012560e
invalid
add byte [rsi - 0x7f], ah
insb byte [rdi], dx
and al, 0
pushfq
or al, 0x48
adc ebx, 2
xchg ecx, eax
pop rbp