joyce8/EMBER2024-capa huggingface dataset:
Function at 0x18000dfa0
Capabilities:
Check os version

Disassembly:
mov rax, rsp
push rbp
push rdi
push r14
lea rbp, [rax - 0xc8]
sub rsp, 0x1b0
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x18028e088]
xor rax, rsp
mov qword [rbp + 0xa0], rax
mov rsi, rcx
xor r14d, r14d
mov dword [rsp + 0x20], r14d
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x24], r14d
mov qword [rsp + 0x58], r14
mov edi, 1
mov ecx, edi
call fcn.1801cd4e0
mov rbx, rax
mov qword [rsp + 0x58], rax
mov byte [rax], r14b
xor edx, edx
mov r8d, 0x118
lea rcx, [rbp - 0x7c]
call fcn.1801cf320
mov dword [rbp - 0x80], 0x11c
lea rcx, [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x18000e037
cmp dword [rbp - 0x7c], 6
setae al
mov byte [rbx], al
lea r8, [rsp + 0x24]
lea rdx, [rsp + 0x28]
call fcn.1800947d0
test al, al
je 0x18000e155
mov r8, qword [rsp + 0x28]
test r8, r8
je 0x18000e155
lea rdx, [rsp + 0x60]
call fcn.180094860
nop
cmp qword [rsp + 0x70], 0
jne 0x18000e076
xor bl, bl
jmp 0x18000e101
lea rdx, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae rdx, qword [rsp + 0x60]
xor r9d, r9d
mov r8d, dword [rsp + 0x70]
lea rcx, [rsp + 0x30]
call fcn.180092ea0
mov dword [rsp + 0x20], edi
mov rdx, rax
mov rcx, rsi
call fcn.18000e1a0
and edi, 0xfffffffe
mov dword [rsp + 0x20], edi
mov rdx, qword [rsp + 0x48]
cmp rdx, 0x10
jb 0x18000e0ec
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000e0e7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18000e191
call fcn.1801ccd54
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x48], 0xf
mov byte [rsp + 0x30], 0
mov bl, 1
mov rdx, qword [rsp + 0x78]
cmp rdx, 8
jb 0x18000e13f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000e13a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18000e18b
call fcn.1801ccd54
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x78], 7
mov word [rsp + 0x60], r14w
jmp 0x18000e157
xor bl, bl
lea rcx, [rsp + 0x58]
call fcn.180093810
movzx eax, bl
mov rcx, qword [rbp + 0xa0]
xor rcx, rsp
call fcn.1801ccd30
lea r11, [rsp + 0x1b0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
call fcn.1801d1a6c
nop
call fcn.1801d1a6c
int3
Function at 0x180011a20
Capabilities:
Check os version

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x150
mov rax, qword [0x18028e088]
xor rax, rsp
mov qword [rsp + 0x140], rax
xor eax, eax
mov dword [rsp + 0x20], VarUI4FromDisp
mov qword [rcx], rax
mov rdi, r8
mov qword [rcx + 8], rax
mov rbx, rcx
mov qword [rcx + 0x10], rax
xor edx, edx
mov qword [rcx + 0x18], rax
mov r8d, VarUI4FromDisp
mov qword [rcx + 0x20], rax
mov qword [rcx + 0x28], rax
mov qword [rcx + 0x30], rax
mov qword [rcx + 0x38], rax
mov qword [rcx + 0x40], rax
lea rcx, [rsp + 0x24]
call fcn.1801cf320
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x180011a9f
cmp dword [rsp + 0x24], 6
mov eax, 0x48
jae 0x180011aa4
mov eax, 0x40
mov rcx, rdi
mov dword [rbx], eax
mov dword [rbx + 4], 0
call qword [sym.imp.USER32.dll_GetParent]
or dword [rbx + 4], 1
mov qword [rbx + 8], rax
mov rax, rbx
mov qword [rbx + 0x10], rdi
mov rcx, qword [0x1802948f0]
mov qword [rbx + 0x28], rcx
mov rcx, qword [rsp + 0x188]
mov qword [rbx + 0x30], rcx
mov qword [rbx + 0x38], 0
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.1801ccd30
mov rbx, qword [rsp + 0x168]
add rsp, 0x150
pop rdi
ret
Function at 0x18001a730
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x20
mov r14, qword [rsp + 0x60]
mov rsi, rcx
mov ecx, 0x12
mov rbp, r9
mov r15, r8
mov dword [r14], 0
call qword [sym.imp.USER32.dll_GetKeyState]
movzx ebx, ax
mov ecx, 0x10
shr ebx, 5
and ebx, 4
call qword [sym.imp.USER32.dll_GetKeyState]
mov edi, ebx
mov ecx, 0x11
or edi, 1
and al, 0x80
cmove edi, ebx
call qword [sym.imp.USER32.dll_GetKeyState]
mov rcx, qword [rsi + 8]
mov ebx, edi
or ebx, 2
and al, 0x80
mov rax, qword [rcx]
cmove ebx, edi
call qword [rax + 0x10]
test rax, rax
je 0x18001a7cb
mov r10, qword [rax]
mov r9d, ebx
mov r8d, ebp
mov edx, r15d
mov rcx, rax
call qword [r10 + VarUI4FromDisp]
test al, al
je 0x18001a7cb
mov dword [r14], 1
mov rbx, qword [rsp + 0x40]
xor eax, eax
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret

Function at 0x18001a7f0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x20
mov r14, qword [rsp + 0x60]
mov r15, rcx
mov ecx, 0x12
mov rsi, r9
mov rbp, r8
mov dword [r14], 0
call qword [sym.imp.USER32.dll_GetKeyState]
movzx ebx, ax
mov ecx, 0x10
shr ebx, 5
and ebx, 4
call qword [sym.imp.USER32.dll_GetKeyState]
mov edi, ebx
mov ecx, 0x11
or edi, 1
and al, 0x80
cmove edi, ebx
call qword [sym.imp.USER32.dll_GetKeyState]
mov rcx, qword [r15 + 8]
mov ebx, edi
or ebx, 2
and al, 0x80
mov rax, qword [rcx]
cmove ebx, edi
call qword [rax + 0x10]
test rax, rax
je 0x18001a883
mov r10, qword [rax]
mov r9d, ebx
mov r8d, esi
mov edx, ebp
mov rcx, rax
call qword [r10 + 0x108]
test al, al
jne 0x18001a89f
cmp dword [r14], 0
jne 0x18001a8a6
mov rcx, qword [r15 + 8]
mov r9d, ebx
mov r8d, esi
mov edx, ebp
mov rax, qword [rcx]
call qword [rax + 0x28]
test al, al
je 0x18001a8a6
mov dword [r14], 1
mov rbx, qword [rsp + 0x40]
xor eax, eax
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret
Function at 0x18001f800
Capabilities:
Create thread
Resume thread

Disassembly:
mov rax, rsp
push rdi
push r14
push r15
sub rsp, 0x50
mov qword [rax - 0x38], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov rax, qword [0x18028e088]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rdi, qword [0x1802963e0]
cmp qword [rdi + 8], 0
jne 0x18001f9c1
mov ecx, 0x18
call fcn.1801cd4e0
mov r14, rax
mov qword [rsp + 0x40], rax
xor eax, eax
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], rax
lea rax, vtable.RC::RCRefCounted.0
mov qword [r14], rax
xor r15d, r15d
mov dword [r14 + 8], r15d
lea rax, vtable.RC::RCThread.0
mov qword [r14], rax
lea ecx, [r15 + 0x70]
call fcn.1801cd4e0
mov qword [rsp + 0x38], rax
mov rcx, rax
call fcn.1800977a0
nop
mov qword [r14 + 0x10], rax
test rax, rax
je 0x18001f8aa
mov qword [rax], rdi
mov rax, qword [r14 + 0x10]
lea rcx, [0x18001f5c0]
mov qword [rax + 8], rcx
mov rbx, qword [rdi + 8]
mov ebp, 1
lea esi, [rbp - 2]
cmp rbx, r14
je 0x18001f8e4
mov eax, ebp
lock xadd dword [r14 + 8], eax
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x18001f8dd
mov eax, esi
lock xadd dword [rcx + 8], eax
cmp eax, ebp
jne 0x18001f8dd
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov qword [rdi + 8], r14
mov rbx, r14
mov rdi, qword [rbx + 0x10]
test rdi, rdi
je 0x18001f9c1
mov qword [rsp + 0x40], r15
add rdi, 0x38
mov qword [rsp + 0x40], rdi
je 0x18001f910
mov rcx, qword [rdi]
test rcx, rcx
je 0x18001f910
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov rax, qword [rbx + 0x10]
cmp qword [rax + 8], 0
je 0x18001f9a9
lock xadd dword [rbx + 8], ebp
mov rax, qword [rbx + 0x10]
add rax, 0x14
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 4
mov r9, rbx
lea r8, [0x180097940]
xor edx, edx
xor ecx, ecx
call fcn.1801dbe98
mov rcx, qword [rbx + 0x10]
mov qword [rcx + 0x18], rax
mov rax, qword [rbx + 0x10]
cmp qword [rax + 0x18], 0
je 0x18001f98c
mov byte [rax + 0x10], 1
mov rcx, qword [rbx + 0x10]
mov rax, qword [rcx + 0x40]
test rax, rax
je 0x18001f97d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_ResetEvent]
mov rcx, qword [rbx + 0x10]
mov rcx, qword [rcx + 0x18]
call qword [sym.imp.KERNEL32.dll_ResumeThread]
cmp eax, 0xffffffff
jne 0x18001f9a9
lock xadd dword [rbx + 8], esi
cmp esi, 1
jne 0x18001f99f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rbx + 0x10]
call fcn.180097af0
nop
test rdi, rdi
je 0x18001f9c1
mov rcx, qword [rdi]
test rcx, rcx
je 0x18001f9bc
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov qword [rsp + 0x40], r15
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1801ccd30
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x50
pop r15
pop r14
pop rdi
ret
Function at 0x18002f3f0
Capabilities:
Check if file exists
Query environment variable

