joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140035720
Capabilities:
Hash data using djb2

Disassembly:
push rbx
push rbp
push rdi
push r14
push r15
sub rsp, 0x40
mov rax, qword [0x1400f0180]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov rbp, rcx
xor r15d, r15d
mov rcx, qword [rcx + 0x128]
mov r14, r8
mov rbx, rdx
cmp dword [rcx + 0x47c], r15d
jne 0x140035903
lea rdi, [rcx + 0x228]
cmp dword [rcx + 0x478], r15d
je 0x140035774
mov dword [rcx + 0x478], r15d
jmp 0x14003578c
mov rcx, qword [rcx + 0x480]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x140035903
test rdi, rdi
je 0x140035903
lea r9, [rdi + 0x2c]
mov qword [rsp + 0x88], rsi
mov r8d, 0x105
mov qword [rsp + 0x20], 0x105
lea rdx, [rbx + 0x1c]
lea rcx, [rsp + 0x30]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcstombs_s]
test eax, eax
je 0x1400357f6
lea r9, [rdi + 0x234]
cmp word [r9], r15w
je 0x1400357ee
mov r8d, 0x105
mov qword [rsp + 0x20], 0x105
lea rdx, [rbx + 0x1c]
lea rcx, [rsp + 0x30]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcstombs_s]
test eax, eax
jne 0x1400358d2
mov rax, qword [rsp + 0x30]
dec rax
mov qword [rbx + 0x10], rax
mov eax, dword [rdi]
test al, 0x40
je 0x140035811
mov dword [rbx + 0x18], 0x2000
jmp 0x140035832
bt eax, 0xa
jae 0x140035820
mov dword [rbx + 0x18], 0xc000
jmp 0x140035832
test al, 0x10
mov ecx, 0x4000
mov eax, 0x8000
cmovne eax, ecx
mov dword [rbx + 0x18], eax
mov rcx, qword [rbp + 0x128]
cmp dword [rcx + 0x47c], r15d
jne 0x1400358c4
lea rdi, [rcx + 0x228]
cmp dword [rcx + 0x478], r15d
je 0x14003585f
mov dword [rcx + 0x478], r15d
jmp 0x140035873
mov rcx, qword [rcx + 0x480]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x1400358c4
test rdi, rdi
je 0x1400358c4
lea rcx, [rdi + 0x2c]
mov eax, 0x1505
add rdi, 0x234
cmp rcx, rdi
je 0x1400358a5
nop dword [rax]
movzx edx, word [rcx]
add rcx, 2
test edx, edx
je 0x1400358a5
imul eax, eax, 0x21
add eax, edx
cmp rcx, rdi
jne 0x140035890
btr eax, 0x1f
mov dword [rbx + 4], eax
mov rax, qword [rbp + 0x128]
mov dword [rax + 0x478], 1
mov eax, 0x128
jmp 0x1400358ef
mov dword [rbx + 4], 0x7fffffff
mov eax, 0x128
jmp 0x1400358ef
mov word [rbx + 0x1c], 0x3f
movzx eax, r15w
mov qword [rbx + 0x10], 1
mov dword [rbx + 0x18], r15d
mov dword [rbx + 4], 0xffffffff
mov dword [rbx], r15d
mov word [rbx + 8], ax
mov rsi, qword [rsp + 0x88]
mov qword [r14], rbx
jmp 0x140035906
mov qword [r14], r15
xor eax, eax
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.1400bd590
add rsp, 0x40
pop r15
pop r14
pop rdi
pop rbp
pop rbx
ret
Function at 0x1400485c0
Capabilities:
Hash data using fnv

