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

Disassembly:
sub esp, 8
push ebx
push esi
mov esi, dword [esp + 0x18]
push edi
mov edi, ecx
mov ebx, dword [esi]
add ebx, 8
movzx eax, bl
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
mov eax, ebx
shr eax, 8
movzx eax, al
xor edx, eax
mov eax, ebx
shr eax, 0x10
imul ecx, edx, 0x1000193
movzx eax, al
shr ebx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, edi
xor eax, ebx
imul ebx, eax, 0x1000193
lea eax, [esp + 0xc]
push ebx
push esi
push eax
call fcn.100a8d00
mov edx, dword [eax + 4]
test edx, edx
je 0x100dce60
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0xc]
and ecx, ebx
lea ecx, [eax + ecx*8]
mov eax, dword [ecx]
cmp dword [ecx + 4], edx
jne 0x100dce37
cmp eax, edx
jne 0x100dce2f
mov eax, dword [edi + 4]
mov dword [ecx], eax
mov dword [ecx + 4], eax
jmp 0x100dce3f
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
jmp 0x100dce3f
cmp eax, edx
jne 0x100dce3f
mov eax, dword [edx]
mov dword [ecx], eax
mov ecx, dword [edx + 4]
mov eax, dword [edx]
mov dword [ecx], eax
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
dec dword [edi + 8]
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebx
mov dword [eax], edx
add esp, 8
ret 8
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebx
mov dword [eax], 0
mov byte [eax + 4], 0
add esp, 8
ret 8
Function at 0x100dce80
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push esi
push edi
mov edi, ecx
mov eax, dword [edi]
cmp eax, 0x270
jne 0x100dced0
lea edx, [edi + 8]
mov esi, eax
mov ecx, dword [edx - 4]
lea edx, [edx + 4]
xor ecx, dword [edx - 4]
and ecx, 0x7fffffff
xor ecx, dword [edx - 8]
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [edx + 0x62c]
xor eax, ecx
mov dword [edx + 0x9b8], eax
sub esi, 1
jne 0x100dce92
mov eax, dword [edi]
jmp 0x100dcfb7
cmp eax, 0x4e0
jb 0x100dcfb7
mov eax, dword [edi + 0x9c4]
push ebx
lea ebx, [edi + 0x9c4]
push ebp
mov ebp, 0xe3
nop
mov ecx, dword [ebx + 4]
lea edx, [ebx + 4]
xor ecx, eax
and ecx, 0x7fffffff
xor ecx, eax
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [ebx + 0x634]
xor eax, ecx
mov dword [ebx - 0x9c0], eax
lea ebx, [edx]
mov eax, dword [edx]
sub ebp, 1
jne 0x100dcef0
mov eax, dword [edi + 0xd50]
lea ebx, [edi + 0xd50]
mov ebp, 0x18c
nop word [eax + eax]
mov ecx, eax
lea edx, [ebx + 4]
xor ecx, dword [edx]
and ecx, 0x7fffffff
xor ecx, eax
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [ebx - 0xd4c]
xor eax, ecx
mov dword [ebx - 0x9c0], eax
lea ebx, [edx]
mov eax, dword [edx]
sub ebp, 1
jne 0x100dcf40
mov ecx, dword [edi + 0x1380]
xor ecx, dword [edi + 4]
and ecx, 0x7fffffff
xor ecx, dword [edi + 0x1380]
mov eax, ecx
and al, 1
movzx eax, al
neg eax
pop ebp
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [edi + 0x634]
xor eax, ecx
mov dword [edi + 0x9c0], eax
xor eax, eax
mov dword [edi], 0
pop ebx
mov edx, dword [edi + eax*4 + 4]
inc eax
mov dword [edi], eax
mov ecx, edx
mov eax, dword [edi + 0x1384]
shr ecx, 0xb
and eax, ecx
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
pop edi
xor eax, edx
pop esi
ret
Function at 0x100dd070
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x18
push ebp
mov ebp, ecx
mov ecx, dword [esp + 0x20]
cmp ecx, eax
je 0x100dd1d4
cmp dword [ecx + 0x1c], 0x10
lea edx, [ecx + 8]
mov eax, dword [ebp + 4]
push ebx
mov ebx, dword [edx + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0xc]
push esi
mov dword [esp + 0x14], eax
mov esi, ecx
mov eax, dword [ecx + 4]
push edi
mov dword [esp + 0x20], eax
jb 0x100dd0ae
mov edx, dword [edx]
xor ecx, ecx
mov edi, 0x811c9dc5
test ebx, ebx
je 0x100dd0d1
nop dword [eax]
movzx eax, byte [ecx + edx]
inc ecx
xor eax, edi
imul edi, eax, 0x1000193
cmp ecx, ebx
jb 0x100dd0c0
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x18]
and eax, edi
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
mov dword [esp + 0x10], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], eax
nop
mov edi, esi
mov ebx, esi
mov esi, dword [esi]
lea ecx, [edi + 8]
call fcn.100e0c20
push 0x28
push edi
call fcn.100fdb97
dec dword [ebp + 8]
add esp, 8
cmp ebx, dword [esp + 0x24]
je 0x100dd131
cmp esi, dword [esp + 0x30]
jne 0x100dd0f0
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x2c]
jne 0x100dd1c4
mov ecx, dword [esp + 0x10]
mov dword [ecx], esi
jmp 0x100dd1c4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp eax, dword [esp + 0x2c]
jne 0x100dd147
mov eax, dword [esp + 0x1c]
mov dword [ecx], eax
jmp 0x100dd14b
mov eax, dword [esp + 0x20]
mov dword [ecx + 4], eax
cmp esi, dword [esp + 0x30]
je 0x100dd1c4
cmp dword [esi + 0x1c], 0x10
lea edi, [esi + 8]
mov ebx, dword [edi + 0x10]
jb 0x100dd162
mov edi, dword [edi]
xor ecx, ecx
mov edx, 0x811c9dc5
test ebx, ebx
je 0x100dd181
nop dword [eax]
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x100dd170
and edx, dword [ebp + 0x18]
mov eax, dword [esp + 0x18]
lea eax, [eax + edx*8]
mov dword [esp + 0x2c], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x24], eax
mov edi, esi
mov ebx, esi
mov esi, dword [esi]
lea ecx, [edi + 8]
call fcn.100e0c20
push 0x28
push edi
call fcn.100fdb97
dec dword [ebp + 8]
add esp, 8
cmp ebx, dword [esp + 0x24]
je 0x100dd1db
cmp esi, dword [esp + 0x30]
jne 0x100dd196
mov eax, dword [esp + 0x2c]
mov dword [eax], esi
mov eax, dword [esp + 0x20]
pop edi
mov dword [eax], esi
mov dword [esi + 4], eax
mov eax, dword [esp + 0x2c]
pop esi
pop ebx
pop ebp
add esp, 0x18
ret 8
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov dword [eax], edx
mov dword [eax + 4], edx
cmp esi, dword [esp + 0x30]
jne 0x100dd154
jmp 0x100dd1c4
Function at 0x100ddf70
Capabilities:
Hash data using fnv

Disassembly:
sub esp, 8
mov edx, dword [esp + 0xc]
mov eax, 0x1fffffff
push ebx
mov ebx, ecx
bsr ecx, eax
push ebp
push esi
push edi
mov edi, 1
mov dword [esp + 0x14], ebx
mov eax, edi
shl eax, cl
cmp edx, eax
ja 0x100de0c0
mov esi, dword [ebx + 4]
lea eax, [edx - 1]
or eax, edi
bsr ecx, eax
push esi
lea ecx, [ecx + 1]
shl edi, cl
lea ecx, [ebx + 0xc]
lea eax, [edi + edi]
push eax
call fcn.1008a330
lea eax, [edi - 1]
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], eax
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx]
mov edx, ecx
cmp ecx, esi
je 0x100de09a
nop
mov ebp, dword [ecx + 8]
mov edx, dword [edx]
lea ebx, [ebp + 8]
movzx eax, bl
xor eax, 0x811c9dc5
imul edi, eax, 0x1000193
mov eax, ebx
shr eax, 8
movzx eax, al
xor edi, eax
mov eax, ebx
imul edi, edi, 0x1000193
shr eax, 0x10
movzx eax, al
shr ebx, 0x18
xor edi, eax
imul eax, edi, 0x1000193
xor eax, ebx
mov ebx, dword [esp + 0x14]
imul eax, eax, 0x1000193
mov edi, dword [ebx + 0x18]
and edi, eax
mov eax, dword [ebx + 0xc]
lea eax, [eax + edi*8]
mov edi, dword [eax]
mov dword [esp + 0x1c], eax
cmp edi, esi
jne 0x100de031
mov dword [eax], ecx
mov dword [eax + 4], ecx
jmp 0x100de090
mov eax, dword [eax + 4]
cmp ebp, dword [eax + 8]
jne 0x100de061
mov eax, dword [eax]
cmp eax, ecx
je 0x100de058
mov ebp, dword [ecx + 4]
mov dword [ebp], edx
mov ebx, dword [edx + 4]
mov dword [ebx], eax
mov edi, dword [eax + 4]
mov dword [edi], ecx
mov dword [eax + 4], ebx
mov dword [edx + 4], ebp
mov dword [ecx + 4], edi
mov eax, dword [esp + 0x1c]
mov dword [eax + 4], ecx
jmp 0x100de090
cmp edi, eax
je 0x100de071
mov eax, dword [eax + 4]
cmp ebp, dword [eax + 8]
je 0x100de0a4
cmp edi, eax
jne 0x100de065
mov ebp, dword [ecx + 4]
mov dword [ebp], edx
mov ebx, dword [edx + 4]
mov dword [ebx], eax
mov edi, dword [eax + 4]
mov dword [edi], ecx
mov dword [eax + 4], ebx
mov eax, dword [esp + 0x1c]
mov dword [edx + 4], ebp
mov dword [ecx + 4], edi
mov dword [eax], ecx
mov ecx, edx
cmp edx, esi
jne 0x100ddfd0
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov ebx, dword [ecx + 4]
mov ebp, dword [eax]
mov dword [ebx], edx
mov edi, dword [edx + 4]
mov dword [edi], ebp
mov eax, dword [ebp + 4]
mov dword [eax], ecx
mov dword [ebp + 4], edi
mov dword [edx + 4], ebx
mov dword [ecx + 4], eax
jmp 0x100de090
push str.invalid_hash_bucket_count
call fcn.100feb15
int3
Function at 0x100de210
Capabilities:
Hash data using fnv

Disassembly:
sub esp, 8
mov eax, dword [esp + 0x10]
push ebx
push ebp
push esi
mov ebx, dword [eax]
add ebx, 8
movzx eax, bl
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
mov eax, ebx
shr eax, 8
movzx eax, al
push edi
mov edi, ecx
xor edx, eax
mov eax, ebx
shr eax, 0x10
imul ecx, edx, 0x1000193
movzx eax, al
shr ebx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, edi
xor eax, ebx
mov ebx, dword [esp + 0x20]
imul ebp, eax, 0x1000193
lea eax, [esp + 0x10]
push ebp
push ebx
push eax
call fcn.100a8d00
mov esi, dword [esp + 0x14]
test esi, esi
je 0x100de28a
mov eax, dword [esp + 0x1c]
xor cl, cl
mov dword [eax], esi
mov byte [eax + 4], cl
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0xc
cmp dword [edi + 8], 0xfffffff
je 0x100de371
push 0x10
call fcn.100fe077
mov ecx, dword [ebx]
mov esi, eax
add esp, 4
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0x24]
mov cl, byte [ecx]
mov byte [esi + 0xc], cl
mov eax, dword [edi + 8]
inc eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101516d0]
mov eax, dword [edi + 0x1c]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101516d0]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [edi]
jbe 0x100de30d
mov ecx, edi
call fcn.100ddde0
push ebp
lea eax, [esi + 8]
mov ecx, edi
push eax
lea eax, [esp + 0x18]
push eax
call fcn.100a8d00
mov edx, dword [eax]
jmp 0x100de311
mov edx, dword [esp + 0x10]
mov ebx, dword [edx + 4]
inc dword [edi + 8]
mov dword [esi], edx
mov dword [esi + 4], ebx
mov dword [ebx], esi
mov dword [edx + 4], esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0xc]
and eax, ebp
mov ebp, dword [ecx + eax*8]
cmp ebp, dword [edi + 4]
jne 0x100de336
mov dword [ecx + eax*8], esi
jmp 0x100de358
cmp ebp, edx
jne 0x100de352
mov dword [ecx + eax*8], esi
mov cl, 1
mov eax, dword [esp + 0x1c]
mov dword [eax], esi
mov byte [eax + 4], cl
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0xc
cmp dword [ecx + eax*8 + 4], ebx
jne 0x100de35c
mov dword [ecx + eax*8 + 4], esi
mov eax, dword [esp + 0x1c]
mov cl, 1
pop edi
mov dword [eax], esi
pop esi
pop ebp
mov byte [eax + 4], cl
pop ebx
add esp, 8
ret 0xc
push str.unordered_map_set_too_long
call fcn.100feb15
int3
Function at 0x100de760
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
sub esp, 0xc
push ebx
mov ebx, dword [esp + 0x18]
mov edx, ebx
push ebp
push esi
push edi
cmp dword [ebx + 0x14], 0x10
mov edi, dword [ebx + 0x10]
jb 0x100de778
mov edx, dword [ebx]
xor ecx, ecx
mov esi, 0x811c9dc5
test edi, edi
je 0x100de794
movzx eax, byte [ecx + edx]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, edi
jb 0x100de783
push esi
push ebx
lea eax, [esp + 0x18]
push eax
call fcn.100df940
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x100de7bc
mov eax, dword [esp + 0x20]
mov dword [eax], ecx
mov byte [eax + 4], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
cmp dword [0x1015ee28], 0x6666666
je 0x100de94a
push 0x28
call fcn.100fe077
xorps xmm0, xmm0
mov edi, eax
movups xmmword [edi + 8], xmm0
mov dword [edi + 0x18], 0
lea ebp, [edi + 8]
mov dword [ebp + 0x14], 0
add esp, 4
movups xmm0, xmmword [ebx]
movups xmmword [ebp], xmm0
movq xmm0, qword [ebx + 0x10]
movq qword [ebp + 0x10], xmm0
xorps xmm0, xmm0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0xf
mov byte [ebx], 0
movq qword [ebp + 0x18], xmm0
mov dword [ebp + 0x1c], 0
mov ecx, dword [0x1015ee28]
mov ebx, dword [0x1015ee3c]
lea eax, [ecx + 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101516d0]
mov eax, ebx
shr eax, 0x1f
cvtpd2ps xmm2, xmm0
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
movaps xmm1, xmm2
addsd xmm0, qword [eax*8 + 0x101516d0]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movss xmm0, dword [0x1015ee20]
comiss xmm1, xmm0
jbe 0x100de8dc
divss xmm2, xmm0
sub esp, 8
movss dword [esp + 0x2c], xmm2
fld dword [esp + 0x2c]
fstp qword [esp]
call fcn.10123ea0
add esp, 8
fstp dword [esp + 0x24]
movss xmm0, dword [esp + 0x24]
call fcn.101258f0
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp ebx, ecx
jae 0x100de8c0
cmp ebx, 0x200
jae 0x100de8be
shl ebx, 3
cmp ebx, ecx
jae 0x100de8c0
mov ebx, ecx
push ebx
call fcn.100de990
push esi
push ebp
lea eax, [esp + 0x18]
push eax
call fcn.100df940
mov ecx, dword [0x1015ee28]
mov edx, dword [eax]
jmp 0x100de8e0
mov edx, dword [esp + 0x10]
mov ebx, dword [edx + 4]
inc ecx
mov dword [0x1015ee28], ecx
mov dword [edi], edx
mov dword [edi + 4], ebx
mov dword [ebx], edi
mov dword [edx + 4], edi
mov eax, dword [0x1015ee38]
mov ecx, dword [0x1015ee2c]
and eax, esi
mov esi, dword [ecx + eax*8]
cmp esi, dword [0x1015ee24]
jne 0x100de911
mov dword [ecx + eax*8], edi
jmp 0x100de932
cmp esi, edx
jne 0x100de92c
mov dword [ecx + eax*8], edi
mov eax, dword [esp + 0x20]
mov dword [eax], edi
mov byte [eax + 4], 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
cmp dword [ecx + eax*8 + 4], ebx
jne 0x100de936
mov dword [ecx + eax*8 + 4], edi
mov eax, dword [esp + 0x20]
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov byte [eax + 4], 1
pop ebx
add esp, 0xc
ret 8
push str.unordered_map_set_too_long
call fcn.100feb15
int3
Function at 0x100de990
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov eax, 0x1fffffff
sub esp, 8
bsr ecx, eax
push ebx
push ebp
push esi
mov esi, 1
mov eax, esi
shl eax, cl
mov ecx, dword [esp + 0x18]
push edi
cmp ecx, eax
ja 0x100deb4f
lea eax, [ecx - 1]
or eax, esi
bsr ecx, eax
mov eax, dword [0x1015ee24]
push eax
mov dword [esp + 0x20], eax
lea ecx, [ecx + 1]
shl esi, cl
mov ecx, 0x1015ee2c
lea eax, [esi + esi]
push eax
call fcn.1008a330
mov edi, dword [0x1015ee24]
lea eax, [esi - 1]
mov ecx, dword [esp + 0x1c]
mov dword [0x1015ee38], eax
mov dword [0x1015ee3c], esi
mov edi, dword [edi]
mov eax, edi
cmp edi, ecx
je 0x100deb25
nop dword [eax]
cmp dword [edi + 0x1c], 0x10
lea ebx, [edi + 8]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebx
jb 0x100dea19
mov edx, dword [ebx]
mov dword [esp + 0x14], edx
xor esi, esi
mov ebp, 0x811c9dc5
cmp dword [ebx + 0x10], esi
jbe 0x100dea46
mov ecx, dword [esp + 0x14]
nop dword [eax]
movzx edx, byte [esi + ecx]
inc esi
xor edx, ebp
imul ebp, edx, 0x1000193
cmp esi, dword [ebx + 0x10]
jb 0x100dea30
mov ecx, dword [esp + 0x1c]
and ebp, dword [0x1015ee38]
mov edx, dword [0x1015ee2c]
lea edx, [edx + ebp*8]
mov dword [esp + 0x14], edx
cmp dword [edx], ecx
jne 0x100dea67
mov dword [edx], edi
mov dword [edx + 4], edi
jmp 0x100deb1b
mov esi, dword [edx + 4]
cmp dword [esi + 0x1c], 0x10
lea eax, [esi + 8]
mov edx, dword [eax + 0x10]
jb 0x100dea78
mov eax, dword [eax]
cmp dword [ebx + 0x14], 0x10
mov ecx, ebx
jb 0x100dea82
mov ecx, dword [ebx]
mov ebp, dword [ebx + 0x10]
push edx
push eax
mov edx, ebp
call fcn.10097af0
test al, al
je 0x100deabd
mov ecx, dword [esi]
mov eax, dword [esp + 0x10]
cmp ecx, edi
je 0x100deab4
mov ebx, dword [edi + 4]
mov dword [ebx], eax
mov esi, dword [eax + 4]
mov dword [esi], ecx
mov edx, dword [ecx + 4]
mov dword [edx], edi
mov dword [ecx + 4], esi
mov dword [eax + 4], ebx
mov dword [edi + 4], edx
mov ecx, dword [esp + 0x14]
mov dword [ecx + 4], edi
jmp 0x100deb17
mov eax, dword [esp + 0x14]
cmp dword [eax], esi
je 0x100deaf5
mov esi, dword [esi + 4]
cmp dword [esi + 0x1c], 0x10
lea eax, [esi + 8]
mov edx, dword [eax + 0x10]
jb 0x100dead6
mov eax, dword [eax]
cmp dword [ebx + 0x14], 0x10
mov ecx, ebx
jb 0x100deae0
mov ecx, dword [ebx]
push edx
push eax
mov edx, ebp
call fcn.10097af0
test al, al
jne 0x100deb2f
mov eax, dword [esp + 0x14]
cmp dword [eax], esi
jne 0x100deac5
mov ebx, dword [edi + 4]
mov eax, dword [esp + 0x10]
mov dword [ebx], eax
mov edx, dword [eax + 4]
mov dword [edx], esi
mov ecx, dword [esi + 4]
mov dword [ecx], edi
mov dword [esi + 4], edx
mov dword [eax + 4], ebx
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x14]
mov dword [ecx], edi
mov ecx, dword [esp + 0x1c]
mov edi, eax
cmp eax, ecx
jne 0x100dea00
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov ebx, dword [esi]
mov esi, dword [edi + 4]
mov eax, dword [esp + 0x10]
mov dword [esi], eax
mov edx, dword [eax + 4]
mov dword [edx], ebx
mov ecx, dword [ebx + 4]
mov dword [ecx], edi
mov dword [ebx + 4], edx
mov dword [eax + 4], esi
mov dword [edi + 4], ecx
jmp 0x100deb17
push str.invalid_hash_bucket_count
call fcn.100feb15
int3
Function at 0x100debc0
Capabilities:
Hash data using fnv

Disassembly:
sub esp, 8
mov eax, dword [esp + 0x10]
push ebx
push ebp
push esi
mov ebx, dword [eax]
add ebx, 8
movzx eax, bl
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
mov eax, ebx
shr eax, 8
movzx eax, al
push edi
mov edi, ecx
xor edx, eax
mov eax, ebx
shr eax, 0x10
imul ecx, edx, 0x1000193
movzx eax, al
shr ebx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, edi
xor eax, ebx
mov ebx, dword [esp + 0x20]
imul ebp, eax, 0x1000193
lea eax, [esp + 0x10]
push ebp
push ebx
push eax
call fcn.100a8d00
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x100dec39
mov eax, dword [esp + 0x1c]
mov dword [eax], ecx
mov byte [eax + 4], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0xc
cmp dword [edi + 8], 0xaaaaaaa
je 0x100ded78
push 0x18
call fcn.100fe077
mov ecx, dword [ebx]
mov esi, eax
add esp, 4
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], eax
mov eax, dword [edi + 8]
mov ebx, dword [edi + 0x1c]
inc eax
movss xmm3, dword [edi]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101516d0]
mov eax, ebx
shr eax, 0x1f
cvtpd2ps xmm2, xmm0
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
movaps xmm1, xmm2
addsd xmm0, qword [eax*8 + 0x101516d0]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, xmm3
jbe 0x100ded16
divss xmm2, xmm3
sub esp, 8
movss dword [esp + 0x28], xmm2
fld dword [esp + 0x28]
fstp qword [esp]
call fcn.10123ea0
add esp, 8
fstp dword [esp + 0x20]
movss xmm0, dword [esp + 0x20]
call fcn.101258f0
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp ebx, ecx
jae 0x100decf9
cmp ebx, 0x200
jae 0x100decf7
shl ebx, 3
cmp ebx, ecx
jae 0x100decf9
mov ebx, ecx
push ebx
mov ecx, edi
call fcn.100ddf70
push ebp
lea eax, [esi + 8]
mov ecx, edi
push eax
lea eax, [esp + 0x18]
push eax
call fcn.100a8d00
mov edx, dword [eax]
jmp 0x100ded1a
mov edx, dword [esp + 0x10]
mov ebx, dword [edx + 4]
inc dword [edi + 8]
mov dword [esi], edx
mov dword [esi + 4], ebx
mov dword [ebx], esi
mov dword [edx + 4], esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0xc]
and eax, ebp
mov ebp, dword [ecx + eax*8]
cmp ebp, dword [edi + 4]
jne 0x100ded3f
mov dword [ecx + eax*8], esi
jmp 0x100ded60
cmp ebp, edx
jne 0x100ded5a
mov dword [ecx + eax*8], esi
mov eax, dword [esp + 0x1c]
mov dword [eax], esi
mov byte [eax + 4], 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0xc
cmp dword [ecx + eax*8 + 4], ebx
jne 0x100ded64
mov dword [ecx + eax*8 + 4], esi
mov eax, dword [esp + 0x1c]
pop edi
mov dword [eax], esi
pop esi
pop ebp
mov byte [eax + 4], 1
pop ebx
add esp, 8
ret 0xc
push str.unordered_map_set_too_long
call fcn.100feb15
int3
Function at 0x100def20
Capabilities:
Hash data using fnv

Disassembly:
sub esp, 8
mov eax, dword [esp + 0x10]
push ebx
push ebp
push esi
mov ebx, dword [eax]
add ebx, 8
movzx eax, bl
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
mov eax, ebx
shr eax, 8
movzx eax, al
push edi
mov edi, ecx
xor edx, eax
mov eax, ebx
shr eax, 0x10
imul ecx, edx, 0x1000193
movzx eax, al
shr ebx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, edi
xor eax, ebx
mov ebx, dword [esp + 0x20]
imul ebp, eax, 0x1000193
lea eax, [esp + 0x10]
push ebp
push ebx
push eax
call fcn.100a8d00
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x100def99
mov eax, dword [esp + 0x1c]
mov dword [eax], ecx
mov byte [eax + 4], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0xc
cmp dword [edi + 8], 0xfffffff
je 0x100df0d2
push 0x10
call fcn.100fe077
mov ecx, dword [ebx]
mov esi, eax
add esp, 4
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx]
mov dword [esi + 0xc], ecx
mov eax, dword [edi + 8]
mov ebx, dword [edi + 0x1c]
inc eax
movss xmm3, dword [edi]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101516d0]
mov eax, ebx
shr eax, 0x1f
cvtpd2ps xmm2, xmm0
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
movaps xmm1, xmm2
addsd xmm0, qword [eax*8 + 0x101516d0]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, xmm3
jbe 0x100df070
divss xmm2, xmm3
sub esp, 8
movss dword [esp + 0x28], xmm2
fld dword [esp + 0x28]
fstp qword [esp]
call fcn.10123ea0
add esp, 8
fstp dword [esp + 0x20]
movss xmm0, dword [esp + 0x20]
call fcn.101258f0
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp ebx, ecx
jae 0x100df053
cmp ebx, 0x200
jae 0x100df051
shl ebx, 3
cmp ebx, ecx
jae 0x100df053
mov ebx, ecx
push ebx
mov ecx, edi
call fcn.100ddf70
push ebp
lea eax, [esi + 8]
mov ecx, edi
push eax
lea eax, [esp + 0x18]
push eax
call fcn.100a8d00
mov edx, dword [eax]
jmp 0x100df074
mov edx, dword [esp + 0x10]
mov ebx, dword [edx + 4]
inc dword [edi + 8]
mov dword [esi], edx
mov dword [esi + 4], ebx
mov dword [ebx], esi
mov dword [edx + 4], esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0xc]
and eax, ebp
mov ebp, dword [ecx + eax*8]
cmp ebp, dword [edi + 4]
jne 0x100df099
mov dword [ecx + eax*8], esi
jmp 0x100df0ba
cmp ebp, edx
jne 0x100df0b4
mov dword [ecx + eax*8], esi
mov eax, dword [esp + 0x1c]
mov dword [eax], esi
mov byte [eax + 4], 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0xc
cmp dword [ecx + eax*8 + 4], ebx
jne 0x100df0be
mov dword [ecx + eax*8 + 4], esi
mov eax, dword [esp + 0x1c]
pop edi
mov dword [eax], esi
pop esi
pop ebp
mov byte [eax + 4], 1
pop ebx
add esp, 8
ret 0xc
push str.unordered_map_set_too_long
call fcn.100feb15
int3
Function at 0x100dfd90
Capabilities:
Hash data using fnv

Disassembly:
sub esp, 8
mov edx, dword [esp + 0xc]
mov eax, 0x1fffffff
push ebx
push ebp
mov ebp, ecx
bsr ecx, eax
push esi
push edi
mov edi, 1
mov dword [esp + 0x14], ebp
mov eax, edi
shl eax, cl
cmp edx, eax
ja 0x100dfeb0
mov esi, dword [ebp + 4]
lea eax, [edx - 1]
or eax, edi
bsr ecx, eax
push esi
lea ecx, [ecx + 1]
shl edi, cl
lea ecx, [ebp + 0xc]
lea eax, [edi + edi]
push eax
call fcn.1008a330
lea eax, [edi - 1]
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x18], eax
mov ecx, dword [ebp + 4]
mov ecx, dword [ecx]
mov edx, ecx
cmp ecx, esi
je 0x100dfe8a
nop
mov bl, byte [ecx + 8]
mov edx, dword [edx]
movzx eax, bl
xor eax, 0x811c9dc5
imul edi, eax, 0x1000193
mov eax, dword [ebp + 0xc]
and edi, dword [ebp + 0x18]
lea eax, [eax + edi*8]
mov edi, dword [eax]
mov dword [esp + 0x1c], eax
cmp edi, esi
jne 0x100dfe1d
mov dword [eax], ecx
mov dword [eax + 4], ecx
jmp 0x100dfe7c
mov eax, dword [eax + 4]
cmp bl, byte [eax + 8]
jne 0x100dfe4d
mov eax, dword [eax]
cmp eax, ecx
je 0x100dfe44
mov ebp, dword [ecx + 4]
mov dword [ebp], edx
mov ebx, dword [edx + 4]
mov dword [ebx], eax
mov edi, dword [eax + 4]
mov dword [edi], ecx
mov dword [eax + 4], ebx
mov dword [edx + 4], ebp
mov dword [ecx + 4], edi
mov eax, dword [esp + 0x1c]
mov dword [eax + 4], ecx
jmp 0x100dfe7c
cmp edi, eax
je 0x100dfe5d
mov eax, dword [eax + 4]
cmp bl, byte [eax + 8]
je 0x100dfe94
cmp edi, eax
jne 0x100dfe51
mov ebp, dword [ecx + 4]
mov dword [ebp], edx
mov ebx, dword [edx + 4]
mov dword [ebx], eax
mov edi, dword [eax + 4]
mov dword [edi], ecx
mov dword [eax + 4], ebx
mov eax, dword [esp + 0x1c]
mov dword [edx + 4], ebp
mov dword [ecx + 4], edi
mov dword [eax], ecx
mov ebp, dword [esp + 0x14]
mov ecx, edx
cmp edx, esi
jne 0x100dfdf0
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov ebx, dword [ecx + 4]
mov ebp, dword [eax]
mov dword [ebx], edx
mov edi, dword [edx + 4]
mov dword [edi], ebp
mov eax, dword [ebp + 4]
mov dword [eax], ecx
mov dword [ebp + 4], edi
mov dword [edx + 4], ebx
mov dword [ecx + 4], eax
jmp 0x100dfe7c
push str.invalid_hash_bucket_count
call fcn.100feb15
int3