joyce8/EMBER2024-capa huggingface dataset:
Function at 0x100322c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 8
mov eax, dword [esp + 0xc]
push ebp
push edi
mov edi, edx
mov ebp, ecx
mov eax, dword [eax + 0xc]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x78]
test eax, eax
je 0x100322e0
mov ecx, dword [edi + 0x74]
call eax
push ebx
push esi
mov esi, dword [edi + 0x54]
test esi, esi
je 0x10032349
nop dword [eax]
mov ebx, dword [esi + 4]
xor edx, edx
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + 8]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x54]
test eax, eax
je 0x10032342
mov ecx, dword [eax + 8]
cmp eax, esi
je 0x10032317
mov edx, eax
mov eax, ecx
test eax, eax
jne 0x10032306
jmp 0x10032342
test edx, edx
jne 0x10032320
mov dword [ebx + 0x54], ecx
jmp 0x10032323
mov dword [edx + 8], ecx
mov eax, dword [esi + 0x14]
test eax, eax
je 0x1003232e
mov ecx, esi
call eax
mov ecx, esi
call fcn.100319e0
mov eax, dword [esp + 0x10]
mov edx, esi
mov ecx, eax
mov eax, dword [eax + 8]
call eax
mov esi, dword [edi + 0x54]
test esi, esi
jne 0x100322f0
lea eax, [edi + 0x6c]
test eax, eax
je 0x100323c8
test ebp, ebp
je 0x100323c8
mov ebx, dword [eax]
test ebx, ebx
je 0x100323bb
nop word [eax + eax]
mov esi, dword [ebx + 8]
mov eax, dword [ebx + 4]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 8]
test eax, eax
je 0x10032375
mov ecx, esi
call eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x10032387
mov ecx, esi
call eax
mov edx, dword [esi + 0x28]
test edx, edx
je 0x10032395
mov eax, dword [ebp + 8]
mov ecx, ebp
call eax
mov dword [esi + 0x28], 0
mov edx, esi
mov eax, dword [ebp + 8]
mov ecx, ebp
call eax
mov eax, dword [ebp + 8]
mov edx, ebx
mov ecx, ebp
call eax
mov eax, dword [esp + 0x10]
mov ebx, eax
test eax, eax
jne 0x10032360
lea eax, [edi + 0x6c]
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [edi + 0x30]
mov dword [edi + 0x58], 0
test eax, eax
je 0x100323da
mov ecx, edi
call eax
mov edx, ebp
mov ecx, edi
call fcn.10032250
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x34]
test eax, eax
je 0x100323f2
mov ecx, edi
call eax
mov esi, dword [edi + 0x68]
mov eax, dword [edi + 8]
mov dword [esp + 0x1c], eax
test esi, esi
je 0x10032421
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x1c]
test eax, eax
je 0x1003240e
mov ecx, esi
call eax
test dword [esp + 0x1c], 0x400
jne 0x10032421
mov eax, dword [ebx + 8]
mov edx, esi
mov ecx, ebx
call eax
mov edx, dword [edi + 0x80]
mov dword [edi + 0x68], 0
pop esi
pop ebx
test edx, edx
je 0x10032445
mov eax, dword [ebp + 8]
mov ecx, ebp
call eax
mov dword [edi + 0x80], 0
mov eax, dword [ebp + 8]
mov edx, edi
mov ecx, ebp
call eax
pop edi
pop ebp
add esp, 8
ret 4
Function at 0x1004f110
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
mov esi, ecx
mov ebx, edx
xor ebp, ebp
mov dword [esp + 0x10], ebx
push edi
mov eax, dword [esi + 0x1c]
sub eax, 0x20
mov dword [esi + 0x54], 0
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 0x50], eax
mov word [esi + 0x4e], 0
mov dword [esi + 0x2c], 0
mov dword [eax + 8], eax
xor eax, eax
mov word [esi + 0x4c], ax
cmp ax, word [esi + 0x78]
jge 0x1004f226
xor edx, edx
nop dword [eax]
mov eax, dword [esi + 0x84]
mov ecx, esi
mov dword [esi + 0x5c], 0
mov dword [esi + 0x58], 0
push ebx
movzx eax, word [eax + ebp*2]
push eax
call fcn.1004ed50
test al, al
jne 0x1004f2c3
mov eax, dword [esi + 0x84]
mov edi, dword [esi + 4]
mov edx, dword [esi + 0x40]
movzx eax, word [eax + ebp*2]
mov dword [esp + 0x10], eax
lea eax, [edi - 1]
test edx, eax
jne 0x1004f1c7
cmp edx, dword [esi + 0x44]
jl 0x1004f1c7
cmp edx, dword [esi + 0x48]
jg 0x1004f1c7
mov ecx, dword [esi + 0x58]
test ecx, ecx
je 0x1004f1c7
mov eax, dword [esi + 0x50]
mov cl, byte [ecx + 0xc]
xor cl, byte [eax + 0xc]
test cl, 8
jne 0x1004f1c7
add dword [esi + 0x24], 0xfffffffc
mov ebx, dword [esi + 0x50]
mov eax, dword [esi + 0x24]
cmp eax, dword [ebx + 8]
je 0x1004f1e3
test byte [ebx + 0xc], 8
je 0x1004f1e3
neg edi
and edi, edx
sub edx, edi
cmp edx, dword [esi + 8]
jmp 0x1004f1f1
lea eax, [edi - 1]
neg edi
add eax, edx
and eax, edi
sub eax, edx
cmp eax, dword [esi + 8]
setge dl
mov ecx, esi
call fcn.1004e310
test al, al
jne 0x1004f2c3
mov eax, dword [esi + 0x58]
test eax, eax
je 0x1004f20d
mov dword [ebx + 0x1c], eax
mov eax, dword [esp + 0x10]
inc ebp
mov ebx, dword [esp + 0x14]
inc eax
movzx edx, ax
movsx eax, word [esi + 0x78]
cmp ebp, eax
jl 0x1004f160
movzx eax, word [esi + 0x4c]
mov edi, dword [esi + 0x54]
mov dword [esp + 0x10], eax
cmp eax, 1
jbe 0x1004f2cd
test edi, edi
je 0x1004f2cd
lea ebx, [edi + 4]
mov dword [esp + 0x14], ebx
cmp ax, 1
jbe 0x1004f25a
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 8]
lea eax, [eax + ecx*4]
jmp 0x1004f25c
xor eax, eax
mov dword [ebx], eax
test byte [edi + 0xc], 8
mov ebx, dword [edi + 0x14]
mov edx, ebx
mov eax, dword [edi + 0x10]
je 0x1004f271
dec ebx
add ebx, eax
jmp 0x1004f281
sub edx, eax
lea eax, [eax*4 - 4]
inc edx
add dword [edi + 8], eax
mov dword [edi + 0x14], edx
mov ecx, esi
call fcn.1004e3a0
test al, al
jne 0x1004f2c3
lea edx, [ebx + 1]
mov ecx, esi
call fcn.1004e3a0
test al, al
jne 0x1004f2c3
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
add eax, 0xffff
mov dword [esp + 0x10], eax
mov edi, dword [edi]
test ax, ax
jne 0x1004f242
mov eax, dword [esi + 0x24]
cmp eax, dword [esi + 0x20]
pop edi
pop esi
pop ebp
setae al
pop ebx
add esp, 8
ret
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 8
ret
mov eax, dword [esi + 0x24]
cmp eax, dword [esi + 0x20]
pop edi
mov dword [esi + 0x54], 0
setae al
pop esi
pop ebp
pop ebx
add esp, 8
ret
Function at 0x1005ddc0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x18
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x18], edi
mov ebx, dword [edi + 0xc]
mov ecx, dword [edi + 0x44]
mov edx, dword [edi + 0x48]
mov dword [esp + 0x1c], ebx
movsx ebp, word [ebx + 0x3a]
mov eax, dword [ebx + 0x3c]
lea esi, [ebp*8]
mov dword [esi + eax], ecx
mov dword [esi + eax + 4], edx
mov eax, dword [ebx + 0x3c]
mov ecx, dword [edi + 0x4c]
mov edx, dword [edi + 0x50]
mov dword [esp + 0x20], esi
mov dword [esi + eax + 8], ecx
mov dword [esi + eax + 0xc], edx
mov eax, dword [ebx + 0x3c]
mov ecx, dword [edi + 0xb4]
mov edx, dword [edi + 0xb8]
mov dword [eax + ebp*8 + 0x10], ecx
mov dword [eax + ebp*8 + 0x14], edx
mov eax, dword [ebx + 0x3c]
mov ecx, dword [edi + 0xbc]
mov edx, dword [edi + 0xc0]
mov dword [eax + ebp*8 + 0x18], ecx
mov dword [eax + ebp*8 + 0x1c], edx
mov eax, dword [ebx + 0x40]
mov byte [eax + ebp], 0
mov eax, dword [ebx + 0x40]
mov byte [eax + ebp + 1], 0
mov eax, dword [ebx + 0x40]
mov byte [eax + ebp + 2], 0
mov eax, dword [ebx + 0x40]
mov byte [eax + ebp + 3], 0
add ebp, 4
test byte [edi + 0x10], 2
mov dword [esp + 0x24], ebp
jne 0x1005debc
movzx esi, word [ebx + 0x3a]
mov word [edi + 0x80], si
mov ax, word [ebx + 0x38]
mov word [edi + 0x82], ax
mov eax, dword [ebx + 0x4c]
mov dword [edi + 0x84], eax
mov edx, dword [ebx + 0x3c]
mov dword [edi + 0x88], edx
mov ecx, dword [ebx + 0x50]
mov dword [edi + 0x8c], ecx
mov eax, dword [ebx + 0x40]
mov dword [edi + 0x90], eax
mov eax, dword [ebx + 0x44]
mov dword [edi + 0x94], eax
xor eax, eax
mov word [edi + 0x98], ax
lea eax, [esi*8 + 0x20]
push eax
push edx
push ecx
call fcn.100ea8d0
add esp, 0xc
mov esi, dword [ebx + 0x3c]
mov edx, edi
sub edx, 0xffffff80
test byte [edi + 0x10], 1
lea ebp, [esi + ebp*8]
jne 0x1005df0e
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x2c]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
cmp esi, ebp
jae 0x1005df0e
mov ebx, ecx
mov edi, eax
mov ecx, dword [esi]
mov edx, ebx
call fcn.10028160
mov ecx, dword [esi + 4]
mov edx, edi
mov dword [esi], eax
call fcn.10028160
mov dword [esi + 4], eax
add esi, 8
cmp esi, ebp
jb 0x1005dee1
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edx, [edi + 0x80]
test byte [edi + 0x10], 2
mov eax, dword [ebx + 0x3c]
mov esi, dword [esp + 0x20]
mov ecx, dword [esi + eax]
mov eax, dword [esi + eax + 4]
mov esi, dword [esp + 0x24]
mov dword [edi + 0x44], ecx
mov dword [edi + 0x48], eax
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + esi*8 - 0x18]
mov eax, dword [eax + esi*8 - 0x14]
mov dword [edi + 0x4c], ecx
mov dword [edi + 0x50], eax
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + esi*8 - 0x10]
mov eax, dword [eax + esi*8 - 0xc]
mov dword [edi + 0xb4], ecx
mov dword [edi + 0xb8], eax
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + esi*8 - 8]
mov eax, dword [eax + esi*8 - 4]
mov dword [edi + 0xbc], ecx
mov dword [edi + 0xc0], eax
jne 0x1005df7f
add word [edx], 4
mov ecx, edi
pop edi
pop esi
pop ebp
xor dl, dl
pop ebx
add esp, 0x18
jmp fcn.1005da60
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x18
ret
Function at 0x10066120
Capabilities:
Hash data using fnv