Disassembly:
sub rsp, 0x28
movzx r8d, byte [rdx]
mov r9, rcx
movabs rcx, 0x100000001b3
mov r10, rdx
movabs rax, 0xcbf29ce484222325
xor r8, rax
movzx eax, byte [rdx + 1]
imul r8, rcx
xor r8, rax
movzx eax, byte [rdx + 2]
imul r8, rcx
xor r8, rax
movzx eax, byte [rdx + 3]
mov rdx, qword [r9 + 0x30]
imul r8, rcx
xor r8, rax
imul r8, rcx
and rdx, r8
shl rdx, 4
add rdx, qword [r9 + 0x18]
mov rax, qword [rdx + 8]
cmp rax, qword [r9 + 8]
je 0x140048647
mov ecx, dword [r10]
mov rdx, qword [rdx]
cmp ecx, dword [rax + 0x10]
je 0x14004863e
nop
cmp rax, rdx
je 0x140048647
mov rax, qword [rax + 8]
cmp ecx, dword [rax + 0x10]
jne 0x140048630
add rax, 0x18
add rsp, 0x28
ret
lea rcx, str.invalid_unordered_map_K__T__key
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const____ptr64_]
int3
Function at 0x1400489f0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x40
mov rax, qword [0x1400f0180]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov rdi, rdx
mov r15, rcx
mov qword [rsp + 0x30], rdx
mov r8, rdx
mov rbp, qword [rdx + 0x18]
cmp rbp, 0x10
jb 0x140048a2a
mov r8, qword [rdx]
movabs rdx, 0xcbf29ce484222325
mov rsi, qword [rdi + 0x10]
xor ecx, ecx
test rsi, rsi
je 0x140048a64
movabs r9, 0x100000001b3
nop dword [rax]
movzx eax, byte [rcx + r8]
xor rdx, rax
imul rdx, r9
inc rcx
cmp rcx, rsi
jb 0x140048a50
mov rcx, qword [r15 + 0x30]
and rcx, rdx
add rcx, rcx
mov rax, qword [r15 + 0x18]
mov rbx, qword [rax + rcx*8 + 8]
cmp rbx, qword [r15 + 8]
je 0x140048ab9
mov r14, qword [rax + rcx*8]
lea rdx, [rbx + 0x10]
cmp qword [rbx + 0x28], 0x10
jb 0x140048a90
mov rdx, qword [rbx + 0x10]
mov rcx, rdi
cmp rbp, 0x10
jb 0x140048a9c
mov rcx, qword [rdi]
cmp rsi, qword [rbx + 0x20]
jne 0x140048aae
mov r8, rsi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x140048abb
cmp rbx, r14
je 0x140048ab9
mov rbx, qword [rbx + 8]
jmp 0x140048a81
xor ebx, ebx
test rbx, rbx
je 0x140048b04
cmp rbx, qword [r15 + 8]
je 0x140048b04
cmp rbp, 0x10
jb 0x140048afd
lea rdx, [rbp + 1]
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x140048af8
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140048bbf
mov rcx, r8
call fcn.1400bdad4
xor al, al
jmp 0x140048b8b
mov rbx, qword [r15 + 0x48]
sub rbx, qword [r15 + 0x40]
sar rbx, 5
mov r8, rdi
lea rdx, [rsp + 0x20]
mov rcx, r15
call fcn.14004bac0
mov rcx, qword [rax]
mov qword [rcx + 0x30], rbx
mov rax, qword [r15 + 0x48]
cmp rax, qword [r15 + 0x50]
je 0x140048b43
mov rdx, rdi
mov rcx, rax
call fcn.140049080
add qword [r15 + 0x48], 0x20
jmp 0x140048b53
mov r8, rdi
mov rdx, rax
lea rcx, [r15 + 0x40]
call fcn.14004f860
nop
mov rdx, qword [rdi + 0x18]
cmp rdx, 0x10
jb 0x140048b89
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x140048b84
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140048bbf
mov rcx, r8
call fcn.1400bdad4
mov al, 1
mov byte [rdi], 0
mov qword [rdi + 0x18], 0xf
mov qword [rdi + 0x10], 0
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.1400bd590
mov rbx, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3

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

