joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1016fac0
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 0x1016faec
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 [0x102529fc]
or eax, 1
mov dword [ebp + 8], esi
bsr ecx, eax
push esi
lea ecx, [ecx + 1]
shl edi, cl
mov ecx, 0x10252a04
lea eax, [edi + edi]
push eax
call fcn.100744d0
mov eax, dword [0x102529fc]
lea ebx, [edi - 1]
mov dword [0x10252a10], ebx
mov dword [0x10252a14], edi
mov eax, dword [eax]
mov ecx, eax
cmp eax, esi
je 0x1016fc26
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 [0x10252a04]
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 0x1016fb84
mov dword [edx], eax
mov dword [edx + 4], eax
jmp 0x1016fbf1
mov edx, dword [edx + 4]
mov edi, dword [eax + 8]
cmp edi, dword [edx + 8]
jne 0x1016fbbe
mov edx, dword [edx]
mov dword [ebp - 8], edx
cmp edx, eax
je 0x1016fbb6
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 0x1016fbf1
cmp ebx, edx
je 0x1016fbce
mov edx, dword [edx + 4]
cmp edi, dword [edx + 8]
je 0x1016fc02
cmp ebx, edx
jne 0x1016fbc2
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 0x1016fc26
mov ebx, dword [0x10252a10]
jmp 0x1016fb32
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 0x1016fbf1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x10172730
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1019ae45
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.10172a80
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x101727b1
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 [0x102536c8], 0xfffffff
jne 0x101727c8
push str.unordered_map_set_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
mov dword [ebp - 0x1c], 0x102536c4
mov dword [ebp - 4], 0
push 0x10
mov dword [ebp - 0x18], 0
call fcn.101983ec
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 [0x102536c8]
mov edi, dword [0x102536dc]
lea eax, [ecx + 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1023d960]
mov eax, edi
shr eax, 0x1f
cvtpd2ps xmm3, xmm0
movd xmm0, edi
cvtdq2pd xmm0, xmm0
movaps xmm2, xmm3
addsd xmm0, qword [eax*8 + 0x1023d960]
cvtpd2ps xmm1, xmm0
movss xmm0, dword [0x102536c0]
divss xmm2, xmm1
comiss xmm2, xmm0
jbe 0x101728a2
divss xmm3, xmm0
movaps xmm0, xmm3
call fcn.10076000
call fcn.10199810
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp edi, ecx
jae 0x10172884
cmp edi, 0x200
jae 0x10172882
shl edi, 3
cmp edi, ecx
jae 0x10172884
mov edi, ecx
push edi
call fcn.10172910
push ebx
lea eax, [esi + 8]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10172a80
mov ecx, dword [0x102536c8]
mov edx, dword [eax]
jmp 0x101728a5
mov edx, dword [ebp - 0x14]
mov edi, dword [edx + 4]
inc ecx
mov dword [0x102536c8], ecx
mov dword [esi], edx
mov dword [esi + 4], edi
mov dword [edi], esi
mov dword [edx + 4], esi
mov eax, dword [0x102536d8]
mov ecx, dword [0x102536cc]
and eax, ebx
mov ebx, dword [ecx + eax*8]
cmp ebx, dword [0x102536c4]
jne 0x101728d6
mov dword [ecx + eax*8], esi
jmp 0x101728e5
cmp ebx, edx
jne 0x101728df
mov dword [ecx + eax*8], esi
jmp 0x101728e9
cmp dword [ecx + eax*8 + 4], edi
jne 0x101728e9
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 0x10172910
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 0x1017293c
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 [0x102536c4]
or eax, 1
mov dword [ebp + 8], esi
bsr ecx, eax
push esi
lea ecx, [ecx + 1]
shl edi, cl
mov ecx, 0x102536cc
lea eax, [edi + edi]
push eax
call fcn.100744d0
mov eax, dword [0x102536c4]
lea ebx, [edi - 1]
mov dword [0x102536d8], ebx
mov dword [0x102536dc], edi
mov eax, dword [eax]
mov ecx, eax
cmp eax, esi
je 0x10172a76
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 [0x102536cc]
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 0x101729d4
mov dword [edx], eax
mov dword [edx + 4], eax
jmp 0x10172a41
mov edx, dword [edx + 4]
mov edi, dword [eax + 8]
cmp edi, dword [edx + 8]
jne 0x10172a0e
mov edx, dword [edx]
mov dword [ebp - 8], edx
cmp edx, eax
je 0x10172a06
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 0x10172a41
cmp ebx, edx
je 0x10172a1e
mov edx, dword [edx + 4]
cmp edi, dword [edx + 8]
je 0x10172a52
cmp ebx, edx
jne 0x10172a12
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 0x10172a76
mov ebx, dword [0x102536d8]
jmp 0x10172982
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 0x10172a41
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x10176160
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1390
call fcn.101997e0
movss dword [ebp - 4], xmm1
movss dword [ebp - 8], xmm0
call dword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [ebp - 0xc], 0xffffffff
mov edx, 1
mov dword [ebp - 0x138c], eax
nop
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [ebp + edx*4 - 0x138c], eax
inc edx
cmp edx, 0x270
jb 0x10176190
lea ecx, [ebp - 0x1390]
mov dword [ebp - 0x1390], 0x270
call fcn.1008cdb0
xorps xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1023d960]
cvtpd2ps xmm0, xmm0
subss xmm0, xmm1
addss xmm0, xmm1
movss xmm1, dword [ebp - 4]
subss xmm1, dword [ebp - 8]
mulss xmm0, dword [0x1023cff0]
mulss xmm0, xmm1
addss xmm0, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
Function at 0x1017cc80
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101a1365
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.1017cfd0
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x1017cd01
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 [0x103166c8], 0xccccccc
jne 0x1017cd18
push str.unordered_map_set_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
mov dword [ebp - 0x1c], 0x103166c4
mov dword [ebp - 4], 0
push 0x14
mov dword [ebp - 0x18], 0
call fcn.101983ec
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 [0x103166c8]
mov edi, dword [0x103166dc]
lea eax, [ecx + 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1023d960]
mov eax, edi
shr eax, 0x1f
cvtpd2ps xmm3, xmm0
movd xmm0, edi
cvtdq2pd xmm0, xmm0
movaps xmm2, xmm3
addsd xmm0, qword [eax*8 + 0x1023d960]
cvtpd2ps xmm1, xmm0
movss xmm0, dword [0x103166c0]
divss xmm2, xmm1
comiss xmm2, xmm0
jbe 0x1017cdf9
divss xmm3, xmm0
movaps xmm0, xmm3
call fcn.10076000
call fcn.10199810
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp edi, ecx
jae 0x1017cddb
cmp edi, 0x200
jae 0x1017cdd9
shl edi, 3
cmp edi, ecx
jae 0x1017cddb
mov edi, ecx
push edi
call fcn.1017ce60
push ebx
lea eax, [esi + 8]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.1017cfd0
mov ecx, dword [0x103166c8]
mov edx, dword [eax]
jmp 0x1017cdfc
mov edx, dword [ebp - 0x14]
mov edi, dword [edx + 4]
inc ecx
mov dword [0x103166c8], ecx
mov dword [esi], edx
mov dword [esi + 4], edi
mov dword [edi], esi
mov dword [edx + 4], esi
mov eax, dword [0x103166d8]
mov ecx, dword [0x103166cc]
and eax, ebx
mov ebx, dword [ecx + eax*8]
cmp ebx, dword [0x103166c4]
jne 0x1017ce2d
mov dword [ecx + eax*8], esi
jmp 0x1017ce3c
cmp ebx, edx
jne 0x1017ce36
mov dword [ecx + eax*8], esi
jmp 0x1017ce40
cmp dword [ecx + eax*8 + 4], edi
jne 0x1017ce40
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 0x1017ce60
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 0x1017ce8c
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 [0x103166c4]
or eax, 1
mov dword [ebp + 8], esi
bsr ecx, eax
push esi
lea ecx, [ecx + 1]
shl edi, cl
mov ecx, 0x103166cc
lea eax, [edi + edi]
push eax
call fcn.100744d0
mov eax, dword [0x103166c4]
lea ebx, [edi - 1]
mov dword [0x103166d8], ebx
mov dword [0x103166dc], edi
mov eax, dword [eax]
mov ecx, eax
cmp eax, esi
je 0x1017cfc6
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 [0x103166cc]
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 0x1017cf24
mov dword [edx], eax
mov dword [edx + 4], eax
jmp 0x1017cf91
mov edx, dword [edx + 4]
mov edi, dword [eax + 8]
cmp edi, dword [edx + 8]
jne 0x1017cf5e
mov edx, dword [edx]
mov dword [ebp - 8], edx
cmp edx, eax
je 0x1017cf56
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 0x1017cf91
cmp ebx, edx
je 0x1017cf6e
mov edx, dword [edx + 4]
cmp edi, dword [edx + 8]
je 0x1017cfa2
cmp ebx, edx
jne 0x1017cf62
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 0x1017cfc6
mov ebx, dword [0x103166d8]
jmp 0x1017ced2
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 0x1017cf91
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x1017ed30
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101a1755
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.1017f0a0
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x1017edb1
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 [0x1024f844], 0x7ffffff
jne 0x1017edc8
push str.unordered_map_set_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
mov dword [ebp - 0x1c], 0x1024f840
mov dword [ebp - 4], 0
push 0x20
mov dword [ebp - 0x18], 0
call fcn.101983ec
mov ecx, dword [edi]
mov esi, eax
mov dword [ebp - 0x18], esi
add esp, 4
mov dword [esi + 8], ecx
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
mov dword [ebp - 4], 1
mov ecx, dword [0x1024f844]
mov edi, dword [0x1024f858]
lea eax, [ecx + 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1023d960]
mov eax, edi
shr eax, 0x1f
cvtpd2ps xmm3, xmm0
movd xmm0, edi
cvtdq2pd xmm0, xmm0
movaps xmm2, xmm3
addsd xmm0, qword [eax*8 + 0x1023d960]
cvtpd2ps xmm1, xmm0
movss xmm0, dword [0x1024f83c]
divss xmm2, xmm1
comiss xmm2, xmm0
jbe 0x1017eecc
divss xmm3, xmm0
movaps xmm0, xmm3
call fcn.10076000
call fcn.10199810
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp edi, ecx
jae 0x1017eeae
cmp edi, 0x200
jae 0x1017eeac
shl edi, 3
cmp edi, ecx
jae 0x1017eeae
mov edi, ecx
push edi
call fcn.1017ef30
push ebx
lea eax, [esi + 8]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.1017f0a0
mov ecx, dword [0x1024f844]
mov edx, dword [eax]
jmp 0x1017eecf
mov edx, dword [ebp - 0x14]
mov edi, dword [edx + 4]
inc ecx
mov dword [0x1024f844], ecx
mov dword [esi], edx
mov dword [esi + 4], edi
mov dword [edi], esi
mov dword [edx + 4], esi
mov eax, dword [0x1024f854]
mov ecx, dword [0x1024f848]
and eax, ebx
mov ebx, dword [ecx + eax*8]
cmp ebx, dword [0x1024f840]
jne 0x1017ef00
mov dword [ecx + eax*8], esi
jmp 0x1017ef0f
cmp ebx, edx
jne 0x1017ef09
mov dword [ecx + eax*8], esi
jmp 0x1017ef13
cmp dword [ecx + eax*8 + 4], edi
jne 0x1017ef13
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 0x1017ef30
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 0x1017ef5c
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 [0x1024f840]
or eax, 1
mov dword [ebp + 8], esi
bsr ecx, eax
push esi
lea ecx, [ecx + 1]
shl edi, cl
mov ecx, 0x1024f848
lea eax, [edi + edi]
push eax
call fcn.100744d0
mov eax, dword [0x1024f840]
lea ebx, [edi - 1]
mov dword [0x1024f854], ebx
mov dword [0x1024f858], edi
mov eax, dword [eax]
mov ecx, eax
cmp eax, esi
je 0x1017f096
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 [0x1024f848]
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 0x1017eff4
mov dword [edx], eax
mov dword [edx + 4], eax
jmp 0x1017f061
mov edx, dword [edx + 4]
mov edi, dword [eax + 8]
cmp edi, dword [edx + 8]
jne 0x1017f02e
mov edx, dword [edx]
mov dword [ebp - 8], edx
cmp edx, eax
je 0x1017f026
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 0x1017f061
cmp ebx, edx
je 0x1017f03e
mov edx, dword [edx + 4]
cmp edi, dword [edx + 8]
je 0x1017f072
cmp ebx, edx
jne 0x1017f032
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 0x1017f096
mov ebx, dword [0x1024f854]
jmp 0x1017efa2
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 0x1017f061
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x10186530
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, ecx
mov edx, ebx
push esi
push edi
mov edi, 0x811c9dc5
xor esi, esi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x10186545
sub edx, ecx
je 0x1018656f
movsx eax, byte [ebx + esi]
mov ecx, ebx
xor eax, edi
imul edi, eax, 0x1000193
inc esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10186562
sub ecx, edx
cmp esi, ecx
jb 0x10186550
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x10186da0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x101a29f5
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 0x10186dce
mov edx, dword [ebx]
xor ecx, ecx
mov esi, 0x811c9dc5
test edi, edi
je 0x10186df1
nop dword [eax]
movzx eax, byte [edx + ecx]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, edi
jb 0x10186de0
push esi
push ebx
lea eax, [ebp - 0x14]
push eax
call fcn.10187170
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x10186e1f
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 [0x102f7da8], 0x71c71c7
jne 0x10186e36
push str.unordered_map_set_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
mov dword [ebp - 0x1c], 0x102f7da4
mov dword [ebp - 4], 0
push 0x24
mov dword [ebp - 0x18], 0
call fcn.101983ec
mov edi, eax
add esp, 4
mov dword [ebp - 0x18], edi
lea ecx, [edi + 8]
push ebx
call fcn.10092dd0
mov ecx, dword [ebx + 0x18]
mov dword [edi + 0x20], ecx
mov dword [ebp - 4], 1
mov ecx, dword [0x102f7da8]
mov ebx, dword [0x102f7dbc]
lea eax, [ecx + 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movd xmm1, ebx
addsd xmm0, qword [eax*8 + 0x1023d960]
cvtdq2pd xmm1, xmm1
mov eax, ebx
shr eax, 0x1f
cvtpd2ps xmm0, xmm0
addsd xmm1, qword [eax*8 + 0x1023d960]
movaps xmm2, xmm0
cvtpd2ps xmm1, xmm1
divss xmm2, xmm1
movss xmm1, dword [0x102f7da0]
comiss xmm2, xmm1
jbe 0x10186f10
divss xmm0, xmm1
call fcn.10076000
call fcn.10199810
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp ebx, ecx
jae 0x10186ef2
cmp ebx, 0x200
jae 0x10186ef0
shl ebx, 3
cmp ebx, ecx
jae 0x10186ef2
mov ebx, ecx
push ebx
call fcn.10186f80
push esi
lea eax, [edi + 8]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10187170
mov ecx, dword [0x102f7da8]
mov edx, dword [eax]
jmp 0x10186f13
mov edx, dword [ebp - 0x14]
mov ebx, dword [edx + 4]
inc ecx
mov dword [0x102f7da8], ecx
mov dword [edi], edx
mov dword [edi + 4], ebx
mov dword [ebx], edi
mov dword [edx + 4], edi
mov eax, dword [0x102f7db8]
mov ecx, dword [0x102f7dac]
and eax, esi
mov esi, dword [ecx + eax*8]
cmp esi, dword [0x102f7da4]
jne 0x10186f44
mov dword [ecx + eax*8], edi
jmp 0x10186f53
cmp esi, edx
jne 0x10186f4d
mov dword [ecx + eax*8], edi
jmp 0x10186f57
cmp dword [ecx + eax*8 + 4], ebx
jne 0x10186f57
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