joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180011a10
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 0x180011a8f
cmp dword [rsp + 0x24], 6
mov eax, 0x48
jae 0x180011a94
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 [0x1802948c0]
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 0x18001a720
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 0x18001a7bb
mov r10, qword [rax]
mov r9d, ebx
mov r8d, ebp
mov edx, r15d
mov rcx, rax
call qword [r10 + VarUI4FromDisp]
test al, al
je 0x18001a7bb
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 0x18001a7e0
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 0x18001a873
mov r10, qword [rax]
mov r9d, ebx
mov r8d, esi
mov edx, ebp
mov rcx, rax
call qword [r10 + 0x108]
test al, al
jne 0x18001a88f
cmp dword [r14], 0
jne 0x18001a896
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 0x18001a896
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 0x18001f7f0
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 [0x1802963b0]
cmp qword [rdi + 8], 0
jne 0x18001f9b1
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 0x18001f89a
mov qword [rax], rdi
mov rax, qword [r14 + 0x10]
lea rcx, [0x18001f5b0]
mov qword [rax + 8], rcx
mov rbx, qword [rdi + 8]
mov ebp, 1
lea esi, [rbp - 2]
cmp rbx, r14
je 0x18001f8d4
mov eax, ebp
lock xadd dword [r14 + 8], eax
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x18001f8cd
mov eax, esi
lock xadd dword [rcx + 8], eax
cmp eax, ebp
jne 0x18001f8cd
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 0x18001f9b1
mov qword [rsp + 0x40], r15
add rdi, 0x38
mov qword [rsp + 0x40], rdi
je 0x18001f900
mov rcx, qword [rdi]
test rcx, rcx
je 0x18001f900
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov rax, qword [rbx + 0x10]
cmp qword [rax + 8], 0
je 0x18001f999
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 0x18001f97c
mov byte [rax + 0x10], 1
mov rcx, qword [rbx + 0x10]
mov rax, qword [rcx + 0x40]
test rax, rax
je 0x18001f96d
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 0x18001f999
lock xadd dword [rbx + 8], esi
cmp esi, 1
jne 0x18001f98f
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 0x18001f9b1
mov rcx, qword [rdi]
test rcx, rcx
je 0x18001f9ac
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 0x18002f3e0
Capabilities:
Check if file exists
Query environment variable

