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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov edx, dword [ebp + 8]
mov eax, 0x1fffffff
push ebx
mov ebx, ecx
bsr ecx, eax
push esi
push edi
mov edi, 1
mov dword [ebp - 0xc], ebx
mov eax, edi
shl eax, cl
cmp edx, eax
ja 0x100109eb
mov esi, dword [ebx + 4]
lea eax, [edx - 1]
or eax, edi
mov dword [ebp + 8], esi
bsr ecx, eax
push esi
lea ecx, [ecx + 1]
shl edi, cl
lea ecx, [ebx + 0xc]
lea eax, [edi + edi]
push eax
call fcn.100107a0
lea eax, [edi - 1]
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], eax
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov ecx, eax
cmp eax, esi
je 0x100109be
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
imul edx, edi, 0x1000193
mov edi, dword [ebx + 0x18]
and edi, edx
mov edx, dword [ebx + 0xc]
mov ebx, dword [edx + edi*8]
lea edx, [edx + edi*8]
mov dword [ebp - 4], edx
cmp ebx, esi
jne 0x10010944
mov dword [edx], eax
mov dword [edx + 4], eax
jmp 0x100109b1
mov edx, dword [edx + 4]
mov edi, dword [eax + 8]
cmp edi, dword [edx + 8]
jne 0x1001097e
mov edx, dword [edx]
mov dword [ebp - 8], edx
cmp edx, eax
je 0x10010976
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 0x100109b1
cmp ebx, edx
je 0x1001098e
mov edx, dword [edx + 4]
cmp edi, dword [edx + 8]
je 0x100109c7
cmp ebx, edx
jne 0x10010982
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 ebx, dword [ebp - 0xc]
mov eax, ecx
cmp ecx, esi
jne 0x100108f2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
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 0x100109b1
push str.invalid_hash_bucket_count
call fcn.10094d5b
int3
Function at 0x10013350
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov edx, dword [ebp + 0xc]
mov eax, ecx
push ebx
push esi
push edi
cmp dword [edx + 0x14], 8
mov edi, edx
mov ebx, dword [edx + 0x10]
mov dword [ebp - 4], eax
jb 0x1001336e
mov edi, dword [edx]
xor ecx, ecx
mov esi, 0x811c9dc5
add ebx, ebx
je 0x10013394
nop dword [eax]
movzx eax, byte [ecx + edi]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, ebx
jb 0x10013380
mov eax, dword [ebp - 4]
push esi
push edx
lea ecx, [ebp - 0xc]
push ecx
mov ecx, eax
call fcn.100131a0
pop edi
pop esi
pop ebx
mov ecx, dword [eax + 4]
mov eax, dword [ebp + 8]
test ecx, ecx
jne 0x100133b4
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 4]
mov dword [eax], ecx
mov esp, ebp
pop ebp
ret 8
Function at 0x10013d30
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov edx, dword [ebp + 8]
mov eax, 0x1fffffff
push ebx
mov ebx, ecx
bsr ecx, eax
push esi
mov esi, 1
mov dword [ebp - 0x10], ebx
mov eax, esi
shl eax, cl
push edi
cmp edx, eax
ja 0x10013eab
lea eax, [edx - 1]
or eax, esi
bsr ecx, eax
mov eax, dword [ebx + 4]
push eax
mov dword [ebp - 4], eax
lea ecx, [ecx + 1]
shl esi, cl
lea ecx, [ebx + 0xc]
lea eax, [esi + esi]
push eax
call fcn.100107a0
lea eax, [esi - 1]
mov dword [ebx + 0x1c], esi
mov dword [ebx + 0x18], eax
mov edi, dword [ebx + 4]
mov edi, dword [edi]
cmp edi, dword [ebp - 4]
je 0x10013e86
mov esi, edi
cmp dword [esi + 0x1c], 8
lea edx, [esi + 8]
mov edi, dword [edi]
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0xc], edi
mov dword [ebp + 8], edx
jb 0x10013dac
mov eax, dword [edx]
mov dword [ebp + 8], eax
lea eax, [ecx + ecx]
mov ebx, 0x811c9dc5
xor ecx, ecx
mov dword [ebp - 8], eax
test eax, eax
je 0x10013dd9
mov edx, dword [ebp + 8]
mov edi, eax
movzx eax, byte [ecx + edx]
inc ecx
xor eax, ebx
imul ebx, eax, 0x1000193
cmp ecx, edi
jb 0x10013dc2
mov edi, dword [ebp - 0xc]
lea edx, [esi + 8]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
and ecx, ebx
lea eax, [eax + ecx*8]
mov ecx, dword [ebp - 4]
mov dword [ebp + 8], eax
cmp dword [eax], ecx
jne 0x10013dfb
mov dword [eax], esi
mov dword [eax + 4], esi
jmp 0x10013e7b
mov ebx, dword [eax + 4]
lea eax, [ebx + 8]
push eax
push edx
call fcn.10012d70
add esp, 8
test al, al
je 0x10013e35
mov ebx, dword [ebx]
cmp ebx, esi
je 0x10013e2d
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 0x10013e7b
mov eax, dword [ebp + 8]
cmp dword [eax], ebx
je 0x10013e5e
nop dword [eax]
mov ebx, dword [ebx + 4]
lea eax, [ebx + 8]
push eax
lea eax, [esi + 8]
push eax
call fcn.10012d70
add esp, 8
test al, al
jne 0x10013e8f
mov eax, dword [ebp + 8]
cmp dword [eax], ebx
jne 0x10013e40
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 0x10013d93
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 0x10013e7b
push str.invalid_hash_bucket_count
call fcn.10094d5b
int3
Function at 0x10016ab0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100d9285
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push esi
push edi
mov eax, dword [0x10110f74]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edx, ecx
mov dword [ebp - 0x10], edx
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x14], edi
cmp dword [edi + 0x14], 8
mov ecx, dword [edi + 0x10]
jb 0x10016af0
mov eax, dword [edi]
mov dword [ebp - 0x14], eax
lea eax, [ecx + ecx]
mov esi, 0x811c9dc5
xor ecx, ecx
test eax, eax
je 0x10016b1a
mov edx, dword [ebp - 0x14]
mov edi, eax
movzx eax, byte [ecx + edx]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, edi
jb 0x10016b03
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp - 0x10]
push esi
push edi
lea eax, [ebp - 0x18]
mov ecx, edx
push eax
call fcn.100131a0
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x10016b3a
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
xor al, al
jmp 0x10016c22
mov eax, dword [ebp - 0x10]
cmp dword [eax + 8], 0x7ffffff
je 0x10016c41
add eax, 4
mov dword [ebp - 0x20], eax
push 0x20
mov dword [ebp - 4], 0
mov dword [ebp - 0x1c], 0
call fcn.100ac57f
xorps xmm0, xmm0
mov dword [ebp - 0x1c], eax
add esp, 4
movups xmmword [eax + 8], xmm0
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
movups xmm0, xmmword [edi]
movups xmmword [eax + 8], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [eax + 0x18], xmm0
xor eax, eax
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 7
mov word [edi], ax
mov edi, dword [ebp - 0x10]
mov dword [ebp - 4], 1
mov eax, dword [edi + 8]
inc eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100e3e50]
mov eax, dword [edi + 0x1c]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100e3e50]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [edi]
jbe 0x10016c0c
mov ecx, edi
call fcn.10014130
mov eax, dword [ebp - 0x1c]
mov ecx, edi
push esi
add eax, 8
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.100131a0
mov ecx, dword [eax]
jmp 0x10016c0f
mov ecx, dword [ebp - 0x18]
push dword [ebp - 0x1c]
push ecx
push esi
mov ecx, edi
call fcn.100140d0
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
mov esp, ebp
pop ebp
ret 8
push str.unordered_map_set_too_long
call fcn.10094d5b
int3
Function at 0x10016c50
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100d92c5
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x10110f74]
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], 8
mov eax, dword [edi + 0x10]
jb 0x10016c8a
mov edx, dword [edi]
xor ecx, ecx
mov esi, 0x811c9dc5
add eax, eax
je 0x10016cab
mov edi, eax
movzx eax, byte [ecx + edx]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, edi
jb 0x10016c97
mov edi, dword [ebp + 0xc]
push esi
push edi
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
call fcn.100131a0
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x10016ccb
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
xor al, al
jmp 0x10016d7e
cmp dword [ebx + 8], 0x7ffffff
je 0x10016d9e
lea eax, [ebx + 4]
mov dword [ebp - 0x1c], eax
push 0x20
mov dword [ebp - 4], 0
mov dword [ebp - 0x18], 0
call fcn.100ac57f
add esp, 4
mov dword [ebp - 0x18], eax
add eax, 8
mov ecx, eax
mov dword [ebp + 0xc], eax
push edi
call fcn.100134e0
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 + 0x100e3e50]
mov eax, dword [ebx + 0x1c]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100e3e50]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [ebx]
jbe 0x10016d68
mov ecx, ebx
call fcn.10014130
push esi
push dword [ebp + 0xc]
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
call fcn.100131a0
mov ecx, dword [eax]
jmp 0x10016d6b
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0x18]
push ecx
push esi
mov ecx, ebx
call fcn.100140d0
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.10094d5b
int3
Function at 0x1001e190
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
push str.PPSSPP:_enter
call fcn.100037c0
add esp, 4
call fcn.1001d090
cmp dword [0x1011061c], 9
jne 0x1001e1c8
cmp dword [0x10110620], 9
jne 0x1001e1c8
cmp dword [0x10110624], 0
jne 0x1001e1c8
call fcn.1001ccb0
call fcn.1001ad40
call fcn.1001ba90
call fcn.1001bed0
call fcn.1001bcb0
call fcn.1001b880
call fcn.1001c310
call fcn.1001c710
cmp dword [0x1011061c], 9
jne 0x1001e207
cmp dword [0x10110620], 8
jne 0x1001e207
call fcn.1001c8e0
call fcn.1001cad0
push ebx
call fcn.1001b690
mov bl, al
call fcn.1001b460
call fcn.1001d7f0
call fcn.1001d600
call fcn.1001b260
call fcn.1001b070
call fcn.1001ce80
test bl, bl
pop ebx
jne 0x1001e23c
call fcn.1001c520
call fcn.1001c110
push esi
push str.PPSSPP:_leave
call fcn.100037c0
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 0x1001e2fd
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 0x1001e278
add esi, dword [ebp - 0x3c]
jmp 0x1001e2f3
mov eax, dword [ebp - 0x10]
cmp eax, 0x1f00000
jne 0x1001e2f1
cmp dword [ebp - 8], 4
jne 0x1001e2f1
cmp dword [ebp - 4], 0x40000
jne 0x1001e2f1
push str.PPSSPP_memory_found:_searching_for_hooks_should_yield_working_hook_codes
call fcn.100037c0
lea eax, [esi - 0x8000000]
mov dword [0x101100d0], 6
mov dword [0x101100e8], eax
add esp, 4
mov eax, dword [ebp - 0x10]
mov dword [0x101100a8], 0x360ad83
mov word [0x101100ac], 0
mov dword [0x101100d4], 0
mov dword [0x101100f0], 0
mov dword [0x101100f8], 0xffffffff
mov dword [0x1011031c], 0x1001ad20
add esi, eax
cmp esi, dword [ebp - 0x34]
jb 0x1001e266
pop edi
mov al, 1
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x1001fb30
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 0x1002c730
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x608
push esi
push edi
push str.Engine.dll
push 0x78
push 0x10110100
call fcn.100b83b0
mov esi, dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
add esp, 0xc
push 0x101158d0
push 0x40
push 2
push esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, 0xc340
xorps xmm0, xmm0
push 0xf0
mov word [esi], ax
lea eax, [ebp - 0x5ec]
push 0
push eax
movlpd qword [ebp - 0x5fc], xmm0
movlpd qword [ebp - 0x5f4], xmm0
call fcn.100af1f0
push 0x78
lea eax, [ebp - 0x4fc]
push 0
push eax
call fcn.100af1f0
push 0x5c
lea eax, [ebp - 0x484]
push 0
push eax
call fcn.100af1f0
push 0x34
lea eax, [ebp - 0x420]
mov dword [ebp - 0x428], 0x6e6b6e75
push 0
push eax
mov dword [ebp - 0x424], 0x6e776f
call fcn.100af1f0
mov eax, dword [0x100e3e30]
movq xmm0, qword [str.HB0_0]
push 0x3dc
mov dword [ebp - 0x3e4], eax
lea eax, [ebp - 0x3e0]
push 0
push eax
movq qword [ebp - 0x3ec], xmm0
call fcn.100af1f0
mov eax, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea esi, [ebp - 0x608]
add esp, 0x3c
mov dword [ebp - 0x608], eax
mov ecx, 0x182
mov dword [ebp - 0x604], 0
mov dword [ebp - 0x484], 0x101
mov dword [ebp - 0x600], 4
push 0x8000
push 0x100e643c
sub esp, 0x608
mov dword [ebp - 0x468], 0x10026480
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.100038d0
mov eax, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea esi, [ebp - 0x608]
add esp, 0x610
mov dword [ebp - 0x608], eax
mov ecx, 0x182
mov dword [ebp - 0x604], 0
mov dword [ebp - 0x484], 3
mov dword [ebp - 0x468], 0x100270d0
push 0x8000
push 0x100e6450
sub esp, 0x608
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.100038d0
add esp, 0x610
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret

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

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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100da2e5
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x10110f74]
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], 0x10
jb 0x10035d87
mov edi, dword [edx]
xor ecx, ecx
mov esi, 0x811c9dc5
cmp dword [edx + 0x10], ecx
jbe 0x10035da5
movzx eax, byte [ecx + edi]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, dword [edx + 0x10]
jb 0x10035d93
push esi
push edx
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
call fcn.10035bf0
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x10035dd6
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 0x10035f28
lea eax, [ebx + 4]
mov dword [ebp - 0x1c], eax
push 0x20
mov dword [ebp - 4], 0
mov dword [ebp - 0x18], 0
call fcn.100ac57f
add esp, 4
mov edi, eax
mov dword [ebp - 0x18], edi
push dword [ebp + 0xc]
lea ecx, [edi + 8]
call fcn.10035f40
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 + 0x100e3e50]
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 + 0x100e3e50]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, xmm3
jbe 0x10035eca
divss xmm2, xmm3
sub esp, 8
cvtps2pd xmm0, xmm2
movsd qword [ebp - 0x14], xmm0
fld qword [ebp - 0x14]
fstp qword [esp]
call fcn.100bc740
fstp qword [ebp - 0x14]
movsd xmm0, qword [ebp - 0x14]
add esp, 8
cvtpd2ps xmm0, xmm0
call fcn.100ac810
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
mov eax, dword [ebx + 0x1c]
cmp eax, ecx
jae 0x10035eae
cmp eax, 0x200
jae 0x10035eac
shl eax, 3
cmp eax, ecx
jae 0x10035eae
mov eax, ecx
push eax
mov ecx, ebx
call fcn.10036630
push esi
lea eax, [edi + 8]
mov ecx, ebx
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10035bf0
mov edx, dword [eax]
jmp 0x10035ecd
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 0x10035ef5
mov dword [ecx + eax*8], edi
jmp 0x10035f07
cmp esi, edx
jne 0x10035efe
mov dword [ecx + eax*8], edi
jmp 0x10035f0b
mov edx, dword [ebp + 0xc]
cmp dword [ecx + eax*8 + 4], edx
jne 0x10035f0b
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.10094d5b
int3
Function at 0x10036630
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov edx, dword [ebp + 8]
mov eax, 0x1fffffff
push ebx
mov ebx, ecx
bsr ecx, eax
push esi
mov esi, 1
mov dword [ebp - 0x10], ebx
mov eax, esi
shl eax, cl
push edi
cmp edx, eax
ja 0x100367ab
lea eax, [edx - 1]
or eax, esi
bsr ecx, eax
mov eax, dword [ebx + 4]
push eax
mov dword [ebp - 4], eax
lea ecx, [ecx + 1]
shl esi, cl
lea ecx, [ebx + 0xc]
lea eax, [esi + esi]
push eax
call fcn.100107a0
lea eax, [esi - 1]
mov dword [ebx + 0x1c], esi
mov dword [ebx + 0x18], eax
mov edi, dword [ebx + 4]
mov edi, dword [edi]
cmp edi, dword [ebp - 4]
je 0x10036786
mov esi, edi
cmp dword [esi + 0x1c], 0x10
lea edx, [esi + 8]
mov edi, dword [edi]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], eax
mov dword [ebp + 8], edx
jb 0x100366af
mov eax, dword [edx]
mov dword [ebp + 8], eax
xor ecx, ecx
mov ebx, 0x811c9dc5
cmp dword [edx + 0x10], ecx
jbe 0x100366d8
mov edx, dword [ebp + 8]
mov edi, dword [ebp - 8]
movzx eax, byte [ecx + edx]
inc ecx
xor eax, ebx
imul ebx, eax, 0x1000193
cmp ecx, edi
jb 0x100366c1
mov edi, dword [ebp - 0xc]
lea edx, [esi + 8]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
and ecx, ebx
lea eax, [eax + ecx*8]
mov ecx, dword [ebp - 4]
mov dword [ebp + 8], eax
cmp dword [eax], ecx
jne 0x100366fa
mov dword [eax], esi
mov dword [eax + 4], esi
jmp 0x1003677b
mov ebx, dword [eax + 4]
lea eax, [ebx + 8]
push eax
push edx
call fcn.100118b0
add esp, 8
test al, al
je 0x10036734
mov ebx, dword [ebx]
cmp ebx, esi
je 0x1003672c
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 0x1003677b
mov eax, dword [ebp + 8]
cmp dword [eax], ebx
je 0x1003675e
nop dword [eax + eax]
mov ebx, dword [ebx + 4]
lea eax, [ebx + 8]
push eax
lea eax, [esi + 8]
push eax
call fcn.100118b0
add esp, 8
test al, al
jne 0x1003678f
mov eax, dword [ebp + 8]
cmp dword [eax], ebx
jne 0x10036740
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 0x10036693
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 0x1003677b
push str.invalid_hash_bucket_count
call fcn.10094d5b
int3
Function at 0x100382e0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100da4f5
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x10110f74]
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.10010020
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x10038373
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 0x100384c1
lea eax, [edi + 4]
mov dword [ebp - 0x14], eax
push 0xc
mov dword [ebp - 4], 0
mov dword [ebp - 0x10], 0
call fcn.100ac57f
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 + 0x100e3e50]
mov eax, ebx
shr eax, 0x1f
cvtpd2ps xmm2, xmm0
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
movaps xmm1, xmm2
addsd xmm0, qword [eax*8 + 0x100e3e50]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, xmm3
jbe 0x10038463
divss xmm2, xmm3
sub esp, 8
cvtps2pd xmm0, xmm2
movsd qword [ebp - 0x1c], xmm0
fld qword [ebp - 0x1c]
fstp qword [esp]
call fcn.100bc740
fstp qword [ebp - 0x1c]
movsd xmm0, qword [ebp - 0x1c]
add esp, 8
cvtpd2ps xmm0, xmm0
call fcn.100ac810
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp ebx, ecx
jae 0x10038445
cmp ebx, 0x200
jae 0x10038443
shl ebx, 3
cmp ebx, ecx
jae 0x10038445
mov ebx, ecx
push ebx
mov ecx, edi
call fcn.10038a60
push dword [ebp + 0xc]
lea eax, [esi + 8]
mov ecx, edi
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10010020
mov edx, dword [eax]
jmp 0x10038466
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 0x10038491
mov dword [ecx + eax*8], esi
jmp 0x100384a0
cmp edi, edx
jne 0x1003849a
mov dword [ecx + eax*8], esi
jmp 0x100384a4
cmp dword [ecx + eax*8 + 4], ebx
jne 0x100384a4
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.10094d5b
int3