joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1800475f0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
movsxd r15, ecx
lea r9, [0x1800792b0]
mov rax, r15
mov rbp, r15
and eax, 0x3f
sar rbp, 6
mov ecx, 4
xor esi, esi
mov r14, rdx
lea rdi, [rax + rax*8]
mov rax, qword [r9 + rbp*8]
lea r13d, [rcx + 6]
mov r10, qword [rax + rdi*8 + 0x28]
test r8, r8
je 0x180047647
cmp word [rdx], r13w
jne 0x180047647
or byte [rax + rdi*8 + 0x38], cl
jmp 0x18004764c
and byte [rax + rdi*8 + 0x38], 0xfb
lea r8, [rdx + r8*2]
mov rbx, r14
cmp r14, r8
jae 0x180047771
mov r11d, 0xd
lea r12d, [r11 - 0xb]
movzx ecx, word [rdx]
cmp cx, 0x1a
je 0x180047792
lea r9, [rdx + 2]
cmp cx, r11w
je 0x180047685
mov rdx, r9
mov word [rbx], cx
jmp 0x1800476ac
cmp r9, r8
jae 0x1800476bc
cmp word [r9], r13w
mov rax, r12
mov ecx, 4
cmove rax, rcx
add rdx, rax
mov eax, r13d
cmp word [r9], r13w
cmovne ax, r11w
mov word [rbx], ax
mov rax, r12
add rbx, rax
cmp rdx, r8
jb 0x180047666
jmp 0x180047771
lea r9, [rsp + 0x80]
mov qword [rsp + 0x20], rsi
mov r8d, r12d
lea rdx, [rsp + 0x70]
mov rcx, r10
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x180047766
cmp dword [rsp + 0x80], esi
je 0x180047766
lea r8, [0x1800792b0]
mov rax, qword [r8 + rbp*8]
test byte [rax + rdi*8 + 0x38], 0x48
je 0x18004773e
movzx eax, word [rsp + 0x70]
cmp ax, r13w
jne 0x18004770e
mov word [rbx], r13w
jmp 0x18004776e
mov ecx, 0xd
mov word [rsp + 0x78], ax
mov word [rbx], cx
mov rax, qword [r8 + rbp*8]
lea rcx, [rax + rdi*8]
mov al, byte [rsp + rsi + 0x78]
mov byte [rcx + rsi + 0x3a], al
inc rsi
cmp rsi, r12
jl 0x18004771b
mov rax, qword [r8 + rbp*8]
mov byte [rax + rdi*8 + 0x3c], r13b
jmp 0x18004776e
cmp word [rsp + 0x70], r13w
jne 0x18004774b
cmp rbx, r14
je 0x180047708
mov rdx, 0xfffffffffffffffe
mov ecx, r15d
lea r8d, [rdx + 3]
call fcn.180048258
cmp word [rsp + 0x70], r13w
je 0x180047771
mov ecx, 0xd
mov word [rbx], cx
add rbx, r12
sub rbx, r14
sar rbx, 1
lea eax, [rbx + rbx]
mov rbx, qword [rsp + 0x88]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea r8, [0x1800792b0]
mov rdx, qword [r8 + rbp*8]
mov al, byte [rdx + rdi*8 + 0x38]
test al, 0x40
jne 0x18004776b
or al, r12b
mov byte [rdx + rdi*8 + 0x38], al
jmp 0x180047771
Function at 0x18004b684
Capabilities:
Query environment variable

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r14
sub rsp, 0x40
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
xor esi, esi
mov rbx, rax
test rax, rax
jne 0x18004b6b4
xor eax, eax
jmp 0x18004b777
mov rbp, rbx
cmp word [rax], si
je 0x18004b6d9
or rax, 0xffffffffffffffff
inc rax
cmp word [rbp + rax*2], si
jne 0x18004b6c0
lea rbp, [rbp + rax*2]
add rbp, 2
cmp word [rbp], si
jne 0x18004b6bc
mov qword [rsp + 0x38], rsi
sub rbp, rbx
mov qword [rsp + 0x30], rsi
add rbp, 2
sar rbp, 1
mov r8, rbx
mov r9d, ebp
mov dword [rsp + 0x28], esi
xor edx, edx
mov qword [rsp + 0x20], rsi
xor ecx, ecx
call fcn.180049d6c
movsxd r14, eax
test eax, eax
jne 0x18004b717
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
jmp 0x18004b6ad
mov rcx, r14
call fcn.180044594
mov rdi, rax
test rax, rax
jne 0x18004b730
xor ecx, ecx
call fcn.180044110
jmp 0x18004b70c
mov qword [rsp + 0x38], rsi
mov r9d, ebp
mov qword [rsp + 0x30], rsi
mov r8, rbx
mov dword [rsp + 0x28], r14d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rdi
call fcn.180049d6c
test eax, eax
jne 0x18004b761
mov rcx, rdi
call fcn.180044110
jmp 0x18004b76b
xor ecx, ecx
call fcn.180044110
mov rsi, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov rax, rsi
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x40
pop r14
ret