Disassembly:
cmp qword [rdx + 0x10], 0
je 0x18002f409
cmp qword [rdx + 0x18], 8
jb 0x18002f401
mov rdx, qword [rdx]
mov rcx, rdx
jmp fcn.1800985a0
ret
Function at 0x180036fb0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x250
mov rax, qword [0x18028e088]
xor rax, rsp
mov qword [rsp + 0x240], rax
cmp qword [rcx + 0x128], 0
mov esi, r9d
mov r14d, r8d
mov edi, edx
mov rbx, rcx
je 0x180037235
lea eax, [rdx - 8]
cmp eax, 0x52
ja case.0x18003700a.9
lea rdx, [0x180000000]
movzx eax, byte [rdx + rax + 0x37278]
mov ecx, dword [rdx + rax*4 + 0x37258]
add rcx, rdx
jmp rcx
mov eax, esi
and al, 2
neg al
sbb edx, edx
and edx, 0x7ed
jmp 0x18003705a
mov eax, esi
and al, 2
neg al
sbb edx, edx
and edx, 0x7ea
jmp 0x18003705a
mov eax, esi
and al, 2
neg al
sbb edx, edx
and edx, 0x7eb
jmp 0x18003705a
mov eax, esi
and al, 2
neg al
sbb edx, edx
and edx, 0x7e9
jmp 0x18003705a
mov eax, esi
and al, 2
neg al
sbb edx, edx
and edx, 0x7e8
test edx, edx
jne 0x180037152
mov bpl, 1
cmp edi, 9
je 0x180037235
cmp edi, 0xd
je 0x18003720c
lea eax, [rdi - 0x23]
cmp eax, 2
jbe 0x1800371a0
cmp edi, 0x27
je 0x1800371a0
cmp byte [rbx + 0x11c], 0
jne 0x180037194
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x80]
test al, al
je 0x180037194
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x1c0]
test al, al
jne 0x180037194
xor edx, edx
lea rcx, [rsp + 0x40]
mov r8d, 0x200
call fcn.1801cf320
lea rcx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_GetKeyboardState]
cmp eax, 1
jne 0x18003722f
xor eax, eax
movzx edx, r14w
lea r9, [rsp + 0x30]
mov word [rsp + 0x30], ax
lea r8, [rsp + 0x40]
mov dword [rsp + 0x20], eax
mov ecx, edi
call qword [sym.imp.USER32.dll_ToAscii]
cmp byte [rbx + 0x11e], 0
movzx ecx, word [rsp + 0x30]
je 0x180037161
call fcn.1801da2a4
test eax, eax
je 0x18003722f
movzx edx, word [rsp + 0x30]
mov rcx, rbx
call fcn.180037520
movzx eax, bpl
jmp 0x180037237
mov edx, 0x7ec
mov rcx, rbx
call fcn.1800388c0
mov al, 1
jmp 0x180037237
mov edx, 0x7ee
mov rcx, rbx
call fcn.1800388c0
mov al, 1
jmp 0x180037237
call fcn.1801da2a4
test eax, eax
jne 0x180037123
movzx ecx, word [rsp + 0x30]
call fcn.1801da228
test eax, eax
jne 0x180037123
movzx ecx, word [rsp + 0x30]
call fcn.1801da38c
test eax, eax
jne 0x180037123
movzx ecx, word [rsp + 0x30]
call fcn.1801da318
test eax, eax
jne 0x180037123
xor bpl, bpl
movzx eax, bpl
jmp 0x180037237
cmp byte [rbx + 0x11c], 0
jne 0x18003722f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x80]
test al, al
je 0x18003722f
and sil, 1
cmp edi, 0x23
jb 0x18003722f
cmp edi, 0x24
jbe 0x1800371dc
lea eax, [rdi - 0x25]
test eax, 0xfffffffd
jne 0x18003722f
xor dl, dl
cmp edi, 0x25
jmp 0x1800371de
mov dl, 1
mov rcx, qword [rbx + 0x128]
sete r8b
movzx r9d, sil
call fcn.180078780
mov rcx, rbx
call fcn.180038da0
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + pe_nt_image_headers64]
movzx eax, bpl
jmp 0x180037237
mov rcx, qword [rbx + 0xf0]
test rcx, rcx
je 0x18003722f
mov rdx, qword [rcx]
call qword [rdx + 0x10]
mov rcx, qword [rbx + 0xf0]
mov rdx, rbx
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
movzx eax, bpl
jmp 0x180037237
xor al, al
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.1801ccd30
add rsp, 0x250
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x180037b00
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push r14
sub rsp, 0x20
movzx esi, r9b
mov r14, r8
mov ebx, edx
mov rdi, rcx
call fcn.180018650
test bl, 2
jne 0x180037b8b
mov rax, qword [rdi + 0x1c8]
mov byte [rax + 0x40], sil
test sil, sil
je 0x180037b4a
mov edx, 0x7ed
mov rcx, rdi
call fcn.1800388c0
jmp 0x180037b8b
cmp qword [rdi + 0x128], 0
je 0x180037b8b
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
test al, al
js 0x180037b71
cmp byte [rdi + 0x130], 0
jne 0x180037b71
xor r8b, r8b
jmp 0x180037b74
mov r8b, 1
mov rdx, qword [r14]
mov rcx, qword [rdi + 0x128]
call fcn.180077b10
mov rcx, rdi
call fcn.180038da0
mov rbx, qword [rsp + 0x30]
mov al, 1
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
add rsp, 0x20
pop r14
ret