Disassembly:
movabs rax, 0xcbf29ce484222325
mov r9d, 0
sub r8, rdx
je 0x140048cf4
movabs r10, 0x100000001b3
nop
movzx ecx, byte [r9 + rdx]
inc r9
xor rax, rcx
imul rax, r10
cmp r9, r8
jb 0x140048ce0
ret
Function at 0x14004d1b0
Capabilities:
Hash data using fnv

Disassembly:
push rsi
push rdi
sub rsp, 0x28
movabs rax, 0xfffffffffffffff
mov rsi, rcx
bsr rcx, rax
mov edi, 1
mov eax, edi
shl rax, cl
cmp rdx, rax
jbe 0x14004d1e5
lea rcx, str.invalid_hash_bucket_count
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
lea rax, [rdx - 1]
mov qword [rsp + 0x50], rbx
mov rbx, qword [rsi + 8]
or rax, rdi
bsr rcx, rax
mov r8, rbx
mov qword [rsp + 0x20], r14
inc ecx
shl rdi, cl
lea rcx, [rsi + 0x18]
lea rdx, [rdi + rdi]
call fcn.140049b50
lea rax, [rdi - 1]
mov qword [rsi + 0x38], rdi
mov qword [rsi + 0x30], rax
mov rax, qword [rsi + 8]
mov rax, qword [rax]
mov rcx, rax
cmp rax, rbx
je 0x14004d324
mov qword [rsp + 0x58], rbp
movabs rdi, 0x100000001b3
movabs rbp, 0xcbf29ce484222325
nop dword [rax + rax]
movzx edx, byte [rax + 0x11]
movzx r11d, byte [rax + 0x10]
mov rcx, qword [rcx]
xor r11, rbp
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x12]
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x13]
imul r11, rdi
xor r11, rdx
imul r11, rdi
and r11, qword [rsi + 0x30]
shl r11, 4
add r11, qword [rsi + 0x18]
mov r9, qword [r11]
cmp r9, rbx
jne 0x14004d29d
mov qword [r11], rax
mov qword [r11 + 8], rax
jmp 0x14004d313
mov rdx, qword [r11 + 8]
mov r8d, dword [rax + 0x10]
cmp r8d, dword [rdx + 0x10]
jne 0x14004d2da
mov r10, qword [rdx]
cmp r10, rax
je 0x14004d2d4
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 [r11 + 8], rax
jmp 0x14004d313
cmp r9, rdx
je 0x14004d2ef
nop
mov rdx, qword [rdx + 8]
cmp r8d, dword [rdx + 0x10]
je 0x14004d335
cmp r9, rdx
jne 0x14004d2e0
mov r10, qword [rax + 8]
mov qword [r10], rcx
mov r9, qword [rcx + 8]
mov qword [r9], rdx
mov r8, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r9
mov qword [rcx + 8], r10
mov qword [rax + 8], r8
mov qword [r11], rax
mov rax, rcx
cmp rcx, rbx
jne 0x14004d250
mov rbp, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
mov r14, qword [rsp + 0x20]
add rsp, 0x28
pop rdi
pop rsi
ret
mov r10, qword [rdx]
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 0x14004d313
Function at 0x14005b1a0
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov esi, edx
mov dword [rcx + 0x74], 0
mov rbx, rcx
mov edi, 0x7fffffff
movsx ecx, byte [rbx + 0x78]
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x14005b26c
lea r8d, [rcx - 0x30]
cmp r8d, 0xffffffff
je 0x14005b26c
mov r9d, dword [rbx + 0x74]
mov ecx, 0x7fffffff
sub ecx, r8d
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp r9d, edx
jg 0x14005b285
lea eax, [r9 + r9*4]
dec edi
lea ecx, [r8 + rax*2]
mov rax, qword [rbx]
mov dword [rbx + 0x74], ecx
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x14005b25c
cmp byte [rax], 0x5c
jne 0x14005b256
lea rdx, [rax + 1]
cmp rdx, rcx
je 0x14005b256
mov r8d, dword [rbx + 0x80]
test r8b, 8
jne 0x14005b242
movzx ecx, byte [rdx]
sub cl, 0x28
cmp cl, 1
jbe 0x14005b253
test r8b, 0x10
jne 0x14005b256
movzx ecx, byte [rdx]
sub cl, 0x7b
test cl, 0xfd
jne 0x14005b256
mov rax, rdx
inc rax
mov qword [rbx], rax
mov rcx, rbx
call fcn.140055500
test edi, edi
jne 0x14005b1c0
mov rbx, qword [rsp + 0x30]
cmp edi, 0x7fffffff
mov rsi, qword [rsp + 0x38]
setne al
add rsp, 0x20
pop rdi
ret
mov edx, esi
call fcn.1400554f0
int3
Function at 0x140071530
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbx
mov rax, qword [0x1400f7950]
xor r11d, r11d
mov rbx, qword [rax + 0x4d10]
mov eax, dword [rbx + 4]
bt eax, 0x18
jae 0x140071558
mov ecx, dword [rbx + 0x6c]
test ecx, ecx
cmovg cx, r11w
jmp 0x14007155c
movzx ecx, r11w
mov r8, qword [rbx + 0x180]
xorps xmm1, xmm1
mov word [rbx + 0x21e], cx
movss xmm0, dword [r8 + 0xb8]
ucomiss xmm0, xmm1
jp 0x140071581
movzx edx, r11w
je 0x140071584
movzx edx, cx
shr eax, 0x19
and ax, 1
mov word [rbx + 0x220], dx
mov word [rbx + 0x21a], ax
movss xmm0, dword [r8 + 0xbc]
ucomiss xmm0, xmm1
jp 0x1400715ad
jne 0x1400715ad
movzx eax, r11w
mov word [rbx + 0x21c], ax
xor al, 1
mov byte [rbx + 0x235], al
cmp r11w, cx
jge 0x14007165a
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov rdi, r11
nop dword [rax]
nop word [rax + rax]
mov rsi, qword [rbx + 0x28]
movsx r8, word [rdi + rsi]
mov rdx, r8
cmp r8d, r11d
je 0x14007163a
movsx eax, cx
cmp edx, eax
jl 0x14007163a
movsx rax, word [rsi + rdx*2]
mov r10, rdx
mov r9, qword [rbx + 0x18]
imul r8, r8, 0x70
imul rdx, rax, 0x70
movzx eax, word [r8 + r9 + 0x52]
movzx ecx, word [rdx + r9 + 0x52]
mov word [rdx + r9 + 0x52], ax
mov word [r8 + r9 + 0x52], cx
mov rdx, qword [rbx + 0x28]
movzx eax, word [rdi + rdx]
movzx ecx, word [rdx + r10*2]
mov word [rdx + r10*2], ax
mov word [rdi + rdx], cx
movsx eax, word [rbx + 0x21e]
inc r11d
add rdi, 2
movzx ecx, ax
cmp r11d, eax
jl 0x1400715e0
mov rdi, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x10]
pop rbx
ret
Function at 0x1400720c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x30
mov rdi, qword [0x1400f7950]
mov r9, rcx
mov r8, qword [rcx + 0x180]
mov dword [rcx + 0x74], edx
movsxd rax, edx
imul rbx, rax, 0x70
add rbx, qword [rcx + 0x18]
test dword [rbx], 0x10000
movss xmm1, dword [rbx + 0x34]
je 0x140072103
addss xmm1, dword [rcx + 0x8c]
lea rsi, [r8 + 0x138]
movss dword [rsi], xmm1
movss xmm0, dword [rcx + 0xc0]
addss xmm0, dword [rcx + 0x7c]
movss dword [r8 + 0x150], xmm1
subss xmm1, dword [r8 + 0x50]
movss dword [r8 + 0x13c], xmm0
subss xmm1, dword [r8 + 0x17c]
movss dword [r8 + 0x180], xmm1
mov eax, dword [rcx + 0x88]
mov dword [r8 + 0x170], eax
movsx eax, byte [rbx + 0x6a]
mov dword [r8 + 0x190], eax
movss dword [r8 + 0x254], xmm0
mov eax, dword [rbx + 0x34]
mov dword [r8 + 0x250], eax
mov eax, dword [rbx + 0x38]
mov dword [r8 + 0x258], eax
mov eax, dword [rbx + 0x3c]
mov dword [r8 + 0x1f4], eax
movzx eax, byte [rbx + 0x68]
mov byte [r8 + 0xf0], al
cmp byte [rbx + 0x68], 0
je 0x1400721a3
xor eax, eax
mov dword [rdi + 0x48b8], eax
mov dword [rdi + 0x48c0], eax
test dword [rcx + 4], 0x100000
je 0x1400721b3
mov eax, 2
jmp 0x140072232
movups xmm0, xmmword [rbx + 0x20]
mov rax, qword [r8 + 0x2d8]
movss xmm4, dword [rbx + 0x20]
movss xmm3, dword [rbx + 0x24]
movss xmm2, dword [rbx + 0x28]
movss xmm1, dword [rbx + 0x2c]
movups xmmword [r8 + 0x270], xmm0
movss dword [rsp + 0x20], xmm4
movss dword [rsp + 0x24], xmm3
movss dword [rsp + 0x28], xmm2
movss dword [rsp + 0x2c], xmm1
movss dword [rax + 0x88], xmm4
movss dword [rax + 0x8c], xmm3
movss dword [rax + 0x90], xmm2
movss dword [rax + 0x94], xmm1
mov rax, qword [r8 + 0x2d8]
movups xmm0, xmmword [rsp + 0x20]
movsxd rdx, dword [rax + 0x58]
mov rcx, qword [rax + 0x60]
add rdx, rdx
movups xmmword [rcx + rdx*8 - 0x10], xmm0
movzx eax, word [rbx + 0x5c]
mov rdx, qword [r8 + 0x2d8]
mov r8d, eax
mov rcx, qword [r9 + 0x198]
call fcn.140068840
cmp byte [rdi + 0x5ec0], 0
je 0x140072273
cmp byte [rbx + 0x68], 0
jne 0x140072273
xor r8d, r8d
lea rdx, [0x1400d535c]
mov rcx, rsi
call fcn.1400269a0
mov dword [rdi + 0x5ef0], 0x7f7fffff
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
Function at 0x140074bd0
Capabilities:
Hash data with crc32