Disassembly:
mov al, byte [ecx]
test al, al
je 0x10066137
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
inc ecx
jmp fcn.10066120
mov eax, edx
ret
Function at 0x10067660
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ecx
push esi
mov esi, ecx
push edi
mov edx, dword [esi + 8]
mov edi, edx
and edi, 7
je 0x10067688
cmp edx, edi
jge 0x10067678
call fcn.10067040
mov eax, dword [esi + 0xc]
mov ecx, edi
shr eax, cl
sub dword [esi + 8], edi
mov edx, dword [esi + 8]
mov dword [esi + 0xc], eax
xor eax, eax
mov ecx, edx
test edx, edx
jle 0x100676ae
mov edx, dword [esi + 0xc]
push ebx
mov bl, dl
mov byte [esp + eax + 0xc], bl
sub ecx, 8
shr edx, 8
inc eax
mov dword [esi + 0xc], edx
mov bl, dl
test ecx, ecx
jg 0x10067696
pop ebx
mov dword [esi + 8], ecx
test ecx, ecx
js 0x1006773c
cmp eax, 4
jge 0x100676d7
mov edi, dword [esi + 4]
mov ecx, dword [esi]
cmp ecx, edi
jb 0x100676c8
xor dl, dl
jmp 0x100676cd
mov dl, byte [ecx]
inc ecx
mov dword [esi], ecx
mov byte [esp + eax + 8], dl
inc eax
cmp eax, 4
jl 0x100676c0
mov eax, dword [esp + 8]
movzx ecx, byte [esp + 0xb]
movzx edi, ah
movzx eax, al
shl edi, 8
add edi, eax
shl ecx, 8
movzx eax, byte [esp + 0xa]
add ecx, eax
mov eax, edi
xor eax, 0xffff
cmp ecx, eax
jne 0x1006773c
mov eax, dword [esi]
add eax, edi
cmp eax, dword [esi + 4]
ja 0x1006773c
mov edx, dword [esi + 0x10]
lea eax, [edx + edi]
cmp eax, dword [esi + 0x18]
jbe 0x10067720
push edi
mov ecx, esi
call fcn.10067160
test eax, eax
je 0x1006773c
push edi
push dword [esi]
push dword [esi + 0x10]
call fcn.100ea8d0
add dword [esi], edi
add esp, 0xc
add dword [esi + 0x10], edi
mov eax, 1
pop edi
pop esi
pop ecx
ret
pop edi
xor eax, eax
pop esi
pop ecx
ret
Function at 0x1006b5b0
Capabilities:
Hash data using fnv

