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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
mov edx, dword [ebp + 0xc]
push 0xffffffffffffffff
push 0x10163215
push eax
mov dword fs:[0], esp
sub esp, 0x10
cmp dword [edx + 0x14], 0x10
push ebx
push esi
push edi
mov ebx, ecx
mov edi, edx
jb 0x101106dd
mov edi, dword [edx]
xor ecx, ecx
mov esi, 0x811c9dc5
cmp dword [edx + 0x10], ecx
jbe 0x10110702
nop dword [eax]
movzx eax, byte [ecx + edi]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, dword [edx + 0x10]
jb 0x101106f0
push esi
push edx
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
call fcn.10097b50
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x10110732
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 edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [ebx + 8], 0x71c71c7
jne 0x10110746
push str.unordered_map_set_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
lea eax, [ebx + 4]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0
push 0x24
mov dword [ebp - 0x18], 0
call fcn.1015b6a6
add esp, 4
mov edi, eax
mov dword [ebp - 0x18], edi
push dword [ebp + 0xc]
lea ecx, [edi + 8]
call fcn.10094910
mov dword [edi + 0x20], 0
mov dword [ebp - 4], 1
mov eax, dword [ebx + 8]
vmovss xmm1, dword [ebx]
vxorps xmm0, xmm0, xmm0
inc eax
vcvtsi2sd xmm0, xmm0, eax
shr eax, 0x1f
vaddsd xmm0, xmm0, qword [eax*8 + 0x10279850]
mov eax, dword [ebx + 0x1c]
vcvtsd2ss xmm2, xmm0, xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, eax
shr eax, 0x1f
vaddsd xmm0, xmm0, qword [eax*8 + 0x10279850]
vcvtsd2ss xmm0, xmm0, xmm0
vdivss xmm0, xmm2, xmm0
vcomiss xmm0, xmm1
jbe 0x10110812
vdivss xmm0, xmm2, xmm1
call fcn.1005c280
call fcn.1015d610
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
mov eax, dword [ebx + 0x1c]
cmp eax, ecx
jae 0x101107f6
cmp eax, 0x200
jae 0x101107f4
shl eax, 3
cmp eax, ecx
jae 0x101107f6
mov eax, ecx
push eax
mov ecx, ebx
call fcn.100a9410
push esi
lea eax, [edi + 8]
mov ecx, ebx
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10097b50
mov edx, dword [eax]
jmp 0x10110815
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 0x1011083d
mov dword [ecx + eax*8], edi
jmp 0x1011084f
cmp esi, edx
jne 0x10110846
mov dword [ecx + eax*8], edi
jmp 0x10110853
mov edx, dword [ebp + 0xc]
cmp dword [ecx + eax*8 + 4], edx
jne 0x10110853
mov dword [ecx + eax*8 + 4], edi
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword [eax], edi
pop edi
pop esi
mov byte [eax + 4], 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x10110870
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1015f7e5
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
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, [ebp - 0x14]
imul ebx, ecx, 0x1000193
push ebx
push edi
push eax
call fcn.10112650
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x101108f1
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 edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [0x10339c78], 0xfffffff
jne 0x10110908
push str.unordered_map_set_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
mov dword [ebp - 0x1c], 0x10339c74
mov dword [ebp - 4], 0
push 0x10
mov dword [ebp - 0x18], 0
call fcn.1015b6a6
mov ecx, dword [edi]
mov esi, eax
vxorps xmm0, xmm0, xmm0
add esp, 4
mov dword [ebp - 0x18], esi
mov dword [esi + 8], ecx
vmovss dword [esi + 0xc], xmm0
mov dword [ebp - 4], 1
mov ecx, dword [0x10339c78]
mov edi, dword [0x10339c8c]
vmovss xmm1, dword [0x10339c70]
vxorps xmm0, xmm0, xmm0
lea eax, [ecx + 1]
vcvtsi2sd xmm0, xmm0, eax
shr eax, 0x1f
vaddsd xmm0, xmm0, qword [eax*8 + 0x10279850]
vcvtsd2ss xmm2, xmm0, xmm0
vxorps xmm0, xmm0, xmm0
mov eax, edi
shr eax, 0x1f
vcvtsi2sd xmm0, xmm0, edi
vaddsd xmm0, xmm0, qword [eax*8 + 0x10279850]
vcvtsd2ss xmm0, xmm0, xmm0
vdivss xmm0, xmm2, xmm0
vcomiss xmm0, xmm1
jbe 0x101109df
vdivss xmm0, xmm2, xmm1
call fcn.1005c280
call fcn.1015d610
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp edi, ecx
jae 0x101109c1
cmp edi, 0x200
jae 0x101109bf
shl edi, 3
cmp edi, ecx
jae 0x101109c1
mov edi, ecx
push edi
call fcn.10111540
push ebx
lea eax, [esi + 8]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10112650
mov ecx, dword [0x10339c78]
mov edx, dword [eax]
jmp 0x101109e2
mov edx, dword [ebp - 0x14]
mov edi, dword [edx + 4]
inc ecx
mov dword [0x10339c78], ecx
mov dword [esi], edx
mov dword [esi + 4], edi
mov dword [edi], esi
mov dword [edx + 4], esi
mov eax, dword [0x10339c88]
mov ecx, dword [0x10339c7c]
and eax, ebx
mov ebx, dword [ecx + eax*8]
cmp ebx, dword [0x10339c74]
jne 0x10110a13
mov dword [ecx + eax*8], esi
jmp 0x10110a22
cmp ebx, edx
jne 0x10110a1c
mov dword [ecx + eax*8], esi
jmp 0x10110a26
cmp dword [ecx + eax*8 + 4], edi
jne 0x10110a26
mov dword [ecx + eax*8 + 4], esi
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
pop edi
mov dword [eax], esi
pop esi
mov byte [eax + 4], 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x10110ed0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
mov edx, dword [ebp + 0xc]
push 0xffffffffffffffff
push 0x1015f355
push eax
mov dword fs:[0], esp
sub esp, 0x10
cmp dword [edx + 0x14], 0x10
push ebx
push esi
push edi
mov ebx, ecx
mov edi, edx
jb 0x10110efd
mov edi, dword [edx]
xor ecx, ecx
mov esi, 0x811c9dc5
cmp dword [edx + 0x10], ecx
jbe 0x10110f22
nop dword [eax]
movzx eax, byte [ecx + edi]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, dword [edx + 0x10]
jb 0x10110f10
push esi
push edx
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
call fcn.10097b50
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x10110f52
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 edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [ebx + 8], 0x5d1745d
jne 0x10110f66
push str.unordered_map_set_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
lea eax, [ebx + 4]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0
push 0x2c
mov dword [ebp - 0x18], 0
call fcn.1015b6a6
add esp, 4
mov edi, eax
mov dword [ebp - 0x18], edi
push dword [ebp + 0xc]
lea ecx, [edi + 8]
call fcn.10094910
vpxor xmm0, xmm0, xmm0
vmovq qword [edi + 0x20], xmm0
mov dword [edi + 0x28], 0
mov dword [edi + 0x20], 0xffffffff
mov dword [edi + 0x24], 0
mov word [edi + 0x28], pe_nt_image_headers32
mov byte [edi + 0x2a], 0
mov dword [ebp - 4], 1
mov eax, dword [ebx + 8]
vmovss xmm1, dword [ebx]
vxorps xmm0, xmm0, xmm0
inc eax
vcvtsi2sd xmm0, xmm0, eax
shr eax, 0x1f
vaddsd xmm0, xmm0, qword [eax*8 + 0x10279850]
mov eax, dword [ebx + 0x1c]
vcvtsd2ss xmm2, xmm0, xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, eax
shr eax, 0x1f
vaddsd xmm0, xmm0, qword [eax*8 + 0x10279850]
vcvtsd2ss xmm0, xmm0, xmm0
vdivss xmm0, xmm2, xmm0
vcomiss xmm0, xmm1
jbe 0x10111053
vdivss xmm0, xmm2, xmm1
call fcn.1005c280
call fcn.1015d610
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
mov eax, dword [ebx + 0x1c]
cmp eax, ecx
jae 0x10111037
cmp eax, 0x200
jae 0x10111035
shl eax, 3
cmp eax, ecx
jae 0x10111037
mov eax, ecx
push eax
mov ecx, ebx
call fcn.100a9410
push esi
lea eax, [edi + 8]
mov ecx, ebx
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10097b50
mov edx, dword [eax]
jmp 0x10111056
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 0x1011107e
mov dword [ecx + eax*8], edi
jmp 0x10111090
cmp esi, edx
jne 0x10111087
mov dword [ecx + eax*8], edi
jmp 0x10111094
mov edx, dword [ebp + 0xc]
cmp dword [ecx + eax*8 + 4], edx
jne 0x10111094
mov dword [ecx + eax*8 + 4], edi
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword [eax], edi
pop edi
pop esi
mov byte [eax + 4], 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x10114980
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebx, edx
mov edx, dword [ebp + 8]
push esi
push edi
mov edi, ecx
mov dword [ebp - 8], ebx
lea ecx, [edx - 1]
mov dword [ebp - 4], edi
mov dword [ebp - 0x14], ecx
mov eax, ebx
sar ecx, 1
mov dword [ebp - 0x10], ecx
cmp ebx, ecx
jge 0x10114a27
nop dword [eax + eax]
lea esi, [eax + eax]
lea ecx, [esi + 2]
lea eax, [ecx*8]
sub eax, ecx
lea ecx, [edi + eax*8]
lea eax, [ecx - 0x38]
push eax
push ecx
call fcn.10113ed0
movzx eax, al
lea ecx, [esi + 1]
xor eax, 1
add ecx, eax
mov dword [ebp - 0xc], ecx
lea eax, [ecx*8]
sub eax, ecx
mov ecx, dword [ebp - 4]
lea edi, [edi + eax*8]
lea eax, [ebx*8]
sub eax, ebx
push edi
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.10094850
mov eax, dword [edi + 0x18]
lea ecx, [esi + 0x1c]
mov dword [esi + 0x18], eax
lea eax, [edi + 0x1c]
push eax
call fcn.10094850
mov al, byte [edi + 0x34]
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp - 4]
mov byte [esi + 0x34], al
mov eax, dword [ebp - 0xc]
mov ebx, eax
cmp eax, ecx
jl 0x101149b0
mov edx, dword [ebp + 8]
cmp eax, ecx
jne 0x10114a71
test dl, 1
jne 0x10114a71
mov ecx, dword [ebp - 4]
lea eax, [edx*8]
sub eax, edx
lea edi, [edi + eax*8]
lea eax, [ebx*8]
add edi, 0xffffffc8
sub eax, ebx
push edi
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.10094850
mov eax, dword [edi + 0x18]
lea ecx, [esi + 0x1c]
mov dword [esi + 0x18], eax
lea eax, [edi + 0x1c]
push eax
call fcn.10094850
mov al, byte [edi + 0x34]
mov ebx, dword [ebp - 0x14]
mov byte [esi + 0x34], al
cmp dword [ebp - 8], ebx
jge 0x10114ad0
mov edi, dword [ebp - 4]
lea esi, [ebx - 1]
push dword [ebp + 0xc]
sar esi, 1
lea eax, [esi*8]
sub eax, esi
lea eax, [edi + eax*8]
push eax
mov dword [ebp + 8], eax
call fcn.10113ed0
test al, al
je 0x10114ad0
lea eax, [ebx*8]
sub eax, ebx
mov ebx, dword [ebp + 8]
push ebx
lea edi, [edi + eax*8]
mov ecx, edi
call fcn.10094850
mov eax, dword [ebx + 0x18]
lea ecx, [edi + 0x1c]
mov dword [edi + 0x18], eax
lea eax, [ebx + 0x1c]
push eax
call fcn.10094850
mov al, byte [ebx + 0x34]
mov ebx, esi
mov byte [edi + 0x34], al
cmp dword [ebp - 8], esi
jl 0x10114a76
mov ecx, dword [ebp - 4]
lea eax, [ebx*8]
sub eax, ebx
mov ebx, dword [ebp + 0xc]
push ebx
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.10094850
mov eax, dword [ebx + 0x18]
lea ecx, [esi + 0x1c]
mov dword [esi + 0x18], eax
lea eax, [ebx + 0x1c]
push eax
call fcn.10094850
mov al, byte [ebx + 0x34]
pop edi
mov byte [esi + 0x34], al
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x10115120
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
cmp dword [ebp + 0x1c], 0x10
push ebx
mov ebx, dword [ebp + 0x18]
mov edx, ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
lea ecx, [ebp + 8]
push 0
cmovae ecx, esi
mov dword [ebp - 4], edi
push 0x10193a42
call fcn.100985d0
add esp, 8
test al, al
jne 0x101151bc
cmp dword [ebp + 0x1c], 0x10
lea eax, [edi + 0x48]
lea edi, [ebp + 8]
mov dword [ebp - 8], eax
cmovae edi, esi
mov edx, 0x811c9dc5
xor ecx, ecx
test ebx, ebx
je 0x10115184
nop
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x10115170
mov eax, dword [ebp - 8]
push edx
lea ecx, [ebp + 8]
push ecx
lea ecx, [ebp - 0xc]
push ecx
mov ecx, eax
call fcn.10097b50
mov ecx, dword [ebp - 4]
mov eax, dword [eax + 4]
test eax, eax
jne 0x101151a1
mov eax, dword [ecx + 0x4c]
cmp eax, dword [ecx + 0x4c]
je 0x101151bc
mov ecx, dword [ebp + 0x20]
mov bl, 1
vmovq xmm0, qword [eax + 0x20]
vmovq qword [ecx], xmm0
mov eax, dword [eax + 0x28]
mov dword [ecx + 8], eax
jmp 0x101151be
xor bl, bl
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
jb 0x101151f3
lea ecx, [eax + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x101151e9
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x101151e9
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push esi
call fcn.1015b698
add esp, 8
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
Function at 0x1011e240
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push esi
push edi
mov dword [ebp - 8], ecx
lea esi, [ebp - 8]
mov dword [ebp - 0xc], 0
mov edi, 4
or eax, 0xffffffff
nop dword [eax]
jmp dword [edi*4 + 0x1011e4f4]

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

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, ecx
push edi
mov dword [ebp - 4], esi
mov eax, dword [esi]
cmp eax, 0x270
jne 0x1011fded
lea edx, [esi + 8]
mov edi, eax
nop dword [eax]
mov ecx, dword [edx]
lea edx, [edx + 4]
xor ecx, dword [edx - 8]
and ecx, 0x7fffffff
xor ecx, dword [edx - 8]
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [edx + 0x62c]
xor eax, ecx
mov dword [edx + 0x9b8], eax
sub edi, 1
jne 0x1011fdb0
mov eax, dword [esi]
jmp 0x1011fec7
cmp eax, 0x4e0
jb 0x1011fec7
lea edi, [esi + 0x9c4]
mov esi, 0xe3
push ebx
mov ebx, dword [edi]
mov eax, ebx
lea edi, [edi + 4]
mov ebx, dword [edi]
mov ecx, ebx
xor ecx, eax
and ecx, 0x7fffffff
xor ecx, eax
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [edi + 0x630]
xor eax, ecx
mov dword [edi - 0x9c4], eax
sub esi, 1
jne 0x1011fe06
mov edi, dword [ebp - 4]
mov esi, 0x18c
add edi, 0xd50
mov ebx, dword [edi]
nop
mov eax, ebx
lea edi, [edi + 4]
mov ebx, dword [edi]
mov ecx, eax
xor ecx, ebx
and ecx, 0x7fffffff
xor ecx, eax
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [edi - 0xd50]
xor eax, ecx
mov dword [edi - 0x9c4], eax
sub esi, 1
jne 0x1011fe50
mov esi, dword [ebp - 4]
pop ebx
mov eax, dword [esi + 0x1380]
mov ecx, dword [esi + 4]
xor ecx, eax
and ecx, 0x7fffffff
xor ecx, eax
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [esi + 0x634]
xor eax, ecx
mov dword [esi + 0x9c0], eax
xor eax, eax
mov dword [esi], 0
mov edx, dword [esi + eax*4 + 4]
inc eax
mov dword [esi], eax
mov ecx, edx
mov eax, dword [esi + 0x1384]
shr ecx, 0xb
and eax, ecx
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
pop edi
xor eax, edx
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x10121900
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1015f7e5
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
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, [ebp - 0x14]
imul ebx, ecx, 0x1000193
push ebx
push edi
push eax
call fcn.10121c50
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x10121981
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 edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [0x1028b508], 0xfffffff
jne 0x10121998
push str.unordered_map_set_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
mov dword [ebp - 0x1c], 0x1028b504
mov dword [ebp - 4], 0
push 0x10
mov dword [ebp - 0x18], 0
call fcn.1015b6a6
mov ecx, dword [edi]
mov esi, eax
add esp, 4
mov dword [ebp - 0x18], esi
mov dword [esi + 8], ecx
mov dword [esi + 0xc], 0
mov dword [ebp - 4], 1
mov ecx, dword [0x1028b508]
mov edi, dword [0x1028b51c]
vmovss xmm1, dword [0x1028b500]
vxorps xmm0, xmm0, xmm0
lea eax, [ecx + 1]
vcvtsi2sd xmm0, xmm0, eax
shr eax, 0x1f
vaddsd xmm0, xmm0, qword [eax*8 + 0x10279850]
vcvtsd2ss xmm2, xmm0, xmm0
vxorps xmm0, xmm0, xmm0
mov eax, edi
shr eax, 0x1f
vcvtsi2sd xmm0, xmm0, edi
vaddsd xmm0, xmm0, qword [eax*8 + 0x10279850]
vcvtsd2ss xmm0, xmm0, xmm0
vdivss xmm0, xmm2, xmm0
vcomiss xmm0, xmm1
jbe 0x10121a6d
vdivss xmm0, xmm2, xmm1
call fcn.1005c280
call fcn.1015d610
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp edi, ecx
jae 0x10121a4f
cmp edi, 0x200
jae 0x10121a4d
shl edi, 3
cmp edi, ecx
jae 0x10121a4f
mov edi, ecx
push edi
call fcn.10121ad0
push ebx
lea eax, [esi + 8]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10121c50
mov ecx, dword [0x1028b508]
mov edx, dword [eax]
jmp 0x10121a70
mov edx, dword [ebp - 0x14]
mov edi, dword [edx + 4]
inc ecx
mov dword [0x1028b508], ecx
mov dword [esi], edx
mov dword [esi + 4], edi
mov dword [edi], esi
mov dword [edx + 4], esi
mov eax, dword [0x1028b518]
mov ecx, dword [0x1028b50c]
and eax, ebx
mov ebx, dword [ecx + eax*8]
cmp ebx, dword [0x1028b504]
jne 0x10121aa1
mov dword [ecx + eax*8], esi
jmp 0x10121ab0
cmp ebx, edx
jne 0x10121aaa
mov dword [ecx + eax*8], esi
jmp 0x10121ab4
cmp dword [ecx + eax*8 + 4], edi
jne 0x10121ab4
mov dword [ecx + eax*8 + 4], esi
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
pop edi
mov dword [eax], esi
pop esi
mov byte [eax + 4], 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x10135990
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov dword [ebp - 4], ecx
cmp edx, eax
je 0x10135b2a
cmp dword [edx + 0x1c], 0x10
mov eax, dword [ecx + 4]
push esi
mov dword [ebp - 0x18], eax
mov esi, edx
mov eax, dword [ecx + 0xc]
push edi
mov dword [ebp - 0x14], eax
lea edi, [edx + 8]
mov eax, dword [edx + 4]
mov dword [ebp - 8], eax
mov eax, dword [edi + 0x10]
jb 0x101359cb
mov edi, dword [edi]
xor edx, edx
push ebx
mov ebx, 0x811c9dc5
test eax, eax
je 0x101359f4
mov ecx, eax
nop dword [eax]
movzx eax, byte [edx + edi]
inc edx
xor eax, ebx
imul ebx, eax, 0x1000193
cmp edx, ecx
jb 0x101359e0
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x18]
mov ecx, dword [ebp - 0x14]
and eax, ebx
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
mov dword [ebp - 0xc], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x1c], eax
nop dword [eax]
mov edi, esi
mov ebx, esi
mov esi, dword [esi]
lea ecx, [edi + 8]
call fcn.100a5430
push 0x40
push edi
call fcn.1015b698
mov eax, dword [ebp - 4]
add esp, 8
dec dword [eax + 8]
cmp ebx, dword [ebp - 0x1c]
je 0x10135a59
mov eax, dword [ebp + 0xc]
cmp esi, eax
jne 0x10135a10
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp + 8]
jne 0x10135a48
mov edx, dword [ebp - 0xc]
mov dword [edx], esi
mov ecx, dword [ebp - 8]
pop ebx
pop edi
mov dword [ecx], esi
mov dword [esi + 4], ecx
pop esi
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
cmp ecx, dword [ebp + 8]
jne 0x10135a6b
mov ecx, dword [ebp - 0x18]
mov dword [edx], ecx
jmp 0x10135a6e
mov ecx, dword [ebp - 8]
mov dword [edx + 4], ecx
mov ecx, dword [ebp + 0xc]
cmp esi, ecx
je 0x10135b1d
nop dword [eax]
cmp dword [esi + 0x1c], 0x10
lea edi, [esi + 8]
mov ebx, dword [edi + 0x10]
jb 0x10135a8e
mov edi, dword [edi]
xor ecx, ecx
mov edx, 0x811c9dc5
test ebx, ebx
je 0x10135ab4
nop dword [eax]
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x10135aa0
mov eax, dword [ebp - 4]
and edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x14]
lea eax, [eax + edx*8]
mov dword [ebp + 8], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], eax
mov edi, esi
mov ebx, esi
mov esi, dword [esi]
lea ecx, [edi + 8]
call fcn.100a5430
push 0x40
push edi
call fcn.1015b698
mov eax, dword [ebp - 4]
add esp, 8
dec dword [eax + 8]
cmp ebx, dword [ebp - 0x1c]
je 0x10135b07
mov eax, dword [ebp + 0xc]
cmp esi, eax
jne 0x10135ac6
mov ecx, dword [ebp + 8]
pop ebx
pop edi
mov dword [ecx], esi
mov ecx, dword [ebp - 8]
mov dword [ecx], esi
mov dword [esi + 4], ecx
pop esi
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
mov dword [ecx], edx
mov dword [ecx + 4], edx
mov ecx, dword [ebp + 0xc]
cmp esi, ecx
jne 0x10135a80
mov eax, dword [ebp - 8]
pop ebx
pop edi
mov dword [eax], esi
mov dword [esi + 4], eax
mov eax, ecx
pop esi
mov esp, ebp
pop ebp
ret 8
Function at 0x10139390
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
lea ecx, [ebp + 8]
cmp dword [ebp + 0x1c], 0x10
push ebx
mov ebx, dword [ebp + 0x18]
mov edx, ebx
push esi
mov esi, dword [ebp + 8]
cmovae ecx, esi
push edi
push 8
push str.Original
call fcn.100985d0
add esp, 8
test al, al
jne 0x10139412
cmp dword [ebp + 0x1c], 0x10
lea edi, [ebp + 8]
mov edx, 0x811c9dc5
cmovae edi, esi
xor ecx, ecx
test ebx, ebx
je 0x101393e4
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x101393d3
push edx
lea eax, [ebp + 8]
mov ecx, 0x1033a5b0
push eax
lea eax, [ebp - 8]
push eax
call fcn.10097b50
mov edi, dword [0x1033a5b4]
mov eax, dword [eax + 4]
test eax, eax
cmovne edi, eax
cmp edi, dword [0x1033a5b4]
je 0x10139412
mov edi, dword [edi + 0x20]
jmp 0x10139414
xor edi, edi
mov eax, dword [ebp + 0x1c]
cmp eax, 0x10
jb 0x10139449
lea ecx, [eax + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x1013943f
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1013943f
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push esi
call fcn.1015b698
add esp, 8
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18