joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10024740
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x24
push esi
mov esi, ecx
cmp dword [esi + 0x38], 0
je 0x100247d2
cmp byte [esi + 0x3d], 0
je 0x100247d2
mov eax, dword [esi]
push edi
push 0xffffffffffffffff
call dword [eax + 0xc]
cmp eax, 0xffffffff
je 0x100247ca
mov ecx, dword [esi + 0x38]
lea eax, [esp + 8]
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x14]
push eax
lea eax, [esi + 0x40]
push eax
call dword [sym.imp.MSVCP140.dll_public:_int___thiscall_std::codecvt_char__char__struct__Mbstatet_::unshift_struct__Mbstatet___char___char___char___const]
sub eax, 0
je 0x10024799
sub eax, 1
je 0x1002479d
sub eax, 2
jne 0x100247ca
mov byte [esi + 0x3d], al
mov al, 1
pop edi
pop esi
add esp, 0x24
ret
mov byte [esi + 0x3d], 0
mov edi, dword [esp + 8]
lea eax, [esp + 0xc]
sub edi, eax
je 0x100247bd
push dword [esi + 0x4c]
push edi
push 1
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
add esp, 0x10
cmp edi, eax
jne 0x100247ca
cmp byte [esi + 0x3d], 0
pop edi
sete al
pop esi
add esp, 0x24
ret
pop edi
xor al, al
pop esi
add esp, 0x24
ret
mov al, 1
pop esi
add esp, 0x24
ret

Function at 0x10027bc0
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov eax, dword fs:[0x2c]
sub esp, 0xc
mov ecx, dword [0x1023d190]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10275c94]
cmp eax, dword [ecx + 4]
jle 0x10027c46
push 0x10275c94
call fcn.1018369a
add esp, 4
cmp dword [0x10275c94], 0xffffffff
jne 0x10027c46
call dword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [0x102748fc], 0xffffffff
mov ecx, 1
mov dword [0x1027357c], eax
nop
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, ecx
mov dword [ecx*4 + 0x1027357c], eax
inc ecx
cmp ecx, 0x270
jb 0x10027c10
push 0x10275c94
mov dword [0x10273578], 0x270
call fcn.10183649
add esp, 4
mov ecx, 0x10273578
call fcn.100204f0
mov ecx, 0x100
mul ecx
mov eax, edx
add esp, 0xc
ret