Function at 0x180037bb0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
mov rax, qword [rcx + 0x1c8]
mov rbx, rcx
movzx ebp, r9b
mov rdi, r8
mov esi, edx
movzx ecx, byte [rax + 0x40]
mov byte [rax + 0x40], 0
test dl, 2
je 0x180037c07
cmp byte [rbx + 0x1b8], 0
je 0x180037c07
mov rax, qword [rbx + 0x1c8]
mov rcx, rbx
mov byte [rax + 0x40], 0
call fcn.180037d50
mov al, 1
jmp 0x180037cb2
test cl, cl
jne 0x180037c00
cmp qword [rbx + 0x128], 0
je 0x180037c4c
cmp byte [rbx + 0x1c5], cl
jne 0x180037c4c
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
test al, al
js 0x180037c3a
cmp byte [rbx + 0x130], 0
jne 0x180037c3a
xor r8b, r8b
jmp 0x180037c3d
mov r8b, 1
mov rdx, qword [rdi]
mov rcx, qword [rbx + 0x128]
call fcn.180077b10
xor eax, eax
mov byte [rbx + 0x130], 0
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x20]
mov eax, dword [rbx + 0xbc]
mov r8b, 1
sub eax, dword [rbx + 0xb4]
mov rcx, rbx
mov dword [rsp + 0x28], eax
mov eax, dword [rbx + 0xc0]
sub eax, dword [rbx + 0xb8]
mov dword [rsp + 0x2c], eax
movaps xmm0, xmmword [rsp + 0x20]
mov rax, qword [rbx]
movdqa xmmword [rsp + 0x20], xmm0
call qword [rax + 0x148]
mov rcx, rbx
call fcn.180038da0
movzx r9d, bpl
mov r8, rdi
mov edx, esi
mov rcx, rbx
call fcn.1800188e0
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
Function at 0x180053060
Capabilities:
Get file size
Read file on windows

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x80
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0xa8], rbx
mov rax, qword [0x18028e088]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov rsi, r8
mov r8d, edx
lea rdx, [rsp + 0x50]
call fcn.1800536c0
nop
xor ebp, ebp
cmp qword [rsp + 0x60], rbp
jne 0x1800530ad
xor dil, dil
jmp 0x1800531b2
mov qword [rsp + 0x40], rbp
mov ecx, 8
call fcn.1801cd4e0
mov qword [rsp + 0x48], rax
mov qword [rax], 0xffffffffffffffff
mov qword [rsp + 0x40], rax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x40]
call fcn.180098920
mov rbx, qword [rsp + 0x40]
test al, al
je 0x180053182
test rbx, rbx
je 0x180053182
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x180053168
lea rdx, [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
cmp eax, 0xffffffff
jne 0x180053117
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x180053168
mov ecx, dword [rsp + 0x48]
shl rcx, 0x20
mov eax, edi
add rcx, rax
mov edi, ecx
mov edx, ecx
mov rcx, rsi
call fcn.180053d20
mov dword [rsp + 0x38], ebp
mov rdx, qword [rsi + 0x10]
test rdx, rdx
je 0x180053168
cmp qword [rbx], 0xffffffffffffffff
je 0x180053182
mov qword [rsp + 0x20], rbp
lea r9, [rsp + 0x38]
mov r8d, edi
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x180053168
cmp dword [rsp + 0x38], edi
jne 0x180053168
mov dil, 1
jmp 0x180053185
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x180053182
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x180053182
mov qword [rbx], 0xffffffffffffffff
xor dil, dil
test rbx, rbx
je 0x1800531b2
mov rcx, qword [rbx]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x1800531a0
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx], rbp
mov edx, 8
mov rcx, rbx
call fcn.1801ccd54
mov qword [rsp + 0x40], rbp
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x1800531f0
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800531eb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180053227
call fcn.1801ccd54
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x68], 7
mov word [rsp + 0x50], bp
movzx eax, dil
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.1801ccd30
mov rbx, qword [rsp + 0xa8]
add rsp, 0x80
pop rdi
pop rsi
pop rbp
ret
call fcn.1801d1a6c
int3
Function at 0x18005c360
Capabilities:
Read file on windows