Function at 0x18004e934
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov esi, edx
mov ebx, ecx
call fcn.180041190
mov ecx, ebx
lea r8, [rsp + 0x30]
and ecx, 0x3ff
mov r9d, 2
bts ecx, 0xa
mov edx, 0x20000001
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
xor edx, edx
test eax, eax
je 0x18004e9d5
cmp ebx, dword [rsp + 0x30]
je 0x18004e9ce
test esi, esi
je 0x18004e9ce
mov r10, qword [rdi + 0x98]
mov r9d, edx
movzx r8d, word [r10]
lea rcx, [r10 + 2]
lea eax, [r8 - 0x41]
cmp ax, 0x19
jbe 0x18004e9a9
sub r8w, 0x61
cmp r8w, 0x19
ja 0x18004e9b6
movzx r8d, word [rcx]
inc r9d
add rcx, 2
jmp 0x18004e993
or rax, 0xffffffffffffffff
inc rax
cmp word [r10 + rax*2], dx
jne 0x18004e9ba
cmp r9d, eax
setne dl
mov eax, edx
jmp 0x18004e9d7
mov eax, 1
jmp 0x18004e9d7
xor eax, eax
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x18005286c
Capabilities:
Set environment variable

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xa0
xor r15d, r15d
mov r14, rdx
mov rsi, rcx
mov qword [rbp + 0x17], r15
xor edx, edx
mov qword [rbp + 0x1f], r15
lea rcx, [rbp - 0x39]
mov qword [rbp + 0x27], r15
mov qword [rbp + 0x2f], r15
mov edi, r15d
mov qword [rbp + 0x37], r15
mov byte [rbp + 0x3f], r15b
mov qword [rbp - 0x19], r15
mov qword [rbp - 0x11], r15
mov qword [rbp - 9], r15
mov qword [rbp - 1], r15
mov qword [rbp + 7], r15
mov byte [rbp + 0xf], r15b
call fcn.180036634
mov rax, qword [rbp - 0x31]
mov ebx, 0xfde9
cmp dword [rax + 0xc], ebx
jne 0x1800528f6
cmp byte [rbp - 0x21], r15b
je 0x1800528f1
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, ebx
jmp 0x18005292c
call fcn.180045cb4
test eax, eax
jne 0x180052918
cmp byte [rbp - 0x21], r15b
je 0x180052910
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, 1
jmp 0x18005292c
cmp byte [rbp - 0x21], r15b
je 0x180052929
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, r15d
lea r8, [rbp + 0x77]
mov rcx, rsi
lea rdx, [rbp + 0x17]
call fcn.18003f180
test eax, eax
jne 0x1800529cc
xor edx, edx
lea rcx, [rbp - 0x39]
call fcn.180036634
mov rax, qword [rbp - 0x31]
cmp dword [rax + 0xc], ebx
jne 0x18005296b
cmp byte [rbp - 0x21], r15b
je 0x1800529a0
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
jmp 0x1800529a0
call fcn.180045cb4
test eax, eax
jne 0x18005298c
cmp byte [rbp - 0x21], r15b
je 0x180052985
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov ebx, 1
jmp 0x1800529a0
cmp byte [rbp - 0x21], r15b
je 0x18005299d
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov ebx, r15d
mov r9d, ebx
lea r8, [rbp + 0x77]
lea rdx, [rbp - 0x19]
mov rcx, r14
call fcn.18003f180
mov rdi, qword [rbp - 9]
test eax, eax
jne 0x1800529cc
mov rcx, qword [rbp + 0x27]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov ebx, eax
jmp 0x1800529cf
mov ebx, r15d
cmp byte [rbp + 0xf], r15b
je 0x1800529dd
mov rcx, rdi
call fcn.180044110
cmp byte [rbp + 0x3f], r15b
je 0x1800529ec
mov rcx, qword [rbp + 0x27]
call fcn.180044110
lea r11, [rsp + 0xa0]
mov eax, ebx
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
Function at 0x180053918
Capabilities:
Clear file content

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x20
mov rbx, rdx
mov rsi, r8
xor edx, edx
mov r14d, ecx
lea r8d, [rdx + 1]
call fcn.180048258
xor edx, edx
mov ecx, r14d
mov r12, rax
lea r8d, [rdx + 2]
call fcn.180048258
mov rbp, rbx
sub rbp, rax
cmp r12, 0xffffffffffffffff
je 0x180053a68
cmp rax, 0xffffffffffffffff
je 0x180053a68
xor edi, edi
test rbp, rbp
jle 0x180053a13
lea edx, [rdi + 1]
mov ecx, 0x1000
call fcn.180042fe4
mov rbx, rax
test rax, rax
jne 0x1800539a0
lea edi, [rax + 0xc]
mov byte [rsi + 0x30], 1
mov dword [rsi + 0x2c], edi
jmp 0x180053a09
mov edx, 0x8000
mov ecx, r14d
call fcn.18005379c
mov r15d, eax
mov eax, 0x1000
mov r8d, ebp
cmp rbp, rax
mov r9, rsi
mov rdx, rbx
mov ecx, r14d
cmovge r8d, eax
call fcn.180043ba8
cmp eax, 0xffffffff
je 0x1800539e9
cdqe
sub rbp, rax
test rbp, rbp
jg 0x1800539b0
mov edx, r15d
mov ecx, r14d
call fcn.18005379c
jmp 0x180053a09
cmp byte [rsi + 0x38], dil
je 0x180053a00
cmp dword [rsi + 0x34], 5
jne 0x180053a00
mov byte [rsi + 0x30], 1
mov dword [rsi + 0x2c], 0xd
cmp byte [rsi + 0x30], dil
je 0x180053a09
mov edi, dword [rsi + 0x2c]
mov rcx, rbx
call fcn.180044110
jmp 0x180053a7c
jns 0x180053a7c
xor r8d, r8d
mov rdx, rbx
mov ecx, r14d
call fcn.180048258
cmp rax, 0xffffffffffffffff
jne 0x180053a34
cmp byte [rsi + 0x30], dil
je 0x180053a7c
mov edi, dword [rsi + 0x2c]
jmp 0x180053a7c
mov ecx, r14d
call fcn.18004c288
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x180053a7c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov byte [rsi + 0x38], 1
mov edi, 0xd
mov dword [rsi + 0x34], eax
mov byte [rsi + 0x30], 1
mov dword [rsi + 0x2c], 0xd
jmp 0x180053a7c
xor edi, edi
cmp byte [rsi + 0x30], dil
je 0x180053a75
mov eax, dword [rsi + 0x2c]
jmp 0x180053a7a
mov eax, 0x16
mov edi, eax
xor r8d, r8d
mov rdx, r12
mov ecx, r14d
call fcn.180048258
mov rbx, qword [rsp + 0x40]
mov eax, edi
mov rdi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop r12
ret