Function at 0x10027c60
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
sub esp, 8
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1023d190]
movss dword [esp], xmm1
movss dword [esp + 4], xmm0
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10273574]
cmp eax, dword [ecx + 4]
jle 0x10027d05
push 0x10273574
call fcn.1018369a
add esp, 4
cmp dword [0x10273574], 0xffffffff
jne 0x10027d00
call dword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [0x10275c8c], 0xffffffff
mov edx, 1
mov dword [0x1027490c], eax
nop word [eax + eax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [edx*4 + 0x1027490c], eax
inc edx
cmp edx, 0x270
jb 0x10027cc0
push 0x10273574
mov dword [0x10274908], 0x270
call fcn.10183649
add esp, 4
nop word [eax + eax]
movss xmm1, dword [esp]
mov ecx, 0x10274908
call fcn.100204f0
subss xmm1, dword [esp + 4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1022fea0]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
mulss xmm0, dword [0x1022f874]
addss xmm0, dword [esp + 4]
add esp, 8
ret
Function at 0x100287a0
Capabilities:
Hash data using fnv

Disassembly:
mov eax, dword fs:[0x2c]
sub esp, 0x1c
mov edx, dword [0x1023d190]
push esi
mov edx, dword [eax + edx*4]
mov eax, dword [0x1027b754]
push edi
mov edi, ecx
cmp eax, dword [edx + 4]
jle 0x10028876
push 0x1027b754
call fcn.1018369a
add esp, 4
cmp dword [0x1027b754], 0xffffffff
jne 0x10028876
push 0x18
mov dword [0x1027b758], 0
mov dword [0x1027b75c], 0
mov dword [0x1027b760], 0
call fcn.101832c9
add esp, 4
mov ecx, 0x1027b764
mov dword [eax], eax
mov dword [eax + 4], eax
push eax
push 0x10
mov dword [0x1027b75c], eax
mov dword [0x1027b764], 0
mov dword [0x1027b768], 0
mov dword [0x1027b76c], 0
mov dword [0x1027b770], 7
mov dword [0x1027b774], 8
mov dword [0x1027b758], 0x3f800000
call fcn.10029360
push 0x10188080
call fcn.101835fe
add esp, 4
push 0x1027b754
call fcn.10183649
add esp, 4
test edi, edi
je 0x100289e9
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
mov eax, dword [eax + 0x28]
call eax
mov dword [esp + 8], eax
mov eax, dword [0x102732e8]
test eax, eax
jne 0x100288c4
mov edx, 0xe80c2f78
mov ecx, 0x10211ac1
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x10211635
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov dword [0x102732e8], eax
movss xmm0, dword [eax + edi + 4]
movss dword [esp + 0xc], xmm0
test eax, eax
jne 0x10028902
mov edx, 0xe80c2f78
mov ecx, 0x10211ac1
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x10211635
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov dword [0x102732e8], eax
movss xmm0, dword [eax + edi]
movss dword [esp + 0x10], xmm0
test eax, eax
jne 0x1002893f
mov edx, 0xe80c2f78
mov ecx, 0x10211ac1
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x10211635
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov dword [0x102732e8], eax
movss xmm0, dword [eax + edi + 8]
mov edx, dword [esp + 8]
movzx eax, dl
xor eax, 0x811c9dc5
movss dword [esp + 0x14], xmm0
imul ecx, eax, 0x1000193
movzx eax, dh
xor ecx, eax
movzx eax, byte [esp + 0xa]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [esp + 0xb]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
push eax
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.10029d00
mov ecx, dword [0x1027b75c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
cmp ecx, dword [0x1027b75c]
je 0x100289b7
lea eax, [esp + 8]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.10029450
lea eax, [esp + 8]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.10029450
movss xmm0, dword [esp + 0xc]
mov eax, dword [eax]
movss dword [eax + 0xc], xmm0
movss xmm0, dword [esp + 0x10]
movss dword [eax + 0x10], xmm0
movss xmm0, dword [esp + 0x14]
movss dword [eax + 0x14], xmm0
pop edi
pop esi
add esp, 0x1c
ret
Function at 0x10028d50
Capabilities:
Hash data using fnv

Disassembly:
sub esp, 0x14
push ebx
push ebp
push esi
mov ebp, edx
push edi
mov edi, ecx
test ebp, ebp
je 0x10028f4a
mov eax, dword [0x1023d284]
test eax, eax
jne 0x10028d9a
mov edx, 0xe80c2f78
mov ecx, 0x1021170d
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x10211635
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov dword [0x1023d284], eax
cmp dword [eax + ebp], 0
jle 0x10028f4a
mov eax, dword [ebp + 8]
lea ecx, [ebp + 8]
mov eax, dword [eax + 0x28]
call eax
mov ebx, eax
shr eax, 0x10
movzx ecx, bl
xor ecx, 0x811c9dc5
movzx eax, al
imul edx, ecx, 0x1000193
mov ecx, ebx
shr ecx, 8
movzx ecx, cl
mov dword [esp + 0x14], ebx
shr ebx, 0x18
xor edx, ecx
imul ecx, edx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
xor eax, ebx
imul eax, eax, 0x1000193
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.10029f50
mov ecx, dword [0x1026ec10]
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
cmp ecx, dword [0x1026ec10]
jne 0x10028e64
mov eax, dword [0x1023d21c]
test eax, eax
jne 0x10028e4a
mov edx, 0xe80c2f78
mov ecx, 0x10211651
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x1021165d
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov dword [0x1023d21c], eax
movq xmm0, qword [eax + ebp]
mov eax, dword [eax + ebp + 8]
movq qword [edi], xmm0
mov dword [edi + 8], eax
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov eax, dword [ebp + 8]
lea ecx, [ebp + 8]
mov eax, dword [eax + 0x28]
call eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.10029620
movss xmm0, dword [0x1022f964]
mov ecx, dword [eax]
mov eax, dword [0x1023d214]
mov esi, dword [ecx + 0x1c]
add esi, dword [ecx + 0x18]
movss xmm1, dword [eax + 0x20]
mov ebx, dword [eax + 0x1c]
mov edx, dword [ecx + 0xc]
divss xmm0, xmm1
cmp esi, dword [ecx + 0x18]
je 0x10028e13
dec esi
test edx, edx
je 0x10028eb8
mov eax, dword [edx]
jmp 0x10028eba
xor eax, eax
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, esi
mov eax, dword [eax + ecx*4]
mov ecx, ebx
sub ecx, dword [eax]
cvttss2si eax, xmm0
cmp ecx, eax
jg 0x10028e13
test edx, edx
je 0x10028ede
mov eax, dword [edx]
jmp 0x10028ee0
xor eax, eax
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, esi
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x10028e13
sub ebx, dword [eax]
movss xmm3, dword [eax + 0x14]
movss xmm4, dword [eax + 0x18]
movss xmm2, dword [eax + 0xc]
movd xmm5, ebx
cvtdq2ps xmm5, xmm5
mulss xmm5, xmm1
movss xmm1, dword [eax + 8]
movaps xmm0, xmm5
mulss xmm3, xmm5
mulss xmm0, dword [eax + 0x10]
mulss xmm4, xmm5
addss xmm3, xmm1
addss xmm0, dword [eax + 4]
mov eax, edi
addss xmm4, xmm2
movss dword [edi], xmm0
movss dword [edi + 4], xmm3
movss dword [edi + 8], xmm4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov dword [edi], 0
mov eax, edi
mov dword [edi + 4], 0
mov dword [edi + 8], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
Function at 0x10029450
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x34
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, [esp + 0x38]
imul ebx, ecx, 0x1000193
push ebx
push edi
push eax
call fcn.10029d00
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x100294b7
mov eax, dword [ebp + 8]
mov dword [eax], ecx
mov byte [eax + 4], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [0x1027b760], 0xaaaaaaa
jne 0x100294ce
push str.unordered_map_set_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
push 0x18
call fcn.101832c9
mov ecx, dword [edi]
mov esi, eax
add esp, 4
mov dword [esi + 8], ecx
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
mov ecx, dword [0x1027b760]
mov edi, dword [0x1027b774]
lea eax, [ecx + 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1022fea0]
mov eax, edi
shr eax, 0x1f
cvtpd2ps xmm2, xmm0
movd xmm0, edi
cvtdq2pd xmm0, xmm0
movaps xmm1, xmm2
addsd xmm0, qword [eax*8 + 0x1022fea0]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movss xmm0, dword [0x1027b758]
comiss xmm1, xmm0
jbe 0x100295b2
divss xmm2, xmm0
sub esp, 8
movss dword [esp + 0x40], xmm2
fld dword [esp + 0x40]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
add esp, 8
fstp dword [esp + 0x38]
movss xmm0, dword [esp + 0x38]
call fcn.101850d0
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp edi, ecx
jae 0x10029593
cmp edi, 0x200
jae 0x10029591
shl edi, 3
cmp edi, ecx
jae 0x10029593
mov edi, ecx
push edi
call fcn.10029a40
push ebx
lea eax, [esi + 8]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.10029d00
mov ecx, dword [0x1027b760]
mov edx, dword [eax]
jmp 0x100295b6
mov edx, dword [esp + 0x38]
mov edi, dword [edx + 4]
inc ecx
mov dword [0x1027b760], ecx
mov dword [esi], edx
mov dword [esi + 4], edi
mov dword [edi], esi
mov dword [edx + 4], esi
mov eax, dword [0x1027b770]
mov ecx, dword [0x1027b764]
and eax, ebx
mov ebx, dword [ecx + eax*8]
cmp ebx, dword [0x1027b75c]
jne 0x100295e7
mov dword [ecx + eax*8], esi
jmp 0x10029606
cmp ebx, edx
jne 0x10029600
mov dword [ecx + eax*8], esi
mov eax, dword [ebp + 8]
mov dword [eax], esi
mov byte [eax + 4], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [ecx + eax*8 + 4], edi
jne 0x1002960a
mov dword [ecx + eax*8 + 4], esi
mov eax, dword [ebp + 8]
pop edi
mov dword [eax], esi
pop esi
mov byte [eax + 4], 1
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x10029620
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x34
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
movzx eax, byte [esi]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [esi + 1]
xor ecx, eax
movzx eax, byte [esi + 2]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [esi + 3]
imul ecx, ecx, 0x1000193
xor ecx, eax
lea eax, [esp + 0x38]
imul ebx, ecx, 0x1000193
push ebx
push esi
push eax
call fcn.10029f50
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x10029687
mov eax, dword [ebp + 8]
mov dword [eax], ecx
mov byte [eax + 4], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [0x1026ec14], 0x7ffffff
jne 0x1002969e
push str.unordered_map_set_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
push 0x20
call fcn.101832c9
mov ecx, dword [esi]
mov edi, eax
add esp, 4
mov dword [edi + 0xc], 0
lea esi, [edi + 0xc]
mov dword [esi + 4], 0
mov dword [edi + 8], ecx
push 8
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
call fcn.101832c9
add esp, 4
mov dword [eax + 4], 0
mov dword [esi], eax
mov dword [eax], esi
mov ecx, dword [0x1026ec14]
mov esi, dword [0x1026ec28]
lea eax, [ecx + 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1022fea0]
mov eax, esi
shr eax, 0x1f
cvtpd2ps xmm2, xmm0
movd xmm0, esi
cvtdq2pd xmm0, xmm0
movaps xmm1, xmm2
addsd xmm0, qword [eax*8 + 0x1022fea0]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movss xmm0, dword [0x1026ec0c]
comiss xmm1, xmm0
jbe 0x100297a8
divss xmm2, xmm0
sub esp, 8
movss dword [esp + 0x40], xmm2
fld dword [esp + 0x40]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
add esp, 8
fstp dword [esp + 0x38]
movss xmm0, dword [esp + 0x38]
call fcn.101850d0
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp esi, ecx
jae 0x10029789
cmp esi, 0x200
jae 0x10029787
shl esi, 3
cmp esi, ecx
jae 0x10029789
mov esi, ecx
push esi
call fcn.10029ba0
push ebx
lea eax, [edi + 8]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.10029f50
mov ecx, dword [0x1026ec14]
mov edx, dword [eax]
jmp 0x100297ac
mov edx, dword [esp + 0x38]
mov esi, dword [edx + 4]
inc ecx
mov dword [0x1026ec14], ecx
mov dword [edi], edx
mov dword [edi + 4], esi
mov dword [esi], edi
mov dword [edx + 4], edi
mov eax, dword [0x1026ec24]
mov ecx, dword [0x1026ec18]
and eax, ebx
mov ebx, dword [ecx + eax*8]
cmp ebx, dword [0x1026ec10]
jne 0x100297dd
mov dword [ecx + eax*8], edi
jmp 0x100297fc
cmp ebx, edx
jne 0x100297f6
mov dword [ecx + eax*8], edi
mov eax, dword [ebp + 8]
mov dword [eax], edi
mov byte [eax + 4], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [ecx + eax*8 + 4], esi
jne 0x10029800
mov dword [ecx + eax*8 + 4], edi
mov eax, dword [ebp + 8]
mov dword [eax], edi
pop edi
pop esi
mov byte [eax + 4], 1
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x10029a40
Capabilities:
Hash data using fnv

Disassembly:
mov eax, 0x1fffffff
bsr ecx, eax
push ebx
push ebp
push esi
push edi
mov edi, 1
mov eax, edi
shl eax, cl
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jbe 0x10029a68
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 [0x1027b75c]
or eax, 1
bsr ecx, eax
push esi
lea ecx, [ecx + 1]
shl edi, cl
mov ecx, 0x1027b764
lea eax, [edi + edi]
push eax
call fcn.10029360
mov ecx, dword [0x1027b75c]
lea ebx, [edi - 1]
mov dword [0x1027b770], ebx
mov dword [0x1027b774], edi
mov ecx, dword [ecx]
mov edx, ecx
cmp ecx, esi
je 0x10029b90
nop dword [eax]
movzx eax, byte [ecx + 8]
xor eax, 0x811c9dc5
mov edx, dword [edx]
imul edi, eax, 0x1000193
movzx eax, byte [ecx + 9]
xor edi, eax
movzx eax, byte [ecx + 0xa]
imul edi, edi, 0x1000193
xor edi, eax
movzx eax, byte [ecx + 0xb]
imul edi, edi, 0x1000193
xor edi, eax
mov eax, dword [0x1027b764]
imul edi, edi, 0x1000193
and edi, ebx
mov ebx, dword [eax + edi*8]
lea eax, [eax + edi*8]
mov dword [esp + 0x14], eax
cmp ebx, esi
jne 0x10029b01
mov dword [eax], ecx
mov dword [eax + 4], ecx
jmp 0x10029b63
mov eax, dword [eax + 4]
mov edi, dword [ecx + 8]
cmp edi, dword [eax + 8]
jne 0x10029b34
mov eax, dword [eax]
cmp eax, ecx
je 0x10029b2b
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 + 0x14]
mov dword [eax + 4], ecx
jmp 0x10029b63
cmp ebx, eax
je 0x10029b44
mov eax, dword [eax + 4]
cmp edi, dword [eax + 8]
je 0x10029b74
cmp ebx, eax
jne 0x10029b38
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 + 0x14]
mov dword [edx + 4], ebp
mov dword [ecx + 4], edi
mov dword [eax], ecx
mov ecx, edx
cmp edx, esi
je 0x10029b90
mov ebx, dword [0x1027b770]
jmp 0x10029ab0
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 0x10029b63
pop edi
pop esi
pop ebp
pop ebx
ret 4
Function at 0x10029ba0
Capabilities:
Hash data using fnv