Disassembly:
mov r9, qword [rcx + 8]
mov rax, rdx
mov rcx, rax
mov edx, 1
jmp fcn.1801da93c

Function at 0x180063370
Capabilities:
Get file version info

Disassembly:
sub rsp, 0x48
mov rax, qword [0x18028e088]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov eax, dword [0x18029d5b8]
test eax, eax
jne 0x180063452
lea rdx, [rsp + 0x28]
mov qword [rsp + 0x40], rdi
lea rcx, str.mshtml.dll
mov dword [rsp + 0x28], eax
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov edi, eax
test eax, eax
je 0x180063437
mov edx, edi
mov qword [rsp + 0x50], rbx
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rbx, rax
test rax, rax
je 0x180063432
mov edx, dword [rsp + 0x28]
lea rcx, str.mshtml.dll
mov r9, rax
mov r8d, edi
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x180063429
lea r9, [rsp + 0x2c]
mov dword [rsp + 0x2c], 0
lea r8, [rsp + 0x20]
mov qword [rsp + 0x20], 0
lea rdx, [0x18021abc8]
mov rcx, rbx
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x180063429
mov rax, qword [rsp + 0x20]
movzx ecx, word [rax + 0xa]
mov dword [0x18029d5b8], ecx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rbx, qword [rsp + 0x50]
mov eax, dword [0x18029d5b8]
mov ecx, 6
mov rdi, qword [rsp + 0x40]
test eax, eax
cmove eax, ecx
mov dword [0x18029d5b8], eax
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.1801ccd30
add rsp, 0x48
ret
Function at 0x180064490
Capabilities:
Log keystrokes via input method manager

