joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180003570
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rcx, qword [0x1804bea50]
mov esi, 1
add rcx, rsi
xorps xmm1, xmm1
js 0x18000359a
cvtsi2ss xmm1, rcx
jmp 0x1800035af
mov rax, rcx
and rcx, rsi
shr rax, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
divss xmm1, dword [0x1804bea40]
cvttss2si ecx, xmm1
cmp ecx, 0x80000000
je 0x1800035e2
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
je 0x1800035e2
unpcklps xmm1, xmm1
movmskps eax, xmm1
and eax, esi
xor eax, esi
add ecx, eax
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
movss xmm0, dword [0x1802d1d1c]
xor ecx, ecx
comiss xmm1, xmm0
jb 0x180003607
subss xmm1, xmm0
comiss xmm1, xmm0
jae 0x180003607
movabs rax, 0x8000000000000000
mov rcx, rax
mov rdx, qword [0x1804bea78]
cvttss2si rax, xmm1
add rax, rcx
mov ecx, 8
cmp rax, rcx
cmova rcx, rax
cmp rdx, rcx
jae 0x18000363c
cmp rdx, 0x200
jae 0x180003639
shl rdx, 3
cmp rdx, rcx
jae 0x18000363c
mov rdx, rcx
movabs rax, 0xfffffffffffffff
bsr rcx, rax
mov rax, rsi
shl rax, cl
cmp rdx, rax
jbe 0x180003663
lea rcx, str.invalid_hash_bucket_count
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
mov rbx, qword [0x1804bea48]
lea rax, [rdx - 1]
or rax, rsi
mov rdi, rsi
bsr rcx, rax
mov r8, rbx
inc ecx
shl rdi, cl
lea rcx, [0x1804bea58]
lea rdx, [rdi + rdi]
call fcn.180002fd0
mov rax, qword [0x1804bea48]
lea r9, [rdi - 1]
mov qword [0x1804bea70], r9
mov qword [0x1804bea78], rdi
mov rax, qword [rax]
mov rcx, rax
cmp rax, rbx
je 0x1800037af
mov rcx, qword [rcx]
movabs r11, 0xcbf29ce484222325
xor r8d, r8d
movzx edx, byte [rax + r8 + 0x10]
movabs r10, 0x100000001b3
xor r11, rdx
add r8, rsi
imul r11, r10
cmp r8, 8
jb 0x1800036c8
mov rdi, qword [0x1804bea58]
and r11, r9
add r11, r11
cmp qword [rdi + r11*8], rbx
jne 0x180003706
mov qword [rdi + r11*8], rax
mov qword [rdi + r11*8 + 8], rax
jmp 0x180003775
mov r10, qword [rdi + r11*8 + 8]
mov rdx, qword [rax + 0x10]
cmp rdx, qword [r10 + 0x10]
jne 0x18000374a
mov r10, qword [r10]
cmp r10, rax
je 0x1800036ff
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], r10
mov rdx, qword [r10 + 8]
mov qword [rdx], rax
mov qword [r10 + 8], r8
mov qword [rcx + 8], r9
mov qword [rax + 8], rdx
jmp 0x1800036ff
mov r10, qword [r10 + 8]
cmp rdx, qword [r10 + 0x10]
je 0x180003789
cmp qword [rdi + r11*8], r10
jne 0x180003740
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], r10
mov rdx, qword [r10 + 8]
mov qword [rdx], rax
mov qword [r10 + 8], r8
mov qword [rcx + 8], r9
mov qword [rax + 8], rdx
mov qword [rdi + r11*8], rax
mov rax, rcx
cmp rcx, rbx
je 0x1800037af
mov r9, qword [0x1804bea70]
jmp 0x1800036b8
mov r10, qword [r10]
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], r10
mov rdx, qword [r10 + 8]
mov qword [rdx], rax
mov qword [r10 + 8], r8
mov qword [rcx + 8], r9
mov qword [rax + 8], rdx
jmp 0x180003775
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x1800037c0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rcx, qword [0x1804bea90]
mov esi, 1
add rcx, rsi
xorps xmm1, xmm1
js 0x1800037ea
cvtsi2ss xmm1, rcx
jmp 0x1800037ff
mov rax, rcx
and rcx, rsi
shr rax, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
divss xmm1, dword [0x1804bea80]
cvttss2si ecx, xmm1
cmp ecx, 0x80000000
je 0x180003832
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
je 0x180003832
unpcklps xmm1, xmm1
movmskps eax, xmm1
and eax, esi
xor eax, esi
add ecx, eax
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
movss xmm0, dword [0x1802d1d1c]
xor ecx, ecx
comiss xmm1, xmm0
jb 0x180003857
subss xmm1, xmm0
comiss xmm1, xmm0
jae 0x180003857
movabs rax, 0x8000000000000000
mov rcx, rax
mov rdx, qword [0x1804beab8]
cvttss2si rax, xmm1
add rax, rcx
mov ecx, 8
cmp rax, rcx
cmova rcx, rax
cmp rdx, rcx
jae 0x18000388c
cmp rdx, 0x200
jae 0x180003889
shl rdx, 3
cmp rdx, rcx
jae 0x18000388c
mov rdx, rcx
movabs rax, 0xfffffffffffffff
bsr rcx, rax
mov rax, rsi
shl rax, cl
cmp rdx, rax
jbe 0x1800038b3
lea rcx, str.invalid_hash_bucket_count
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
mov rbx, qword [0x1804bea88]
lea rax, [rdx - 1]
or rax, rsi
mov rdi, rsi
bsr rcx, rax
mov r8, rbx
inc ecx
shl rdi, cl
lea rcx, [0x1804bea98]
lea rdx, [rdi + rdi]
call fcn.180002fd0
mov rax, qword [0x1804bea88]
lea r9, [rdi - 1]
mov qword [0x1804beab0], r9
mov qword [0x1804beab8], rdi
mov rax, qword [rax]
mov rcx, rax
cmp rax, rbx
je 0x1800039ff
mov rcx, qword [rcx]
movabs r11, 0xcbf29ce484222325
xor r8d, r8d
movzx edx, byte [rax + r8 + 0x10]
movabs r10, 0x100000001b3
xor r11, rdx
add r8, rsi
imul r11, r10
cmp r8, 8
jb 0x180003918
mov rdi, qword [0x1804bea98]
and r11, r9
add r11, r11
cmp qword [rdi + r11*8], rbx
jne 0x180003956
mov qword [rdi + r11*8], rax
mov qword [rdi + r11*8 + 8], rax
jmp 0x1800039c5
mov r10, qword [rdi + r11*8 + 8]
mov rdx, qword [rax + 0x10]
cmp rdx, qword [r10 + 0x10]
jne 0x18000399a
mov r10, qword [r10]
cmp r10, rax
je 0x18000394f
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], r10
mov rdx, qword [r10 + 8]
mov qword [rdx], rax
mov qword [r10 + 8], r8
mov qword [rcx + 8], r9
mov qword [rax + 8], rdx
jmp 0x18000394f
mov r10, qword [r10 + 8]
cmp rdx, qword [r10 + 0x10]
je 0x1800039d9
cmp qword [rdi + r11*8], r10
jne 0x180003990
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], r10
mov rdx, qword [r10 + 8]
mov qword [rdx], rax
mov qword [r10 + 8], r8
mov qword [rcx + 8], r9
mov qword [rax + 8], rdx
mov qword [rdi + r11*8], rax
mov rax, rcx
cmp rcx, rbx
je 0x1800039ff
mov r9, qword [0x1804beab0]
jmp 0x180003908
mov r10, qword [r10]
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], r10
mov rdx, qword [r10 + 8]
mov qword [rdx], rax
mov qword [r10 + 8], r8
mov qword [rcx + 8], r9
mov qword [rax + 8], rdx
jmp 0x1800039c5
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x18000416c
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov r9, qword [rcx]
mov ebx, 0x270
mov ecx, dword [r9]
cmp ecx, ebx
jne 0x1800041d7
lea r8, [r9 + 8]
mov r10d, 0x7fffffff
mov r11d, 0x9908b0df
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
and edx, r10d
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, r11d
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub rbx, 1
jne 0x18000419a
mov ecx, dword [r9]
jmp 0x1800042ad
cmp ecx, 0x4e0
jb 0x1800042ad
lea rbx, [r9 + 0x9c4]
mov esi, 0xe3
mov edi, dword [rbx]
mov r10d, 0x7fffffff
mov r11d, 0x9908b0df
mov eax, edi
mov r8, rbx
mov edx, eax
add rbx, 4
mov edi, dword [rbx]
xor edx, edi
and edx, r10d
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, r11d
xor ecx, dword [r8 + 0x634]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub rsi, 1
jne 0x1800041fd
lea rbx, [r9 + 0xd50]
mov esi, 0x18c
mov edi, dword [rbx]
mov eax, edi
mov r8, rbx
mov edx, eax
add rbx, 4
mov edi, dword [rbx]
xor edx, edi
and edx, r10d
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, r11d
xor ecx, dword [r8 - 0xd4c]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub rsi, 1
jne 0x180004242
mov eax, dword [r9 + 0x1380]
mov edx, eax
xor edx, dword [r9 + 4]
and edx, r10d
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, r11d
xor ecx, dword [r9 + 0x634]
xor ecx, edx
mov dword [r9 + 0x9c0], ecx
xor ecx, ecx
mov dword [r9], ecx
mov rbx, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x18]
mov eax, ecx
mov edx, dword [r9 + rax*4 + 4]
lea eax, [rcx + 1]
mov dword [r9], eax
mov ecx, edx
mov eax, dword [r9 + 0x1384]
shr ecx, 0xb
and eax, ecx
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
xor eax, edx
ret

