joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14012d5f0
Capabilities:
Contain obfuscated stackstrings
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
mov rbp, rsp
sub rsp, 0x30
mov rsi, rdx
mov rdi, rcx
mov ecx, 0x2d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14012d68c
lea rdx, [rbp + 0x30]
mov word [rbp + 0x33], 0x74
lea rcx, [rbp - 0x10]
mov word [rbp + 0x30], 0x7552
mov byte [rbp + 0x32], 0x73
mov byte [rbp + 0x35], 0
mov dword [rbp - 6], 0x737361
mov dword [rbp - 0x10], 0x74696e55
mov dword [rbp - 0xc], 0x646e5779
mov word [rbp - 8], 0x6c43
mov byte [rbp - 2], 0
call qword [sym.imp.USER32.dll_FindWindowA]
mov rbx, rax
call qword [sym.imp.USER32.dll_GetForegroundWindow]
cmp rax, rbx
je 0x14012d672
call qword [sym.imp.USER32.dll_GetForegroundWindow]
cmp rax, qword [0x1402639e0]
jne 0x14012d68c
movzx ecx, byte [rsi]
test cl, cl
sete al
mov byte [rsi], al
test cl, cl
jne 0x14012d684
mov byte [rdi + 0x18], 1
mov rcx, rdi
call fcn.14012d6e0
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov rax, qword [0x140263990]
je 0x14012d6ab
add rax, 8
mov cl, 1
jmp 0x14012d6b8
add rax, 8
xor cl, cl
mov byte [rax + 0x422], 1
mov byte [rax + 0x128], cl
lea rcx, [rbp + 0x38]
mov qword [rbp + 0x38], 0x19
call fcn.140126e30
jmp 0x14012d605
Function at 0x14012d6e0
Capabilities:
Log keystrokes

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
sub rsp, 0x20
mov rdi, qword [0x1402639e0]
mov rbp, rcx
mov rcx, rdi
mov edx, 0xffffffec
call qword [sym.imp.USER32.dll_GetWindowLongA]
cmp byte [rbp], 0
mov esi, eax
je 0x14012d7c5
btr esi, 0x13
mov qword [rsp + 0x40], rbx
mov r8d, esi
mov qword [rsp + 0x50], r14
mov edx, 0xffffffec
mov rcx, rdi
call qword [sym.imp.USER32.dll_SetWindowLongA]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor edx, edx
mov rcx, rbx
mov r14d, eax
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov r8d, 1
mov ecx, r14d
mov edx, eax
mov ebx, eax
call qword [sym.imp.USER32.dll_AttachThreadInput]
mov edx, 0xa
mov rcx, rdi
call qword [sym.imp.USER32.dll_ShowWindow]
mov rcx, rdi
call qword [sym.imp.USER32.dll_BringWindowToTop]
mov rcx, rdi
call qword [sym.imp.USER32.dll_SetForegroundWindow]
test eax, eax
jne 0x14012d7a7
mov qword [rsp + 0x48], 1
nop dword [rax]
lea rcx, [rsp + 0x48]
call fcn.140126e30
mov rcx, rdi
call qword [sym.imp.USER32.dll_SetForegroundWindow]
test eax, eax
je 0x14012d790
xor r8d, r8d
mov edx, ebx
mov ecx, r14d
call qword [sym.imp.USER32.dll_AttachThreadInput]
cmp byte [rbp], 0
mov r14, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x40]
jne 0x14012d82f
bts esi, 0x13
mov edx, 0xffffffec
mov r8d, esi
mov rcx, rdi
call qword [sym.imp.USER32.dll_SetWindowLongA]
lea rdx, str.Rust
lea rcx, str.UnityWndClass
call qword [sym.imp.USER32.dll_FindWindowA]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetForegroundWindow]
test eax, eax
jne 0x14012d82f
mov qword [rsp + 0x48], 1
lea rcx, [rsp + 0x48]
call fcn.140126e30
lea rdx, str.Rust
lea rcx, str.UnityWndClass
call qword [sym.imp.USER32.dll_FindWindowA]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetForegroundWindow]
test eax, eax
je 0x14012d804
add rsp, 0x20
pop rdi
pop rsi
pop rbp
ret
Function at 0x140133d00
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140133d4a
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140133d4a
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140133d4a
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140133d4a
cmp dword [rcx + 0x84], 0xe
jbe 0x140133d4a
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140133d4c
xor al, al
add rsp, 0x28
ret
Function at 0x140002018
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140002062
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140002062
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140002062
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140002062
cmp dword [rcx + 0x84], 0xe
jbe 0x140002062
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140002064
xor al, al
add rsp, 0x28
ret