Disassembly:
mov rax, rsp
push rbp
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov qword [rbp - 0x30], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rax, qword [0x18028e088]
xor rax, rsp
mov qword [rbp - 8], rax
mov edi, r8d
mov r15, rdx
mov rsi, rcx
cmp qword [rcx + 8], 0
je 0x180064645
call fcn.180064700
mov rcx, r15
call qword [sym.imp.IMM32.dll_ImmGetContext]
mov rbx, rax
test rax, rax
je 0x180064645
xor r12d, r12d
mov qword [rbp - 0x18], r12
mov qword [rbp - 0x10], r12
mov qword [rbp - 0x18], r12
mov qword [rbp - 0x10], 7
mov word [rbp - 0x28], r12w
bt edi, 0xb
jae 0x1800645dd
xor r9d, r9d
xor r8d, r8d
mov edx, 0x800
mov rcx, rax
call qword [sym.imp.IMM32.dll_ImmGetCompositionStringW]
movsxd r14, eax
test eax, eax
jle 0x1800645dd
mov rdi, r14
shr rdi, 1
lea rdx, [rdi + 1]
lea rcx, [rbp - 0x28]
call fcn.18000d040
mov r8, qword [rbp - 0x18]
cmp rdi, r8
ja 0x180064568
mov qword [rbp - 0x18], rdi
lea rax, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae rax, qword [rbp - 0x28]
mov word [rax + rdi*2], r12w
jmp 0x1800645be
mov rdx, rdi
sub rdx, r8
mov rcx, qword [rbp - 0x10]
mov rax, rcx
sub rax, r8
cmp rdx, rax
ja 0x1800645ac
mov qword [rbp - 0x18], rdi
lea r9, [rbp - 0x28]
cmp rcx, 8
cmovae r9, qword [rbp - 0x28]
lea rdi, [r9 + r8*2]
test rdx, rdx
je 0x1800645a1
movzx eax, r12w
mov rcx, rdx
rep stosw word [rdi], ax
lea rax, [r8 + rdx]
mov word [r9 + rax*2], r12w
jmp 0x1800645be
mov word [rsp + 0x20], r12w
mov r9, rdx
lea rcx, [rbp - 0x28]
call fcn.180064820
lea r8, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae r8, qword [rbp - 0x28]
mov r9d, r14d
mov edx, 0x800
mov rcx, rbx
call qword [sym.imp.IMM32.dll_ImmGetCompositionStringW]
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
lea rdx, [rbp - 0x28]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, rbx
mov rcx, r15
call qword [sym.imp.IMM32.dll_ImmReleaseContext]
nop
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x180064634
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18006462f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18006466a
call fcn.1801ccd54
mov qword [rbp - 0x18], r12
mov qword [rbp - 0x10], 7
mov word [rbp - 0x28], r12w
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.1801ccd30
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
call fcn.1801d1a6c
int3
Function at 0x18006ea30
Capabilities:
Open clipboard
Read clipboard data