Function at 0x1800543e0
Capabilities:
Parse pe header

Disassembly:
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x180054408
movsxd rdx, dword [rcx + 0x3c]
add rdx, rcx
cmp dword [rdx], 0x4550
jne 0x180054408
xor eax, eax
mov ecx, 0x20b
cmp word [rdx + 0x18], cx
sete al
ret
xor eax, eax
ret
Function at 0x140001b30
Capabilities:
Get file version info

Disassembly:
push rdi
mov eax, 0xfa70
call fcn.14000db30
sub rsp, rax
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov qword [rsp + 0xfa90], rbx
mov rax, qword [0x140019008]
xor rax, rsp
mov qword [rsp + 0xfa60], rax
mov rdi, rdx
mov rbx, rcx
mov qword [rsp + 0x40], rcx
mov dword [rsp + 0x30], 0
call qword [sym.imp.mfc140u.dll_Ordinal_296]
mov dword [rsp + 0x30], 1
lea rdx, [rsp + 0x50]
mov rcx, rdi
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
lea rdx, [rsp + 0x50]
mov rcx, rdi
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
test eax, eax
je 0x140001c06
lea r9, [rsp + 0x60]
xor edx, edx
mov r8d, 0xfa00
mov rcx, rdi
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x140001c06
lea r9, [rsp + 0x54]
lea r8, [rsp + 0x48]
lea rdx, [0x1400106d0]
lea rcx, [rsp + 0x60]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x140001c06
mov rcx, qword [rsp + 0x48]
mov r8d, dword [rcx + 0x10]
movzx edx, word [rcx + 0x16]
movzx r9d, r8w
shr r8d, 0x10
mov dword [rsp + 0x20], edx
lea rdx, str._d._d_d
mov rcx, rbx
call qword [sym.imp.mfc140u.dll_CMFCZoomKernel::Filter]
mov rax, rbx
mov rcx, qword [rsp + 0xfa60]
xor rcx, rsp
call fcn.14000c2d0
mov rbx, qword [rsp + 0xfa90]
add rsp, 0xfa70
pop rdi
ret