Function at 0x1800042fc
Capabilities:
Check if file exists

Disassembly:
push rbx
sub rsp, 0x70
mov eax, dword [0x180101ef0]
mov rbx, rcx
movups xmm0, xmmword [0x180101ec8]
mov dword [rsp + 0x68], eax
movzx eax, word [0x180101ef4]
movups xmm1, xmmword [0x180101ed8]
mov word [rsp + 0x6c], ax
mov eax, 0x30
movups xmmword [rsp + 0x40], xmm0
movsd xmm0, qword [0x180101ee8]
movsd qword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x50], xmm1
jmp 0x180004361
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x180004368
movzx eax, word [rsp + 0x6a]
cmp ax, 0x39
jae 0x1800043c1
inc ax
mov word [rsp + 0x6a], ax
jmp 0x180004383
cmp eax, 0xe7
jne 0x1800043c1
mov edx, 0x2710
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_WaitNamedPipeW]
test eax, eax
je 0x1800043c1
and qword [rsp + 0x30], 0
lea rcx, [rsp + 0x40]
and dword [rsp + 0x28], 0
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 3
mov edx, 0xc0000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rbx + 8], rax
cmp rax, 0xffffffffffffffff
je 0x180004348
mov byte [rbx], 1
mov al, 1
add rsp, 0x70
pop rbx
ret
xor al, al
jmp 0x1800043bb
Function at 0x1800043c8
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x30
mov rbx, r8
test r8, r8
jne 0x1800043dc
lea eax, [r8 + 1]
jmp 0x18000441d
test rcx, rcx
je 0x18000441b
mov rcx, qword [rcx + 8]
cmp rcx, 0xffffffffffffffff
je 0x18000441b
test rdx, rdx
je 0x18000441b
and dword [rsp + 0x50], 0
lea r9, [rsp + 0x50]
and qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, 1
cmp eax, ecx
jne 0x180004415
cmp dword [rsp + 0x50], ebx
je 0x180004417
xor cl, cl
mov al, cl
jmp 0x18000441d
xor al, al
add rsp, 0x30
pop rbx
ret

