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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x30
mov r12, r8
mov rsi, rdx
xor ecx, ecx
movabs r15, 0xcbf29ce484222325
movzx eax, byte [r8 + rcx]
movabs rdx, 0x100000001b3
xor r15, rax
inc rcx
imul r15, rdx
cmp rcx, 8
jb 0x1800051e7
mov rax, qword [0x180304110]
mov rcx, qword [0x1803040f8]
and rax, r15
mov r14, qword [0x1803040e8]
add rax, rax
mov rbx, qword [rcx + rax*8 + 8]
cmp rbx, r14
jne 0x180005252
mov rbx, r14
mov rbp, r14
movabs rax, 0x7ffffffffffffff
cmp qword [0x1803040f0], rax
jne 0x180005291
lea rcx, [0x18017caa8]
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
mov rdx, qword [rcx + rax*8]
mov rax, qword [r8]
jmp 0x180005264
cmp rbx, rdx
je 0x180005287
mov rbx, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jne 0x18000525b
mov r14, qword [rbx]
mov rax, rbx
mov rbp, r14
mov rbx, r14
test rax, rax
je 0x180005231
mov qword [rsi], rax
mov byte [rsi + 8], 0
jmp 0x1800053d8
mov r14, rbx
xor eax, eax
mov rbp, rbx
jmp 0x180005276
mov ecx, 0x20
call fcn.18008edc8
movups xmm0, xmmword [r12]
mov rdi, rax
xorps xmm1, xmm1
movdqu xmmword [rax + 0x10], xmm0
mov r8, qword [0x1803040f0]
lea rcx, [r8 + 1]
test rcx, rcx
js 0x1800052c2
cvtsi2ss xmm1, rcx
jmp 0x1800052d7
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
mov rcx, qword [0x180304118]
xorps xmm0, xmm0
test rcx, rcx
js 0x1800052ed
cvtsi2ss xmm0, rcx
jmp 0x180005302
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
divss xmm1, xmm0
movss xmm0, dword [0x1803040e0]
comiss xmm0, xmm1
jae 0x180005370
call fcn.180005640
mov rcx, qword [0x180304110]
mov rdx, qword [0x1803040f8]
and rcx, r15
mov rbx, qword [0x1803040e8]
add rcx, rcx
mov rax, qword [rdx + rcx*8 + 8]
cmp rax, rbx
je 0x18000535c
mov r8, qword [rdx + rcx*8]
mov rcx, qword [rdi + 0x10]
jmp 0x180005353
mov rbx, rax
cmp rax, r8
je 0x1800053b3
mov rax, qword [rax + 8]
cmp rcx, qword [rax + 0x10]
jne 0x180005347
mov rbx, qword [rax]
mov qword [rsp + 0x20], rbx
mov r14, qword [rsp + 0x20]
mov rbp, rbx
mov r8, qword [0x1803040f0]
mov rdx, qword [rbx + 8]
inc r8
mov qword [0x1803040f0], r8
mov qword [rdi], r14
mov qword [rdi + 8], rdx
mov qword [rdx], rdi
mov qword [rbx + 8], rdi
mov rax, qword [0x180304110]
mov rcx, qword [0x1803040f8]
and rax, r15
add rax, rax
mov r8, qword [rcx + rax*8]
cmp r8, qword [0x1803040e8]
jne 0x1800053ba
mov qword [rcx + rax*8], rdi
jmp 0x1800053cc
mov qword [rsp + 0x20], rax
jmp 0x180005361
cmp r8, rbp
jne 0x1800053c5
mov qword [rcx + rax*8], rdi
jmp 0x1800053d1
cmp qword [rcx + rax*8 + 8], rdx
jne 0x1800053d1
mov qword [rcx + rax*8 + 8], rdi
mov qword [rsi], rdi
mov byte [rsi + 8], 1
mov rbx, qword [rsp + 0x50]
mov rax, rsi
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop r12
ret
Function at 0x1800053fc
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x30
mov r12, r8
mov rsi, rdx
xor ecx, ecx
movabs r15, 0xcbf29ce484222325
movzx eax, byte [r8 + rcx]
movabs rdx, 0x100000001b3
xor r15, rax
inc rcx
imul r15, rdx
cmp rcx, 8
jb 0x18000542b
mov rax, qword [0x180304150]
mov rcx, qword [0x180304138]
and rax, r15
mov r14, qword [0x180304128]
add rax, rax
mov rbx, qword [rcx + rax*8 + 8]
cmp rbx, r14
jne 0x180005496
mov rbx, r14
mov rbp, r14
movabs rax, 0x7ffffffffffffff
cmp qword [0x180304130], rax
jne 0x1800054d5
lea rcx, [0x18017caa8]
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
mov rdx, qword [rcx + rax*8]
mov rax, qword [r8]
jmp 0x1800054a8
cmp rbx, rdx
je 0x1800054cb
mov rbx, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jne 0x18000549f
mov r14, qword [rbx]
mov rax, rbx
mov rbp, r14
mov rbx, r14
test rax, rax
je 0x180005475
mov qword [rsi], rax
mov byte [rsi + 8], 0
jmp 0x18000561c
mov r14, rbx
xor eax, eax
mov rbp, rbx
jmp 0x1800054ba
mov ecx, 0x20
call fcn.18008edc8
movups xmm0, xmmword [r12]
mov rdi, rax
xorps xmm1, xmm1
movdqu xmmword [rax + 0x10], xmm0
mov r8, qword [0x180304130]
lea rcx, [r8 + 1]
test rcx, rcx
js 0x180005506
cvtsi2ss xmm1, rcx
jmp 0x18000551b
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
mov rcx, qword [0x180304158]
xorps xmm0, xmm0
test rcx, rcx
js 0x180005531
cvtsi2ss xmm0, rcx
jmp 0x180005546
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
divss xmm1, xmm0
movss xmm0, dword [0x180304120]
comiss xmm0, xmm1
jae 0x1800055b4
call fcn.180005890
mov rcx, qword [0x180304150]
mov rdx, qword [0x180304138]
and rcx, r15
mov rbx, qword [0x180304128]
add rcx, rcx
mov rax, qword [rdx + rcx*8 + 8]
cmp rax, rbx
je 0x1800055a0
mov r8, qword [rdx + rcx*8]
mov rcx, qword [rdi + 0x10]
jmp 0x180005597
mov rbx, rax
cmp rax, r8
je 0x1800055f7
mov rax, qword [rax + 8]
cmp rcx, qword [rax + 0x10]
jne 0x18000558b
mov rbx, qword [rax]
mov qword [rsp + 0x20], rbx
mov r14, qword [rsp + 0x20]
mov rbp, rbx
mov r8, qword [0x180304130]
mov rdx, qword [rbx + 8]
inc r8
mov qword [0x180304130], r8
mov qword [rdi], r14
mov qword [rdi + 8], rdx
mov qword [rdx], rdi
mov qword [rbx + 8], rdi
mov rax, qword [0x180304150]
mov rcx, qword [0x180304138]
and rax, r15
add rax, rax
mov r8, qword [rcx + rax*8]
cmp r8, qword [0x180304128]
jne 0x1800055fe
mov qword [rcx + rax*8], rdi
jmp 0x180005610
mov qword [rsp + 0x20], rax
jmp 0x1800055a5
cmp r8, rbp
jne 0x180005609
mov qword [rcx + rax*8], rdi
jmp 0x180005615
cmp qword [rcx + rax*8 + 8], rdx
jne 0x180005615
mov qword [rcx + rax*8 + 8], rdi
mov qword [rsi], rdi
mov byte [rsi + 8], 1
mov rbx, qword [rsp + 0x50]
mov rax, rsi
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop r12
ret
Function at 0x180005640
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 [0x1803040f0]
mov esi, 1
add rcx, rsi
xorps xmm1, xmm1
js 0x18000566a
cvtsi2ss xmm1, rcx
jmp 0x18000567f
mov rax, rcx
and rcx, rsi
shr rax, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
divss xmm1, dword [0x1803040e0]
cvttss2si ecx, xmm1
cmp ecx, 0x80000000
je 0x1800056b2
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
je 0x1800056b2
unpcklps xmm1, xmm1
movmskps eax, xmm1
and eax, esi
xor eax, esi
add ecx, eax
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
movss xmm0, dword [0x1801841fc]
xor ecx, ecx
comiss xmm1, xmm0
jb 0x1800056d7
subss xmm1, xmm0
comiss xmm1, xmm0
jae 0x1800056d7
movabs rax, 0x8000000000000000
mov rcx, rax
mov rdx, qword [0x180304118]
cvttss2si rax, xmm1
add rax, rcx
mov ecx, 8
cmp rax, rcx
cmova rcx, rax
cmp rdx, rcx
jae 0x18000570c
cmp rdx, 0x200
jae 0x180005709
shl rdx, 3
cmp rdx, rcx
jae 0x18000570c
mov rdx, rcx
movabs rax, 0xfffffffffffffff
bsr rcx, rax
mov rax, rsi
shl rax, cl
cmp rdx, rax
jbe 0x180005733
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 [0x1803040e8]
lea rax, [rdx - 1]
or rax, rsi
mov rdi, rsi
bsr rcx, rax
mov r8, rbx
inc ecx
shl rdi, cl
lea rcx, [0x1803040f8]
lea rdx, [rdi + rdi]
call fcn.180005078
mov rax, qword [0x1803040e8]
lea r9, [rdi - 1]
mov qword [0x180304110], r9
mov qword [0x180304118], rdi
mov rax, qword [rax]
mov rdx, rax
cmp rax, rbx
je 0x18000587f
mov rdx, qword [rdx]
movabs r11, 0xcbf29ce484222325
xor r8d, r8d
movzx ecx, byte [rax + r8 + 0x10]
movabs r10, 0x100000001b3
xor r11, rcx
add r8, rsi
imul r11, r10
cmp r8, 8
jb 0x180005798
mov rdi, qword [0x1803040f8]
and r11, r9
add r11, r11
cmp qword [rdi + r11*8], rbx
jne 0x1800057d6
mov qword [rdi + r11*8], rax
mov qword [rdi + r11*8 + 8], rax
jmp 0x180005845
mov rcx, qword [rdi + r11*8 + 8]
mov r8, qword [rax + 0x10]
cmp r8, qword [rcx + 0x10]
jne 0x18000581a
mov r8, qword [rcx]
cmp r8, rax
je 0x1800057cf
mov r10, qword [rax + 8]
mov qword [r10], rdx
mov r9, qword [rdx + 8]
mov qword [r9], r8
mov rcx, qword [r8 + 8]
mov qword [rcx], rax
mov qword [r8 + 8], r9
mov qword [rdx + 8], r10
mov qword [rax + 8], rcx
jmp 0x1800057cf
mov rcx, qword [rcx + 8]
cmp r8, qword [rcx + 0x10]
je 0x180005859
cmp qword [rdi + r11*8], rcx
jne 0x180005810
mov r10, qword [rax + 8]
mov qword [r10], rdx
mov r9, qword [rdx + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], rax
mov qword [rcx + 8], r9
mov qword [rdx + 8], r10
mov qword [rax + 8], r8
mov qword [rdi + r11*8], rax
mov rax, rdx
cmp rdx, rbx
je 0x18000587f
mov r9, qword [0x180304110]
jmp 0x180005788
mov r10, qword [rcx]
mov r9, qword [rax + 8]
mov qword [r9], rdx
mov r8, qword [rdx + 8]
mov qword [r8], r10
mov rcx, qword [r10 + 8]
mov qword [rcx], rax
mov qword [r10 + 8], r8
mov qword [rdx + 8], r9
mov qword [rax + 8], rcx
jmp 0x180005845
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x180005890
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 [0x180304130]
mov esi, 1
add rcx, rsi
xorps xmm1, xmm1
js 0x1800058ba
cvtsi2ss xmm1, rcx
jmp 0x1800058cf
mov rax, rcx
and rcx, rsi
shr rax, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
divss xmm1, dword [0x180304120]
cvttss2si ecx, xmm1
cmp ecx, 0x80000000
je 0x180005902
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
je 0x180005902
unpcklps xmm1, xmm1
movmskps eax, xmm1
and eax, esi
xor eax, esi
add ecx, eax
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
movss xmm0, dword [0x1801841fc]
xor ecx, ecx
comiss xmm1, xmm0
jb 0x180005927
subss xmm1, xmm0
comiss xmm1, xmm0
jae 0x180005927
movabs rax, 0x8000000000000000
mov rcx, rax
mov rdx, qword [0x180304158]
cvttss2si rax, xmm1
add rax, rcx
mov ecx, 8
cmp rax, rcx
cmova rcx, rax
cmp rdx, rcx
jae 0x18000595c
cmp rdx, 0x200
jae 0x180005959
shl rdx, 3
cmp rdx, rcx
jae 0x18000595c
mov rdx, rcx
movabs rax, 0xfffffffffffffff
bsr rcx, rax
mov rax, rsi
shl rax, cl
cmp rdx, rax
jbe 0x180005983
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 [0x180304128]
lea rax, [rdx - 1]
or rax, rsi
mov rdi, rsi
bsr rcx, rax
mov r8, rbx
inc ecx
shl rdi, cl
lea rcx, [0x180304138]
lea rdx, [rdi + rdi]
call fcn.180005078
mov rax, qword [0x180304128]
lea r9, [rdi - 1]
mov qword [0x180304150], r9
mov qword [0x180304158], rdi
mov rax, qword [rax]
mov rdx, rax
cmp rax, rbx
je 0x180005acf
mov rdx, qword [rdx]
movabs r11, 0xcbf29ce484222325
xor r8d, r8d
movzx ecx, byte [rax + r8 + 0x10]
movabs r10, 0x100000001b3
xor r11, rcx
add r8, rsi
imul r11, r10
cmp r8, 8
jb 0x1800059e8
mov rdi, qword [0x180304138]
and r11, r9
add r11, r11
cmp qword [rdi + r11*8], rbx
jne 0x180005a26
mov qword [rdi + r11*8], rax
mov qword [rdi + r11*8 + 8], rax
jmp 0x180005a95
mov rcx, qword [rdi + r11*8 + 8]
mov r8, qword [rax + 0x10]
cmp r8, qword [rcx + 0x10]
jne 0x180005a6a
mov r8, qword [rcx]
cmp r8, rax
je 0x180005a1f
mov r10, qword [rax + 8]
mov qword [r10], rdx
mov r9, qword [rdx + 8]
mov qword [r9], r8
mov rcx, qword [r8 + 8]
mov qword [rcx], rax
mov qword [r8 + 8], r9
mov qword [rdx + 8], r10
mov qword [rax + 8], rcx
jmp 0x180005a1f
mov rcx, qword [rcx + 8]
cmp r8, qword [rcx + 0x10]
je 0x180005aa9
cmp qword [rdi + r11*8], rcx
jne 0x180005a60
mov r10, qword [rax + 8]
mov qword [r10], rdx
mov r9, qword [rdx + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], rax
mov qword [rcx + 8], r9
mov qword [rdx + 8], r10
mov qword [rax + 8], r8
mov qword [rdi + r11*8], rax
mov rax, rdx
cmp rdx, rbx
je 0x180005acf
mov r9, qword [0x180304150]
jmp 0x1800059d8
mov r10, qword [rcx]
mov r9, qword [rax + 8]
mov qword [r9], rdx
mov r8, qword [rdx + 8]
mov qword [r8], r10
mov rcx, qword [r10 + 8]
mov qword [rcx], rax
mov qword [r10 + 8], r8
mov qword [rdx + 8], r9
mov qword [rax + 8], rcx
jmp 0x180005a95
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x180005ae0
Capabilities:
Check if file exists