Function at 0x140005db8
Capabilities:
Parse pe header

Disassembly:
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
push rbp
mov rbp, rsp
sub rsp, 0x50
mov qword [rbp - 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x60], rbx
mov ebx, ecx
test r8d, r8d
jne 0x140005e27
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140005e27
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140005e27
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140005e27
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140005e27
cmp dword [rcx + 0x84], 0xe
jbe 0x140005e27
cmp dword [rcx + 0xf8], 0
je 0x140005e27
mov ecx, ebx
call fcn.140005ed8
mov byte [rbp + 0x28], 0
lea rax, [rbp + 0x18]
mov qword [rbp - 0x18], rax
lea rax, [rbp + 0x20]
mov qword [rbp - 0x10], rax
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov eax, 2
mov dword [rbp - 0x2c], eax
mov dword [rbp - 0x28], eax
lea r9, [rbp - 0x2c]
lea r8, [rbp - 0x18]
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x30]
call fcn.140005cb4
nop
cmp dword [rbp + 0x20], 0
je 0x140005e75
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rbp
ret
mov ecx, ebx
call fcn.140005e80
int3
xor edx, edx
xor ecx, ecx
lea r8d, [rdx + 1]
jmp 0x140005db8

Function at 0x140005fbc
Capabilities:
Parse pe header

Disassembly:
xor r8d, r8d
xor edx, edx
jmp 0x140005db8
Function at 0x140009150
Capabilities:
Query environment variable

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 r14
sub rsp, 0x40
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
xor esi, esi
mov rbx, rax
test rax, rax
jne 0x140009180
xor eax, eax
jmp 0x140009243
mov rbp, rbx
cmp word [rax], si
je 0x1400091a5
or rax, 0xffffffffffffffff
inc rax
cmp word [rbp + rax*2], si
jne 0x14000918c
lea rbp, [rbp + rax*2]
add rbp, 2
cmp word [rbp], si
jne 0x140009188
mov qword [rsp + 0x38], rsi
sub rbp, rbx
mov qword [rsp + 0x30], rsi
add rbp, 2
sar rbp, 1
mov r8, rbx
mov r9d, ebp
mov dword [rsp + 0x28], esi
xor edx, edx
mov qword [rsp + 0x20], rsi
xor ecx, ecx
call fcn.140009070
movsxd r14, eax
test eax, eax
jne 0x1400091e3
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
jmp 0x140009179
mov rcx, r14
call fcn.140007598
mov rdi, rax
test rax, rax
jne 0x1400091fc
xor ecx, ecx
call fcn.14000755c
jmp 0x1400091d8
mov qword [rsp + 0x38], rsi
mov r9d, ebp
mov qword [rsp + 0x30], rsi
mov r8, rbx
mov dword [rsp + 0x28], r14d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rdi
call fcn.140009070
test eax, eax
jne 0x14000922d
mov rcx, rdi
call fcn.14000755c
jmp 0x140009237
xor ecx, ecx
call fcn.14000755c
mov rsi, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov rax, rsi
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x40
pop r14
ret
Function at 0x14000c600
Capabilities:
Set environment variable

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xa0
xor r15d, r15d
mov r14, rdx
mov rsi, rcx
mov qword [rbp + 0x17], r15
xor edx, edx
mov qword [rbp + 0x1f], r15
lea rcx, [rbp - 0x39]
mov qword [rbp + 0x27], r15
mov qword [rbp + 0x2f], r15
mov edi, r15d
mov qword [rbp + 0x37], r15
mov byte [rbp + 0x3f], r15b
mov qword [rbp - 0x19], r15
mov qword [rbp - 0x11], r15
mov qword [rbp - 9], r15
mov qword [rbp - 1], r15
mov qword [rbp + 7], r15
mov byte [rbp + 0xf], r15b
call fcn.140004bd0
mov rax, qword [rbp - 0x31]
mov ebx, 0xfde9
cmp dword [rax + 0xc], ebx
jne 0x14000c68a
cmp byte [rbp - 0x21], r15b
je 0x14000c685
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, ebx
jmp 0x14000c6c0
call fcn.14000a7dc
test eax, eax
jne 0x14000c6ac
cmp byte [rbp - 0x21], r15b
je 0x14000c6a4
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, 1
jmp 0x14000c6c0
cmp byte [rbp - 0x21], r15b
je 0x14000c6bd
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, r15d
lea r8, [rbp + 0x77]
mov rcx, rsi
lea rdx, [rbp + 0x17]
call fcn.1400077bc
test eax, eax
jne 0x14000c760
xor edx, edx
lea rcx, [rbp - 0x39]
call fcn.140004bd0
mov rax, qword [rbp - 0x31]
cmp dword [rax + 0xc], ebx
jne 0x14000c6ff
cmp byte [rbp - 0x21], r15b
je 0x14000c734
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
jmp 0x14000c734
call fcn.14000a7dc
test eax, eax
jne 0x14000c720
cmp byte [rbp - 0x21], r15b
je 0x14000c719
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov ebx, 1
jmp 0x14000c734
cmp byte [rbp - 0x21], r15b
je 0x14000c731
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov ebx, r15d
mov r9d, ebx
lea r8, [rbp + 0x77]
lea rdx, [rbp - 0x19]
mov rcx, r14
call fcn.1400077bc
mov rdi, qword [rbp - 9]
test eax, eax
jne 0x14000c760
mov rcx, qword [rbp + 0x27]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov ebx, eax
jmp 0x14000c763
mov ebx, r15d
cmp byte [rbp + 0xf], r15b
je 0x14000c771
mov rcx, rdi
call fcn.14000755c
cmp byte [rbp + 0x3f], r15b
je 0x14000c780
mov rcx, qword [rbp + 0x27]
call fcn.14000755c
lea r11, [rsp + 0xa0]
mov eax, ebx
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
Function at 0x14000f5b0
Capabilities:
Parse pe header