Disassembly:
mov rax, qword [0x1400f7950]
mov rdx, qword [rax + 0x4d10]
cmp ecx, 0xffffffff
jne 0x140074bea
cmp dword [rdx + 0x74], ecx
cmovne ecx, dword [rdx + 0x74]
cmp ecx, dword [rdx + 0x6c]
mov eax, 0xffffffff
cmove ecx, eax
test byte [rdx + 4], 7
je 0x140074c67
mov r10d, dword [rdx]
lea r8, [0x1400d5361]
movzx eax, word [rdx + 0x78]
lea r11, [0x1400ce420]
not r10d
mov word [rdx + 0x218], cx
mov ecx, r10d
mov byte [rdx + 0x22f], 1
mov word [rdx + 0x7a], ax
mov r9b, 0x23
nop dword [rax + rax]
cmp r9b, 0x23
jne 0x140074c43
cmp byte [r8], r9b
jne 0x140074c43
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 0x140074c30
not ecx
jmp fcn.140020b40
ret
Function at 0x140095240
Capabilities:
Hash data using fnv

Disassembly:
push rdi
sub rsp, 0x30
mov rdi, rcx
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x1400952ec
mov rax, qword [rdi + 0x38]
shr rax, 3
cmp rax, rcx
jbe 0x14009527a
mov rdx, qword [rdi + 8]
mov rcx, rdi
mov r8, rdx
mov rdx, qword [rdx]
add rsp, 0x30
pop rdi
jmp 0x140095500
mov rcx, qword [rdi + 8]
mov rax, qword [rcx + 8]
mov qword [rax], 0
mov rcx, qword [rcx]
test rcx, rcx
je 0x1400952ba
mov qword [rsp + 0x48], rbx
nop word [rax + rax]
mov rbx, qword [rcx]
mov edx, 0x18
call fcn.1400bdad4
mov rcx, rbx
test rbx, rbx
jne 0x1400952a0
mov rbx, qword [rsp + 0x48]
mov rax, qword [rdi + 8]
lea r8, [rsp + 0x20]
mov qword [rax], rax
mov rax, qword [rdi + 8]
mov qword [rax + 8], rax
mov qword [rdi + 0x10], 0
mov rax, qword [rdi + 8]
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi + 0x18]
mov qword [rsp + 0x20], rax
call fcn.14004b3a0
add rsp, 0x30
pop rdi
ret
mov rax, rsp
push rbp
push rsi
push r14
sub rsp, 0x50
mov rbp, r8
mov r14, rdx
mov rsi, rcx
cmp rdx, r8
je 0x140095604
mov rdx, qword [rcx + 0x18]
movabs r8, 0x100000001b3
mov qword [rax + 0x10], rbx
mov rbx, r14
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
mov r12, qword [rcx + 8]
movzx ecx, byte [r14 + 0x10]
mov qword [rax - 0x20], r13
mov r13, qword [r14 + 8]
mov qword [rax - 0x28], r15
movabs rax, 0xcbf29ce484222325
mov r15, qword [rsi + 0x30]
xor rcx, rax
movzx eax, byte [r14 + 0x11]
imul rcx, r8
mov qword [rsp + 0x30], rdx
xor rcx, rax
movzx eax, byte [r14 + 0x12]
imul rcx, r8
xor rcx, rax
movzx eax, byte [r14 + 0x13]
imul rcx, r8
xor rcx, rax
imul rcx, r8
and r15, rcx
shl r15, 4
add r15, rdx
mov rax, qword [r15]
mov qword [rsp + 0x20], rax
mov rax, qword [r15 + 8]
mov qword [rsp + 0x28], rax
nop dword [rax + rax]
mov rcx, rbx
mov rdi, rbx
mov rbx, qword [rbx]
mov edx, 0x18
call fcn.1400bdad4
dec qword [rsi + 0x10]
cmp rdi, qword [rsp + 0x28]
je 0x140095610
cmp rbx, rbp
jne 0x1400955b0
cmp qword [rsp + 0x20], r14
jne 0x1400955dd
mov qword [r15], rbx
mov r12, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x80]
mov r15, qword [rsp + 0x40]
mov qword [r13], rbx
mov qword [rbx + 8], r13
mov r13, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x78]
mov rax, rbp
add rsp, 0x50
pop r14
pop rsi
pop rbp
ret
cmp qword [rsp + 0x20], r14
jne 0x14009561f
mov qword [r15], r12
mov rax, r12
jmp 0x140095622
mov rax, r13
mov qword [r15 + 8], rax
cmp rbx, rbp
je 0x1400955dd
nop dword [rax + rax]
movzx ecx, byte [rbx + 0x10]
movabs rdx, 0x100000001b3
mov r15, qword [rsi + 0x30]
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movzx eax, byte [rbx + 0x11]
imul rcx, rdx
xor rcx, rax
movzx eax, byte [rbx + 0x12]
imul rcx, rdx
xor rcx, rax
movzx eax, byte [rbx + 0x13]
imul rcx, rdx
xor rcx, rax
imul rcx, rdx
and r15, rcx
shl r15, 4
add r15, qword [rsp + 0x30]
mov r14, qword [r15 + 8]
nop dword [rax]
nop dword [rax + rax]
mov rcx, rbx
mov rdi, rbx
mov rbx, qword [rbx]
mov edx, 0x18
call fcn.1400bdad4
dec qword [rsi + 0x10]
cmp rdi, r14
je 0x1400956b6
cmp rbx, rbp
jne 0x140095690
jmp 0x1400955da
mov qword [r15], r12
mov qword [r15 + 8], r12
cmp rbx, rbp
jne 0x140095630
jmp 0x1400955dd
Function at 0x140095350
Capabilities:
Hash data using fnv