Disassembly:
push rbx
sub rsp, 0x70
mov eax, dword [0x18017cba0]
mov rbx, rcx
movups xmm0, xmmword [str._pipediscord_ipc_0]
mov dword [rsp + 0x68], eax
movzx eax, word [0x18017cba4]
movups xmm1, xmmword [0x18017cb88]
mov word [rsp + 0x6c], ax
mov eax, 0x30
movups xmmword [rsp + 0x40], xmm0
movsd xmm0, qword [0x18017cb98]
movsd qword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x50], xmm1
jmp 0x180005b45
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x180005b4c
movzx eax, word [rsp + 0x6a]
cmp ax, 0x39
jae 0x180005ba5
inc ax
mov word [rsp + 0x6a], ax
jmp 0x180005b67
cmp eax, 0xe7
jne 0x180005ba5
mov edx, 0x2710
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_WaitNamedPipeW]
test eax, eax
je 0x180005ba5
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 0x180005b2c
mov byte [rbx], 1
mov al, 1
add rsp, 0x70
pop rbx
ret
xor al, al
jmp 0x180005b9f

Function at 0x180005bac
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x30
mov rbx, r8
test r8, r8
jne 0x180005bc0
lea eax, [r8 + 1]
jmp 0x180005c01
test rcx, rcx
je 0x180005bff
mov rcx, qword [rcx + 8]
cmp rcx, 0xffffffffffffffff
je 0x180005bff
test rdx, rdx
je 0x180005bff
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 0x180005bf9
cmp dword [rsp + 0x50], ebx
je 0x180005bfb
xor cl, cl
mov al, cl
jmp 0x180005c01
xor al, al
add rsp, 0x30
pop rbx
ret