Disassembly:
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x14000f5d8
movsxd rdx, dword [rcx + 0x3c]
add rdx, rcx
cmp dword [rdx], 0x4550
jne 0x14000f5d8
xor eax, eax
mov ecx, 0x20b
cmp word [rdx + 0x18], cx
sete al
ret
xor eax, eax
ret
Function at 0x140008420
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x40
mov rax, qword [0x1401a2200]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov rbx, qword [0x1401d82c8]
mov esi, edx
mov edi, ecx
cmp byte [rbx + 0x20d5], 0
jne 0x140008487
cmp byte [rbx + 0x20d6], 0
jne 0x140008487
mov r9d, dword [rbx + 0x3178]
lea r8, str.Tooltip__02d
mov edx, reloc.WS2_32.dll_recv
lea rcx, [rsp + 0x20]
call fcn.140015c40
test sil, 1
je 0x1400085bc
jmp 0x140008526
movss xmm1, dword [rbx + 0x16ec]
lea r8, str.Tooltip__02d
movaps xmm0, xmm1
lea rcx, [rsp + 0x20]
mulss xmm0, dword [0x1400bdbe0]
xor eax, eax
mov edx, reloc.WS2_32.dll_recv
mulss xmm1, dword [0x1400bdbd8]
addss xmm0, dword [rbx + 0x120]
addss xmm1, dword [rbx + 0x124]
or dword [rbx + 0x1dc0], 1
mov qword [rbx + 0x1ddc], rax
movss dword [rbx + 0x1dd4], xmm0
mov dword [rbx + 0x1dc4], 1
movss dword [rbx + 0x1dd8], xmm1
mov byte [rbx + 0x1dfc], 1
movss xmm0, dword [rbx + 0x1748]
mov rax, qword [0x1401d82c8]
mulss xmm0, dword [0x1400bdb6c]
or dword [rax + 0x1dc0], 0x40
movss dword [rax + 0x1e20], xmm0
mov r9d, dword [rbx + 0x3178]
call fcn.140015c40
movzx r9d, byte [rsp + 0x20]
lea r8, [rsp + 0x21]
mov r10d, 0xffffffff
mov ecx, r10d
test r9b, r9b
je 0x140008576
lea r11, [0x1400bcfa0]
cmp r9b, 0x23
jne 0x140008559
cmp byte [r8], r9b
jne 0x140008559
cmp byte [r8 + 1], r9b
cmove ecx, r10d
movzx edx, cl
movzx eax, r9b
movzx r9d, byte [r8]
xor rdx, rax
shr ecx, 8
inc r8
xor ecx, dword [r11 + rdx*4]
test r9b, r9b
jne 0x140008546
not ecx
call fcn.1400144f0
test rax, rax
je 0x1400085bc
cmp byte [rax + 0xcf], 0
je 0x1400085bc
mov byte [rax + 0xd6], 1
lea r8, str.Tooltip__02d
mov byte [rax + 0xf0], 1
lea rcx, [rsp + 0x20]
inc dword [rbx + 0x3178]
mov edx, reloc.WS2_32.dll_recv
mov r9d, dword [rbx + 0x3178]
call fcn.140015c40
or edi, 0x22c0347
lea rcx, [rsp + 0x20]
mov r8d, edi
xor edx, edx
call fcn.1400045c0
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.1400b8420
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret
Function at 0x14000c3c0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
sub rsp, 0x30
mov qword [rsp + 0x50], rbx
mov rbp, rdx
mov qword [rsp + 0x28], rdi
mov rbx, rcx
mov rcx, qword [rdx + 0x448]
movzx edi, r8b
mov qword [rsp + 0x20], r14
test rcx, rcx
je 0x14000c3f3
xor r8d, r8d
call fcn.14000df20
cmp qword [rbx + 0x80], 0
jne 0x14000c42c
cmp dword [rbx + 0x28], 1
jne 0x14000c42c
mov rax, qword [rbx + 0x30]
mov rcx, qword [rax]
cmp byte [rcx + 0xd0], 0
jne 0x14000c42c
cmp byte [rcx + 0xcf], 0
mov byte [rcx + 0xd6], 1
sete al
inc al
mov byte [rcx + 0xf0], al
mov r8d, dword [rbx + 0x28]
mov ecx, dword [rbx + 0x2c]
cmp r8d, ecx
jne 0x14000c462
inc r8d
test ecx, ecx
je 0x14000c44a
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x14000c44f
mov eax, 8
cmp eax, r8d
lea rcx, [rbx + 0x28]
cmovg r8d, eax
mov edx, r8d
call fcn.140026250
movsxd rcx, dword [rbx + 0x28]
mov rax, qword [rbx + 0x30]
mov qword [rax + rcx*8], rbp
inc dword [rbx + 0x28]
or byte [rbx + 0xbc], 0x80
mov qword [rbp + 0x448], rbx
mov eax, dword [rbx]
mov dword [rbp + 0x458], eax
cmp dword [rbx + 0x28], 1
movzx eax, byte [rbp + 0x429]
setg cl
and al, 0xfe
or cl, al
and cl, 0xfb
mov byte [rbp + 0x429], cl
cmp qword [rbx + 0x80], 0
jne 0x14000c4f8
cmp qword [rbx + 0x10], 0
jne 0x14000c4f8
test dword [rbx + 8], 0x400
jne 0x14000c4f8
mov eax, dword [rbx + 0xb8]
test al, 7
jne 0x14000c4d2
and eax, 0xfffffffa
or eax, 2
mov dword [rbx + 0xb8], eax
test al, 0x38
jne 0x14000c4e2
and eax, 0xffffffd7
or eax, 0x10
mov dword [rbx + 0xb8], eax
test eax, 0x1c0
jne 0x14000c4f8
and eax, 0xfffffebf
bts eax, 7
mov dword [rbx + 0xb8], eax
test dil, dil
je 0x14000c578
cmp qword [rbx + 0x38], 0
jne 0x14000c567
mov rcx, rbx
call fcn.14000c350
mov rcx, qword [rbx + 0x38]
xor edi, edi
mov eax, dword [rbx + 0xb0]
mov dword [rcx + 0x1c], eax
mov rcx, qword [rbx + 0x38]
mov eax, dword [rcx + 0x1c]
mov dword [rcx + 0x18], eax
mov eax, dword [rbx + 0x28]
dec eax
test eax, eax
jle 0x14000c567
mov qword [rsp + 0x58], rsi
mov esi, edi
nop word [rax + rax]
mov r8, qword [rbx + 0x30]
xor edx, edx
mov rcx, qword [rbx + 0x38]
mov r8, qword [rsi + r8]
call fcn.140042550
mov eax, dword [rbx + 0x28]
lea rsi, [rsi + 8]
dec eax
inc edi
cmp edi, eax
jl 0x14000c540
mov rsi, qword [rsp + 0x58]
mov rcx, qword [rbx + 0x38]
mov r8, rbp
mov edx, 0x400000
call fcn.140042550
mov ecx, dword [rbx + 8]
mov eax, ecx
mov r14, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
shr eax, 0xb
shr ecx, 0xa
cmp qword [rbx + 0x10], 0
movzx eax, al
movzx r8d, cl
cmovne r8d, eax
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x14000c5b3
test byte [rax + 0xbc], 1
je 0x14000c5b3
mov al, 1
jmp 0x14000c5b5
xor al, al
cmp dword [rbx + 0x28], 0
movzx edx, al
mov eax, 1
cmovg edx, eax
mov rax, qword [rbx + 0x20]
or dl, r8b
test rax, rax
je 0x14000c5dd
test byte [rax + 0xbc], 1
je 0x14000c5dd
mov cl, 1
jmp 0x14000c5df
xor cl, cl
movzx eax, byte [rbx + 0xbc]
or cl, dl
mov r8, qword [rbx + 0x80]
and cl, 1
and al, 0xfe
xor cl, al
mov byte [rbx + 0xbc], cl
mov rbx, qword [rsp + 0x50]
test r8, r8
je 0x14000c61a
mov edx, dword [rbp + 0xc]
mov rcx, rbp
bts edx, 0x18
add rsp, 0x30
pop rbp
jmp fcn.1400250f0
add rsp, 0x30
pop rbp
ret
Function at 0x140014340
Capabilities:
Hash data with crc32

