joyce8/EMBER2024-capa huggingface dataset:
Function at 0x6d09a580
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
movups xmmword [rsp + 0x80], xmm6
movups xmmword [rsp + 0x90], xmm7
movups xmmword [rsp + 0xa0], xmm8
pxor xmm7, xmm7
mov rsi, qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
movupd xmm6, xmm1
lea rdi, [rsp + 0x30]
mov rbx, rcx
mov rcx, rdi
call rsi
comisd xmm7, xmm6
mov rdx, qword [rbx]
mov rax, qword [rsp + 0x30]
movsd xmm2, qword [rbx + 0x10]
movsd xmm3, qword [rdx]
ja 0x6d09a7b0
movsd xmm1, qword [0x6d447e30]
comisd xmm1, xmm6
jae 0x6d09a6b0
pxor xmm0, xmm0
subsd xmm6, xmm1
cvtsi2sd xmm0, rax
divsd xmm0, xmm3
subsd xmm0, xmm2
addsd xmm6, xmm0
comisd xmm0, xmm6
jae 0x6d09a7a0
mov r14, qword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
mov r15, qword [sym.imp.USER32.dll_WaitMessage]
lea r13, [rbx + 0x18]
lea rbp, [rbx + 0x20]
movsd xmm8, qword [0x6d447e38]
jmp 0x6d09a694
mulsd xmm4, xmm8
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x20], 0x4bf
cvttsd2si r9, xmm4
call r14
mov rdx, rbp
mov rcx, r13
call fcn.6d0bccd0
mov r12d, eax
test eax, eax
jne 0x6d09a6c0
mov rcx, rdi
call rsi
mov rcx, qword [rbx]
pxor xmm0, xmm0
cvtsi2sd xmm0, qword [rsp + 0x30]
divsd xmm0, qword [rcx]
subsd xmm0, qword [rbx + 0x10]
comisd xmm0, xmm6
jae 0x6d09a7a0
movupd xmm4, xmm6
subsd xmm4, xmm0
comisd xmm7, xmm4
jbe 0x6d09a640
call r15
jmp 0x6d09a65c
lea rdx, [rbx + 0x20]
lea rcx, [rbx + 0x18]
call fcn.6d0bccd0
mov r12d, eax
xor esi, esi
cmp qword [rbx + 0x18], 0
mov r13, qword [sym.imp.USER32.dll_UpdateWindow]
je 0x6d09a6fb
mov r8, qword [rbx + 0x20]
mov rcx, qword [r8 + rsi*8]
mov r9d, dword [rcx + 0x48]
and r9d, 0x11
cmp r9d, 1
je 0x6d09a730
mov r10, qword [rcx + 0x10]
mov rcx, qword [r10 + 0x30]
add rsi, 1
call r13
cmp qword [rbx + 0x18], rsi
ja 0x6d09a6d0
movups xmm6, xmmword [rsp + 0x80]
movups xmm7, xmmword [rsp + 0x90]
mov eax, r12d
movups xmm8, xmmword [rsp + 0xa0]
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x30], 0
mov rdx, rdi
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x70], 0
mov dword [rsp + 0x30], 4
call qword [rcx + 0x20]
mov r11, qword [rbx + 0x20]
mov rax, qword [r11 + rsi*8]
mov r10, qword [rax + 0x10]
jmp 0x6d09a6ea
xor r12d, r12d
jmp 0x6d09a6c0
call qword [sym.imp.USER32.dll_WaitMessage]
lea rdx, [rbx + 0x20]
lea rcx, [rbx + 0x18]
call fcn.6d0bccd0
mov r12d, eax
jmp 0x6d09a6c0
Function at 0x6d0a5410
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov r12, qword [rcx + 0x10]
mov rsi, rdx
mov rbp, r8
mov rbx, r9
test r8, r8
je 0x6d0a5568
mov rcx, qword [r12 + 0xc0]
lea rdx, [r9 + 1]
call sub.msvcrt.dll_realloc
mov rcx, rax
test rax, rax
je 0x6d0a5599
mov r8, rbx
mov rdx, rbp
call sub.msvcrt.dll_memcpy
mov byte [rax + rbx], 0
mov qword [r12 + 0xc8], rbx
mov qword [r12 + 0xc0], rax
lea rdi, str.text_plain
mov ecx, 0xb
mov r13d, 0xb
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
jne 0x6d0a554f
mov rcx, qword [r12 + 0x30]
mov r13d, 2
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x6d0a554f
mov r9d, 0xffffffff
mov r8, rbp
xor edx, edx
mov ecx, 0xfde9
mov dword [rsp + 0x28], 0
mov r14, qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov qword [rsp + 0x20], 0
call r14
mov ecx, 2
lea edx, [rax + 1]
mov edi, eax
movsxd rsi, edx
add rsi, rsi
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov r12, rax
test rax, rax
je 0x6d0a5591
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov r15, rax
test rax, rax
je 0x6d0a5588
mov r9d, ebx
xor edx, edx
mov r8, rbp
mov ecx, 0xfde9
mov dword [rsp + 0x28], edi
xor r13d, r13d
mov qword [rsp + 0x20], rax
call r14
xor r8d, r8d
mov rcx, r12
mov word [r15 + rsi - 2], r8w
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rdx, r12
mov ecx, 0xd
call qword [sym.imp.USER32.dll_SetClipboardData]
call qword [sym.imp.USER32.dll_CloseClipboard]
mov eax, r13d
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov qword [r12 + 0xc8], 0
mov qword [r12 + 0xc0], 0
jmp 0x6d0a5472
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GlobalFree]
call qword [sym.imp.USER32.dll_CloseClipboard]
jmp 0x6d0a554f
mov rcx, qword [r12 + 0xc0]
mov r13d, 0xc
call fcn.6d05d340
mov qword [r12 + 0xc8], 0
jmp 0x6d0a554f
Function at 0x6d0b1430
Capabilities:
Query environment variable