Disassembly:
push rbx
push rsi
sub rsp, 0x28
movabs rax, 0xfffffffffffffff
mov rsi, rcx
bsr rcx, rax
mov ebx, 1
mov eax, ebx
shl rax, cl
cmp rdx, rax
jbe 0x140095385
lea rcx, str.invalid_hash_bucket_count
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
lea rax, [rdx - 1]
mov qword [rsp + 0x58], rdi
mov rdi, qword [rsi + 8]
or rax, rbx
bsr rcx, rax
mov r8, rdi
mov qword [rsp + 0x20], r14
inc ecx
shl rbx, cl
lea rcx, [rsi + 0x18]
lea rdx, [rbx + rbx]
call fcn.140049b50
mov rcx, qword [rsi + 8]
lea rax, [rbx - 1]
mov qword [rsi + 0x30], rax
mov qword [rsi + 0x38], rbx
mov rcx, qword [rcx]
cmp rcx, rdi
je 0x1400954c4
mov qword [rsp + 0x50], rbp
mov rax, rcx
movabs rbp, 0xcbf29ce484222325
movabs rbx, 0x100000001b3
nop dword [rax + rax]
movzx edx, byte [rax + 0x11]
movzx r11d, byte [rax + 0x10]
mov rcx, qword [rcx]
xor r11, rbp
imul r11, rbx
xor r11, rdx
movzx edx, byte [rax + 0x12]
imul r11, rbx
xor r11, rdx
movzx edx, byte [rax + 0x13]
imul r11, rbx
xor r11, rdx
imul r11, rbx
and r11, qword [rsi + 0x30]
shl r11, 4
add r11, qword [rsi + 0x18]
mov r9, qword [r11]
cmp r9, rdi
jne 0x14009543d
mov qword [r11], rax
mov qword [r11 + 8], rax
jmp 0x1400954b3
mov rdx, qword [r11 + 8]
mov r8d, dword [rax + 0x10]
cmp r8d, dword [rdx + 0x10]
jne 0x14009547a
mov r10, qword [rdx]
cmp r10, rax
je 0x140095474
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 [r11 + 8], rax
jmp 0x1400954b3
cmp r9, rdx
je 0x14009548f
nop
mov rdx, qword [rdx + 8]
cmp r8d, dword [rdx + 0x10]
je 0x1400954d5
cmp r9, rdx
jne 0x140095480
mov r10, qword [rax + 8]
mov qword [r10], rcx
mov r9, qword [rcx + 8]
mov qword [r9], rdx
mov r8, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r9
mov qword [rcx + 8], r10
mov qword [rax + 8], r8
mov qword [r11], rax
mov rax, rcx
cmp rcx, rdi
jne 0x1400953f0
mov rbp, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
mov r14, qword [rsp + 0x20]
add rsp, 0x28
pop rsi
pop rbx
ret
mov r10, qword [rdx]
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 0x1400954b3
Function at 0x140095500
Capabilities:
Hash data using fnv