Disassembly:
push rbx
movzx r9d, byte [rcx]
lea r8, [rcx + 1]
mov r10d, 0xffffffff
mov rbx, rcx
mov eax, r10d
test r9b, r9b
je 0x140014392
lea r11, [0x1400bcfa0]
cmp r9b, 0x23
jne 0x140014375
cmp byte [r8], r9b
jne 0x140014375
cmp byte [r8 + 1], r9b
cmove eax, r10d
movzx edx, al
movzx ecx, r9b
movzx r9d, byte [r8]
xor rdx, rcx
shr eax, 8
inc r8
xor eax, dword [r11 + rdx*4]
test r9b, r9b
jne 0x140014362
mov r11, qword [0x1401d82c8]
xor r9d, r9d
not eax
mov r10, qword [r11 + 0x3228]
test r10, r10
lea rcx, [r10 + 4]
cmovne r9, rcx
test r9, r9
je 0x1400143de
cmp dword [r9], eax
je 0x1400143e7
movsxd r8, dword [r9 - 4]
movsxd rdx, dword [r11 + 0x3220]
add r8, r9
add rdx, 4
xor r9d, r9d
add rdx, r10
cmp r8, rdx
cmovne r9, r8
test r9, r9
jne 0x1400143b5
mov rcx, rbx
pop rbx
jmp fcn.14000a220
test r9, r9
je 0x1400143de
mov rax, r9
pop rbx
ret