Disassembly:
push r12
push rsi
push rbx
sub rsp, 0x20
lea rax, fcn.6d0b1ba0
mov qword [rcx + 8], rdx
mov rdx, qword [rdx + 8]
mov rbx, rcx
mov qword [rcx], rax
lea rsi, [rbx + 0x30]
mov qword [rcx + 0x10], rdx
mov qword [rcx + 0x18], r8
mov rcx, qword [rdx]
test rcx, rcx
je 0x6d0b1530
call fcn.6d09aef0
mov qword [rbx + 0x40], 0
movq xmm1, rsi
lea rcx, str.DPF_SCALE_FACTOR
mov qword [rbx + 0x20], rax
punpcklqdq xmm1, xmm1
mov r12, rax
mov dword [rbx + 0x48], 1
movups xmmword [rbx + 0x30], xmm1
call sub.msvcrt.dll_getenv
mov rcx, rax
test rax, rax
je 0x6d0b1510
call sub.msvcrt.dll_atof
movsd xmm2, qword [0x6d447358]
maxsd xmm0, xmm2
mov byte [rbx + 0x58], 0
pxor xmm3, xmm3
xor r9d, r9d
mov edx, 0x280
mov byte [rbx + 0x98], 0
mov r8d, 0x1e0
mov rcx, rbx
mov qword [rbx + 0x68], 0
mov qword [rbx + 0x70], 0
movsd qword [rbx + 0x50], xmm0
movsd qword [rbx + 0x60], xmm2
movups xmmword [rbx + 0x78], xmm3
movups xmmword [rbx + 0x88], xmm3
call fcn.6d0b1070
nop
add rsp, 0x20
pop rbx
pop rsi
pop r12
ret
test r12, r12
je 0x6d0b156c
mov rcx, r12
call fcn.6d0a6950
movsd xmm2, qword [0x6d447358]
jmp 0x6d0b14b2
mov qword [rbx + 0x20], 0
movq xmm0, rsi
lea rcx, str.DPF_SCALE_FACTOR
mov qword [rbx + 0x40], 0
punpcklqdq xmm0, xmm0
mov dword [rbx + 0x48], 1
movups xmmword [rbx + 0x30], xmm0
call sub.msvcrt.dll_getenv
mov rcx, rax
test rax, rax
jne 0x6d0b14a1
movsd xmm2, qword [0x6d447358]
movupd xmm0, xmm2
jmp 0x6d0b14b2
Function at 0x6d0b1710
Capabilities:
Query environment variable

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x30
movups xmmword [rsp + 0x20], xmm6
lea rax, fcn.6d0b1ba0
movsd xmm6, qword [rsp + 0x80]
mov edi, dword [rsp + 0x88]
mov qword [rcx + 8], rdx
mov rdx, qword [rdx + 8]
mov rbx, rcx
mov rsi, r9
mov qword [rcx], rax
mov qword [rcx + 0x10], rdx
mov qword [rcx + 0x18], r8
mov rcx, qword [rdx]
test rcx, rcx
je 0x6d0b18a0
call fcn.6d09aef0
mov r12, rax
test rax, rax
je 0x6d0b18a0
mov rdx, rsi
mov rcx, rax
call fcn.6d0a6a70
test rsi, rsi
jne 0x6d0b1870
test rsi, rsi
lea rbp, [rbx + 0x30]
mov qword [rbx + 0x20], r12
setne cl
sete byte [rbx + 0x48]
movq xmm0, rbp
comisd xmm6, xmmword [0x6d447360]
punpcklqdq xmm0, xmm0
mov qword [rbx + 0x40], 0
mov byte [rbx + 0x49], cl
mov byte [rbx + 0x4a], cl
mov byte [rbx + 0x4b], 0
movups xmmword [rbx + 0x30], xmm0
jne 0x6d0b1808
lea rcx, str.DPF_SCALE_FACTOR
call sub.msvcrt.dll_getenv
mov rcx, rax
test rax, rax
je 0x6d0b17f0
call sub.msvcrt.dll_atof
movsd xmm1, qword [0x6d447358]
movupd xmm6, xmm0
maxsd xmm6, xmm1
jmp 0x6d0b1810
test r12, r12
je 0x6d0b1888
mov rcx, r12
call fcn.6d0a6950
movupd xmm6, xmm0
nop dword [rax]
movsd xmm1, qword [0x6d447358]
mov byte [rbx + 0x58], 0
pxor xmm2, xmm2
movzx r9d, dil
mov rcx, rbx
movsd qword [rbx + 0x50], xmm6
mov r8d, 0x1e0
mov edx, 0x280
mov qword [rbx + 0x68], 0
mov qword [rbx + 0x70], 0
mov byte [rbx + 0x98], 0
movsd qword [rbx + 0x60], xmm1
movups xmmword [rbx + 0x78], xmm2
movups xmmword [rbx + 0x88], xmm2
call fcn.6d0b1070
nop
movups xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
xor r8d, r8d
xor edx, edx
mov rcx, r12
call fcn.6d0a4270
jmp 0x6d0b1780
movsd xmm6, qword [0x6d447358]
movupd xmm1, xmm6
jmp 0x6d0b1810
xor r12d, r12d
jmp 0x6d0b1780
Function at 0x6d0b1900
Capabilities:
Query environment variable

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x40
movups xmmword [rsp + 0x20], xmm6
movups xmmword [rsp + 0x30], xmm7
lea rax, fcn.6d0b1ba0
mov r13d, dword [rsp + 0xb8]
mov r14d, dword [rsp + 0xc0]
mov edi, dword [rsp + 0xa0]
mov ebp, dword [rsp + 0xa8]
movsd xmm6, qword [rsp + 0xb0]
mov qword [rcx + 8], rdx
mov rdx, qword [rdx + 8]
mov rbx, rcx
mov rsi, r9
mov qword [rcx + 0x18], r8
lea r8, [rbx + 0x30]
mov qword [rcx], rax
movq xmm7, r8
mov qword [rcx + 0x10], rdx
mov rcx, qword [rdx]
test rcx, rcx
je 0x6d0b1ae0
call fcn.6d09aef0
mov r12, rax
test rax, rax
je 0x6d0b1ae0
mov rdx, rsi
mov rcx, rax
call fcn.6d0a6a70
test rsi, rsi
jne 0x6d0b1a50
movdqu xmm0, xmm7
mov qword [rbx + 0x20], r12
xor ecx, ecx
mov qword [rbx + 0x40], 0
punpcklqdq xmm0, xmm0
mov byte [rbx + 0x48], 1
movups xmmword [rbx + 0x30], xmm0
test rsi, rsi
mov byte [rbx + 0x49], cl
setne byte [rbx + 0x4a]
comisd xmm6, xmmword [0x6d447360]
mov byte [rbx + 0x4b], r14b
je 0x6d0b1a88
movsd xmm3, qword [0x6d447358]
test ebp, ebp
mov r8d, 0x1e0
mov edx, 0x280
mov rcx, rbx
cmovne r8d, ebp
mov byte [rbx + 0x58], 0
test edi, edi
pxor xmm4, xmm4
mov qword [rbx + 0x68], 0
cmovne edx, edi
movzx r9d, r13b
mov qword [rbx + 0x70], 0
mov byte [rbx + 0x98], 0
movsd qword [rbx + 0x50], xmm6
movsd qword [rbx + 0x60], xmm3
movups xmmword [rbx + 0x78], xmm4
movups xmmword [rbx + 0x88], xmm4
call fcn.6d0b1070
nop
movups xmm6, xmmword [rsp + 0x20]
movups xmm7, xmmword [rsp + 0x30]
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov rcx, r12
xor r8d, r8d
xor edx, edx
call fcn.6d0a4270
movdqu xmm1, xmm7
mov qword [rbx + 0x20], r12
mov ecx, 1
punpcklqdq xmm1, xmm1
mov qword [rbx + 0x40], 0
mov byte [rbx + 0x48], 0
movups xmmword [rbx + 0x30], xmm1
jmp 0x6d0b19b7
lea rcx, str.DPF_SCALE_FACTOR
call sub.msvcrt.dll_getenv
mov rcx, rax
test rax, rax
je 0x6d0b1ac0
call sub.msvcrt.dll_atof
movsd xmm3, qword [0x6d447358]
movupd xmm6, xmm0
maxsd xmm6, xmm3
jmp 0x6d0b19db
test r12, r12
je 0x6d0b1b10
mov rcx, r12
call fcn.6d0a6950
movupd xmm6, xmm0
jmp 0x6d0b19d3
movdqu xmm2, xmm7
test rsi, rsi
mov qword [rbx + 0x20], 0
punpcklqdq xmm2, xmm2
sete byte [rbx + 0x48]
xor r12d, r12d
xor ecx, ecx
mov qword [rbx + 0x40], 0
movups xmmword [rbx + 0x30], xmm2
jmp 0x6d0b19b7
movsd xmm6, qword [0x6d447358]
movupd xmm3, xmm6
jmp 0x6d0b19db
Function at 0x6d0bc520
Capabilities:
Log keystrokes via polling

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd0
movups xmmword [rsp + 0x80], xmm6
movups xmmword [rsp + 0x90], xmm7
movups xmmword [rsp + 0xa0], xmm8
movups xmmword [rsp + 0xb0], xmm9
movups xmmword [rsp + 0xc0], xmm10
pxor xmm10, xmm10
pxor xmm9, xmm9
pxor xmm8, xmm8
pxor xmm6, xmm6
mov rax, qword [rcx + 0x10]
mov rbx, r8
mov qword [rsp + 0x28], r8
mov r12, rcx
mov edi, edx
mov rcx, qword [rax + 0x30]
cvtsi2sd xmm10, ebx
lea rdx, [rsp + 0x28]
sar rbx, 0x20
call qword [sym.imp.USER32.dll_ClientToScreen]
cvtsi2sd xmm6, ebx
call qword [sym.imp.USER32.dll_GetMessageTime]
pxor xmm0, xmm0
movsd xmm7, qword [0x6d447e30]
mov rsi, qword [sym.imp.USER32.dll_GetKeyState]
cvtsi2sd xmm0, eax
mov ecx, 0x10
cvtsi2sd xmm9, dword [rsp + 0x28]
cvtsi2sd xmm8, dword [rsp + 0x2c]
mulsd xmm7, xmm0
call rsi
mov ecx, 0x11
unpcklpd xmm6, xmm9
movsx ebx, ax
call rsi
shr ebx, 0x1f
mov ecx, 0x12
mov ebp, ebx
or ebp, 2
test ax, ax
unpcklpd xmm7, xmm10
cmovns ebp, ebx
call rsi
mov ecx, 0x5b
mov edx, ebp
or edx, 4
test ax, ax
cmovs ebp, edx
call rsi
mov ecx, 0x5c
mov ebx, ebp
or ebx, 8
test ax, ax
cmovns ebx, ebp
call rsi
lea rdx, [rsp + 0x30]
movups xmmword [rsp + 0x38], xmm7
mov ecx, ebx
movups xmmword [rsp + 0x48], xmm6
or ecx, 8
test ax, ax
movsd qword [rsp + 0x58], xmm8
cmovs ebx, ecx
mov rcx, r12
mov dword [rsp + 0x30], edi
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x70], 0
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x60], ebx
mov dword [rsp + 0x64], 0
call fcn.6d0a6030
nop
movups xmm6, xmmword [rsp + 0x80]
movups xmm7, xmmword [rsp + 0x90]
movups xmm8, xmmword [rsp + 0xa0]
movups xmm9, xmmword [rsp + 0xb0]
movups xmm10, xmmword [rsp + 0xc0]
add rsp, 0xd0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
Function at 0x6d0bc6b0
Capabilities:
Log keystrokes via polling

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rbx, qword [rsp + 0x90]
movsx edi, bx
shr rbx, 0x10
movsx ebx, bx
mov r12, rdx
mov r13d, r9d
mov rsi, rcx
mov dword [rsp + 0x28], edi
mov rax, qword [r12 + 0x10]
mov dword [rsp + 0x2c], ebx
mov ebp, r8d
lea rdx, [rsp + 0x28]
mov rcx, qword [rax + 0x30]
call qword [sym.imp.USER32.dll_ClientToScreen]
test r13b, r13b
je 0x6d0bc7e8
mov rcx, qword [r12 + 0x10]
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.USER32.dll_SetCapture]
call qword [sym.imp.USER32.dll_GetMessageTime]
pxor xmm1, xmm1
mov edx, 0xe
cvtsi2sd xmm1, eax
mulsd xmm1, qword [0x6d447e30]
movsd qword [rsi + 8], xmm1
pxor xmm2, xmm2
pxor xmm3, xmm3
pxor xmm4, xmm4
mov dword [rsi], edx
pxor xmm5, xmm5
cvtsi2sd xmm3, dword [rsp + 0x2c]
mov ecx, 0x10
mov r13, qword [sym.imp.USER32.dll_GetKeyState]
cvtsi2sd xmm5, ebx
cvtsi2sd xmm2, dword [rsp + 0x28]
cvtsi2sd xmm4, edi
unpcklpd xmm2, xmm3
unpcklpd xmm4, xmm5
movups xmmword [rsi + 0x20], xmm2
movups xmmword [rsi + 0x10], xmm4
call r13
mov ecx, 0x11
movsx edi, ax
call r13
shr edi, 0x1f
mov ecx, 0x12
mov r12d, edi
or r12d, 2
test ax, ax
cmovns r12d, edi
call r13
mov ecx, 0x5b
mov r8d, r12d
or r8d, 4
test ax, ax
cmovs r12d, r8d
call r13
mov ecx, 0x5c
mov ebx, r12d
or ebx, 8
test ax, ax
cmovns ebx, r12d
call r13
mov dword [rsi + 0x34], ebp
mov r10d, ebx
or r10d, 8
test ax, ax
cmovs ebx, r10d
mov dword [rsi + 0x30], ebx
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
call qword [sym.imp.USER32.dll_ReleaseCapture]
call qword [sym.imp.USER32.dll_GetMessageTime]
pxor xmm0, xmm0
mov edx, 0xf
cvtsi2sd xmm0, eax
mulsd xmm0, qword [0x6d447e30]
movsd qword [rsi + 8], xmm0
jmp 0x6d0bc72e
Function at 0x6d13c2e0
Capabilities:
Read file on windows

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rbp, qword [sym.imp.msvcrt.dll__errno]
mov rdi, rcx
mov rsi, rdx
mov ebx, r8d
jmp 0x6d13c307
call rbp
cmp dword [rax], 4
jne 0x6d13c324
mov rcx, rdi
call fcn.6d13c0e0
mov r8d, ebx
mov rdx, rsi
mov ecx, eax
call sub.msvcrt.dll__read
movsxd r12, eax
cmp eax, 0xffffffff
je 0x6d13c300
mov rax, r12
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
Function at 0x6d1a9af0
Capabilities:
Hash data using djb2