Function at 0x180004424
Capabilities:
Read file on windows
Read pipe

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
push rdi
sub rsp, 0x30
mov rdi, r8
mov rsi, rdx
mov rbx, rcx
test rdx, rdx
je 0x1800044b7
test rcx, rcx
je 0x1800044b7
mov rcx, qword [rcx + 8]
cmp rcx, 0xffffffffffffffff
je 0x1800044b7
and qword [rax - 0x10], 0
xor r9d, r9d
and dword [rax + 0x10], 0
lea rax, [rax + 0x10]
xor r8d, r8d
mov qword [rsp + 0x20], rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_PeekNamedPipe]
test eax, eax
je 0x1800044a5
mov eax, dword [rsp + 0x48]
cmp rax, rdi
jb 0x1800044b7
mov rcx, qword [rbx + 8]
lea r9, [rsp + 0x58]
and dword [rsp + 0x58], 0
mov r8d, edi
and qword [rsp + 0x20], 0
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, 1
jne 0x1800044a5
jmp 0x1800044b9
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
or qword [rbx + 8], 0xffffffffffffffff
mov byte [rbx], 0
xor al, al
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret

Function at 0x1800045b8
Capabilities:
Set registry value

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rsi
push rdi
sub rsp, 0x50
xor esi, esi
mov rdi, r8
mov qword [r11 + 8], rsi
mov rbx, rcx
test rdx, rdx
je 0x18000460f
cmp word [rdx], si
je 0x18000460f
mov qword [r11 - 0x18], rsi
lea rax, [r11 + 8]
mov qword [r11 - 0x20], rax
xor r9d, r9d
mov qword [r11 - 0x28], rsi
xor r8d, r8d
mov dword [rsp + 0x28], 0xf003f
mov dword [rsp + 0x20], esi
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x180004652
mov rcx, qword [rsp + 0x60]
mov eax, dword [rsp + 0x88]
mov r9d, 1
mov dword [rsp + 0x28], eax
xor r8d, r8d
mov rax, qword [rsp + 0x80]
mov rdx, rdi
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x60]
mov edi, eax
test rcx, rcx
je 0x180004650
cmp rcx, rbx
je 0x180004650
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, edi
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x50
pop rdi
ret
Function at 0x180004b98
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push rbx
sub rsp, 0x20
inc dword [0x1803a9c28]
mov r9d, 0x138
mov edx, dword [0x1803a9c30]
cmp edx, r9d
jne 0x180004c03
lea r8, [0x1803a9c40]
mov rdx, qword [r8]
xor rdx, qword [r8 - 8]
and rdx, 0xffffffff80000000
xor rdx, qword [r8]
lea r8, [r8 + 8]
mov al, dl
and al, 1
neg al
movabs rax, 0xb5026f5aa96619e9
sbb rcx, rcx
shr rdx, 1
and rcx, rax
xor rcx, qword [r8 + 0x4d0]
xor rcx, rdx
mov qword [r8 + 0x9b0], rcx
sub r9, 1
jne 0x180004bbc
jmp 0x180004c17
cmp edx, 0x270
jb 0x180004c1d
lea rcx, [0x1803a9c30]
call fcn.180005e90
mov edx, dword [0x1803a9c30]
mov eax, edx
lea rcx, [0x1803a9c38]
inc edx
xorps xmm2, xmm2
mov rcx, qword [rcx + rax*8]
mov rax, rcx
mov dword [0x1803a9c30], edx
shr rax, 0x1d
movabs rdx, 0x38eb3ffff6d3
and rax, qword [0x1803aafb8]
xor rcx, rax
mov rax, rcx
and rax, rdx
shl rax, 0x11
xor rcx, rax
mov rax, rcx
and rax, 0xffffffffffffbf77
shl rax, 0x25
xor rcx, rax
mov rdx, rcx
shr rdx, 0x2b
xor rdx, rcx
js 0x180004c80
cvtsi2sd xmm2, rdx
jmp 0x180004c95
mov rax, rdx
and edx, 1
shr rax, 1
or rax, rdx
cvtsi2sd xmm2, rax
addsd xmm2, xmm2
mov rbx, qword [0x1803a9c20]
movsd xmm0, qword [0x1803aafc8]
subsd xmm0, qword [0x1803aafc0]
mulsd xmm2, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rbx
mulsd xmm2, qword [0x1802d19f0]
addsd xmm2, qword [0x1803aafc0]
mulsd xmm2, xmm0
mulsd xmm2, qword [0x1802d1d68]
cvttsd2si rax, xmm2
sub rbx, rax
cmp qword [0x1803a9c18], rbx
cmovl rbx, qword [0x1803a9c18]
mov qword [0x1803a9c20], rbx
call qword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
imul rdx, rbx, 0x2710
add rdx, rax
mov qword [0x180489f00], rdx
add rsp, 0x20
pop rbx
ret
Function at 0x180005e90
Capabilities:
Encode data using add xor sub operations
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
lea r10, [rcx + 0x9c8]
mov r9, rcx
mov rax, qword [r10]
mov r11d, 0x9c
mov rbx, 0xffffffff80000000
movabs rdi, 0xb5026f5aa96619e9
mov r8, r10
add r10, 8
mov rdx, qword [r10]
xor rdx, rax
and rdx, rbx
xor rdx, qword [r10]
mov al, dl
and al, 1
neg al
mov rax, qword [r10]
sbb rcx, rcx
shr rdx, 1
and rcx, rdi
xor rcx, qword [r8 + 0x4e0]
xor rcx, rdx
mov qword [r8 - 0x9c0], rcx
sub r11, 1
jne 0x180005ebe
lea r10, [r9 + 0xea8]
mov r11d, 0x9b
mov rax, qword [r10]
mov r8, r10
add r10, 8
mov rdx, qword [r10]
xor rdx, rax
and rdx, rbx
xor rdx, qword [r10]
mov al, dl
and al, 1
neg al
mov rax, qword [r10]
sbb rcx, rcx
shr rdx, 1
and rcx, rdi
xor rcx, qword [r8 - 0xea0]
xor rcx, rdx
mov qword [r8 - 0x9c0], rcx
sub r11, 1
jne 0x180005f0a
mov rdx, qword [r9 + 8]
xor rdx, qword [r9 + 0x1380]
and rdx, rbx
mov rbx, qword [rsp + 8]
xor rdx, qword [r9 + 8]
mov al, dl
and al, 1
neg al
sbb rcx, rcx
and dword [r9], 0
and rcx, rdi
shr rdx, 1
xor rcx, qword [r9 + 0x4e0]
mov rdi, qword [rsp + 0x10]
xor rcx, rdx
mov qword [r9 + 0x9c0], rcx
ret
Function at 0x180010628
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rbx, qword [0x180488e30]
test rbx, rbx
je 0x1800106ef
mov rcx, rbx
call fcn.18000ff08
cmp qword [rax], 0
je 0x1800106ef
mov rcx, rbx
call fcn.18000ff08
mov rdi, qword [rax]
test rdi, rdi
je 0x1800106ef
mov ecx, dword [0x180488534]
or rbx, 0xffffffffffffffff
mov rax, qword gs:[0x58]
mov edx, 4
mov rax, qword [rax + rcx*8]
mov eax, dword [rdx + rax]
cmp dword [0x1804bed00], eax
jg 0x1800106fc
mov rax, qword [0x1804becd0]
mov rcx, rdi
call rax
test rax, rax
je 0x1800106ef
mov rax, qword [rax]
test rax, rax
je 0x1800106ef
mov r8, qword [rax + 0x10]
or edx, 0xffffffff
inc rbx
cmp byte [r8 + rbx], 0
jne 0x1800106af
test ebx, ebx
je 0x1800106ef
mov r9d, ebx
movsx ecx, byte [r8]
mov eax, edx
xor rcx, rax
shr edx, 8
movzx eax, cl
inc r8
lea rcx, [0x180166070]
xor edx, dword [rcx + rax*4]
sub r9, 1
jne 0x1800106c0
not edx
cmp edx, 0xafa91f9a
sete al
jmp 0x1800106f1
xor al, al
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
lea rcx, [0x1804bed00]
call fcn.18007840c
cmp dword [0x1804bed00], ebx
jne 0x18001068f
mov ecx, 0x99c155f5
call fcn.18000a9b0
lea rcx, [0x1804bed00]
mov rdx, qword [rax]
mov qword [0x1804becd0], rdx
call fcn.1800783a0
jmp 0x18001068f