Function at 0x140014570
Capabilities:
Hash data with crc32

Disassembly:
mov rax, rcx
mov r10d, 0xffffffff
mov ecx, r10d
movzx r9d, byte [rax]
lea r8, [rax + 1]
test r9b, r9b
je 0x1400145c0
lea r11, [0x1400bcfa0]
cmp r9b, 0x23
jne 0x1400145a3
cmp byte [r8], r9b
jne 0x1400145a3
cmp byte [r8 + 1], r9b
cmove ecx, r10d
movzx edx, cl
movzx eax, r9b
movzx r9d, byte [r8]
xor rdx, rax
shr ecx, 8
inc r8
xor ecx, dword [r11 + rdx*4]
test r9b, r9b
jne 0x140014590
not ecx
jmp fcn.1400144f0
Function at 0x140014d80
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
mov rax, qword [rcx + 0x110]
movss xmm0, dword [rdx]
subss xmm0, dword [rcx + 0x50]
movss xmm1, dword [rdx + 8]
subss xmm1, dword [rcx + 0x50]
cvttss2si r8d, xmm0
movss xmm0, dword [rdx + 4]
subss xmm0, dword [rcx + 0x54]
mov r10d, r8d
cvttss2si ebx, xmm1
cvttss2si r9d, xmm0
mov edi, ebx
movss xmm0, dword [rdx + 0xc]
subss xmm0, dword [rcx + 0x54]
movsxd rcx, dword [rcx + 0x108]
mov r11d, r9d
shr r11, 0x18
mov r14d, dword [rax + rcx*4 - 4]
not r14d
movzx eax, r8b
movzx ecx, r14b
lea r8, [0x1400bcfa0]
xor rcx, rax
shr r14d, 8
mov eax, r10d
shr eax, 8
movzx edx, al
mov eax, r10d
xor r14d, dword [r8 + rcx*4]
movzx ecx, r14b
xor rdx, rcx
shr r14d, 8
shr eax, 0x10
shr r10, 0x18
cvttss2si esi, xmm0
xor r14d, dword [r8 + rdx*4]
movzx ecx, r14b
shr r14d, 8
movzx edx, al
xor rdx, rcx
movzx eax, r9b
mov ebp, esi
xor r14d, dword [r8 + rdx*4]
movzx ecx, r14b
shr r14d, 8
xor r10, rcx
xor r14d, dword [r8 + r10*4]
movzx ecx, r14b
xor rcx, rax
shr r14d, 8
mov eax, r9d
shr eax, 8
movzx edx, al
mov eax, r9d
xor r14d, dword [r8 + rcx*4]
movzx ecx, r14b
xor rdx, rcx
shr r14d, 8
shr eax, 0x10
xor r14d, dword [r8 + rdx*4]
movzx ecx, r14b
shr r14d, 8
movzx edx, al
xor rdx, rcx
movzx eax, bl
xor r14d, dword [r8 + rdx*4]
movzx ecx, r14b
xor r11, rcx
shr r14d, 8
xor r14d, dword [r8 + r11*4]
movzx ecx, r14b
xor rcx, rax
shr r14d, 8
mov eax, ebx
shr eax, 8
movzx edx, al
xor r14d, dword [r8 + rcx*4]
movzx ecx, r14b
xor rdx, rcx
shr r14d, 8
xor r14d, dword [r8 + rdx*4]
movzx ecx, r14b
mov eax, ebx
shr r14d, 8
shr eax, 0x10
movzx edx, al
xor rdx, rcx
movzx eax, sil
shr rdi, 0x18
shr rbp, 0x18
xor r14d, dword [r8 + rdx*4]
movzx ecx, r14b
shr r14d, 8
xor rdi, rcx
xor r14d, dword [r8 + rdi*4]
movzx ecx, r14b
xor rcx, rax
shr r14d, 8
mov eax, esi
shr eax, 8
movzx edx, al
mov eax, esi
xor r14d, dword [r8 + rcx*4]
movzx ecx, r14b
shr r14d, 8
xor rdx, rcx
shr eax, 0x10
xor r14d, dword [r8 + rdx*4]
movzx ecx, r14b
shr r14d, 8
movzx edx, al
mov rax, qword [0x1401d82c8]
xor rdx, rcx
xor r14d, dword [r8 + rdx*4]
movzx ecx, r14b
shr r14d, 8
xor rbp, rcx
xor r14d, dword [r8 + rbp*4]
not r14d
cmp dword [rax + 0x1d6c], r14d
jne 0x140014f63
mov dword [rax + 0x1d70], r14d
cmp dword [rax + 0x1da8], r14d
jne 0x140014f73
mov byte [rax + 0x1dac], 1
mov rbx, qword [rsp + 0x10]
mov eax, r14d
mov rbp, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
pop r14
ret