Disassembly:
test rcx, rcx
je 0x6d1a9b22
movsx eax, byte [rcx]
mov r8d, 0x1505
test al, al
je 0x6d1a9b1e
nop word [rax + rax]
mov edx, r8d
add rcx, 1
shl edx, 5
add eax, edx
add r8d, eax
movsx eax, byte [rcx]
test al, al
jne 0x6d1a9b08
mov eax, r8d
ret
mov r8d, 0x1505
jmp 0x6d1a9b1e

Function at 0x6d1cda40
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push rsi
push rbx
sub rsp, 0x28
mov eax, 0x811c9dc5
mov r8, rcx
lea rcx, [rcx + 0x38]
lea r9, [r8 + 0x68]
nop word cs:[rax + rax]
imul eax, eax, 0x1000193
movzx edx, byte [rcx]
movzx esi, byte [rcx + 1]
add rcx, 8
movzx r11d, byte [rcx - 6]
xor eax, edx
imul ebx, eax, 0x1000193
movzx eax, byte [rcx - 5]
xor esi, ebx
imul r10d, esi, 0x1000193
movzx esi, byte [rcx - 4]
xor r11d, r10d
imul edx, r11d, 0x1000193
movzx r11d, byte [rcx - 3]
xor eax, edx
imul ebx, eax, 0x1000193
movzx eax, byte [rcx - 2]
xor esi, ebx
imul r10d, esi, 0x1000193
xor r11d, r10d
imul edx, r11d, 0x1000193
xor eax, edx
imul ebx, eax, 0x1000193
movzx eax, byte [rcx - 1]
xor eax, ebx
cmp rcx, r9
jne 0x6d1cda60
lea r9, [r8 + 0x98]
nop word [rax + rax]
imul esi, eax, 0x1000193
movzx r10d, byte [rcx]
movzx edx, byte [rcx + 1]
add rcx, 8
movzx eax, byte [rcx - 6]
xor esi, r10d
movzx r10d, byte [rcx - 5]
imul r11d, esi, 0x1000193
xor edx, r11d
imul ebx, edx, 0x1000193
movzx edx, byte [rcx - 4]
xor eax, ebx
imul esi, eax, 0x1000193
movzx eax, byte [rcx - 3]
xor r10d, esi
imul r11d, r10d, 0x1000193
movzx r10d, byte [rcx - 2]
xor edx, r11d
imul ebx, edx, 0x1000193
xor eax, ebx
imul esi, eax, 0x1000193
movzx eax, byte [rcx - 1]
xor r10d, esi
imul r11d, r10d, 0x1000193
xor eax, r11d
cmp rcx, r9
jne 0x6d1cdae0
mov r9d, eax
shl r9d, 0xc
add eax, r9d
mov edx, eax
shr edx, 7
xor eax, edx
lea esi, [rax + rax*8]
mov ebx, esi
shr ebx, 0x11
xor esi, ebx
mov ebx, esi
shl ebx, 5
add ebx, esi
mov rsi, qword [r8 + 0x28]
call fcn.6d22f930
xor eax, esi
xor eax, ebx
mov ecx, eax
shl ecx, 0xc
add ecx, eax
mov r8d, ecx
shr r8d, 7
xor r8d, ecx
lea eax, [r8 + r8*8]
mov r10d, eax
shr r10d, 0x11
xor eax, r10d
mov r11d, eax
shl r11d, 5
add eax, r11d
add rsp, 0x28
pop rbx
pop rsi
ret
Function at 0x6d1dceb0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r13
push r12
sub rsp, 0x48
mov r12, rcx
mov ecx, dword [rcx + 0x1c]
test ecx, ecx
jne 0x6d1dcf32
test byte [r12 + 0x30], 2
jne 0x6d1dd040
cmp qword [r12 + 0xf8], 0
jne 0x6d1dcf10
mov rax, qword [r12]
cmp dword [rax], 0x1000
je 0x6d1dcf10
mov rcx, r12
lea rdx, [0x6d466f00]
call fcn.6d1db760
mov rcx, rax
test rax, rax
je 0x6d1dcf40
add rsp, 0x48
pop r12
pop r13
jmp fcn.6d23a4d0
mov rcx, r12
add rsp, 0x48
pop r12
pop r13
jmp fcn.6d23a4d0
mov rcx, r13
mov dword [rsp + 0x3c], eax
call fcn.6d2399a0
mov eax, dword [rsp + 0x3c]
mov ecx, eax
add rsp, 0x48
pop r12
pop r13
jmp fcn.6d1da610
mov ecx, 0x180
call sub.msvcrt.dll_malloc
mov r13, rax
test rax, rax
je 0x6d1dd040
movzx edx, byte [r12 + 0x30]
mov r9d, dword [r12 + 0x14]
xor r8d, r8d
mov rcx, rax
shr dl, 5
and edx, 1
mov dword [rsp + 0x20], edx
lea rdx, [0x6d466f00]
call fcn.6d1db7b0
mov ecx, dword [r12 + 0x10]
mov dword [r13 + 0x10], ecx
lea rcx, [r13 + 0x148]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov rdx, r12
mov rcx, r13
mov qword [r13 + 0x170], r12
mov qword [r13 + 0x178], 0
call fcn.6d1da370
test eax, eax
jne 0x6d1dcf20
movdqu xmm0, xmmword [r12 + 0x68]
mov rdx, r13
mov rcx, r12
movdqu xmm1, xmmword [r12 + 0x78]
movdqu xmm2, xmmword [r12 + 0x88]
movdqu xmm3, xmmword [r12 + 0x98]
lea r8, [0x6d1dd130]
movdqu xmm4, xmmword [r12 + 0xa8]
movups xmmword [r13 + 0x68], xmm0
movdqu xmm5, xmmword [r12 + 0xb8]
movups xmmword [r13 + 0x78], xmm1
movups xmmword [r13 + 0x88], xmm2
movups xmmword [r13 + 0x98], xmm3
movups xmmword [r13 + 0xa8], xmm4
movups xmmword [r13 + 0xb8], xmm5
call fcn.6d1da290
mov rax, r13
add rsp, 0x48
pop r12
pop r13
ret
mov ecx, 0xc
call fcn.6d19a530
mov ecx, eax
jmp 0x6d1dcf32

