joyce8/EMBER2024-capa huggingface dataset:
Function at 0x696e2350
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 0x696e24a8
mov rcx, qword [r12 + 0xc0]
lea rdx, [r9 + 1]
call sub.msvcrt.dll_realloc
mov rcx, rax
test rax, rax
je 0x696e24d9
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 0x696e248f
mov rcx, qword [r12 + 0x30]
mov r13d, 2
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x696e248f
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 0x696e24d1
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov r15, rax
test rax, rax
je 0x696e24c8
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 0x696e23b2
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GlobalFree]
call qword [sym.imp.USER32.dll_CloseClipboard]
jmp 0x696e248f
mov rcx, qword [r12 + 0xc0]
mov r13d, 0xc
call fcn.6969b170
mov qword [r12 + 0xc8], 0
jmp 0x696e248f
Function at 0x696ee3a0
Capabilities:
Query environment variable

Disassembly:
push r12
push rsi
push rbx
sub rsp, 0x20
lea rax, fcn.696eeb10
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 0x696ee4a0
call fcn.696d7ce0
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 0x696ee480
call sub.msvcrt.dll_atof
movsd xmm2, qword [0x699f2db8]
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.696edfe0
nop
add rsp, 0x20
pop rbx
pop rsi
pop r12
ret
test r12, r12
je 0x696ee4dc
mov rcx, r12
call fcn.696e3890
movsd xmm2, qword [0x699f2db8]
jmp 0x696ee422
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 0x696ee411
movsd xmm2, qword [0x699f2db8]
movupd xmm0, xmm2
jmp 0x696ee422
Function at 0x696ee680
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.696eeb10
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 0x696ee810
call fcn.696d7ce0
mov r12, rax
test rax, rax
je 0x696ee810
mov rdx, rsi
mov rcx, rax
call fcn.696e39b0
test rsi, rsi
jne 0x696ee7e0
test rsi, rsi
lea rbp, [rbx + 0x30]
mov qword [rbx + 0x20], r12
setne cl
sete byte [rbx + 0x48]
movq xmm0, rbp
comisd xmm6, xmmword [0x699f2dc0]
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 0x696ee778
lea rcx, str.DPF_SCALE_FACTOR
call sub.msvcrt.dll_getenv
mov rcx, rax
test rax, rax
je 0x696ee760
call sub.msvcrt.dll_atof
movsd xmm1, qword [0x699f2db8]
movupd xmm6, xmm0
maxsd xmm6, xmm1
jmp 0x696ee780
test r12, r12
je 0x696ee7f8
mov rcx, r12
call fcn.696e3890
movupd xmm6, xmm0
nop dword [rax]
movsd xmm1, qword [0x699f2db8]
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.696edfe0
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.696e11b0
jmp 0x696ee6f0
movsd xmm6, qword [0x699f2db8]
movupd xmm1, xmm6
jmp 0x696ee780
xor r12d, r12d
jmp 0x696ee6f0
Function at 0x696ee870
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.696eeb10
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 0x696eea50
call fcn.696d7ce0
mov r12, rax
test rax, rax
je 0x696eea50
mov rdx, rsi
mov rcx, rax
call fcn.696e39b0
test rsi, rsi
jne 0x696ee9c0
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 [0x699f2dc0]
mov byte [rbx + 0x4b], r14b
je 0x696ee9f8
movsd xmm3, qword [0x699f2db8]
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.696edfe0
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.696e11b0
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 0x696ee927
lea rcx, str.DPF_SCALE_FACTOR
call sub.msvcrt.dll_getenv
mov rcx, rax
test rax, rax
je 0x696eea30
call sub.msvcrt.dll_atof
movsd xmm3, qword [0x699f2db8]
movupd xmm6, xmm0
maxsd xmm6, xmm3
jmp 0x696ee94b
test r12, r12
je 0x696eea80
mov rcx, r12
call fcn.696e3890
movupd xmm6, xmm0
jmp 0x696ee943
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 0x696ee927
movsd xmm6, qword [0x699f2db8]
movupd xmm3, xmm6
jmp 0x696ee94b
Function at 0x696f9550
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 [0x699f3928]
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.696e2f70
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 0x696f96e0
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 0x696f9818
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 [0x699f3928]
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 [0x699f3928]
movsd qword [rsi + 8], xmm0
jmp 0x696f975e
Function at 0x69758a80
Capabilities:
Hash data using djb2