Function at 0x1800112f0
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x38
mov qword [rsp + 0x20], rcx
lea rcx, [0x180488bb8]
call qword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov rcx, qword [0x180488bb8]
mov r8d, dword [0x180488bbc]
test ax, ax
je 0x1800113a0
movss xmm3, dword [0x1803ab588]
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm3
jbe 0x1800113a0
movss xmm4, dword [0x1803ab58c]
movd xmm2, r8d
cvtdq2ps xmm2, xmm2
comiss xmm2, xmm4
jbe 0x1800113a0
movss xmm0, dword [rsp + 0x20]
addss xmm0, xmm3
comiss xmm1, xmm0
jae 0x1800113a0
movss xmm0, dword [rsp + 0x24]
addss xmm0, xmm4
comiss xmm2, xmm0
jae 0x1800113a0
cmp byte [0x180488ba9], 0
mov dl, 1
mov byte [0x180488ba8], dl
jne 0x1800113aa
subss xmm1, xmm3
mov byte [0x180488ba9], dl
subss xmm2, xmm4
cvttss2si eax, xmm1
mov dword [0x180488bb0], eax
cvttss2si eax, xmm2
mov dword [0x180488bb4], eax
jmp 0x1800113a6
mov dl, byte [0x180488ba8]
test dl, dl
je 0x1800113d6
sub ecx, dword [0x180488bb0]
sub r8d, dword [0x180488bb4]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [0x1803ab588], xmm0
movd xmm0, r8d
cvtdq2ps xmm0, xmm0
movss dword [0x1803ab58c], xmm0
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1800113f2
mov byte [0x180488ba8], al
mov byte [0x180488ba9], al
add rsp, 0x38
ret
Function at 0x1800113f8
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x38
mov qword [rsp + 0x20], rcx
lea rcx, [0x180488e50]
call qword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov rcx, qword [0x180488e50]
mov r8d, dword [0x180488e54]
test ax, ax
je 0x1800114a8
movss xmm3, dword [0x1803ab590]
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm3
jbe 0x1800114a8
movss xmm4, dword [0x1803ab594]
movd xmm2, r8d
cvtdq2ps xmm2, xmm2
comiss xmm2, xmm4
jbe 0x1800114a8
movss xmm0, dword [rsp + 0x20]
addss xmm0, xmm3
comiss xmm1, xmm0
jae 0x1800114a8
movss xmm0, dword [rsp + 0x24]
addss xmm0, xmm4
comiss xmm2, xmm0
jae 0x1800114a8
cmp byte [0x180488ddb], 0
mov dl, 1
mov byte [0x180488dda], dl
jne 0x1800114b2
subss xmm1, xmm3
mov byte [0x180488ddb], dl
subss xmm2, xmm4
cvttss2si eax, xmm1
mov dword [0x180488e48], eax
cvttss2si eax, xmm2
mov dword [0x180488e4c], eax
jmp 0x1800114ae
mov dl, byte [0x180488dda]
test dl, dl
je 0x1800114de
sub ecx, dword [0x180488e48]
sub r8d, dword [0x180488e4c]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [0x1803ab590], xmm0
movd xmm0, r8d
cvtdq2ps xmm0, xmm0
movss dword [0x1803ab594], xmm0
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1800114fa
mov byte [0x180488dda], al
mov byte [0x180488ddb], al
add rsp, 0x38
ret