Function at 0x6d1ef960
Capabilities:
Check os version

Disassembly:
push r12
sub rsp, 0xc0
mov rax, qword [0x6d4587a0]
mov edx, dword [rax]
test edx, edx
je 0x6d1efa38
mov rcx, qword [0x6d442370]
test rcx, rcx
je 0x6d1ef998
call fcn.6d22f380
add rsp, 0xc0
pop r12
ret
mov ecx, 0x70
call sub.msvcrt.dll_malloc
lea rdx, [0x6d467fe0]
mov rcx, rax
mov r12, rax
call fcn.6d19a180
call fcn.6d1f1ed0
mov dword [rsp + 0x20], 0x94
lea rcx, [rsp + 0x20]
mov qword [r12 + 0x60], rax
mov qword [r12 + 0x58], 0
call qword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [rsp + 0x30], 1
je 0x6d1efa48
lea rcx, str.msimg32
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rcx, rax
mov qword [r12 + 0x58], rax
xor eax, eax
test rcx, rcx
je 0x6d1efa0a
lea rdx, str.AlphaBlend
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [r12 + 0x68], rax
xor eax, eax
lock cmpxchg qword [0x6d442370], r12
mov rcx, r12
je 0x6d1ef986
call fcn.6d05d340
mov rcx, qword [0x6d442370]
jmp 0x6d1ef986
call fcn.6d1b2f00
jmp 0x6d1ef97a
cmp dword [rsp + 0x24], 4
jne 0x6d1ef9e1
xor eax, eax
cmp dword [rsp + 0x28], 0xa
jne 0x6d1ef9e1
jmp 0x6d1efa0a
Function at 0x6d1fe560
Capabilities:
Query environment variable