Function at 0x180005c08
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 0x180005c9b
test rcx, rcx
je 0x180005c9b
mov rcx, qword [rcx + 8]
cmp rcx, 0xffffffffffffffff
je 0x180005c9b
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 0x180005c89
mov eax, dword [rsp + 0x48]
cmp rax, rdi
jb 0x180005c9b
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 0x180005c89
jmp 0x180005c9d
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 0x180005d9c
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 0x180005df3
cmp word [rdx], si
je 0x180005df3
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 0x180005e36
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 0x180005e34
cmp rcx, rbx
je 0x180005e34
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 0x1800062e4
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push rbx
sub rsp, 0x20
inc dword [0x1801b5f58]
mov r9d, 0x138
mov edx, dword [0x1801b5f60]
cmp edx, r9d
jne 0x18000634f
lea r8, [0x1801b5f70]
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 0x180006308
jmp 0x180006363
cmp edx, 0x270
jb 0x180006369
lea rcx, [0x1801b5f60]
call fcn.1800076c4
mov edx, dword [0x1801b5f60]
mov eax, edx
lea rcx, [0x1801b5f68]
inc edx
xorps xmm2, xmm2
mov rcx, qword [rcx + rax*8]
mov rax, rcx
mov dword [0x1801b5f60], edx
shr rax, 0x1d
movabs rdx, 0x38eb3ffff6d3
and rax, qword [0x1801b72e8]
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 0x1800063cc
cvtsi2sd xmm2, rdx
jmp 0x1800063e1
mov rax, rdx
and edx, 1
shr rax, 1
or rax, rdx
cvtsi2sd xmm2, rax
addsd xmm2, xmm2
mov rbx, qword [0x1801b5f50]
movsd xmm0, qword [0x1801b72f8]
subsd xmm0, qword [0x1801b72f0]
mulsd xmm2, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rbx
mulsd xmm2, qword [0x180183ee8]
addsd xmm2, qword [0x1801b72f0]
mulsd xmm2, xmm0
mulsd xmm2, qword [0x180184250]
cvttsd2si rax, xmm2
sub rbx, rax
cmp qword [0x1801b5f48], rbx
cmovl rbx, qword [0x1801b5f48]
mov qword [0x1801b5f50], rbx
call qword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
imul rcx, rbx, 0x2710
add rax, rcx
mov qword [0x1802cf460], rax
add rsp, 0x20
pop rbx
ret
Function at 0x1800076c4
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 0x1800076f2
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 0x18000773e
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 0x180011ef4
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rbx, qword [0x1802ce1a8]
test rbx, rbx
je 0x180011fbb
mov rcx, rbx
call fcn.1800116a8
cmp qword [rax], 0
je 0x180011fbb
mov rcx, rbx
call fcn.1800116a8
mov rdi, qword [rax]
test rdi, rdi
je 0x180011fbb
mov ecx, dword [0x1802cda40]
or rbx, 0xffffffffffffffff
mov rax, qword gs:[0x58]
mov edx, 4
mov rax, qword [rax + rcx*8]
mov eax, dword [rdx + rax]
cmp dword [0x180304360], eax
jg 0x180011fc8
mov rax, qword [0x180304320]
mov rcx, rdi
call rax
test rax, rax
je 0x180011fbb
mov rax, qword [rax]
test rax, rax
je 0x180011fbb
mov r8, qword [rax + 0x10]
or edx, 0xffffffff
inc rbx
cmp byte [r8 + rbx], 0
jne 0x180011f7b
test ebx, ebx
je 0x180011fbb
mov r9d, ebx
movsx ecx, byte [r8]
mov eax, edx
xor rcx, rax
shr edx, 8
movzx eax, cl
inc r8
lea rcx, [0x180177d90]
xor edx, dword [rcx + rax*4]
sub r9, 1
jne 0x180011f8c
not edx
cmp edx, 0xafa91f9a
sete al
jmp 0x180011fbd
xor al, al
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
lea rcx, [0x180304360]
call fcn.18008eeac
cmp dword [0x180304360], ebx
jne 0x180011f5b
mov ecx, 0x99c155f5
call fcn.18000c274
lea rcx, [0x180304360]
mov rdx, qword [rax]
mov qword [0x180304320], rdx
call fcn.18008ee40
jmp 0x180011f5b