Disassembly:
mov eax, 0x1fffffff
bsr ecx, eax
push ebx
push ebp
push esi
push edi
mov edi, 1
mov eax, edi
shl eax, cl
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jbe 0x10029bc8
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 [0x1026ec10]
or eax, 1
bsr ecx, eax
push esi
lea ecx, [ecx + 1]
shl edi, cl
mov ecx, 0x1026ec18
lea eax, [edi + edi]
push eax
call fcn.10029360
mov ecx, dword [0x1026ec10]
lea ebx, [edi - 1]
mov dword [0x1026ec24], ebx
mov dword [0x1026ec28], edi
mov ecx, dword [ecx]
mov edx, ecx
cmp ecx, esi
je 0x10029cf0
nop dword [eax]
movzx eax, byte [ecx + 8]
xor eax, 0x811c9dc5
mov edx, dword [edx]
imul edi, eax, 0x1000193
movzx eax, byte [ecx + 9]
xor edi, eax
movzx eax, byte [ecx + 0xa]
imul edi, edi, 0x1000193
xor edi, eax
movzx eax, byte [ecx + 0xb]
imul edi, edi, 0x1000193
xor edi, eax
mov eax, dword [0x1026ec18]
imul edi, edi, 0x1000193
and edi, ebx
mov ebx, dword [eax + edi*8]
lea eax, [eax + edi*8]
mov dword [esp + 0x14], eax
cmp ebx, esi
jne 0x10029c61
mov dword [eax], ecx
mov dword [eax + 4], ecx
jmp 0x10029cc3
mov eax, dword [eax + 4]
mov edi, dword [ecx + 8]
cmp edi, dword [eax + 8]
jne 0x10029c94
mov eax, dword [eax]
cmp eax, ecx
je 0x10029c8b
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 + 0x14]
mov dword [eax + 4], ecx
jmp 0x10029cc3
cmp ebx, eax
je 0x10029ca4
mov eax, dword [eax + 4]
cmp edi, dword [eax + 8]
je 0x10029cd4
cmp ebx, eax
jne 0x10029c98
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 + 0x14]
mov dword [edx + 4], ebp
mov dword [ecx + 4], edi
mov dword [eax], ecx
mov ecx, edx
cmp edx, esi
je 0x10029cf0
mov ebx, dword [0x1026ec24]
jmp 0x10029c10
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 0x10029cc3
pop edi
pop esi
pop ebp
pop ebx
ret 4
Function at 0x1002fda0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0xc], ebx
push esi
push edi
cmp ecx, eax
je 0x1002ff01
mov eax, dword [ebx + 4]
mov esi, ecx
mov edi, dword [ecx + 0xc]
mov edx, 0x811c9dc5
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 8]
xor ecx, ecx
test edi, edi
je 0x1002fe05
mov ebx, eax
nop word [eax + eax]
movzx eax, byte [ebx + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x1002fdf0
mov ebx, dword [esp + 0x14]
mov eax, dword [ebx + 0x18]
mov ecx, dword [esp + 0x18]
and eax, edx
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], eax
mov eax, esi
mov edi, esi
mov esi, dword [esi]
push 0x1c
push eax
call fcn.10183618
dec dword [ebx + 8]
add esp, 8
cmp edi, dword [esp + 0x24]
je 0x1002fe69
cmp esi, dword [ebp + 0xc]
jne 0x1002fe22
mov eax, dword [esp + 0x10]
cmp eax, dword [ebp + 8]
jne 0x1002fef5
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov dword [ecx], esi
mov dword [eax], esi
mov dword [esi + 4], eax
mov eax, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ebp + 8]
jne 0x1002fe7e
mov eax, dword [esp + 0x1c]
mov dword [ecx], eax
jmp 0x1002fe82
mov eax, dword [esp + 0x20]
mov dword [ecx + 4], eax
cmp esi, dword [ebp + 0xc]
je 0x1002fef5
nop word [eax + eax]
mov edi, dword [esi + 0xc]
xor ecx, ecx
mov edx, 0x811c9dc5
test edi, edi
je 0x1002feb6
mov ebx, dword [esi + 8]
movzx eax, byte [ebx + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x1002fea1
mov ebx, dword [esp + 0x14]
mov eax, dword [ebx + 0x18]
mov ecx, dword [esp + 0x18]
and eax, edx
lea eax, [ecx + eax*8]
mov dword [esp + 0x10], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x24], eax
nop dword [eax]
mov eax, esi
mov edi, esi
mov esi, dword [esi]
push 0x1c
push eax
call fcn.10183618
dec dword [ebx + 8]
add esp, 8
cmp edi, dword [esp + 0x24]
je 0x1002ff0a
cmp esi, dword [ebp + 0xc]
jne 0x1002fed0
mov eax, dword [esp + 0x10]
mov dword [eax], esi
mov eax, dword [esp + 0x20]
mov dword [eax], esi
mov dword [esi + 4], eax
mov eax, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov dword [eax], ecx
mov dword [eax + 4], ecx
cmp esi, dword [ebp + 0xc]
jne 0x1002fe90
mov eax, dword [esp + 0x20]
pop edi
mov dword [eax], esi
mov dword [esi + 4], eax
mov eax, dword [ebp + 0xc]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8