Disassembly:
push r12
push rdi
push rsi
push rbx
sub rsp, 0x28
mov r12, rcx
lea rcx, str.PIXMAN_DISABLE
call sub.msvcrt.dll_getenv
mov rdi, rax
xor eax, eax
test rdi, rdi
je 0x6d1fe5de
mov rcx, r12
call sub.msvcrt.dll_strlen
mov rsi, rax
jmp 0x6d1fe59c
add rbx, rdi
cmp byte [rbx], 0
lea rdi, [rbx + 1]
je 0x6d1fe600
mov edx, 0x20
mov rcx, rdi
call sub.msvcrt.dll_strchr
test rax, rax
je 0x6d1fe5f0
sub eax, edi
movsxd rbx, eax
cmp rsi, rbx
jne 0x6d1fe590
mov r8, rsi
mov rdx, rdi
mov rcx, r12
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x6d1fe590
mov rdx, r12
lea rcx, str.pixman:_Disabled__s_implementation_n
call fcn.6d3c47d0
mov eax, 1
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop r12
ret
mov rcx, rdi
call sub.msvcrt.dll_strlen
jmp 0x6d1fe5b0
xor eax, eax
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop r12
ret
Function at 0x6d2043d0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r12
push rdi
push rsi
push rbx
sub rsp, 0x98
mov rax, qword [rcx]
mov rsi, rdx
mov edx, dword [rax + 8]
mov rbx, rcx
cmp edx, 1
je 0x6d2044b0
cmp edx, 2
jne 0x6d20449e
movsd xmm0, qword [rcx + 0x20]
movsd xmm1, qword [rsi + 0x30]
lea rdx, [rsp + 0x48]
lea r8, [rsp + 0x50]
mov rcx, qword [rcx + 8]
mulsd xmm1, xmm0
mulsd xmm0, qword [rsi + 0x38]
movsd qword [rsp + 0x48], xmm1
movsd qword [rsp + 0x50], xmm0
call fcn.6d231cf0
movsd xmm2, qword [rsp + 0x48]
mov r10d, dword [rsi + 0x10]
lea rdx, [rsp + 0x70]
movsd xmm3, qword [0x6d44ab70]
mov r11d, dword [rsi + 0x14]
mov r9, qword [rsi + 0x10]
mov rcx, qword [rbx + 0x40]
addsd xmm2, xmm3
addsd xmm3, qword [rsp + 0x50]
mov qword [rsp + 0x70], r9
movq rdi, xmm2
movq r12, xmm3
add r10d, edi
add r11d, r12d
add edi, dword [rsi]
add r12d, dword [rsi + 4]
mov rsi, qword [rsi]
mov dword [rsp + 0x78], r10d
mov dword [rsp + 0x7c], r11d
mov dword [rsp + 0x80], edi
mov dword [rsp + 0x84], r12d
mov qword [rsp + 0x88], rsi
call fcn.6d1e5fe0
nop
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop r12
ret
mov rcx, qword [rsi + 0x18]
lea r8, [rsp + 0x3c]
lea r9, [rsp + 0x38]
mov qword [rsp + 0x20], r8
lea rdx, [rsp + 0x40]
lea r8, [rsp + 0x48]
mov qword [rsp + 0x40], rcx
mov edi, ecx
shr rcx, 0x20
lea r12, [rsp + 0x50]
neg ecx
neg edi
mov dword [rsp + 0x4c], ecx
lea rcx, [rbx + 0x48]
mov dword [rsp + 0x48], edi
lea rdi, [rsp + 0x70]
call fcn.6d1bede0
mov r9, qword [rsi + 0x10]
mov r10, qword [rsi]
mov r11, qword [rsi + 8]
mov eax, dword [rsp + 0x38]
mov qword [rsp + 0x70], r9
mov qword [rsp + 0x78], r10
mov qword [rsp + 0x50], r11
mov qword [rsp + 0x58], r9
jmp 0x6d20459c
cdqe
mov rdx, qword [rsi + 8]
lea r8, [rax + rax*2]
mov rax, qword [rbx + 0x60]
mov qword [rsp + 0x60], rdx
lea r9, [rax + r8*8]
mov r8, rdi
mov r10d, dword [r9]
add dword [rsp + 0x60], r10d
mov r11d, dword [r9 + 4]
mov qword [rsp + 0x80], rdx
add dword [rsp + 0x64], r11d
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x88], rdx
mov rdx, r12
call fcn.6d1e65b0
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x80]
mov qword [rsp + 0x78], rax
mov eax, dword [rsp + 0x38]
mov qword [rsp + 0x58], rcx
add eax, 1
mov qword [rsp + 0x70], r8
mov dword [rsp + 0x38], eax
cmp eax, dword [rbx + 0x58]
je 0x6d2045e0
mov rcx, qword [rbx + 0x40]
cmp dword [rsp + 0x3c], eax
jne 0x6d204520
mov rbx, qword [rsi]
mov rsi, qword [rsi + 0x10]
mov r8, rdi
mov rdx, r12
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x88], rbx
call fcn.6d1e65b0
nop
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop r12
ret
mov dword [rsp + 0x38], 0
xor eax, eax
jmp 0x6d20459c
Function at 0x6d432e70
Capabilities:
Compress data via zlib inflate or deflate
Resolve function by parsing pe exports

Disassembly:
mov r8, rcx
test rcx, rcx
je 0x6d432e94
cmp qword [rcx + 0x30], 0
je 0x6d432e94
cmp qword [rcx + 0x38], 0
je 0x6d432e94
mov rax, qword [rcx + 0x28]
test rax, rax
je 0x6d432e94
cmp rcx, qword [rax]
je 0x6d432ea0
mov eax, 0xfffffffe
ret
mov r9d, dword [rax + 8]
mov r11d, 1
lea ecx, [r9 - 0x2a]
cmp ecx, 0x3d
ja 0x6d432ec7
movabs r11, 0x2002000088008001
shr r11, cl
not r11
and r11d, 1
cmp r9d, 0x29a
setne r10b
cmp r9d, 0x71
setne al
test r10b, al
je 0x6d432ee3
test r11b, r11b
jne 0x6d432e94
cmp edx, 5
ja 0x6d432e94
mov rcx, r8
jmp fcn.6d432ef0