Disassembly:
test rcx, rcx
je 0x69758ab2
movsx eax, byte [rcx]
mov r8d, 0x1505
test al, al
je 0x69758aae
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 0x69758a98
mov eax, r8d
ret
mov r8d, 0x1505
jmp 0x69758aae

Function at 0x6977c9d0
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 0x6977c9f0
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 0x6977ca70
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.697de8c0
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 0x6978be40
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 0x6978bec2
test byte [r12 + 0x30], 2
jne 0x6978bfd0
cmp qword [r12 + 0xf8], 0
jne 0x6978bea0
mov rax, qword [r12]
cmp dword [rax], 0x1000
je 0x6978bea0
mov rcx, r12
lea rdx, [0x69a08ca0]
call fcn.6978a6f0
mov rcx, rax
test rax, rax
je 0x6978bed0
add rsp, 0x48
pop r12
pop r13
jmp fcn.697e9460
mov rcx, r12
add rsp, 0x48
pop r12
pop r13
jmp fcn.697e9460
mov rcx, r13
mov dword [rsp + 0x3c], eax
call fcn.697e8930
mov eax, dword [rsp + 0x3c]
mov ecx, eax
add rsp, 0x48
pop r12
pop r13
jmp fcn.697895a0
mov ecx, 0x180
call sub.msvcrt.dll_malloc
mov r13, rax
test rax, rax
je 0x6978bfd0
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, [0x69a08ca0]
call fcn.6978a740
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.69789300
test eax, eax
jne 0x6978beb0
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, [0x6978c0c0]
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.69789220
mov rax, r13
add rsp, 0x48
pop r12
pop r13
ret
mov ecx, 0xc
call fcn.697494c0
mov ecx, eax
jmp 0x6978bec2

Function at 0x6979e8f0
Capabilities:
Check os version

Disassembly:
push r12
sub rsp, 0xc0
mov rax, qword [0x69a01d60]
mov edx, dword [rax]
test edx, edx
je 0x6979e9c8
mov rcx, qword [0x699ee600]
test rcx, rcx
je 0x6979e928
call fcn.697de310
add rsp, 0xc0
pop r12
ret
mov ecx, 0x70
call sub.msvcrt.dll_malloc
lea rdx, [0x69a09d80]
mov rcx, rax
mov r12, rax
call fcn.69749110
call fcn.697a0e60
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 0x6979e9d8
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 0x6979e99a
lea rdx, str.AlphaBlend
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [r12 + 0x68], rax
xor eax, eax
lock cmpxchg qword [0x699ee600], r12
mov rcx, r12
je 0x6979e916
call fcn.6969b170
mov rcx, qword [0x699ee600]
jmp 0x6979e916
call fcn.69761e90
jmp 0x6979e90a
cmp dword [rsp + 0x24], 4
jne 0x6979e971
xor eax, eax
cmp dword [rsp + 0x28], 0xa
jne 0x6979e971
jmp 0x6979e99a
Function at 0x697ad4f0
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 0x697ad56e
mov rcx, r12
call sub.msvcrt.dll_strlen
mov rsi, rax
jmp 0x697ad52c
add rbx, rdi
cmp byte [rbx], 0
lea rdi, [rbx + 1]
je 0x697ad590
mov edx, 0x20
mov rcx, rdi
call sub.msvcrt.dll_strchr
test rax, rax
je 0x697ad580
sub eax, edi
movsxd rbx, eax
cmp rsi, rbx
jne 0x697ad520
mov r8, rsi
mov rdx, rdi
mov rcx, r12
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x697ad520
mov rdx, r12
lea rcx, str.pixman:_Disabled__s_implementation_n
call fcn.69973760
mov eax, 1
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop r12
ret
mov rcx, rdi
call sub.msvcrt.dll_strlen
jmp 0x697ad540
xor eax, eax
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop r12
ret
Function at 0x697b3360
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 0x697b3440
cmp edx, 2
jne 0x697b342e
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.697e0c80
movsd xmm2, qword [rsp + 0x48]
mov r10d, dword [rsi + 0x10]
lea rdx, [rsp + 0x70]
movsd xmm3, qword [0x699f6650]
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.69794f70
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.6976dd70
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 0x697b352c
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.69795540
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 0x697b3570
mov rcx, qword [rbx + 0x40]
cmp dword [rsp + 0x3c], eax
jne 0x697b34b0
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.69795540
nop
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop r12
ret
mov dword [rsp + 0x38], 0
xor eax, eax
jmp 0x697b352c
Function at 0x699e1e00
Capabilities:
Compress data via zlib inflate or deflate
Resolve function by parsing pe exports