Disassembly:
cmp qword [rdx + 0x10], 0
je 0x18002f3f9
cmp qword [rdx + 0x18], 8
jb 0x18002f3f1
mov rdx, qword [rdx]
mov rcx, rdx
jmp fcn.1800985a0
ret
Function at 0x180036fa0
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 0x180037225
lea eax, [rdx - 8]
cmp eax, 0x52
ja case.0x180036ffa.9
lea rdx, [0x180000000]
movzx eax, byte [rdx + rax + 0x37268]
mov ecx, dword [rdx + rax*4 + 0x37248]
add rcx, rdx
jmp rcx
mov eax, esi
and al, 2
neg al
sbb edx, edx
and edx, 0x7ed
jmp 0x18003704a
mov eax, esi
and al, 2
neg al
sbb edx, edx
and edx, 0x7ea
jmp 0x18003704a
mov eax, esi
and al, 2
neg al
sbb edx, edx
and edx, 0x7eb
jmp 0x18003704a
mov eax, esi
and al, 2
neg al
sbb edx, edx
and edx, 0x7e9
jmp 0x18003704a
mov eax, esi
and al, 2
neg al
sbb edx, edx
and edx, 0x7e8
test edx, edx
jne 0x180037142
mov bpl, 1
cmp edi, 9
je 0x180037225
cmp edi, 0xd
je 0x1800371fc
lea eax, [rdi - 0x23]
cmp eax, 2
jbe 0x180037190
cmp edi, 0x27
je 0x180037190
cmp byte [rbx + 0x11c], 0
jne 0x180037184
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x80]
test al, al
je 0x180037184
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x1c0]
test al, al
jne 0x180037184
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 0x18003721f
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 0x180037151
call fcn.1801da2a4
test eax, eax
je 0x18003721f
movzx edx, word [rsp + 0x30]
mov rcx, rbx
call fcn.180037510
movzx eax, bpl
jmp 0x180037227
mov edx, 0x7ec
mov rcx, rbx
call fcn.1800388b0
mov al, 1
jmp 0x180037227
mov edx, 0x7ee
mov rcx, rbx
call fcn.1800388b0
mov al, 1
jmp 0x180037227
call fcn.1801da2a4
test eax, eax
jne 0x180037113
movzx ecx, word [rsp + 0x30]
call fcn.1801da228
test eax, eax
jne 0x180037113
movzx ecx, word [rsp + 0x30]
call fcn.1801da38c
test eax, eax
jne 0x180037113
movzx ecx, word [rsp + 0x30]
call fcn.1801da318
test eax, eax
jne 0x180037113
xor bpl, bpl
movzx eax, bpl
jmp 0x180037227
cmp byte [rbx + 0x11c], 0
jne 0x18003721f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x80]
test al, al
je 0x18003721f
and sil, 1
cmp edi, 0x23
jb 0x18003721f
cmp edi, 0x24
jbe 0x1800371cc
lea eax, [rdi - 0x25]
test eax, 0xfffffffd
jne 0x18003721f
xor dl, dl
cmp edi, 0x25
jmp 0x1800371ce
mov dl, 1
mov rcx, qword [rbx + 0x128]
sete r8b
movzx r9d, sil
call fcn.180078780
mov rcx, rbx
call fcn.180038d90
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x140]
movzx eax, bpl
jmp 0x180037227
mov rcx, qword [rbx + 0xf0]
test rcx, rcx
je 0x18003721f
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 0x180037227
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 0x180037af0
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.180018640
test bl, 2
jne 0x180037b7b
mov rax, qword [rdi + 0x1c8]
mov byte [rax + 0x40], sil
test sil, sil
je 0x180037b3a
mov edx, 0x7ed
mov rcx, rdi
call fcn.1800388b0
jmp 0x180037b7b
cmp qword [rdi + 0x128], 0
je 0x180037b7b
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
test al, al
js 0x180037b61
cmp byte [rdi + 0x130], 0
jne 0x180037b61
xor r8b, r8b
jmp 0x180037b64
mov r8b, 1
mov rdx, qword [r14]
mov rcx, qword [rdi + 0x128]
call fcn.180077b10
mov rcx, rdi
call fcn.180038d90
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 0x180037ba0
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 0x180037bf7
cmp byte [rbx + 0x1b8], 0
je 0x180037bf7
mov rax, qword [rbx + 0x1c8]
mov rcx, rbx
mov byte [rax + 0x40], 0
call fcn.180037d40
mov al, 1
jmp 0x180037ca2
test cl, cl
jne 0x180037bf0
cmp qword [rbx + 0x128], 0
je 0x180037c3c
cmp byte [rbx + 0x1c5], cl
jne 0x180037c3c
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
test al, al
js 0x180037c2a
cmp byte [rbx + 0x130], 0
jne 0x180037c2a
xor r8b, r8b
jmp 0x180037c2d
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.180038d90
movzx r9d, bpl
mov r8, rdi
mov edx, esi
mov rcx, rbx
call fcn.1800188d0
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
Function at 0x180053050
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.1800536b0
nop
xor ebp, ebp
cmp qword [rsp + 0x60], rbp
jne 0x18005309d
xor dil, dil
jmp 0x1800531a2
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 0x180053172
test rbx, rbx
je 0x180053172
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x180053158
lea rdx, [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
cmp eax, 0xffffffff
jne 0x180053107
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x180053158
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.180053d10
mov dword [rsp + 0x38], ebp
mov rdx, qword [rsi + 0x10]
test rdx, rdx
je 0x180053158
cmp qword [rbx], 0xffffffffffffffff
je 0x180053172
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 0x180053158
cmp dword [rsp + 0x38], edi
jne 0x180053158
mov dil, 1
jmp 0x180053175
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x180053172
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x180053172
mov qword [rbx], 0xffffffffffffffff
xor dil, dil
test rbx, rbx
je 0x1800531a2
mov rcx, qword [rbx]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x180053190
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 0x1800531e0
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800531db
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180053217
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 0x18005c350
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 [0x18029d588]
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, [0x18021a7a8]
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 [0x18029d588], ecx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rbx, qword [rsp + 0x50]
mov eax, dword [0x18029d588]
mov ecx, 6
mov rdi, qword [rsp + 0x40]
test eax, eax
cmove eax, ecx
mov dword [0x18029d588], 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.18000d030
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 [0x18023af10]
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 [0x18023af10]
mov word [rbp - 0x38], si
movdqu xmmword [rbp - 0x28], xmm0
movups xmmword [rbx + 0x10], xmm6
mov dword [rbp - 0x50], 1
movdqa xmm0, xmmword [0x18023af10]
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
Function at 0x180071450
Capabilities:
Create thread

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x60
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov qword [rsp + 0x88], rbx
mov rbp, r9
mov rdi, rdx
mov rsi, rcx
mov qword [rcx + 0x58], r8
xor ebx, ebx
lea r9, [rcx + 0x40]
lea r8, [0x18028ef90]
call fcn.180011540
mov qword [rsp + 0x40], rsi
mov word [rsp + 0x38], ax
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 0x82000000
xor r9d, r9d
mov r8d, ebx
mov rdx, rdi
mov rcx, rsi
call fcn.180071640
mov qword [rsi + 8], rax
test rax, rax
je 0x180071627
mov ecx, 0xc0
call fcn.1801cd4e0
mov rdi, rax
mov qword [rsp + 0x80], rax
xor edx, edx
mov r8d, 0xc0
mov rcx, rax
call fcn.1801cf320
mov qword [rdi + 8], rbx
call fcn.180083f00
lea rcx, [rdi + 0x10]
mov qword [rsp + 0x90], rcx
mov qword [rcx + 0x18], rbx
mov qword [rdi + 0x30], rbx
mov dword [rdi + 0x38], ebx
mov rax, qword [sym.imp.USER32.dll_DefWindowProcW]
mov qword [rdi + 0x40], rax
movups xmm0, xmmword [0x180204460]
movups xmmword [rdi + 0x50], xmm0
movups xmm0, xmmword [0x180204460]
movups xmmword [rdi + 0x60], xmm0
mov dword [rdi + 0x70], ebx
mov dword [rdi + 0x74], 0xfefefefe
movups xmm0, xmmword [0x180204460]
movups xmmword [rdi + 0x50], xmm0
movups xmm1, xmmword [0x180204460]
movups xmmword [rdi + 0x60], xmm1
lea rax, vtable.RC::IERenderView.2.0
mov qword [rdi], rax
lea rax, vtable.RC::IERenderView.0
mov qword [rdi + 0x48], rax
lea rax, vtable.RC::IERenderView.1.0
mov qword [rdi + 0x78], rax
mov qword [rdi + 0x80], rbx
mov qword [rdi + 0x88], rbx
mov qword [rdi + 0x90], rbx
mov qword [rdi + 0x98], rbx
mov qword [rdi + 0xa0], rbx
mov word [rdi + 0xa8], bx
mov byte [rdi + 0xaa], bl
mov qword [rdi + 0xb0], rbp
mov qword [rdi + 0xb8], rbx
mov qword [rsi + 0x50], rdi
mov rax, qword [rsi + 8]
mov qword [rdi + 0x80], rax
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], ebx
mov r9, rdi
lea r8, [0x180086980]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rdi + 0x90], rax
lea ecx, [rbx + 0x38]
call fcn.1801cd4e0
mov rcx, rax
mov qword [rsp + 0x80], rax
xor eax, eax
mov qword [rcx + 8], rax
mov qword [rcx + 0x30], rax
lea rax, vtable.RC::IEExternal.0
mov qword [rcx], rax
mov dword [rcx + 8], ebx
mov qword [rcx + 0x10], rdi
mov qword [rcx + 0x18], rbx
mov qword [rcx + 0x20], rbx
mov qword [rcx + 0x28], rbx
mov qword [rcx + 0x30], rbx
mov qword [rdi + 0xa0], rcx
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rsp + 0x88]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
ret