Function at 0x140014f90
Capabilities:
Hash data with crc32

Disassembly:
movsxd rax, dword [rcx + 0x108]
mov r9, r8
mov r8, qword [rcx + 0x110]
mov r10, rdx
xor ecx, ecx
mov rdx, r9
sub rdx, r10
test r9, r9
mov r8d, dword [r8 + rax*4 - 4]
cmove rdx, rcx
mov rcx, r10
jmp fcn.140015d90
Function at 0x140015990
Capabilities:
Read file on windows

Disassembly:
push rbx
push rbp
push r14
sub rsp, 0x20
movsxd rbp, r9d
mov r14, r8
test r8, r8
je 0x1400159ab
mov qword [r8], 0
call fcn.140015af0
mov rbx, rax
test rax, rax
jne 0x1400159c1
add rsp, 0x20
pop r14
pop rbp
pop rbx
ret
mov qword [rsp + 0x40], rsi
mov rcx, rbx
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x50], r15
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
mov esi, eax
cmp eax, 0xffffffff
je 0x140015acb
xor edx, edx
mov r8d, 2
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
test eax, eax
jne 0x140015acb
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
movsxd rdi, eax
cmp edi, 0xffffffff
je 0x140015acb
xor r8d, r8d
mov edx, esi
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
test eax, eax
jne 0x140015acb
cmp rdi, 0xffffffffffffffff
je 0x140015acb
mov rax, qword [0x1401d82c8]
test rax, rax
je 0x140015a44
inc dword [rax + 0x3b0]
mov rdx, qword [0x1401d82e8]
lea rcx, [rdi + rbp]
call qword [0x140109480]
mov rsi, rax
test rax, rax
je 0x140015acb
mov r9, rbx
mov r8, rdi
mov edx, 1
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
cmp rax, rdi
je 0x140015aa3
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rax, qword [0x1401d82c8]
test rax, rax
je 0x140015a91
dec dword [rax + 0x3b0]
mov rdx, qword [0x1401d82e8]
mov rcx, rsi
call qword [0x140109488]
jmp 0x140015ad4
test ebp, ebp
jle 0x140015ab5
lea rcx, [rdi + rsi]
mov r8, rbp
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
test r14, r14
je 0x140015ac6
mov qword [r14], rdi
mov rax, rsi
jmp 0x140015ad6
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
xor eax, eax
mov rdi, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x40]
mov r15, qword [rsp + 0x50]
add rsp, 0x20
pop r14
pop rbp
pop rbx
ret