Function at 0x140002bb0
Capabilities:
Read file on windows

Disassembly:
sub rsp, 0x48
mov rax, qword [0x140019008]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov rcx, qword [rcx]
cmp rcx, 0xffffffffffffffff
jne 0x140002be0
or eax, ecx
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.14000c2d0
add rsp, 0x48
ret
xor eax, eax
lea r9, [rsp + 0x30]
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.14000c2d0
add rsp, 0x48
ret
Function at 0x140002c40
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push r14
sub rsp, 0x50
mov rax, qword [0x140019008]
xor rax, rsp
mov qword [rsp + 0x40], rax
xor ebp, ebp
mov r14, rdx
mov word [rdx], bp
mov rbx, rcx
cmp qword [rcx], 0xffffffffffffffff
mov esi, 0x400
jne 0x140002c7a
or eax, 0xffffffff
jmp 0x140002d66
cmp dword [rcx + 8], 1
jne 0x140002c72
mov qword [rsp + 0x80], rdi
mov rdi, rdx
nop dword [rax + rax]
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x140002da0
cmp dword [rbx + 8], 1
jne 0x140002da0
mov eax, dword [rbx + 0x10]
cmp eax, 1
je 0x140002d19
cmp eax, 2
je 0x140002d0a
add eax, 0xfffffffd
cmp eax, 1
ja 0x140002da0
lea r9, [rsp + 0x38]
mov word [rsp + 0x30], bp
mov r8d, 2
mov word [rsp + 0x34], bp
lea rdx, [rsp + 0x34]
mov dword [rsp + 0x38], ebp
mov qword [rsp + 0x20], rbp
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [rsp + 0x38], 2
jl 0x140002da0
cmp dword [rbx + 0x10], 4
movzx eax, word [rsp + 0x34]
jne 0x140002d03
rol ax, 8
mov word [rsp + 0x30], ax
jmp 0x140002d2f
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.140003210
jmp 0x140002d26
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.140002f60
test al, al
je 0x140002da0
movzx eax, word [rsp + 0x30]
movzx ecx, ax
cmp ecx, 0xa
je 0x140002d53
cmp ecx, 0xd
je 0x140002d4a
cmp ecx, 0x1a
je 0x140002d84
mov word [rdi], ax
add rdi, 2
dec esi
cmp esi, 1
jg 0x140002c90
mov word [rdi], bp
sub rdi, r14
sar rdi, 1
mov eax, edi
mov rdi, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.14000c2d0
mov rbx, qword [rsp + 0x88]
add rsp, 0x50
pop r14
pop rsi
pop rbp
ret
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x140002d53
mov r9d, 2
xor r8d, r8d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
jmp 0x140002d53
cmp rdi, r14
jne 0x140002d53
or eax, 0xffffffff
jmp 0x140002d5e
Function at 0x140002db0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x50
mov rax, qword [0x140019008]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov rbx, rcx
mov rcx, qword [rcx]
cmp rcx, 0xffffffffffffffff
je 0x140002f33
mov r9d, 1
xor r8d, r8d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
test eax, eax
jne 0x140002f33
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x140002f33
xor edi, edi
lea r9, [rsp + 0x30]
lea r8d, [rax + 2]
mov dword [rsp + 0x30], edi
lea rdx, [rsp + 0x38]
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [rsp + 0x30], 2
jne 0x140002f1c
movzx eax, word [rsp + 0x38]
mov ebp, 0xfeff
cmp ax, bp
jne 0x140002e50
mov dword [rbx + 0x10], 3
mov al, 1
jmp 0x140002f35
mov esi, 0xfffe
cmp ax, si
jne 0x140002e68
mov dword [rbx + 0x10], 4
mov al, 1
jmp 0x140002f35
mov ecx, 0xbbef
cmp ax, cx
jne 0x140002eb7
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x140002f33
lea r9, [rsp + 0x30]
mov dword [rsp + 0x30], edi
mov r8d, 1
mov qword [rsp + 0x20], rdi
lea rdx, [rsp + 0x34]
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [rsp + 0x30], 1
jne 0x140002f1c
cmp byte [rsp + 0x34], 0xbf
jne 0x140002f1c
mov dword [rbx + 0x10], 2
mov al, 1
jmp 0x140002f35
test ax, ax
jne 0x140002f1c
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x140002f33
lea r9, [rsp + 0x30]
mov dword [rsp + 0x30], edi
mov r8d, 2
mov qword [rsp + 0x20], rdi
lea rdx, [rsp + 0x3c]
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [rsp + 0x30], 2
jne 0x140002f1c
movzx eax, word [rsp + 0x38]
test ax, ax
jne 0x140002f06
cmp dword [rsp + 0x3c], esi
jne 0x140002f1c
mov dword [rbx + 0x10], 6
mov al, 1
jmp 0x140002f35
cmp ax, bp
jne 0x140002f1c
cmp dword [rsp + 0x3c], edi
jne 0x140002f1c
mov dword [rbx + 0x10], 5
mov al, 1
jmp 0x140002f35
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x140002f33
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
xor al, al
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.14000c2d0
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x50
pop rdi
ret
Function at 0x140003210
Capabilities:
Read file on windows