Disassembly:
push rdi
sub rsp, 0x30
mov rdi, rcx
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x1400952ec
mov rax, qword [rdi + 0x38]
shr rax, 3
cmp rax, rcx
jbe 0x14009527a
mov rdx, qword [rdi + 8]
mov rcx, rdi
mov r8, rdx
mov rdx, qword [rdx]
add rsp, 0x30
pop rdi
jmp 0x140095500
mov rcx, qword [rdi + 8]
mov rax, qword [rcx + 8]
mov qword [rax], 0
mov rcx, qword [rcx]
test rcx, rcx
je 0x1400952ba
mov qword [rsp + 0x48], rbx
nop word [rax + rax]
mov rbx, qword [rcx]
mov edx, 0x18
call fcn.1400bdad4
mov rcx, rbx
test rbx, rbx
jne 0x1400952a0
mov rbx, qword [rsp + 0x48]
mov rax, qword [rdi + 8]
lea r8, [rsp + 0x20]
mov qword [rax], rax
mov rax, qword [rdi + 8]
mov qword [rax + 8], rax
mov qword [rdi + 0x10], 0
mov rax, qword [rdi + 8]
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi + 0x18]
mov qword [rsp + 0x20], rax
call fcn.14004b3a0
add rsp, 0x30
pop rdi
ret
mov rax, rsp
push rbp
push rsi
push r14
sub rsp, 0x50
mov rbp, r8
mov r14, rdx
mov rsi, rcx
cmp rdx, r8
je 0x140095604
mov rdx, qword [rcx + 0x18]
movabs r8, 0x100000001b3
mov qword [rax + 0x10], rbx
mov rbx, r14
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
mov r12, qword [rcx + 8]
movzx ecx, byte [r14 + 0x10]
mov qword [rax - 0x20], r13
mov r13, qword [r14 + 8]
mov qword [rax - 0x28], r15
movabs rax, 0xcbf29ce484222325
mov r15, qword [rsi + 0x30]
xor rcx, rax
movzx eax, byte [r14 + 0x11]
imul rcx, r8
mov qword [rsp + 0x30], rdx
xor rcx, rax
movzx eax, byte [r14 + 0x12]
imul rcx, r8
xor rcx, rax
movzx eax, byte [r14 + 0x13]
imul rcx, r8
xor rcx, rax
imul rcx, r8
and r15, rcx
shl r15, 4
add r15, rdx
mov rax, qword [r15]
mov qword [rsp + 0x20], rax
mov rax, qword [r15 + 8]
mov qword [rsp + 0x28], rax
nop dword [rax + rax]
mov rcx, rbx
mov rdi, rbx
mov rbx, qword [rbx]
mov edx, 0x18
call fcn.1400bdad4
dec qword [rsi + 0x10]
cmp rdi, qword [rsp + 0x28]
je 0x140095610
cmp rbx, rbp
jne 0x1400955b0
cmp qword [rsp + 0x20], r14
jne 0x1400955dd
mov qword [r15], rbx
mov r12, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x80]
mov r15, qword [rsp + 0x40]
mov qword [r13], rbx
mov qword [rbx + 8], r13
mov r13, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x78]
mov rax, rbp
add rsp, 0x50
pop r14
pop rsi
pop rbp
ret
cmp qword [rsp + 0x20], r14
jne 0x14009561f
mov qword [r15], r12
mov rax, r12
jmp 0x140095622
mov rax, r13
mov qword [r15 + 8], rax
cmp rbx, rbp
je 0x1400955dd
nop dword [rax + rax]
movzx ecx, byte [rbx + 0x10]
movabs rdx, 0x100000001b3
mov r15, qword [rsi + 0x30]
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movzx eax, byte [rbx + 0x11]
imul rcx, rdx
xor rcx, rax
movzx eax, byte [rbx + 0x12]
imul rcx, rdx
xor rcx, rax
movzx eax, byte [rbx + 0x13]
imul rcx, rdx
xor rcx, rax
imul rcx, rdx
and r15, rcx
shl r15, 4
add r15, qword [rsp + 0x30]
mov r14, qword [r15 + 8]
nop dword [rax]
nop dword [rax + rax]
mov rcx, rbx
mov rdi, rbx
mov rbx, qword [rbx]
mov edx, 0x18
call fcn.1400bdad4
dec qword [rsi + 0x10]
cmp rdi, r14
je 0x1400956b6
cmp rbx, rbp
jne 0x140095690
jmp 0x1400955da
mov qword [r15], r12
mov qword [r15 + 8], r12
cmp rbx, rbp
jne 0x140095630
jmp 0x1400955dd