Disassembly:
mov rax, rsp
push rbp
mov rbp, rsp
sub rsp, 0x70
mov qword [rbp - 0x48], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
movaps xmmword [rax - 0x18], xmm6
mov rax, qword [0x18028e088]
xor rax, rsp
mov qword [rbp - 0x18], rax
mov rbx, rcx
mov qword [rbp - 0x40], rcx
xor esi, esi
mov dword [rbp - 0x50], esi
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x28], xmm0
movdqa xmm6, xmmword [0x18023b300]
movdqu xmmword [rbp - 0x28], xmm6
mov word [rbp - 0x38], si
lea ecx, [rsi + 0xd]
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
jne 0x18006eaad
movups xmm0, xmmword [rbp - 0x38]
movups xmmword [rbx], xmm0
movups xmmword [rbx + 0x10], xmm6
movdqa xmm0, xmm6
movdqu xmmword [rbp - 0x28], xmm6
mov word [rbp - 0x38], si
jmp 0x18006eb27
xor ecx, ecx
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x18006eb0b
mov ecx, 0xd
call qword [sym.imp.USER32.dll_GetClipboardData]
mov rdi, rax
test rax, rax
je 0x18006eb05
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x18006eae0
mov rdx, rax
lea rcx, [rbp - 0x38]
call fcn.1800089e0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
movdqu xmm6, xmmword [rbp - 0x28]
call qword [sym.imp.USER32.dll_CloseClipboard]
movups xmm0, xmmword [rbp - 0x38]
movups xmmword [rbx], xmm0
movdqa xmm0, xmmword [0x18023b300]
mov word [rbp - 0x38], si
movdqu xmmword [rbp - 0x28], xmm0
movups xmmword [rbx + 0x10], xmm6
mov dword [rbp - 0x50], 1
movdqa xmm0, xmmword [0x18023b300]
movdqu xmmword [rbp - 0x28], xmm0
mov word [rbp - 0x38], si
mov rax, rbx
mov rcx, qword [rbp - 0x18]
xor rcx, rsp
call fcn.1801ccd30
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
movaps xmm6, xmmword [rsp + 0x60]
mov rsp, r11
pop rbp
ret