Disassembly:
mov r8, rcx
test rcx, rcx
je 0x699e1e24
cmp qword [rcx + 0x30], 0
je 0x699e1e24
cmp qword [rcx + 0x38], 0
je 0x699e1e24
mov rax, qword [rcx + 0x28]
test rax, rax
je 0x699e1e24
cmp rcx, qword [rax]
je 0x699e1e30
mov eax, 0xfffffffe
ret
mov r9d, dword [rax + 8]
mov r11d, 1
lea ecx, [r9 - 0x2a]
cmp ecx, 0x3d
ja 0x699e1e57
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 0x699e1e73
test r11b, r11b
jne 0x699e1e24
cmp edx, 5
ja 0x699e1e24
mov rcx, r8
jmp fcn.699e1e80
Function at 0x100016e08
Capabilities:
Check os version

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x150
mov rax, qword [0x100039110]
xor rax, rsp
mov qword [rsp + 0x140], rax
and dword [rcx], 0
mov edi, 0x57
call fcn.1000173ec
test al, al
je 0x100016fe2
mov r9d, dword [0x10003a658]
mov r8, qword [0x10003a660]
mov ecx, dword [0x100039690]
xor edx, edx
call fcn.10002d53c
mov qword [0x10003a670], rax
test rax, rax
je 0x100016fe2
mov edx, dword [0x100039690]
xor ecx, ecx
cmp edx, 1
jne 0x100016ead
lea rdx, [0x10003a3e0]
lea ecx, [rdi - 0x37]
call fcn.100030110
mov rcx, rax
test rax, rax
je 0x100016ea5
and qword [rax + 8], 0
and qword [rax + 0x10], 0
and dword [rax + 0x18], 0
lea rax, [0x100002d40]
mov qword [rcx], rax
jmp 0x100016ea7
xor ecx, ecx
mov edx, dword [0x100039690]
mov qword [0x10003a678], rcx
mov ecx, edx
call fcn.10001720c
mov rcx, rax
mov qword [0x10003a668], rax
test rax, rax
jne 0x100016f04
mov rbx, qword [0x10003a670]
test rbx, rbx
je 0x100016ef7
lea rax, [0x100011a98]
mov rcx, rbx
mov qword [rbx], rax
call fcn.10002ae94
mov rcx, rbx
call fcn.10002deec
mov rcx, qword [0x10003a668]
and qword [0x10003a670], 0
jmp 0x100016fe9
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x114
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x100016f57
cmp dword [rsp + 0x24], 5
ja 0x100016f2b
jne 0x100016f57
cmp dword [rsp + 0x28], 0
jbe 0x100016f57
mov rcx, qword [0x10003a668]
mov rax, qword [rcx]
call qword [rax + 0x40]
test rax, rax
je 0x100016f57
mov rcx, rax
call fcn.100029474
lock or qword [0x10003a740], 1
lock or qword [0x10003a740], 0x40
mov rcx, qword [0x10003a668]
cmp qword [rcx + 0x10], 0
jne 0x100016f72
mov rax, qword [0x10003a670]
mov qword [rcx + 0x10], rax
jmp 0x100016f98
mov ebx, 0x4100
mov ecx, ebx
call fcn.100029738
test eax, eax
je 0x100016f91
lea rdx, [0x1000110a0]
movzx ecx, bx
call fcn.1000297dc
mov rcx, qword [0x10003a668]
mov rax, qword [rcx]
call qword [rax + 0x10]
test al, al
jne 0x100016fe2
mov ebx, 0x4106
mov ecx, ebx
call fcn.100029738
test eax, eax
je 0x100016fc1
lea rdx, [0x1000020c0]
movzx ecx, bx
call fcn.1000297dc
mov rcx, qword [0x10003a668]
test rcx, rcx
je 0x100016fd7
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
xor ecx, ecx
mov qword [0x10003a668], rcx
jmp 0x100016fe9
mov rcx, qword [0x10003a668]
test rcx, rcx
je 0x100016ff6
mov rax, qword [rcx]
call qword [rax + 0x20]
xor edi, edi
mov eax, edi
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.10002e2d0
mov rbx, qword [rsp + 0x168]
add rsp, 0x150
pop rdi
ret