Disassembly:
movzx eax, byte [ecx + 0x60]
lea edx, [ecx + 0x60]
xor eax, 0x811c9dc5
sub esp, 0xd0
imul ecx, eax, 0x1000193
movzx eax, byte [edx + 1]
push esi
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
imul eax, ecx, 0x1000193
mov ecx, 0x1013d03c
push eax
push edx
lea eax, [esp + 0x10]
push eax
call fcn.1006cd90
mov esi, dword [0x1013d040]
mov eax, dword [eax + 4]
test eax, eax
cmovne esi, eax
cmp esi, dword [0x1013d040]
jne 0x1006b6d1
cmp dword [0x10137e04], 0
jne 0x1006b6c4
mov ecx, dword [0x10138688]
lea edx, [esp + 8]
mov eax, dword fs:[0x2c]
push 4
push 0
mov dword [esp + 0x28], 0
mov eax, dword [eax + ecx*4]
mov ecx, dword [0x10137dfc]
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xc4], ecx
mov dword [eax + 0xc], 0
mov dword [eax + 8], 1
mov eax, dword [0x10137e00]
add eax, ecx
mov dword [esp + 0x38], 0
mov dword [esp + 0xd0], eax
lea ecx, [esp + 0x18]
mov dword [esp + 0xc8], eax
lea eax, [esp + 0xc]
push eax
mov dword [esp + 0xc4], 0
call fcn.10066330
mov esi, eax
test esi, esi
je 0x1006b6c4
mov edx, dword [esp + 4]
mov ecx, dword [esp + 8]
push esi
call fcn.100ca140
push esi
mov dword [0x10137e04], eax
call fcn.100f57a7
add esp, 4
mov eax, dword [0x10137e04]
pop esi
add esp, 0xd0
ret
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x1006b6ea
push dword [esi + 0x10]
mov edx, 0x20
mov ecx, edx
call fcn.100ca140
mov dword [esi + 0xc], eax
pop esi
add esp, 0xd0
ret
Function at 0x1006bc10
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x14]
mov ebp, ecx
push edi
call fcn.1006aa80
xorps xmm0, xmm0
lea ecx, [edi + 4]
movups xmmword [ebp + 0x4c], xmm0
mov dword [ebp + 0x5c], 0
mov dword [ebp + 0x60], 0xf
mov byte [ebp + 0x4c], 0
mov eax, dword [0x10137e08]
mov esi, dword [eax + 0x40]
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
call eax
mov edx, dword [esi]
mov ecx, esi
push eax
mov edx, dword [edx + 0xc]
call edx
mov edx, eax
mov ecx, 0x811c9dc5
mov al, byte [edx]
test al, al
je 0x1006bcb8
movsx eax, al
lea edx, [edx + 1]
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edx]
test al, al
jne 0x1006bc62
cmp ecx, 0x7d3604fa
ja 0x1006bd64
je 0x1006bda4
cmp ecx, 0x4c849f3c
ja 0x1006bd14
je 0x1006bcf7
cmp ecx, 0x3cb8abb3
ja 0x1006bcd2
je 0x1006bd36
cmp ecx, 0x19acc50e
je 0x1006bdd9
cmp ecx, 0x1b20e275
je 0x1006bcf7
xor ecx, ecx
mov eax, 0x101191a5
push ecx
push eax
lea ecx, [ebp + 0x4c]
call fcn.10014e40
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
ret 4
cmp ecx, 0x43d6266e
jne 0x1006bcb8
mov ecx, 4
mov eax, str.Pill
push ecx
push eax
lea ecx, [ebp + 0x4c]
call fcn.10014e40
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
ret 4
mov ecx, 9
mov eax, str.Ammo_Pack
push ecx
push eax
lea ecx, [ebp + 0x4c]
call fcn.10014e40
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
ret 4
cmp ecx, 0x6db2f81a
ja 0x1006bd53
je 0x1006bda4
cmp ecx, 0x4d7aa8c1
je 0x1006bdd9
cmp ecx, 0x5978b32e
jne 0x1006bcb8
mov ecx, 0xe
mov eax, str.Full_Ammo_Pack
push ecx
push eax
lea ecx, [ebp + 0x4c]
call fcn.10014e40
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
ret 4
cmp ecx, 0x7c4a5426
je 0x1006be3d
jmp 0x1006bcb8
cmp ecx, 0xa8d619ea
ja 0x1006be13
je 0x1006bdf6
cmp ecx, 0x97113ea7
ja 0x1006bdc1
je 0x1006bdf6
cmp ecx, 0x7f11af2d
je 0x1006be3d
cmp ecx, 0x84ea2fe5
je 0x1006be5a
cmp ecx, 0x94f82892
jne 0x1006bcb8
mov ecx, 5
mov eax, str.Money
push ecx
push eax
lea ecx, [ebp + 0x4c]
call fcn.10014e40
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
ret 4
cmp ecx, 0x9d08c4c8
je 0x1006bcda
cmp ecx, 0xa7eab73f
jne 0x1006bcb8
mov ecx, 8
mov eax, str.Sandwich
push ecx
push eax
lea ecx, [ebp + 0x4c]
call fcn.10014e40
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
ret 4
mov ecx, 4
mov eax, 0x10121f9c
push ecx
push eax
lea ecx, [ebp + 0x4c]
call fcn.10014e40
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
ret 4
cmp ecx, 0xf8573d98
ja 0x1006be77
je 0x1006be5a
cmp ecx, 0xd614ea2e
je 0x1006be5a
cmp ecx, 0xe1525a25
je 0x1006bcda
cmp ecx, 0xe80bc214
jne 0x1006bcb8
mov ecx, 0xb
mov eax, str.Full_Medkit
push ecx
push eax
lea ecx, [ebp + 0x4c]
call fcn.10014e40
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
ret 4
mov ecx, 6
mov eax, str.Medkit
push ecx
push eax
lea ecx, [ebp + 0x4c]
call fcn.10014e40
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
ret 4
cmp ecx, 0xf969d63f
je 0x1006be8b
cmp ecx, 0xfea341f8
jne 0x1006bcb8
mov ecx, 4
mov eax, str.Gift
push ecx
push eax
lea ecx, [ebp + 0x4c]
call fcn.10014e40
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
ret 4
Function at 0x1006bfa0
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
mov ecx, 0x1013d03c
push ebx
push edi
push eax
call fcn.1006cd90
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x1006c00c
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 [0x1013d044], 0xccccccc
je 0x1006c169
push 0x14
call fcn.100e91db
mov ecx, dword [edi]
mov esi, eax
xorps xmm0, xmm0
add esp, 4
mov dword [esi + 8], ecx
movq qword [esi + 0xc], xmm0
mov dword [esi + 0x10], 0
mov ecx, dword [0x1013d044]
mov edi, dword [0x1013d058]
lea eax, [ecx + 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1012b250]
mov eax, edi
shr eax, 0x1f
cvtpd2ps xmm2, xmm0
movd xmm0, edi
cvtdq2pd xmm0, xmm0
movaps xmm1, xmm2
addsd xmm0, qword [eax*8 + 0x1012b250]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movss xmm0, dword [0x1013d03c]
comiss xmm1, xmm0
jbe 0x1006c0ff
divss xmm2, xmm0
sub esp, 8
movss dword [esp + 0x40], xmm2
fld dword [esp + 0x40]
fstp qword [esp]
call fcn.1010a4b0
add esp, 8
fstp dword [esp + 0x38]
movss xmm0, dword [esp + 0x38]
call fcn.1010c6a0
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp edi, ecx
jae 0x1006c0db
cmp edi, 0x200
jae 0x1006c0d9
shl edi, 3
cmp edi, ecx
jae 0x1006c0db
mov edi, ecx
push edi
call fcn.1006c240
push ebx
lea eax, [esi + 8]
mov ecx, 0x1013d03c
push eax
lea eax, [esp + 0x40]
push eax
call fcn.1006cd90
mov ecx, dword [0x1013d044]
mov edx, dword [eax]
jmp 0x1006c103
mov edx, dword [esp + 0x38]
mov edi, dword [edx + 4]
inc ecx
mov dword [0x1013d044], ecx
mov dword [esi], edx
mov dword [esi + 4], edi
mov dword [edi], esi
mov dword [edx + 4], esi
mov eax, dword [0x1013d054]
mov ecx, dword [0x1013d048]
and eax, ebx
mov ebx, dword [ecx + eax*8]
cmp ebx, dword [0x1013d040]
jne 0x1006c134
mov dword [ecx + eax*8], esi
jmp 0x1006c153
cmp ebx, edx
jne 0x1006c14d
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 0x1006c157
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
push str.unordered_map_set_too_long
call fcn.100e7eaa
int3
Function at 0x1006c240
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
ja 0x1006c38f
lea eax, [ecx - 1]
mov esi, dword [0x1013d040]
or eax, edi
bsr ecx, eax
push esi
lea ecx, [ecx + 1]
shl edi, cl
mov ecx, 0x1013d048
lea eax, [edi + edi]
push eax
call fcn.10016340
mov ecx, dword [0x1013d040]
lea ebx, [edi - 1]
mov dword [0x1013d054], ebx
mov dword [0x1013d058], edi
mov ecx, dword [ecx]
mov edx, ecx
cmp ecx, esi
je 0x1006c388
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 [0x1013d048]
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 0x1006c2f5
mov dword [eax], ecx
mov dword [eax + 4], ecx
jmp 0x1006c35b
mov eax, dword [eax + 4]
mov edi, dword [ecx + 8]
cmp edi, dword [eax + 8]
jne 0x1006c328
mov eax, dword [eax]
cmp eax, ecx
je 0x1006c31f
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 0x1006c35b
cmp ebx, eax
je 0x1006c33c
nop dword [eax]
mov eax, dword [eax + 4]
cmp edi, dword [eax + 8]
je 0x1006c36c
cmp ebx, eax
jne 0x1006c330
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 0x1006c388
mov ebx, dword [0x1013d054]
jmp 0x1006c2a4
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 0x1006c35b
pop edi
pop esi
pop ebp
pop ebx
ret 4
push str.invalid_hash_bucket_count
call fcn.100e7eaa
int3
Function at 0x10074fe0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov eax, dword [0x10137df8]
sub esp, 0xe4
mov ecx, 0x38
xor edx, edx
push ebx
push esi
push edi
lea ebx, [eax + 0x49c]
mov esi, ebx
lea edi, [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x25]
cmp byte [ecx], 0
jne 0x1007509a
inc edx
add ecx, 0x20
cmp edx, 7
jb 0x10075007
lea esi, [eax + 0x57c]
mov ecx, 0x38
lea edi, [esp + 0x10]
xor edx, edx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x25]
cmp byte [ecx], 0
jne 0x1007509a
inc edx
add ecx, 0x20
cmp edx, 7
jb 0x10075030
lea esi, [eax + 0x65c]
mov ecx, 0x38
lea edi, [esp + 0x10]
xor edx, edx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x25]
cmp byte [ecx], 0
jne 0x1007509a
inc edx
add ecx, 0x20
cmp edx, 7
jb 0x10075055
lea esi, [eax + 0x73c]
mov ecx, 0x38
lea edi, [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
lea eax, [esp + 0x25]
nop word [eax + eax]
cmp byte [eax], 0
jne 0x1007509a
inc ecx
add eax, 0x20
cmp ecx, 7
jb 0x10075080
pop edi
pop esi
pop ebx
add esp, 0xe4
ret 4
mov ecx, 0x38
lea edi, [esp + 0x10]
mov esi, ebx
lea eax, [esp + 0x25]
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
nop dword [eax]
cmp byte [eax], 0
jne 0x10075203
inc ecx
add eax, 0x20
cmp ecx, 7
jb 0x100750b0
mov eax, dword [0x10137e08]
mov ecx, dword [esp + 0xf4]
add ecx, 4
mov esi, dword [eax + 0x40]
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
call eax
mov edx, dword [esi]
mov ecx, esi
push eax
mov edx, dword [edx + 0xc]
call edx
mov edx, eax
mov ecx, 0x811c9dc5
mov al, byte [edx]
test al, al
je 0x10075132
movsx eax, al
lea edx, [edx + 1]
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edx]
test al, al
jne 0x100750f2
cmp ecx, 0x7c4a5426
ja 0x10075164
je 0x100751e1
cmp ecx, 0x43d6266e
ja 0x10075154
je 0x100751e1
cmp ecx, 0x1b20e275
je 0x10075194
cmp ecx, 0x3cb8abb3
je 0x10075194
mov eax, dword [0x10137df8]
push 0
push 0x64
push 0
add eax, 0x73c
push eax
call fcn.10075650
pop edi
pop esi
pop ebx
add esp, 0xe4
ret 4
cmp ecx, 0x4c849f3c
je 0x10075194
cmp ecx, 0x5978b32e
jmp 0x10075130
cmp ecx, 0xa8d619ea
ja 0x100751b6
je 0x10075194
cmp ecx, 0x97113ea7
ja 0x1007518a
je 0x10075194
cmp ecx, 0x7f11af2d
je 0x100751e1
cmp ecx, 0x84ea2fe5
je 0x100751e1
jmp 0x10075132
cmp ecx, 0x9d08c4c8
je 0x100751e1
jmp 0x10075132
mov eax, dword [0x10137df8]
push 0
push 0x64
push 0
add eax, 0x57c
push eax
call fcn.10075650
pop edi
pop esi
pop ebx
add esp, 0xe4
ret 4
cmp ecx, 0xe80bc214
ja 0x100751d5
je 0x100751e1
cmp ecx, 0xd614ea2e
je 0x100751e1
cmp ecx, 0xe1525a25
je 0x100751e1
jmp 0x10075132
cmp ecx, 0xf8573d98
jne 0x10075132
mov eax, dword [0x10137df8]
push 0
push 0x64
push 0
add eax, 0x65c
push eax
call fcn.10075650
pop edi
pop esi
pop ebx
add esp, 0xe4
ret 4
push 0
push 0x64
push 0
push ebx
call fcn.10075650
pop edi
pop esi
pop ebx
add esp, 0xe4
ret 4