Function at 0x180012e64
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x70
call fcn.180012110
mov rcx, rax
call fcn.180011e40
mov rcx, rax
call fcn.18001133c
mov rcx, qword [rax]
call fcn.180010398
lea rcx, [0x1801b73c0]
mov r8d, 0x48
mov edx, dword [rax]
movups xmm0, xmmword [rcx + 0x10]
movaps xmmword [rbp - 0x40], xmm0
movups xmm0, xmmword [rcx + 0x30]
cmp dword [rcx], edx
je 0x180012ec5
add rcx, r8
lea rax, [0x1801b77f8]
cmp rcx, rax
jne 0x180012e99
xor edx, edx
lea rcx, [rbp - 0x50]
call sub.VCRUNTIME140.dll_memset
jmp 0x180012ed2
movups xmm1, xmmword [rcx + 0x10]
movsd xmm0, qword [rcx + 0x40]
movaps xmmword [rbp - 0x40], xmm1
mov ecx, dword [0x1802ce2e8]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180012f00
cmp byte [0x1802ce1e4], 0
je 0x180012efb
movss xmm0, dword [0x1801b7358]
mulss xmm0, dword [rbp - 0x38]
jmp 0x180012f00
movss xmm0, dword [rbp - 0x38]
add rsp, 0x70
pop rbp
ret
Function at 0x180013920
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x38
mov qword [rsp + 0x20], rcx
lea rcx, [0x1802ce0b0]
call qword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov rcx, qword [0x1802ce0b0]
mov r8d, dword [0x1802ce0b4]
test ax, ax
je 0x1800139d0
movss xmm3, dword [0x1801b7398]
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm3
jbe 0x1800139d0
movss xmm4, dword [0x1801b739c]
movd xmm2, r8d
cvtdq2ps xmm2, xmm2
comiss xmm2, xmm4
jbe 0x1800139d0
movss xmm0, dword [rsp + 0x20]
addss xmm0, xmm3
comiss xmm1, xmm0
jae 0x1800139d0
movss xmm0, dword [rsp + 0x24]
addss xmm0, xmm4
comiss xmm2, xmm0
jae 0x1800139d0
cmp byte [0x1802ce09e], 0
mov dl, 1
mov byte [0x1802ce09d], dl
jne 0x1800139da
subss xmm1, xmm3
mov byte [0x1802ce09e], dl
subss xmm2, xmm4
cvttss2si eax, xmm1
mov dword [0x1802ce0a8], eax
cvttss2si eax, xmm2
mov dword [0x1802ce0ac], eax
jmp 0x1800139d6
mov dl, byte [0x1802ce09d]
test dl, dl
je 0x180013a06
sub ecx, dword [0x1802ce0a8]
sub r8d, dword [0x1802ce0ac]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [0x1801b7398], xmm0
movd xmm0, r8d
cvtdq2ps xmm0, xmm0
movss dword [0x1801b739c], xmm0
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x180013a22
mov byte [0x1802ce09d], al
mov byte [0x1802ce09e], al
add rsp, 0x38
ret
Function at 0x18001654c
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 0x1800165c3
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbx, rax
test rax, rax
je 0x1800165c3
mov rdx, rsi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, eax
add rcx, rbx
and edi, 0xf
jbe 0x1800165b0
cmp rbx, rcx
jae 0x1800165c3
movzx eax, word [rbx]
lea rbx, [rbx + rax*2]
add rbx, 2
add edi, 0xffffffff
jne 0x18001659b
cmp rbx, rcx
jae 0x1800165c3
movzx eax, word [rbx]
neg ax
sbb rax, rax
and rax, rbx
jmp 0x1800165c5
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret