joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4ff0b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov edx, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, 1
mov dword [0x9329b8], 0x55555555
mov dword [0x9329bc], 0x55555555
mov dword [0x931638], edi
mov dword [0x93163c], edx
push 0x5851f42d
mov ecx, edx
xor eax, eax
push 0x4c957f2d
shr ecx, 0x1e
xor eax, edx
xor ecx, edi
push eax
push ecx
call fcn.00525250
mov edi, eax
add edi, esi
mov dword [esi*8 + 0x931638], edi
adc edx, 0
mov dword [esi*8 + 0x93163c], edx
inc esi
cmp esi, 0x138
jb 0x4ff0e3
pop edi
mov dword [0x931630], 0x138
mov eax, 0x931630
pop esi
mov esp, ebp
pop ebp
ret 8

Function at 0x4ff140
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
movzx eax, byte [edi]
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
movzx eax, byte [edi + 1]
xor edx, eax
movzx eax, byte [edi + 2]
imul edx, edx, 0x1000193
xor edx, eax
movzx eax, byte [edi + 3]
imul ecx, edx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [esi + 0x18]
and ecx, eax
mov eax, dword [esi + 0xc]
lea edx, [eax + ecx*8]
mov eax, dword [edx + 4]
cmp eax, dword [esi + 4]
je 0x4ff1ad
mov ecx, dword [edi]
mov edx, dword [edx]
cmp ecx, dword [eax + 8]
je 0x4ff1a4
cmp eax, edx
je 0x4ff1ad
mov eax, dword [eax + 4]
cmp ecx, dword [eax + 8]
jne 0x4ff198
pop edi
add eax, 0xc
pop esi
pop ebp
ret 4
push str.invalid_unordered_map_K__T__key
call fcn.00522016
int3

Function at 0x4ff4f0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
movzx eax, byte [edi]
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
movzx eax, byte [edi + 1]
xor edx, eax
movzx eax, byte [edi + 2]
imul edx, edx, 0x1000193
xor edx, eax
movzx eax, byte [edi + 3]
imul ecx, edx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [esi + 0x18]
and ecx, eax
mov eax, dword [esi + 0xc]
lea edx, [eax + ecx*8]
mov eax, dword [edx + 4]
cmp eax, dword [esi + 4]
je 0x4ff563
mov ecx, dword [edi]
mov edx, dword [edx]
pop edi
pop esi
cmp ecx, dword [eax + 8]
je 0x4ff55c
nop word [eax + eax]
cmp eax, edx
je 0x4ff563
mov eax, dword [eax + 4]
cmp ecx, dword [eax + 8]
jne 0x4ff550
add eax, 0x10
pop ebp
ret 4
push str.invalid_unordered_map_K__T__key
call fcn.00522016
int3
Function at 0x4ff780
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov edx, dword [ebp + 8]
push ebx
push esi
push edi
cmp dword [edx + 0x14], 0xf
mov esi, edx
mov ebx, dword [edx + 0x10]
mov dword [ebp - 4], ecx
jbe 0x4ff79c
mov esi, dword [edx]
xor ecx, ecx
mov edi, 0x811c9dc5
test ebx, ebx
je 0x4ff7b8
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edi
imul edi, eax, 0x1000193
cmp ecx, ebx
jb 0x4ff7a7
mov ebx, dword [ebp - 4]
lea eax, [ebp - 0xc]
push edi
push edx
push eax
mov ecx, ebx
call fcn.00435bd0
mov esi, dword [eax + 4]
test esi, esi
je 0x4ff833
mov ecx, dword [ebx + 0x18]
mov eax, dword [ebx + 0xc]
and ecx, edi
lea ecx, [eax + ecx*8]
mov eax, dword [ecx]
cmp dword [ecx + 4], esi
jne 0x4ff7f7
cmp eax, esi
jne 0x4ff7ef
mov eax, dword [ebx + 4]
mov dword [ecx], eax
mov dword [ecx + 4], eax
jmp 0x4ff7ff
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
jmp 0x4ff7ff
cmp eax, esi
jne 0x4ff7ff
mov eax, dword [esi]
mov dword [ecx], eax
mov ecx, dword [esi]
dec dword [ebx + 8]
mov eax, dword [esi + 4]
mov dword [eax], ecx
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
lea ecx, [esi + 8]
call fcn.0049fcb0
push 0x1a8
push esi
call fcn.00524a57
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x501eb0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x567e75
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push esi
push edi
mov eax, dword [0x5ca1c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x10], edx
cmp dword [edx + 0x14], 0xf
mov dword [ebp - 0x14], edx
jbe 0x501ef4
mov eax, dword [edx]
mov dword [ebp - 0x14], eax
xor ecx, ecx
mov esi, 0x811c9dc5
cmp dword [edx + 0x10], ecx
jbe 0x501f18
mov edi, dword [ebp - 0x14]
movzx eax, byte [edi + ecx]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, dword [edx + 0x10]
jb 0x501f03
mov edi, dword [ebp - 0x1c]
push esi
push edx
lea eax, [ebp - 0x18]
mov ecx, ebx
push eax
call fcn.00435bd0
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x501f48
mov dword [edi], eax
mov eax, edi
mov byte [edi + 4], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [ebx + 8], 0x7ffffff
je 0x50207c
lea eax, [ebx + 4]
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], 0
push 0x20
mov dword [ebp - 0x20], 0
call fcn.00524602
add esp, 4
mov edi, eax
mov dword [ebp - 0x20], edi
push dword [ebp - 0x10]
lea ecx, [edi + 8]
call fcn.00416820
mov dword [ebp - 4], 1
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0x1c]
inc eax
movss xmm3, dword [ebx]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movd xmm1, ecx
addsd xmm0, qword [eax*8 + 0x5ae9e0]
cvtdq2pd xmm1, xmm1
mov eax, ecx
shr eax, 0x1f
cvtpd2ps xmm0, xmm0
addsd xmm1, qword [eax*8 + 0x5ae9e0]
movaps xmm2, xmm0
cvtpd2ps xmm1, xmm1
divss xmm2, xmm1
comiss xmm2, xmm3
jbe 0x50201e
divss xmm0, xmm3
call fcn.00429be0
call fcn.00553a60
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
mov eax, dword [ebx + 0x1c]
cmp eax, ecx
jae 0x502002
cmp eax, 0x200
jae 0x502000
shl eax, 3
cmp eax, ecx
jae 0x502002
mov eax, ecx
push eax
mov ecx, ebx
call fcn.0050cf50
push esi
lea eax, [edi + 8]
mov ecx, ebx
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00435bd0
mov edx, dword [eax]
jmp 0x502021
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 4]
inc dword [ebx + 8]
mov dword [edi + 4], eax
mov dword [edi], edx
mov dword [eax], edi
mov dword [edx + 4], edi
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x10], eax
mov eax, dword [ebx + 0x18]
and eax, esi
mov esi, dword [ecx + eax*8]
cmp esi, dword [ebx + 4]
jne 0x502049
mov dword [ecx + eax*8], edi
jmp 0x50205b
cmp esi, edx
jne 0x502052
mov dword [ecx + eax*8], edi
jmp 0x50205f
mov edx, dword [ebp - 0x10]
cmp dword [ecx + eax*8 + 4], edx
jne 0x50205f
mov dword [ecx + eax*8 + 4], edi
mov eax, dword [ebp - 0x1c]
mov dword [eax], edi
mov byte [eax + 4], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push str.unordered_map_set_too_long
call fcn.00521ff6
int3
Function at 0x50ba80
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x568155
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push esi
push edi
mov eax, dword [0x5ca1c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x1c], esi
mov edx, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x24], edx
cmp dword [edx + 0x14], 0xf
mov dword [ebp - 0x10], edx
jbe 0x50bac7
mov eax, dword [edx]
mov dword [ebp - 0x10], eax
xor ecx, ecx
mov edi, 0x811c9dc5
cmp dword [edx + 0x10], ecx
jbe 0x50baeb
mov ebx, dword [ebp - 0x10]
movzx eax, byte [ebx + ecx]
inc ecx
xor eax, edi
imul edi, eax, 0x1000193
cmp ecx, dword [edx + 0x10]
jb 0x50bad6
mov ebx, dword [ebp - 0x18]
push edi
push edx
lea eax, [ebp - 0x14]
mov ecx, esi
push eax
call fcn.00435bd0
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x50bb1b
mov dword [ebx], eax
mov eax, ebx
mov byte [ebx + 4], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [esi + 8], 0x9a90e7
je 0x50bc62
lea eax, [esi + 4]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 4], 0
push 0x1a8
mov dword [ebp - 0x28], 0
call fcn.00524602
add esp, 4
mov ebx, eax
mov dword [ebp - 0x28], ebx
push dword [ebp - 0x24]
lea ecx, [ebx + 8]
call fcn.00416820
sub esp, 0x18
lea ecx, [ebx + 0x20]
call fcn.0042cca0
mov dword [ebp - 4], 1
mov esi, dword [ebp - 0x1c]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x1c]
inc eax
movss xmm3, dword [esi]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movd xmm1, ecx
addsd xmm0, qword [eax*8 + 0x5ae9e0]
cvtdq2pd xmm1, xmm1
mov eax, ecx
shr eax, 0x1f
cvtpd2ps xmm0, xmm0
addsd xmm1, qword [eax*8 + 0x5ae9e0]
movaps xmm2, xmm0
cvtpd2ps xmm1, xmm1
divss xmm2, xmm1
comiss xmm2, xmm3
jbe 0x50bc02
divss xmm0, xmm3
call fcn.00429be0
call fcn.00553a60
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
mov eax, dword [esi + 0x1c]
cmp eax, ecx
jae 0x50bbe6
cmp eax, 0x200
jae 0x50bbe4
shl eax, 3
cmp eax, ecx
jae 0x50bbe6
mov eax, ecx
push eax
mov ecx, esi
call fcn.004353e0
push edi
lea eax, [ebx + 8]
mov ecx, esi
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00435bd0
mov edx, dword [eax]
jmp 0x50bc05
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
inc dword [esi + 8]
mov dword [ebx + 4], eax
mov dword [ebx], edx
mov dword [eax], ebx
mov dword [edx + 4], ebx
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0x18]
and eax, edi
mov edi, dword [ebp - 0x2c]
mov esi, dword [ecx + eax*8]
cmp esi, dword [edi]
jne 0x50bc2f
mov dword [ecx + eax*8], ebx
jmp 0x50bc41
cmp esi, edx
jne 0x50bc38
mov dword [ecx + eax*8], ebx
jmp 0x50bc45
mov edx, dword [ebp - 0x1c]
cmp dword [ecx + eax*8 + 4], edx
jne 0x50bc45
mov dword [ecx + eax*8 + 4], ebx
mov eax, dword [ebp - 0x18]
mov dword [eax], ebx
mov byte [eax + 4], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push str.unordered_map_set_too_long
call fcn.00521ff6
int3
Function at 0x5114d0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5683e5
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [0x5ca1c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edx, dword [ebp + 0xc]
mov edi, edx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x10], edx
cmp dword [edx + 0x14], 0xf
jbe 0x51150b
mov edi, dword [edx]
xor ecx, ecx
mov esi, 0x811c9dc5
cmp dword [edx + 0x10], ecx
jbe 0x511529
movzx eax, byte [edi + ecx]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, dword [edx + 0x10]
jb 0x511517
push esi
push edx
lea eax, [ebp - 0x18]
push eax
call fcn.0050b510
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x511546
mov dword [ebx], eax
mov byte [ebx + 4], 0
jmp 0x511685
cmp dword [0x8ccb04], 0x71c71c7
je 0x51169b
mov dword [ebp - 0x20], 0x8ccb00
mov dword [ebp - 4], 0
push 0x24
mov dword [ebp - 0x1c], 0
call fcn.00524602
add esp, 4
mov edi, eax
mov dword [ebp - 0x1c], edi
push dword [ebp - 0x10]
lea ecx, [edi + 8]
call fcn.00416820
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x18]
mov dword [edi + 0x20], ecx
mov dword [ebp - 4], 1
mov eax, dword [0x8ccb04]
mov ecx, dword [0x8ccb18]
inc eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x5ae9e0]
mov eax, ecx
shr eax, 0x1f
cvtpd2ps xmm3, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
movaps xmm2, xmm3
addsd xmm0, qword [eax*8 + 0x5ae9e0]
cvtpd2ps xmm1, xmm0
movss xmm0, dword [0x8ccafc]
divss xmm2, xmm1
comiss xmm2, xmm0
jbe 0x511633
divss xmm3, xmm0
movaps xmm0, xmm3
call fcn.00429be0
call fcn.00553a60
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
mov eax, dword [0x8ccb18]
cmp eax, ecx
jae 0x51161b
cmp eax, 0x200
jae 0x511619
shl eax, 3
cmp eax, ecx
jae 0x51161b
mov eax, ecx
push eax
call fcn.005122b0
push esi
lea eax, [edi + 8]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0050b510
mov edx, dword [eax]
jmp 0x511636
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 4]
inc dword [0x8ccb04]
mov dword [edi + 4], eax
mov dword [edi], edx
mov dword [eax], edi
mov dword [edx + 4], edi
mov ecx, dword [0x8ccb08]
mov dword [ebp - 0x10], eax
mov eax, dword [0x8ccb14]
and eax, esi
mov esi, dword [ecx + eax*8]
cmp esi, dword [0x8ccb00]
jne 0x511669
mov dword [ecx + eax*8], edi
jmp 0x51167b
cmp esi, edx
jne 0x511672
mov dword [ecx + eax*8], edi
jmp 0x51167f
mov edx, dword [ebp - 0x10]
cmp dword [ecx + eax*8 + 4], edx
jne 0x51167f
mov dword [ecx + eax*8 + 4], edi
mov dword [ebx], edi
mov byte [ebx + 4], 1
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push str.unordered_map_set_too_long
call fcn.00521ff6
int3
Function at 0x5116b0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x568425
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push esi
push edi
mov eax, dword [0x5ca1c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x14], edi
movzx eax, byte [ebx]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [ebx + 1]
xor ecx, eax
movzx eax, byte [ebx + 2]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [ebx + 3]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
push eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x1c]
push ebx
push eax
call fcn.00517e40
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x511733
mov dword [edi], eax
mov byte [edi + 4], 0
jmp 0x51186e
cmp dword [0x8d4bd4], 0xfffffff
je 0x511884
mov dword [ebp - 0x24], 0x8d4bd0
mov dword [ebp - 4], 0
push 0x10
mov dword [ebp - 0x20], 0
call fcn.00524602
mov ecx, dword [ebx]
mov esi, eax
mov edx, dword [ebx + 4]
lea edi, [esi + 8]
add esp, 4
mov dword [ebp - 0x20], esi
mov dword [edi], ecx
mov dword [edi + 4], edx
mov dword [ebp - 4], 1
mov ecx, dword [0x8d4bd4]
mov ebx, dword [0x8d4be8]
lea eax, [ecx + 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x5ae9e0]
mov eax, ebx
shr eax, 0x1f
cvtpd2ps xmm3, xmm0
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
movaps xmm2, xmm3
addsd xmm0, qword [eax*8 + 0x5ae9e0]
cvtpd2ps xmm1, xmm0
movss xmm0, dword [0x8d4bcc]
divss xmm2, xmm1
comiss xmm2, xmm0
jbe 0x51181d
divss xmm3, xmm0
movaps xmm0, xmm3
call fcn.00429be0
call fcn.00553a60
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp ebx, ecx
jae 0x511800
cmp ebx, 0x200
jae 0x5117fe
shl ebx, 3
cmp ebx, ecx
jae 0x511800
mov ebx, ecx
push ebx
call fcn.005124b0
push dword [ebp - 0x10]
lea eax, [ebp - 0x24]
push edi
push eax
call fcn.00517e40
mov ecx, dword [0x8d4bd4]
mov edx, dword [eax]
jmp 0x511820
mov edx, dword [ebp - 0x1c]
mov ebx, dword [edx + 4]
inc ecx
mov dword [0x8d4bd4], ecx
mov dword [esi], edx
mov dword [esi + 4], ebx
mov dword [ebx], esi
mov dword [edx + 4], esi
mov eax, dword [0x8d4be4]
and eax, dword [ebp - 0x10]
mov ecx, dword [0x8d4bd8]
mov edi, dword [ecx + eax*8]
cmp edi, dword [0x8d4bd0]
jne 0x511852
mov dword [ecx + eax*8], esi
jmp 0x511861
cmp edi, edx
jne 0x51185b
mov dword [ecx + eax*8], esi
jmp 0x511865
cmp dword [ecx + eax*8 + 4], ebx
jne 0x511865
mov dword [ecx + eax*8 + 4], esi
mov edi, dword [ebp - 0x14]
mov dword [edi], esi
mov byte [edi + 4], 1
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push str.unordered_map_set_too_long
call fcn.00521ff6
int3
Function at 0x511890
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55dd45
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push esi
push edi
mov eax, dword [0x5ca1c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x14], edi
movzx eax, byte [ebx]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [ebx + 1]
xor ecx, eax
movzx eax, byte [ebx + 2]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [ebx + 3]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
push eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x1c]
push ebx
push eax
call fcn.0050b5b0
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x511913
mov dword [edi], eax
mov byte [edi + 4], 0
jmp 0x511a54
cmp dword [0x8cca50], 0x71c71c7
je 0x511a6a
mov dword [ebp - 0x24], 0x8cca4c
mov dword [ebp - 4], 0
push 0x24
mov dword [ebp - 0x20], 0
call fcn.00524602
mov ecx, dword [ebx]
lea edx, [ebx + 4]
mov esi, eax
add esp, 4
lea edi, [esi + 8]
mov dword [ebp - 0x20], esi
mov dword [edi], ecx
lea ecx, [edi + 4]
push edx
call fcn.00416820
mov dword [ebp - 4], 1
mov ecx, dword [0x8cca50]
mov ebx, dword [0x8cca64]
lea eax, [ecx + 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x5ae9e0]
mov eax, ebx
shr eax, 0x1f
cvtpd2ps xmm3, xmm0
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
movaps xmm2, xmm3
addsd xmm0, qword [eax*8 + 0x5ae9e0]
cvtpd2ps xmm1, xmm0
movss xmm0, dword [0x8cca48]
divss xmm2, xmm1
comiss xmm2, xmm0
jbe 0x511a03
divss xmm3, xmm0
movaps xmm0, xmm3
call fcn.00429be0
call fcn.00553a60
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp ebx, ecx
jae 0x5119e6
cmp ebx, 0x200
jae 0x5119e4
shl ebx, 3
cmp ebx, ecx
jae 0x5119e6
mov ebx, ecx
push ebx
call fcn.00512630
push dword [ebp - 0x10]
lea eax, [ebp - 0x24]
push edi
push eax
call fcn.0050b5b0
mov ecx, dword [0x8cca50]
mov edx, dword [eax]
jmp 0x511a06
mov edx, dword [ebp - 0x1c]
mov ebx, dword [edx + 4]
inc ecx
mov dword [0x8cca50], ecx
mov dword [esi], edx
mov dword [esi + 4], ebx
mov dword [ebx], esi
mov dword [edx + 4], esi
mov eax, dword [0x8cca60]
and eax, dword [ebp - 0x10]
mov ecx, dword [0x8cca54]
mov edi, dword [ecx + eax*8]
cmp edi, dword [0x8cca4c]
jne 0x511a38
mov dword [ecx + eax*8], esi
jmp 0x511a47
cmp edi, edx
jne 0x511a41
mov dword [ecx + eax*8], esi
jmp 0x511a4b
cmp dword [ecx + eax*8 + 4], ebx
jne 0x511a4b
mov dword [ecx + eax*8 + 4], esi
mov edi, dword [ebp - 0x14]
mov dword [edi], esi
mov byte [edi + 4], 1
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push str.unordered_map_set_too_long
call fcn.00521ff6
int3
Function at 0x511a80
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5683e5
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [0x5ca1c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edx, dword [ebp + 0xc]
mov edi, edx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x10], edx
cmp dword [edx + 0x14], 0xf
jbe 0x511abb
mov edi, dword [edx]
xor ecx, ecx
mov esi, 0x811c9dc5
cmp dword [edx + 0x10], ecx
jbe 0x511ad9
movzx eax, byte [edi + ecx]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, dword [edx + 0x10]
jb 0x511ac7
push esi
push edx
lea eax, [ebp - 0x18]
push eax
call fcn.00497340
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x511af6
mov dword [ebx], eax
mov byte [ebx + 4], 0
jmp 0x511c35
cmp dword [0x8ccabc], 0x71c71c7
je 0x511c4b
mov dword [ebp - 0x20], 0x8ccab8
mov dword [ebp - 4], 0
push 0x24
mov dword [ebp - 0x1c], 0
call fcn.00524602
add esp, 4
mov edi, eax
mov dword [ebp - 0x1c], edi
push dword [ebp - 0x10]
lea ecx, [edi + 8]
call fcn.00416820
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x18]
mov dword [edi + 0x20], ecx
mov dword [ebp - 4], 1
mov eax, dword [0x8ccabc]
mov ecx, dword [0x8ccad0]
inc eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x5ae9e0]
mov eax, ecx
shr eax, 0x1f
cvtpd2ps xmm3, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
movaps xmm2, xmm3
addsd xmm0, qword [eax*8 + 0x5ae9e0]
cvtpd2ps xmm1, xmm0
movss xmm0, dword [0x8ccab4]
divss xmm2, xmm1
comiss xmm2, xmm0
jbe 0x511be3
divss xmm3, xmm0
movaps xmm0, xmm3
call fcn.00429be0
call fcn.00553a60
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
mov eax, dword [0x8ccad0]
cmp eax, ecx
jae 0x511bcb
cmp eax, 0x200
jae 0x511bc9
shl eax, 3
cmp eax, ecx
jae 0x511bcb
mov eax, ecx
push eax
call fcn.005127b0
push esi
lea eax, [edi + 8]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00497340
mov edx, dword [eax]
jmp 0x511be6
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 4]
inc dword [0x8ccabc]
mov dword [edi + 4], eax
mov dword [edi], edx
mov dword [eax], edi
mov dword [edx + 4], edi
mov ecx, dword [0x8ccac0]
mov dword [ebp - 0x10], eax
mov eax, dword [0x8ccacc]
and eax, esi
mov esi, dword [ecx + eax*8]
cmp esi, dword [0x8ccab8]
jne 0x511c19
mov dword [ecx + eax*8], edi
jmp 0x511c2b
cmp esi, edx
jne 0x511c22
mov dword [ecx + eax*8], edi
jmp 0x511c2f
mov edx, dword [ebp - 0x10]
cmp dword [ecx + eax*8 + 4], edx
jne 0x511c2f
mov dword [ecx + eax*8 + 4], edi
mov dword [ebx], edi
mov byte [ebx + 4], 1
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push str.unordered_map_set_too_long
call fcn.00521ff6
int3
Function at 0x5124b0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1fffffff
sub esp, 0x10
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
ja 0x51261d
lea eax, [ecx - 1]
mov esi, dword [0x8d4bd0]
or eax, edi
mov dword [ebp - 8], esi
bsr ecx, eax
push esi
lea ecx, [ecx + 1]
shl edi, cl
mov ecx, 0x8d4bd8
lea eax, [edi + edi]
push eax
call fcn.004355d0
mov eax, dword [0x8d4bd0]
lea ebx, [edi - 1]
mov dword [0x8d4be4], ebx
mov dword [0x8d4be8], edi
mov eax, dword [eax]
mov ecx, eax
cmp eax, esi
je 0x512614
nop word [eax + eax]
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 [0x8d4bd8]
imul edi, edi, 0x1000193
and edi, ebx
mov ebx, dword [edx + edi*8]
lea edx, [edx + edi*8]
mov dword [ebp - 0xc], edx
cmp ebx, esi
jne 0x512572
mov dword [edx], eax
mov dword [edx + 4], eax
jmp 0x5125df
mov edx, dword [edx + 4]
mov edi, dword [eax + 8]
cmp edi, dword [edx + 8]
jne 0x5125ac
mov edx, dword [edx]
mov dword [ebp - 4], edx
cmp edx, eax
je 0x5125a4
mov ebx, dword [eax + 4]
mov esi, dword [ebp - 4]
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 - 0xc]
mov dword [edx + 4], eax
jmp 0x5125df
cmp ebx, edx
je 0x5125bc
mov edx, dword [edx + 4]
cmp edi, dword [edx + 8]
je 0x5125f0
cmp ebx, edx
jne 0x5125b0
mov ebx, dword [eax + 4]
mov dword [ebp - 4], 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 - 4]
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0xc]
mov dword [eax + 4], edi
mov dword [edx], eax
mov eax, ecx
cmp ecx, esi
je 0x512614
mov ebx, dword [0x8d4be4]
jmp 0x512520
mov ebx, dword [eax + 4]
mov edx, dword [edx]
mov dword [ebp - 4], 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 0x5125df
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push str.invalid_hash_bucket_count
call fcn.00521ff6
int3