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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100adb15
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x100d3cc0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov edi, dword [ebp + 0xc]
mov edx, edi
cmp dword [edi + 0x14], 7
mov eax, dword [edi + 0x10]
jbe 0x10016a2a
mov edx, dword [edi]
xor ecx, ecx
mov esi, 0x811c9dc5
add eax, eax
je 0x10016a4b
mov edi, eax
movzx eax, byte [edx + ecx]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, edi
jb 0x10016a37
mov edi, dword [ebp + 0xc]
push esi
push edi
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
call fcn.10012970
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x10016a6b
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
xor al, al
jmp 0x10016b1e
cmp dword [ebx + 8], 0x7ffffff
je 0x10016b3e
lea eax, [ebx + 4]
mov dword [ebp - 0x1c], eax
push 0x20
mov dword [ebp - 4], 0
mov dword [ebp - 0x18], 0
call fcn.1009ce1f
add esp, 4
mov dword [ebp - 0x18], eax
add eax, 8
mov ecx, eax
mov dword [ebp + 0xc], eax
push edi
call fcn.10012cb0
mov eax, dword [ebx + 8]
inc eax
mov dword [ebp - 4], 1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100b8b80]
mov eax, dword [ebx + 0x1c]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100b8b80]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [ebx]
jbe 0x10016b08
mov ecx, ebx
call fcn.10013750
push esi
push dword [ebp + 0xc]
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
call fcn.10012970
mov ecx, dword [eax]
jmp 0x10016b0b
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0x18]
push ecx
push esi
mov ecx, ebx
call fcn.100136f0
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
mov al, 1
mov esi, 4
mov edx, ecx
mov byte [esi + edx], al
mov eax, ecx
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.100859cb
int3
Function at 0x1001c4e0
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
push str.PPSSPP:_enter
call fcn.100039b0
add esp, 4
call fcn.1001b4c0
cmp dword [0x100d33bc], 9
jne 0x1001c518
cmp dword [0x100d33c0], 9
jne 0x1001c518
cmp dword [0x100d33c4], 0
jne 0x1001c518
call fcn.1001b1d0
call fcn.10019810
call fcn.1001a320
call fcn.1001a690
call fcn.1001a4d0
call fcn.1001a180
call fcn.1001aa10
call fcn.1001ad50
cmp dword [0x100d33bc], 9
jne 0x1001c557
cmp dword [0x100d33c0], 8
jne 0x1001c557
call fcn.1001aec0
call fcn.1001b050
push ebx
call fcn.10019ff0
mov bl, al
call fcn.10019e10
call fcn.1001bb90
call fcn.1001ba00
call fcn.10019c70
call fcn.10019ae0
call fcn.1001b320
test bl, bl
pop ebx
jne 0x1001c58c
call fcn.1001abc0
call fcn.1001a870
push esi
push str.PPSSPP:_leave
call fcn.100039b0
add esp, 4
lea eax, [ebp - 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
xor esi, esi
cmp dword [ebp - 0x34], esi
jbe 0x1001c64d
push edi
mov edi, dword [sym.imp.KERNEL32.dll_VirtualQuery]
push 0x1c
lea eax, [ebp - 0x1c]
push eax
push esi
call edi
test eax, eax
jne 0x1001c5c8
add esi, dword [ebp - 0x3c]
jmp 0x1001c643
mov eax, dword [ebp - 0x10]
cmp eax, 0x1f00000
jne 0x1001c641
cmp dword [ebp - 8], 4
jne 0x1001c641
cmp dword [ebp - 4], 0x40000
jne 0x1001c641
push str.PPSSPP_memory_found:_searching_for_hooks_should_yield_working_hook_codes
call fcn.100039b0
lea eax, [esi - 0x8000000]
mov dword [0x100d30a8], 6
mov dword [0x100d30c0], eax
add esp, 4
mov eax, dword [ebp - 0x10]
mov dword [0x100d3080], 0x360ad83
mov word [0x100d3084], 0
mov dword [0x100d30ac], 0
mov dword [0x100d30c8], 0
mov dword [0x100d30d0], 0xffffffff
mov dword [0x100d32f8], 0x100197e0
add esi, eax
cmp esi, dword [ebp - 0x34]
jb 0x1001c5b6
pop edi
mov al, 1
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x1001dcd0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [edx + 1]
xor ecx, eax
movzx eax, byte [edx + 2]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [edx + 3]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [edx + 4]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [edx + 5]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [edx + 6]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [edx + 7]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
pop ebp
ret 4
Function at 0x1002a030
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5f8
push ebx
push esi
push edi
push str.Engine.dll
push 0x78
push 0x100d30d8
call fcn.1009e4d0
mov esi, dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
add esp, 0xc
push 0x100d7bf0
push 0x40
push 2
push esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, 0xc340
push 0x5f8
mov word [esi], ax
lea eax, [ebp - 0x5f8]
push 0
push eax
call sub.msvcrt.dll_memset
mov eax, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea esi, [ebp - 0x5f8]
add esp, 0xc
mov dword [ebp - 0x5f8], eax
mov ecx, 0x17e
mov dword [ebp - 0x5f4], 0
mov dword [ebp - 0x478], 0x101
mov dword [ebp - 0x474], 0
push 0x100baff4
sub esp, 0x5f8
mov dword [ebp - 0x5f0], 4
mov edi, esp
mov dword [ebp - 0x458], 0x10024100
rep movsd dword es:[edi], dword [esi]
call fcn.10003c20
mov edx, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea esi, [ebp - 0x5f8]
add esp, 0x5fc
mov dword [ebp - 0x5f8], edx
mov ecx, 0x17e
mov dword [ebp - 0x5f4], 0
mov dword [ebp - 0x478], 3
mov bl, al
mov dword [ebp - 0x474], 0
push 0x100bb008
sub esp, 0x5f8
mov dword [ebp - 0x458], 0x10024cb0
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.10003c20
add esp, 0x5fc
or al, bl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x1002a190
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 0xc]
mov edx, 0x811c9dc5
push edi
mov edi, dword [ebp + 8]
mov ecx, 0
sub esi, edi
sar esi, 1
add esi, esi
je 0x1002a1c1
nop dword [eax]
movzx eax, byte [edi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x1002a1b0
pop edi
mov eax, edx
pop esi
pop ebp
ret 8
Function at 0x10033070
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100aeba5
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x100d3cc0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov edx, dword [ebp + 0xc]
mov edi, edx
cmp dword [edx + 0x14], 0xf
jbe 0x100330a7
mov edi, dword [edx]
xor ecx, ecx
mov esi, 0x811c9dc5
cmp dword [edx + 0x10], ecx
jbe 0x100330c5
movzx eax, byte [edi + ecx]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, dword [edx + 0x10]
jb 0x100330b3
push esi
push edx
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
call fcn.10032f10
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x100330f6
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 ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [ebx + 8], 0x7ffffff
je 0x10033248
lea eax, [ebx + 4]
mov dword [ebp - 0x1c], eax
push 0x20
mov dword [ebp - 4], 0
mov dword [ebp - 0x18], 0
call fcn.1009ce1f
add esp, 4
mov edi, eax
mov dword [ebp - 0x18], edi
push dword [ebp + 0xc]
lea ecx, [edi + 8]
call fcn.10033260
mov eax, dword [ebx + 8]
inc eax
movss xmm3, dword [ebx]
mov dword [ebp - 4], 1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100b8b80]
mov eax, dword [ebx + 0x1c]
cvtpd2ps xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movaps xmm1, xmm2
addsd xmm0, qword [eax*8 + 0x100b8b80]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, xmm3
jbe 0x100331ea
divss xmm2, xmm3
sub esp, 8
cvtps2pd xmm0, xmm2
movsd qword [ebp - 0x14], xmm0
fld qword [ebp - 0x14]
fstp qword [esp]
call sub.msvcrt.dll_ceil
fstp qword [ebp - 0x14]
movsd xmm0, qword [ebp - 0x14]
add esp, 8
cvtpd2ps xmm0, xmm0
call fcn.1009cf80
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
mov eax, dword [ebx + 0x1c]
cmp eax, ecx
jae 0x100331ce
cmp eax, 0x200
jae 0x100331cc
shl eax, 3
cmp eax, ecx
jae 0x100331ce
mov eax, ecx
push eax
mov ecx, ebx
call fcn.10033760
push esi
lea eax, [edi + 8]
mov ecx, ebx
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10032f10
mov edx, dword [eax]
jmp 0x100331ed
mov edx, dword [ebp - 0x14]
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 + 0xc], eax
mov eax, dword [ebx + 0x18]
and eax, esi
mov esi, dword [ecx + eax*8]
cmp esi, dword [ebx + 4]
jne 0x10033215
mov dword [ecx + eax*8], edi
jmp 0x10033227
cmp esi, edx
jne 0x1003321e
mov dword [ecx + eax*8], edi
jmp 0x1003322b
mov edx, dword [ebp + 0xc]
cmp dword [ecx + eax*8 + 4], edx
jne 0x1003322b
mov dword [ecx + eax*8 + 4], edi
mov eax, dword [ebp + 8]
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.100859cb
int3
Function at 0x10033760
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov edx, dword [ebp + 8]
mov eax, 0x1fffffff
push ebx
push esi
push edi
mov edi, ecx
mov esi, 1
bsr ecx, eax
mov eax, esi
mov dword [ebp - 0xc], edi
shl eax, cl
cmp edx, eax
ja 0x100338cb
mov ebx, dword [edi + 4]
lea eax, [edx - 1]
or eax, esi
mov dword [ebp - 4], ebx
bsr ecx, eax
push ebx
lea ecx, [ecx + 1]
shl esi, cl
lea ecx, [edi + 0xc]
lea eax, [esi + esi]
push eax
call fcn.10010500
lea eax, [esi - 1]
mov dword [edi + 0x1c], esi
mov dword [edi + 0x18], eax
mov edi, dword [edi + 4]
mov edi, dword [edi]
cmp edi, ebx
je 0x100338a6
mov esi, edi
cmp dword [esi + 0x1c], 0xf
lea ebx, [esi + 8]
mov edi, dword [edi]
mov ecx, dword [esi + 0x18]
mov dword [ebp - 8], edi
mov dword [ebp + 8], ecx
jbe 0x100337d9
mov ebx, dword [esi + 8]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x18], ecx
jbe 0x100337fc
mov edi, dword [ebp + 8]
movzx eax, byte [ebx + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x100337e8
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
and edx, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
lea eax, [eax + edx*8]
mov dword [ebp + 8], eax
cmp dword [eax], ecx
jne 0x1003381c
mov dword [eax], esi
mov dword [eax + 4], esi
jmp 0x1003389b
mov ebx, dword [eax + 4]
lea eax, [ebx + 8]
push eax
lea eax, [esi + 8]
push eax
call fcn.10011250
add esp, 8
test al, al
je 0x10033859
mov ebx, dword [ebx]
cmp ebx, esi
je 0x10033851
mov edx, dword [esi + 4]
mov dword [edx], edi
mov ecx, dword [edi + 4]
mov dword [ecx], ebx
mov eax, dword [ebx + 4]
mov dword [eax], esi
mov dword [ebx + 4], ecx
mov dword [edi + 4], edx
mov dword [esi + 4], eax
mov eax, dword [ebp + 8]
mov dword [eax + 4], esi
jmp 0x1003389b
mov eax, dword [ebp + 8]
cmp dword [eax], ebx
je 0x1003387e
mov ebx, dword [ebx + 4]
lea eax, [ebx + 8]
push eax
lea eax, [esi + 8]
push eax
call fcn.10011250
add esp, 8
test al, al
jne 0x100338af
mov eax, dword [ebp + 8]
cmp dword [eax], ebx
jne 0x10033860
mov edx, dword [esi + 4]
mov dword [edx], edi
mov ecx, dword [edi + 4]
mov dword [ecx], ebx
mov eax, dword [ebx + 4]
mov dword [eax], esi
mov dword [ebx + 4], ecx
mov dword [edi + 4], edx
mov dword [esi + 4], eax
mov eax, dword [ebp + 8]
mov dword [eax], esi
mov esi, edi
cmp edi, dword [ebp - 4]
jne 0x100337c2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [esi + 4]
mov ebx, dword [ebx]
mov dword [edx], edi
mov ecx, dword [edi + 4]
mov dword [ecx], ebx
mov eax, dword [ebx + 4]
mov dword [eax], esi
mov dword [ebx + 4], ecx
mov dword [edi + 4], edx
mov dword [esi + 4], eax
jmp 0x1003389b
push str.invalid_hash_bucket_count
call fcn.100859cb
int3
Function at 0x10035270
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100aed75
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x100d3cc0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov ebx, dword [ebp + 0xc]
movzx eax, byte [ebx]
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
movzx eax, byte [ebx + 1]
xor edx, eax
movzx eax, byte [ebx + 2]
imul edx, edx, 0x1000193
xor edx, eax
movzx eax, byte [ebx + 3]
imul ecx, edx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, edi
push eax
mov dword [ebp + 0xc], eax
lea eax, [ebp - 0x1c]
push ebx
push eax
call fcn.1000fdf0
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x10035303
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 ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [edi + 8], 0x15555555
je 0x10035451
lea eax, [edi + 4]
mov dword [ebp - 0x14], eax
push 0xc
mov dword [ebp - 4], 0
mov dword [ebp - 0x10], 0
call fcn.1009ce1f
mov ecx, dword [ebx]
mov esi, eax
add esp, 4
mov dword [ebp - 0x10], esi
mov dword [esi + 8], ecx
mov eax, dword [edi + 8]
mov ebx, dword [edi + 0x1c]
inc eax
movss xmm3, dword [edi]
mov dword [ebp - 4], 1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100b8b80]
mov eax, ebx
shr eax, 0x1f
cvtpd2ps xmm2, xmm0
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
movaps xmm1, xmm2
addsd xmm0, qword [eax*8 + 0x100b8b80]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, xmm3
jbe 0x100353f3
divss xmm2, xmm3
sub esp, 8
cvtps2pd xmm0, xmm2
movsd qword [ebp - 0x1c], xmm0
fld qword [ebp - 0x1c]
fstp qword [esp]
call sub.msvcrt.dll_ceil
fstp qword [ebp - 0x1c]
movsd xmm0, qword [ebp - 0x1c]
add esp, 8
cvtpd2ps xmm0, xmm0
call fcn.1009cf80
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp ebx, ecx
jae 0x100353d5
cmp ebx, 0x200
jae 0x100353d3
shl ebx, 3
cmp ebx, ecx
jae 0x100353d5
mov ebx, ecx
push ebx
mov ecx, edi
call fcn.10035690
push dword [ebp + 0xc]
lea eax, [esi + 8]
mov ecx, edi
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.1000fdf0
mov edx, dword [eax]
jmp 0x100353f6
mov edx, dword [ebp - 0x1c]
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]
and eax, dword [ebp + 0xc]
mov ecx, dword [edi + 0xc]
mov esi, dword [ebp - 0x14]
mov edi, dword [ecx + eax*8]
cmp edi, dword [esi]
mov esi, dword [ebp - 0x10]
jne 0x10035421
mov dword [ecx + eax*8], esi
jmp 0x10035430
cmp edi, edx
jne 0x1003542a
mov dword [ecx + eax*8], esi
jmp 0x10035434
cmp dword [ecx + eax*8 + 4], ebx
jne 0x10035434
mov dword [ecx + eax*8 + 4], esi
mov eax, dword [ebp + 8]
mov dword [eax], esi
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.100859cb
int3
Function at 0x10035690
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov edx, dword [ebp + 8]
mov eax, 0x1fffffff
push ebx
push esi
push edi
mov edi, ecx
mov esi, 1
bsr ecx, eax
mov eax, esi
mov dword [ebp - 4], edi
shl eax, cl
cmp edx, eax
ja 0x100357dc
mov ebx, dword [edi + 4]
lea eax, [edx - 1]
or eax, esi
mov dword [ebp - 8], ebx
bsr ecx, eax
push ebx
lea ecx, [ecx + 1]
shl esi, cl
lea ecx, [edi + 0xc]
lea eax, [esi + esi]
push eax
call fcn.10010500
lea eax, [esi - 1]
mov dword [edi + 0x1c], esi
mov dword [edi + 0x18], eax
mov ecx, dword [edi + 4]
mov ecx, dword [ecx]
cmp ecx, ebx
je 0x100357b7
mov eax, ecx
movzx edx, byte [eax + 8]
xor edx, 0x811c9dc5
mov ecx, dword [ecx]
imul esi, edx, 0x1000193
movzx edx, byte [eax + 9]
xor esi, edx
movzx edx, byte [eax + 0xa]
imul esi, esi, 0x1000193
xor esi, edx
movzx edx, byte [eax + 0xb]
imul esi, esi, 0x1000193
xor esi, edx
mov edx, dword [edi + 0xc]
imul esi, esi, 0x1000193
and esi, dword [edi + 0x18]
lea ebx, [edx + esi*8]
mov esi, dword [ebx]
mov dword [ebp + 8], ebx
cmp esi, dword [ebp - 8]
jne 0x10035742
mov dword [ebx], eax
mov dword [ebx + 4], eax
jmp 0x100357ac
mov edx, dword [ebx + 4]
mov edi, dword [eax + 8]
cmp edi, dword [edx + 8]
jne 0x10035779
mov edx, dword [edx]
mov dword [ebp - 0xc], edx
cmp edx, eax
je 0x10035774
mov edi, dword [eax + 4]
mov ebx, dword [ebp - 0xc]
mov dword [edi], ecx
mov esi, dword [ecx + 4]
mov dword [esi], edx
mov edx, dword [edx + 4]
mov dword [edx], eax
mov dword [ebx + 4], esi
mov ebx, dword [ebp + 8]
mov dword [ecx + 4], edi
mov dword [eax + 4], edx
mov dword [ebx + 4], eax
jmp 0x100357a9
cmp esi, edx
je 0x1003578c
nop dword [eax]
mov edx, dword [edx + 4]
cmp edi, dword [edx + 8]
je 0x100357c0
cmp esi, edx
jne 0x10035780
mov ebx, dword [eax + 4]
mov dword [ebx], ecx
mov edi, dword [ecx + 4]
mov dword [edi], edx
mov esi, dword [edx + 4]
mov dword [esi], eax
mov dword [edx + 4], edi
mov edx, dword [ebp + 8]
mov dword [ecx + 4], ebx
mov dword [eax + 4], esi
mov dword [edx], eax
mov edi, dword [ebp - 4]
mov eax, ecx
cmp ecx, dword [ebp - 8]
jne 0x100356f2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edi, dword [eax + 4]
mov ebx, dword [edx]
mov dword [edi], ecx
mov esi, dword [ecx + 4]
mov dword [esi], ebx
mov edx, dword [ebx + 4]
mov dword [edx], eax
mov dword [ebx + 4], esi
mov dword [ecx + 4], edi
mov dword [eax + 4], edx
jmp 0x100357a9
push str.invalid_hash_bucket_count
call fcn.100859cb
int3
Function at 0x100357f0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100aedc5
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, dword [0x100d3cc0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword fs:[0x2c]
mov ecx, dword [0x10c4de44]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10c49c2c]
cmp eax, dword [ecx + 4]
jg 0x100358c6
mov edx, dword [ebp + 8]
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, dh
xor ecx, eax
movzx eax, byte [ebp + 0xa]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [ebp + 0xb]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10c49c0c
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.1000fdf0
mov ecx, dword [0x10c49c10]
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
cmp ecx, dword [0x10c49c10]
je 0x100358a3
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
lea eax, [ebp + 8]
mov ecx, 0x10c49c0c
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10035270
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
push 0x10c49c2c
call fcn.1009cf18
add esp, 4
cmp dword [0x10c49c2c], 0xffffffff
jne 0x10035835
push 0xc
mov dword [ebp - 4], 0
call fcn.1009ce1f
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [0x10c49c10], eax
mov dword [0x10c49c18], 0
mov dword [0x10c49c1c], 0
mov dword [0x10c49c20], 0
push eax
push 0x10
mov ecx, 0x10c49c18
mov byte [ebp - 4], 2
mov dword [0x10c49c24], 7
mov dword [0x10c49c28], 8
mov dword [0x10c49c0c], 0x3f800000
call fcn.10010500
push 0x100b3890
call fcn.1009ccc9
push 0x10c49c2c
mov dword [ebp - 4], 0xffffffff
call fcn.1009cec7
add esp, 8
jmp 0x10035835
Function at 0x10049420
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100af9d5
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x100d3cc0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov ebx, dword [ebp + 0xc]
movzx eax, byte [ebx]
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
movzx eax, byte [ebx + 1]
xor edx, eax
movzx eax, byte [ebx + 2]
imul edx, edx, 0x1000193
xor edx, eax
movzx eax, byte [ebx + 3]
imul ecx, edx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, edi
push eax
mov dword [ebp + 0xc], eax
lea eax, [ebp - 0x1c]
push ebx
push eax
call fcn.1000fdf0
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x100494b3
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 ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [edi + 8], 0xfffffff
je 0x10049608
lea eax, [edi + 4]
mov dword [ebp - 0x14], eax
push 0x10
mov dword [ebp - 4], 0
mov dword [ebp - 0x10], 0
call fcn.1009ce1f
mov ecx, dword [ebx]
mov esi, eax
add esp, 4
mov dword [ebp - 0x10], esi
mov dword [esi + 8], ecx
mov dword [esi + 0xc], 0
mov eax, dword [edi + 8]
mov ebx, dword [edi + 0x1c]
inc eax
movss xmm3, dword [edi]
mov dword [ebp - 4], 1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100b8b80]
mov eax, ebx
shr eax, 0x1f
cvtpd2ps xmm2, xmm0
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
movaps xmm1, xmm2
addsd xmm0, qword [eax*8 + 0x100b8b80]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, xmm3
jbe 0x100495aa
divss xmm2, xmm3
sub esp, 8
cvtps2pd xmm0, xmm2
movsd qword [ebp - 0x1c], xmm0
fld qword [ebp - 0x1c]
fstp qword [esp]
call sub.msvcrt.dll_ceil
fstp qword [ebp - 0x1c]
movsd xmm0, qword [ebp - 0x1c]
add esp, 8
cvtpd2ps xmm0, xmm0
call fcn.1009cf80
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp ebx, ecx
jae 0x1004958c
cmp ebx, 0x200
jae 0x1004958a
shl ebx, 3
cmp ebx, ecx
jae 0x1004958c
mov ebx, ecx
push ebx
mov ecx, edi
call fcn.1004b780
push dword [ebp + 0xc]
lea eax, [esi + 8]
mov ecx, edi
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.1000fdf0
mov edx, dword [eax]
jmp 0x100495ad
mov edx, dword [ebp - 0x1c]
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]
and eax, dword [ebp + 0xc]
mov ecx, dword [edi + 0xc]
mov esi, dword [ebp - 0x14]
mov edi, dword [ecx + eax*8]
cmp edi, dword [esi]
mov esi, dword [ebp - 0x10]
jne 0x100495d8
mov dword [ecx + eax*8], esi
jmp 0x100495e7
cmp edi, edx
jne 0x100495e1
mov dword [ecx + eax*8], esi
jmp 0x100495eb
cmp dword [ecx + eax*8 + 4], ebx
jne 0x100495eb
mov dword [ecx + eax*8 + 4], esi
mov eax, dword [ebp + 8]
mov dword [eax], esi
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.100859cb
int3