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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1fffffff
sub esp, 8
bsr ecx, eax
push ebx
push esi
push edi
mov edi, 1
mov eax, edi
shl eax, cl
mov ecx, dword [ebp + 8]
cmp ecx, eax
jbe 0x1015768c
push str.invalid_hash_bucket_count
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
lea eax, [ecx - 1]
mov esi, dword [0x10299864]
or eax, 1
mov dword [ebp + 8], esi
bsr ecx, eax
push esi
lea ecx, [ecx + 1]
shl edi, cl
mov ecx, 0x1029986c
lea eax, [edi + edi]
push eax
call fcn.10091ca0
mov eax, dword [0x10299864]
lea ebx, [edi - 1]
mov dword [0x10299878], ebx
mov dword [0x1029987c], edi
mov eax, dword [eax]
mov ecx, eax
cmp eax, esi
je 0x101577c6
movzx edx, byte [eax + 8]
xor edx, 0x811c9dc5
mov ecx, dword [ecx]
imul edi, edx, 0x1000193
movzx edx, byte [eax + 9]
xor edi, edx
movzx edx, byte [eax + 0xa]
imul edi, edi, 0x1000193
xor edi, edx
movzx edx, byte [eax + 0xb]
imul edi, edi, 0x1000193
xor edi, edx
mov edx, dword [0x1029986c]
imul edi, edi, 0x1000193
and edi, ebx
mov ebx, dword [edx + edi*8]
lea edx, [edx + edi*8]
mov dword [ebp - 4], edx
cmp ebx, esi
jne 0x10157724
mov dword [edx], eax
mov dword [edx + 4], eax
jmp 0x10157791
mov edx, dword [edx + 4]
mov edi, dword [eax + 8]
cmp edi, dword [edx + 8]
jne 0x1015775e
mov edx, dword [edx]
mov dword [ebp - 8], edx
cmp edx, eax
je 0x10157756
mov ebx, dword [eax + 4]
mov esi, dword [ebp - 8]
mov dword [ebx], ecx
mov edi, dword [ecx + 4]
mov dword [edi], edx
mov edx, dword [edx + 4]
mov dword [edx], eax
mov dword [esi + 4], edi
mov esi, dword [ebp + 8]
mov dword [ecx + 4], ebx
mov dword [eax + 4], edx
mov edx, dword [ebp - 4]
mov dword [edx + 4], eax
jmp 0x10157791
cmp ebx, edx
je 0x1015776e
mov edx, dword [edx + 4]
cmp edi, dword [edx + 8]
je 0x101577a2
cmp ebx, edx
jne 0x10157762
mov ebx, dword [eax + 4]
mov dword [ebp - 8], ebx
mov dword [ebx], ecx
mov ebx, dword [ecx + 4]
mov dword [ebx], edx
mov edi, dword [edx + 4]
mov dword [edi], eax
mov dword [edx + 4], ebx
mov edx, dword [ebp - 8]
mov dword [ecx + 4], edx
mov edx, dword [ebp - 4]
mov dword [eax + 4], edi
mov dword [edx], eax
mov eax, ecx
cmp ecx, esi
je 0x101577c6
mov ebx, dword [0x10299878]
jmp 0x101576d2
mov ebx, dword [eax + 4]
mov edx, dword [edx]
mov dword [ebp - 8], edx
mov esi, edx
mov dword [ebx], ecx
mov edi, dword [ecx + 4]
mov dword [edi], edx
mov edx, dword [edx + 4]
mov dword [edx], eax
mov dword [esi + 4], edi
mov esi, dword [ebp + 8]
mov dword [ecx + 4], ebx
mov dword [eax + 4], edx
jmp 0x10157791
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x1015d840
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1017c085
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
movzx eax, byte [edi]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [edi + 1]
xor ecx, eax
movzx eax, byte [edi + 2]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [edi + 3]
imul ecx, ecx, 0x1000193
xor ecx, eax
lea eax, [ebp - 0x14]
imul ebx, ecx, 0x1000193
push ebx
push edi
push eax
call fcn.1015db90
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x1015d8c1
mov eax, dword [ebp + 8]
mov dword [eax], ecx
mov byte [eax + 4], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [0x1029d978], 0xccccccc
jne 0x1015d8d8
push str.unordered_map_set_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
mov dword [ebp - 0x1c], 0x1029d974
mov dword [ebp - 4], 0
push 0x14
mov dword [ebp - 0x18], 0
call fcn.101706d6
mov ecx, dword [edi]
mov esi, eax
add esp, 4
mov dword [ebp - 0x18], esi
mov dword [esi + 8], ecx
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [ebp - 4], 1
mov ecx, dword [0x1029d978]
mov edi, dword [0x1029d98c]
lea eax, [ecx + 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10287280]
mov eax, edi
shr eax, 0x1f
cvtpd2ps xmm3, xmm0
movd xmm0, edi
cvtdq2pd xmm0, xmm0
movaps xmm2, xmm3
addsd xmm0, qword [eax*8 + 0x10287280]
cvtpd2ps xmm1, xmm0
movss xmm0, dword [0x1029d970]
divss xmm2, xmm1
comiss xmm2, xmm0
jbe 0x1015d9b9
divss xmm3, xmm0
movaps xmm0, xmm3
call fcn.10059070
call fcn.10172640
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp edi, ecx
jae 0x1015d99b
cmp edi, 0x200
jae 0x1015d999
shl edi, 3
cmp edi, ecx
jae 0x1015d99b
mov edi, ecx
push edi
call fcn.1015da20
push ebx
lea eax, [esi + 8]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.1015db90
mov ecx, dword [0x1029d978]
mov edx, dword [eax]
jmp 0x1015d9bc
mov edx, dword [ebp - 0x14]
mov edi, dword [edx + 4]
inc ecx
mov dword [0x1029d978], ecx
mov dword [esi], edx
mov dword [esi + 4], edi
mov dword [edi], esi
mov dword [edx + 4], esi
mov eax, dword [0x1029d988]
mov ecx, dword [0x1029d97c]
and eax, ebx
mov ebx, dword [ecx + eax*8]
cmp ebx, dword [0x1029d974]
jne 0x1015d9ed
mov dword [ecx + eax*8], esi
jmp 0x1015d9fc
cmp ebx, edx
jne 0x1015d9f6
mov dword [ecx + eax*8], esi
jmp 0x1015da00
cmp dword [ecx + eax*8 + 4], edi
jne 0x1015da00
mov dword [ecx + eax*8 + 4], esi
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
pop edi
mov dword [eax], esi
pop esi
mov byte [eax + 4], 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x1015da20
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1fffffff
sub esp, 8
bsr ecx, eax
push ebx
push esi
push edi
mov edi, 1
mov eax, edi
shl eax, cl
mov ecx, dword [ebp + 8]
cmp ecx, eax
jbe 0x1015da4c
push str.invalid_hash_bucket_count
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
lea eax, [ecx - 1]
mov esi, dword [0x1029d974]
or eax, 1
mov dword [ebp + 8], esi
bsr ecx, eax
push esi
lea ecx, [ecx + 1]
shl edi, cl
mov ecx, 0x1029d97c
lea eax, [edi + edi]
push eax
call fcn.10091ca0
mov eax, dword [0x1029d974]
lea ebx, [edi - 1]
mov dword [0x1029d988], ebx
mov dword [0x1029d98c], edi
mov eax, dword [eax]
mov ecx, eax
cmp eax, esi
je 0x1015db86
movzx edx, byte [eax + 8]
xor edx, 0x811c9dc5
mov ecx, dword [ecx]
imul edi, edx, 0x1000193
movzx edx, byte [eax + 9]
xor edi, edx
movzx edx, byte [eax + 0xa]
imul edi, edi, 0x1000193
xor edi, edx
movzx edx, byte [eax + 0xb]
imul edi, edi, 0x1000193
xor edi, edx
mov edx, dword [0x1029d97c]
imul edi, edi, 0x1000193
and edi, ebx
mov ebx, dword [edx + edi*8]
lea edx, [edx + edi*8]
mov dword [ebp - 4], edx
cmp ebx, esi
jne 0x1015dae4
mov dword [edx], eax
mov dword [edx + 4], eax
jmp 0x1015db51
mov edx, dword [edx + 4]
mov edi, dword [eax + 8]
cmp edi, dword [edx + 8]
jne 0x1015db1e
mov edx, dword [edx]
mov dword [ebp - 8], edx
cmp edx, eax
je 0x1015db16
mov ebx, dword [eax + 4]
mov esi, dword [ebp - 8]
mov dword [ebx], ecx
mov edi, dword [ecx + 4]
mov dword [edi], edx
mov edx, dword [edx + 4]
mov dword [edx], eax
mov dword [esi + 4], edi
mov esi, dword [ebp + 8]
mov dword [ecx + 4], ebx
mov dword [eax + 4], edx
mov edx, dword [ebp - 4]
mov dword [edx + 4], eax
jmp 0x1015db51
cmp ebx, edx
je 0x1015db2e
mov edx, dword [edx + 4]
cmp edi, dword [edx + 8]
je 0x1015db62
cmp ebx, edx
jne 0x1015db22
mov ebx, dword [eax + 4]
mov dword [ebp - 8], ebx
mov dword [ebx], ecx
mov ebx, dword [ecx + 4]
mov dword [ebx], edx
mov edi, dword [edx + 4]
mov dword [edi], eax
mov dword [edx + 4], ebx
mov edx, dword [ebp - 8]
mov dword [ecx + 4], edx
mov edx, dword [ebp - 4]
mov dword [eax + 4], edi
mov dword [edx], eax
mov eax, ecx
cmp ecx, esi
je 0x1015db86
mov ebx, dword [0x1029d988]
jmp 0x1015da92
mov ebx, dword [eax + 4]
mov edx, dword [edx]
mov dword [ebp - 8], edx
mov esi, edx
mov dword [ebx], ecx
mov edi, dword [ecx + 4]
mov dword [edi], edx
mov edx, dword [edx + 4]
mov dword [edx], eax
mov dword [esi + 4], edi
mov esi, dword [ebp + 8]
mov dword [ecx + 4], ebx
mov dword [eax + 4], edx
jmp 0x1015db51
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x101620a0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x10176345
push eax
mov dword fs:[0], esp
sub esp, 0x10
push ebx
mov ebx, dword [ebp + 0xc]
mov edx, ebx
push esi
push edi
cmp dword [ebx + 0x14], 0xf
mov edi, dword [ebx + 0x10]
jbe 0x101620ce
mov edx, dword [ebx]
xor ecx, ecx
mov esi, 0x811c9dc5
test edi, edi
je 0x101620f1
nop dword [eax]
movzx eax, byte [edx + ecx]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, edi
jb 0x101620e0
push esi
push ebx
lea eax, [ebp - 0x14]
push eax
call fcn.10162470
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x1016211f
mov eax, dword [ebp + 8]
mov dword [eax], ecx
mov byte [eax + 4], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [0x1029d908], 0x71c71c7
jne 0x10162136
push str.unordered_map_set_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
mov dword [ebp - 0x1c], 0x1029d904
mov dword [ebp - 4], 0
push 0x24
mov dword [ebp - 0x18], 0
call fcn.101706d6
mov edi, eax
add esp, 4
mov dword [ebp - 0x18], edi
lea ecx, [edi + 8]
push ebx
call fcn.100918c0
mov ecx, dword [ebx + 0x18]
mov dword [edi + 0x20], ecx
mov dword [ebp - 4], 1
mov ecx, dword [0x1029d908]
mov ebx, dword [0x1029d91c]
lea eax, [ecx + 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movd xmm1, ebx
addsd xmm0, qword [eax*8 + 0x10287280]
cvtdq2pd xmm1, xmm1
mov eax, ebx
shr eax, 0x1f
cvtpd2ps xmm0, xmm0
addsd xmm1, qword [eax*8 + 0x10287280]
movaps xmm2, xmm0
cvtpd2ps xmm1, xmm1
divss xmm2, xmm1
movss xmm1, dword [0x1029d900]
comiss xmm2, xmm1
jbe 0x10162210
divss xmm0, xmm1
call fcn.10059070
call fcn.10172640
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp ebx, ecx
jae 0x101621f2
cmp ebx, 0x200
jae 0x101621f0
shl ebx, 3
cmp ebx, ecx
jae 0x101621f2
mov ebx, ecx
push ebx
call fcn.10162280
push esi
lea eax, [edi + 8]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10162470
mov ecx, dword [0x1029d908]
mov edx, dword [eax]
jmp 0x10162213
mov edx, dword [ebp - 0x14]
mov ebx, dword [edx + 4]
inc ecx
mov dword [0x1029d908], ecx
mov dword [edi], edx
mov dword [edi + 4], ebx
mov dword [ebx], edi
mov dword [edx + 4], edi
mov eax, dword [0x1029d918]
mov ecx, dword [0x1029d90c]
and eax, esi
mov esi, dword [ecx + eax*8]
cmp esi, dword [0x1029d904]
jne 0x10162244
mov dword [ecx + eax*8], edi
jmp 0x10162253
cmp esi, edx
jne 0x1016224d
mov dword [ecx + eax*8], edi
jmp 0x10162257
cmp dword [ecx + eax*8 + 4], ebx
jne 0x10162257
mov dword [ecx + eax*8 + 4], edi
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword [eax], edi
pop edi
pop esi
mov byte [eax + 4], 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x101647e0
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1017d0bb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
push ebx
push esi
push edi
mov edi, ecx
lea ecx, [edi + 4]
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x14], ecx
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
lea ebx, [edi + 0x10]
mov dword [ebp - 4], 0
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov byte [ebp - 4], 1
mov eax, dword [ebp + 8]
mov dword [edi], eax
mov eax, dword [ebp + 0xc]
mov dword [edi + 0x1c], 0
mov byte [edi + 0x20], 0
cmp ebx, eax
je 0x101648fb
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov edx, dword [ebx + 8]
sub edi, esi
mov dword [ebp + 8], esi
cmp edi, edx
jbe 0x101648b1
cmp edi, 0x7fffffff
ja 0x101649b0
mov ecx, edx
mov eax, 0x7fffffff
shr ecx, 1
sub eax, ecx
cmp edx, eax
jbe 0x1016488d
mov eax, 0x7fffffff
jmp 0x10164895
lea eax, [ecx + edx]
cmp eax, edi
cmovb eax, edi
push eax
mov ecx, ebx
call fcn.10164dd0
mov esi, dword [ebx]
push edi
push dword [ebp + 8]
push esi
call sub.VCRUNTIME140.dll_memmove
lea eax, [esi + edi]
mov dword [ebx + 4], eax
jmp 0x101648f2
mov eax, dword [ebx + 4]
mov dword [ebp + 8], eax
cmp edi, eax
jbe 0x101648e6
push eax
push esi
push 0
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebp + 8]
add esi, eax
sub edi, eax
mov dword [ebp + 8], esi
mov esi, dword [ebx + 4]
push edi
push dword [ebp + 8]
push esi
call sub.VCRUNTIME140.dll_memmove
lea eax, [esi + edi]
add esp, 0x18
mov dword [ebx + 4], eax
jmp 0x101648f5
push edi
push esi
push 0
call sub.VCRUNTIME140.dll_memmove
mov dword [ebx + 4], edi
add esp, 0xc
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebx + 4]
sub esi, dword [ebx]
mov dword [edi + 0x1c], esi
mov eax, dword [ecx + 4]
mov edx, eax
mov ebx, dword [ecx]
sub edx, ebx
mov dword [ebp + 8], eax
cmp esi, edx
jae 0x1016491b
lea eax, [esi + ebx]
mov dword [ecx + 4], eax
jmp 0x10164946
jbe 0x10164946
mov eax, dword [ecx + 8]
sub eax, ebx
cmp esi, eax
jbe 0x1016492f
push ecx
push esi
call fcn.10164e50
jmp 0x10164946
mov ebx, dword [ebp + 8]
sub esi, edx
push esi
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
lea eax, [esi + ebx]
add esp, 0xc
mov dword [edi + 8], eax
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [ebp + 0xc]
push eax
push 0x40
push dword [edi + 0x1c]
push dword [edi]
call esi
push dword [edi + 0x1c]
push dword [edi]
push dword [edi + 4]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0xc]
push dword [edi + 0x1c]
push dword [edi]
call esi
call fcn.10164790
mov dword [ebp + 8], edi
mov ecx, dword [eax + 4]
cmp ecx, dword [eax + 8]
je 0x1016498f
mov dword [ecx], edi
add dword [eax + 4], 4
jmp 0x1016499b
lea edx, [ebp + 8]
push edx
push ecx
mov ecx, eax
call fcn.1014ef60
mov ecx, dword [ebp - 0xc]
mov eax, edi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
call fcn.100919c0
int3
Function at 0x10165d20
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5c
push esi
push 0x40
lea eax, [esp + 0x24]
mov esi, ecx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, 0x20
mov dword [esp + 0x14], 0x67452301
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x2c]
shr eax, 3
mov edx, 0x3f
and eax, 0x3f
mov dword [esp + 0x18], 0xefcdab89
add ecx, eax
mov dword [esp + 0x1c], 0x98badcfe
mov dword [esp + 0x20], 0x10325476
sub edx, eax
mov dword [esp + 0x28], 0
add esp, 0xc
mov dword [esp + 0x20], esi
mov byte [ecx], 0x80
inc ecx
cmp edx, 8
jae 0x10165db7
push edx
push 0
push ecx
call sub.VCRUNTIME140.dll_memset
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x14]
call fcn.101656a0
push 0x38
lea eax, [esp + 0x30]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0x18
jmp 0x10165dc6
lea eax, [edx - 8]
push eax
push 0
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x20]
mov dword [esp + 0x58], eax
lea ecx, [esp + 8]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x5c], eax
call fcn.101656a0
mov eax, dword [esp + 0xe]
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x1016c1e0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov al, byte [esi]
test al, al
jne 0x1016c1fc
mov ebx, 0x811c9dc5
jmp 0x1016c214
movsx eax, al
lea ecx, [esi + 1]
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
call fcn.100de6f0
mov ebx, eax
movzx ecx, bl
xor ecx, 0x811c9dc5
mov dword [esp + 0xc], ebx
imul edx, ecx, 0x1000193
mov ecx, ebx
shr ecx, 8
movzx eax, cl
xor edx, eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
imul ecx, edx, 0x1000193
shr ebx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
xor eax, ebx
imul eax, eax, 0x1000193
push eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.1016c650
cmp dword [eax + 4], 0
jne 0x1016c2b1
mov ecx, dword [0x1029d9d0]
push esi
mov eax, dword [ecx]
call dword [eax + 0x34]
mov cl, byte [esi]
mov ebx, eax
test cl, cl
jne 0x1016c283
mov eax, 0x811c9dc5
jmp 0x1016c299
movsx eax, cl
lea ecx, [esi + 1]
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
call fcn.100de6f0
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0x14]
push eax
call fcn.1016c300
mov eax, dword [eax]
mov dword [eax + 0xc], ebx
mov al, byte [esi]
test al, al
jne 0x1016c2be
mov eax, 0x811c9dc5
jmp 0x1016c2d4
movsx eax, al
lea ecx, [esi + 1]
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
call fcn.100de6f0
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0x14]
push eax
call fcn.1016c300
pop edi
pop esi
pop ebx
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov esp, ebp
pop ebp
ret 4
Function at 0x1016c300
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10179055
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
movzx eax, byte [edi]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [edi + 1]
xor ecx, eax
movzx eax, byte [edi + 2]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [edi + 3]
imul ecx, ecx, 0x1000193
xor ecx, eax
lea eax, [ebp - 0x14]
imul ebx, ecx, 0x1000193
push ebx
push edi
push eax
call fcn.1016c650
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x1016c381
mov eax, dword [ebp + 8]
mov dword [eax], ecx
mov byte [eax + 4], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [0x10299b7c], 0xfffffff
jne 0x1016c398
push str.unordered_map_set_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
mov dword [ebp - 0x1c], 0x10299b78
mov dword [ebp - 4], 0
push 0x10
mov dword [ebp - 0x18], 0
call fcn.101706d6
mov ecx, dword [edi]
mov esi, eax
add esp, 4
mov dword [ebp - 0x18], esi
mov dword [esi + 8], ecx
mov dword [esi + 0xc], 0
mov dword [ebp - 4], 1
mov ecx, dword [0x10299b7c]
mov edi, dword [0x10299b90]
lea eax, [ecx + 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10287280]
mov eax, edi
shr eax, 0x1f
cvtpd2ps xmm3, xmm0
movd xmm0, edi
cvtdq2pd xmm0, xmm0
movaps xmm2, xmm3
addsd xmm0, qword [eax*8 + 0x10287280]
cvtpd2ps xmm1, xmm0
movss xmm0, dword [0x10299b74]
divss xmm2, xmm1
comiss xmm2, xmm0
jbe 0x1016c472
divss xmm3, xmm0
movaps xmm0, xmm3
call fcn.10059070
call fcn.10172640
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp edi, ecx
jae 0x1016c454
cmp edi, 0x200
jae 0x1016c452
shl edi, 3
cmp edi, ecx
jae 0x1016c454
mov edi, ecx
push edi
call fcn.1016c4e0
push ebx
lea eax, [esi + 8]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.1016c650
mov ecx, dword [0x10299b7c]
mov edx, dword [eax]
jmp 0x1016c475
mov edx, dword [ebp - 0x14]
mov edi, dword [edx + 4]
inc ecx
mov dword [0x10299b7c], ecx
mov dword [esi], edx
mov dword [esi + 4], edi
mov dword [edi], esi
mov dword [edx + 4], esi
mov eax, dword [0x10299b8c]
mov ecx, dword [0x10299b80]
and eax, ebx
mov ebx, dword [ecx + eax*8]
cmp ebx, dword [0x10299b78]
jne 0x1016c4a6
mov dword [ecx + eax*8], esi
jmp 0x1016c4b5
cmp ebx, edx
jne 0x1016c4af
mov dword [ecx + eax*8], esi
jmp 0x1016c4b9
cmp dword [ecx + eax*8 + 4], edi
jne 0x1016c4b9
mov dword [ecx + eax*8 + 4], esi
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
pop edi
mov dword [eax], esi
pop esi
mov byte [eax + 4], 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x1016c4e0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1fffffff
sub esp, 8
bsr ecx, eax
push ebx
push esi
push edi
mov edi, 1
mov eax, edi
shl eax, cl
mov ecx, dword [ebp + 8]
cmp ecx, eax
jbe 0x1016c50c
push str.invalid_hash_bucket_count
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
lea eax, [ecx - 1]
mov esi, dword [0x10299b78]
or eax, 1
mov dword [ebp + 8], esi
bsr ecx, eax
push esi
lea ecx, [ecx + 1]
shl edi, cl
mov ecx, 0x10299b80
lea eax, [edi + edi]
push eax
call fcn.10091ca0
mov eax, dword [0x10299b78]
lea ebx, [edi - 1]
mov dword [0x10299b8c], ebx
mov dword [0x10299b90], edi
mov eax, dword [eax]
mov ecx, eax
cmp eax, esi
je 0x1016c646
movzx edx, byte [eax + 8]
xor edx, 0x811c9dc5
mov ecx, dword [ecx]
imul edi, edx, 0x1000193
movzx edx, byte [eax + 9]
xor edi, edx
movzx edx, byte [eax + 0xa]
imul edi, edi, 0x1000193
xor edi, edx
movzx edx, byte [eax + 0xb]
imul edi, edi, 0x1000193
xor edi, edx
mov edx, dword [0x10299b80]
imul edi, edi, 0x1000193
and edi, ebx
mov ebx, dword [edx + edi*8]
lea edx, [edx + edi*8]
mov dword [ebp - 4], edx
cmp ebx, esi
jne 0x1016c5a4
mov dword [edx], eax
mov dword [edx + 4], eax
jmp 0x1016c611
mov edx, dword [edx + 4]
mov edi, dword [eax + 8]
cmp edi, dword [edx + 8]
jne 0x1016c5de
mov edx, dword [edx]
mov dword [ebp - 8], edx
cmp edx, eax
je 0x1016c5d6
mov ebx, dword [eax + 4]
mov esi, dword [ebp - 8]
mov dword [ebx], ecx
mov edi, dword [ecx + 4]
mov dword [edi], edx
mov edx, dword [edx + 4]
mov dword [edx], eax
mov dword [esi + 4], edi
mov esi, dword [ebp + 8]
mov dword [ecx + 4], ebx
mov dword [eax + 4], edx
mov edx, dword [ebp - 4]
mov dword [edx + 4], eax
jmp 0x1016c611
cmp ebx, edx
je 0x1016c5ee
mov edx, dword [edx + 4]
cmp edi, dword [edx + 8]
je 0x1016c622
cmp ebx, edx
jne 0x1016c5e2
mov ebx, dword [eax + 4]
mov dword [ebp - 8], ebx
mov dword [ebx], ecx
mov ebx, dword [ecx + 4]
mov dword [ebx], edx
mov edi, dword [edx + 4]
mov dword [edi], eax
mov dword [edx + 4], ebx
mov edx, dword [ebp - 8]
mov dword [ecx + 4], edx
mov edx, dword [ebp - 4]
mov dword [eax + 4], edi
mov dword [edx], eax
mov eax, ecx
cmp ecx, esi
je 0x1016c646
mov ebx, dword [0x10299b8c]
jmp 0x1016c552
mov ebx, dword [eax + 4]
mov edx, dword [edx]
mov dword [ebp - 8], edx
mov esi, edx
mov dword [ebx], ecx
mov edi, dword [ecx + 4]
mov dword [edi], edx
mov edx, dword [edx + 4]
mov dword [edx], eax
mov dword [esi + 4], edi
mov esi, dword [ebp + 8]
mov dword [ecx + 4], ebx
mov dword [eax + 4], edx
jmp 0x1016c611
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x1016d800
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [edx + 1]
xor ecx, eax
movzx eax, byte [edx + 2]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [edx + 3]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [edx + 4]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [edx + 5]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [edx + 6]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [edx + 7]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
pop ebp
ret 4