Function at 0x180013ba4
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov edi, r8d
mov rsi, rdx
mov rbp, rcx
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x180013c1b
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbx, rax
test rax, rax
je 0x180013c1b
mov rdx, rsi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, eax
add rcx, rbx
and edi, 0xf
jbe 0x180013c08
cmp rbx, rcx
jae 0x180013c1b
movzx eax, word [rbx]
lea rbx, [rbx + rax*2]
add rbx, 2
add edi, 0xffffffff
jne 0x180013bf3
cmp rbx, rcx
jae 0x180013c1b
movzx eax, word [rbx]
neg ax
sbb rax, rax
and rax, rbx
jmp 0x180013c1d
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x18002a404
Capabilities:
Delete file

Disassembly:
mov rax, rsp
mov qword [rax + 8], rdi
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0xa0
movdqa xmm1, xmmword [0x1802d1dd0]
xor edi, edi
mov r8, qword [0x1803ab5b0]
xorps xmm0, xmm0
movups xmmword [rbp - 9], xmm0
or rcx, 0xffffffffffffffff
mov byte [rbp - 9], dil
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
movdqu xmmword [rbp + 7], xmm1
inc rcx
cmp byte [rdx + rcx], dil
jne 0x18002a444
movabs rax, 0x7fffffffffffffff
sub rax, r8
cmp rax, rcx
jb 0x18002a5dd
cmp qword [0x1803ab5b8], 0xf
lea r9, [0x1803ab5a0]
mov qword [rsp + 0x30], rcx
lea rcx, [rbp + 0x17]
cmova r9, qword [0x1803ab5a0]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], r8
call fcn.180004098
mov rcx, qword [rbp + 0x27]
mov edx, 4
mov rax, qword [rbp + 0x2f]
sub rax, rcx
cmp rax, rdx
jb 0x18002a4cf
cmp qword [rbp + 0x2f], 0xf
lea rax, [rcx + 4]
mov qword [rbp + 0x27], rax
lea rax, [rbp + 0x17]
cmova rax, qword [rbp + 0x17]
mov dword [rax + rcx], 0x6766632e
mov byte [rax + rcx + 4], dil
lea rax, [rbp + 0x17]
jmp 0x18002a4e4
lea r9, str..cfg
mov qword [rsp + 0x20], rdx
lea rcx, [rbp + 0x17]
call fcn.180002840
movups xmm6, xmmword [rax]
movups xmm7, xmmword [rax + 0x10]
mov qword [rax + 0x10], rdi
mov byte [rax], dil
mov edi, 0x1000
mov qword [rax + 0x18], 0xf
mov rdx, qword [rbp + 0xf]
cmp rdx, 0xf
jbe 0x18002a532
mov rcx, qword [rbp - 9]
inc rdx
mov rax, rcx
cmp rdx, rdi
jb 0x18002a52d
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002a568
call fcn.180078364
mov rdx, qword [rbp + 0x2f]
movups xmmword [rbp - 9], xmm6
movups xmmword [rbp + 7], xmm7
cmp rdx, 0xf
jbe 0x18002a574
mov rcx, qword [rbp + 0x17]
inc rdx
mov rax, rcx
cmp rdx, rdi
jb 0x18002a56f
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18002a56f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180078364
cmp qword [rbp + 0xf], 0xf
lea rcx, [rbp - 9]
cmova rcx, qword [rbp - 9]
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll_remove]
mov rdx, qword [rbp + 0xf]
cmp rdx, 0xf
jbe 0x18002a5c2
mov rcx, qword [rbp - 9]
inc rdx
mov rax, rcx
cmp rdx, rdi
jb 0x18002a5bd
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18002a5bd
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180078364
lea r11, [rsp + 0xa0]
mov rdi, qword [r11 + 0x10]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop rbp
ret
call fcn.1800023d4
int3