Disassembly:
push rsi
push rdi
push r14
sub rsp, 0x50
mov rax, qword [0x140019008]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov rsi, rcx
mov byte [rsp + 0x30], 0
mov rcx, qword [rcx]
mov r14, rdx
cmp rcx, 0xffffffffffffffff
je 0x140003345
xor edi, edi
lea r9, [rsp + 0x34]
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x34], edi
mov qword [rsp + 0x20], rdi
lea r8d, [rdi + 1]
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [rsp + 0x34], edi
jle 0x140003345
movzx ecx, byte [rsp + 0x30]
cmp cl, 0x7f
ja 0x140003281
movzx eax, cl
mov word [r14], ax
mov al, 1
jmp 0x140003305
movzx eax, cl
mov qword [rsp + 0x80], rbx
and al, 0xe0
cmp al, 0xc0
jne 0x140003299
mov ebx, 2
jmp 0x1400032b7
movzx eax, cl
and al, 0xf0
cmp al, 0xe0
jne 0x1400032a9
mov ebx, 3
jmp 0x1400032b7
movzx eax, cl
and al, 0xf8
cmp al, 0xf0
jne 0x1400032fb
mov ebx, 4
xor eax, eax
mov byte [rsp + 0x38], cl
mov rcx, qword [rsi]
mov word [rsp + 0x39], ax
mov byte [rsp + 0x3b], al
cmp rcx, 0xffffffffffffffff
jne 0x1400032d3
or ecx, ecx
jmp 0x1400032f4
lea r8d, [rbx - 1]
mov dword [rsp + 0x34], edi
lea r9, [rsp + 0x34]
mov qword [rsp + 0x20], rdi
lea rdx, [rsp + 0x39]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [rsp + 0x34]
lea eax, [rbx - 1]
cmp ecx, eax
jge 0x14000331b
xor al, al
mov rbx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.14000c2d0
add rsp, 0x50
pop r14
pop rdi
pop rsi
ret
mov dword [rsp + 0x28], 1
lea r8, [rsp + 0x38]
mov r9d, ebx
mov qword [rsp + 0x20], r14
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp eax, 1
sete al
jmp 0x1400032fd
xor al, al
jmp 0x140003305
Function at 0x140004b10
Capabilities:
Create process on windows