Function at 0x140015d90
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
mov r11d, r8d
mov r10, rdx
not r11d
mov r9, rcx
mov eax, r11d
test rdx, rdx
je 0x140015ded
lea rbx, [0x1400bcfa0]
movzx r8d, byte [r9]
lea r9, [r9 + 1]
dec r10
cmp r8b, 0x23
jne 0x140015dd4
cmp r10, 2
jb 0x140015dd4
cmp byte [r9], r8b
jne 0x140015dd4
cmp byte [r9 + 1], r8b
cmove eax, r11d
movzx edx, al
xor rdx, r8
shr eax, 8
xor eax, dword [rbx + rdx*4]
test r10, r10
jne 0x140015db0
not eax
mov rbx, qword [rsp + 8]
ret
movzx r8d, byte [rcx]
inc r9
test r8b, r8b
je 0x140015e2f
lea rbx, [0x1400bcfa0]
cmp r8b, 0x23
jne 0x140015e13
cmp byte [r9], r8b
jne 0x140015e13
cmp byte [r9 + 1], r8b
cmove eax, r11d
movzx edx, al
movzx ecx, r8b
movzx r8d, byte [r9]
xor rdx, rcx
shr eax, 8
inc r9
xor eax, dword [rbx + rdx*4]
test r8b, r8b
jne 0x140015e00
mov rbx, qword [rsp + 8]
not eax
ret