Disassembly:
push rbx
sub rsp, 0x8a0
mov rax, qword [0x140019008]
xor rax, rsp
mov qword [rsp + 0x890], rax
mov rbx, rcx
mov r9d, 2
mov rcx, qword [rcx + 0x998]
or r8, 0xffffffffffffffff
mov edx, 0x100c
call qword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0xffffffff
je 0x140004bc9
lea rcx, [rbx + 0x958]
mov edx, eax
call qword [sym.imp.mfc140u.dll_CPaneContainerManager::GetFirstPane]
lea rcx, [rsp + 0x90]
mov r8, qword [rax]
mov rdx, qword [rax + 8]
call fcn.140002210
mov rax, qword [rbx + 0x40]
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x28], rax
xorps xmm0, xmm0
lea rax, [0x1400107f0]
mov dword [rsp + 0x20], 0x70
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x90]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x24], 0xc
movdqa xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x50], 5
call qword [sym.imp.SHELL32.dll_ShellExecuteExW]
mov rcx, qword [rsp + 0x890]
xor rcx, rsp
call fcn.14000c2d0
add rsp, 0x8a0
pop rbx
ret
Function at 0x1400098d0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rbx
sub rsp, 0x850
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov rax, qword [0x140019008]
xor rax, rsp
mov qword [rsp + 0x840], rax
mov rbx, rcx
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc140u.dll_Ordinal_296]
nop
cmp byte [rbx + 0x5d0], 0
jne 0x140009915
cmp byte [rbx + reloc.mfc140u.dll_CMFCRibbonInfo::XElementButtonLinkCtrl::XElementButtonLinkCtrl], 0
je 0x140009927
lea rcx, [rbx + 0x4d0]
lea rdx, [rsp + 0x38]
call qword [sym.imp.mfc140u.dll_CMFCOutlookBarToolBar::GetMessageMap]
xor r8d, r8d
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x40]
call fcn.140002210
cmp byte [rbx + 0x5d0], 0
jne 0x14000994f
cmp byte [rbx + reloc.mfc140u.dll_CMFCRibbonInfo::XElementButtonLinkCtrl::XElementButtonLinkCtrl], 0
je 0x140009a05
lea rcx, [rsp + 0x40]
call fcn.140002a00
test eax, eax
jne 0x140009a05
cmp word [rsp + 0x40], ax
je 0x140009a05
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140009a05
shr eax, 4
and al, 1
je 0x140009a05
lea rdx, [rbx + 0x5b8]
lea rcx, [rbx + 0x4d0]
call qword [sym.imp.mfc140u.dll_CMFCOutlookBarToolBar::GetMessageMap]
cmp byte [rbx + 0x5d2], 0
jne 0x1400099c3
cmp byte [rbx + reloc.mfc140u.dll_CMFCRibbonInfo::XElementButtonUndo::XElementButtonUndo], 0
jne 0x1400099c3
lea rcx, [rbx + 0x5c8]
lea rdx, str..dwg
call qword [sym.imp.mfc140u.dll_CMFCControlRendererInfo::CMFCControlRendererInfo]
jmp 0x1400099d7
lea rdx, [rbx + 0x5c8]
lea rcx, [rbx + 0x218]
call qword [sym.imp.mfc140u.dll_CMFCOutlookBarToolBar::GetMessageMap]
xor r9d, r9d
xor r8d, r8d
mov edx, 0xf0
mov rcx, qword [rbx + 0x428]
call qword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
setne al
mov byte [rbx + 0x5c0], al
mov rcx, rbx
call qword [sym.imp.mfc140u.dll_CMFCRibbonButton::OnLButtonUp]
jmp 0x140009a54
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc140u.dll_Ordinal_296]
nop
mov edx, 0x7c
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc140u.dll_CRuntimeClass::IsDerivedFrom]
mov r9d, 0x30
mov r8, qword [rsp + 0x30]
lea rdx, [rsp + 0x40]
mov rcx, rbx
call qword [sym.imp.mfc140u.dll_CMFCRibbonStatusBar::LoadState]
lea rcx, [rbx + 0x4d0]
call qword [sym.imp.mfc140u.dll_CMFCRibbonSlider::SetACCData]
nop
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc140u.dll_CMFCRibbonInfo::XElementButtonGallery::XGalleryGroup::XGalleryGroup]
nop
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc140u.dll_CMFCRibbonInfo::XElementButtonGallery::XGalleryGroup::XGalleryGroup]
mov rcx, qword [rsp + 0x840]
xor rcx, rsp
call fcn.14000c2d0
add rsp, 0x850
pop rbx
ret
Function at 0x140009f60
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push rbp
push rsi
push rdi
mov eax, 0x12a0
call fcn.14000db30
sub rsp, rax
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x12d0], rbx
mov rax, qword [0x140019008]
xor rax, rsp
mov qword [rsp + reloc.mfc140u.dll_CPaneDivider::FindPaneContainer], rax
mov rdi, r9
mov byte [rsp + 0x20], r8b
mov rbp, rdx
mov rsi, rcx
mov r8, rdx
mov rdx, rcx
lea rcx, [rsp + 0x40]
call fcn.140002210
lea rdx, [rsp + 0x1040]
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x14000a040
nop
cmp word [rsp + 0x106c], 0x2e
je 0x14000a022
lea r8, [rsp + 0x106c]
mov rdx, rsi
lea rcx, [rsp + 0x840]
call fcn.140002210
lea rdx, [rsp + 0x28]
lea rcx, [rsp + 0x840]
call fcn.1400029d0
nop
mov r8, rax
mov rdx, qword [rdi + 0x10]
mov rcx, rdi
call qword [sym.imp.mfc140u.dll_CWnd::RunModalLoop]
nop
lea rcx, [rsp + 0x28]
call qword [sym.imp.mfc140u.dll_CMFCRibbonInfo::XElementButtonGallery::XGalleryGroup::XGalleryGroup]
lea rdx, [rsp + 0x1040]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x140009fd0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindClose]
cmp byte [rsp + 0x20], 0
je 0x14000a0dc
lea r8, [0x140010ba0]
mov rdx, rsi
lea rcx, [rsp + 0x840]
call fcn.140002210
lea rdx, [rsp + 0x1040]
lea rcx, [rsp + 0x840]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x14000a0dc
test byte [rsp + 0x1040], 0x10
je 0x14000a0be
cmp word [rsp + 0x106c], 0x2e
je 0x14000a0be
lea r8, [rsp + 0x106c]
mov rdx, rsi
lea rcx, [rsp + 0x40]
call fcn.140002210
mov r9, rdi
mov r8b, 1
mov rdx, rbp
lea rcx, [rsp + 0x40]
call fcn.140009f60
lea rdx, [rsp + 0x1040]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x14000a081
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rcx, qword [rsp + reloc.mfc140u.dll_CPaneDivider::FindPaneContainer]
xor rcx, rsp
call fcn.14000c2d0
mov rbx, qword [rsp + 0x12d0]
add rsp, 0x12a0
pop rdi
pop rsi
pop rbp
ret