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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ecx
movzx eax, byte [edi]
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
movzx eax, byte [edi + 1]
xor edx, eax
movzx eax, byte [edi + 2]
imul edx, edx, 0x1000193
xor edx, eax
movzx eax, byte [edi + 3]
imul ecx, edx, 0x1000193
mov edx, dword [ebp - 4]
mov esi, dword [edx + 4]
mov ebx, dword [edx + 0x18]
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [edx + 4]
mov dword [ebp + 0xc], ecx
and ebx, eax
mov eax, dword [edx + 0xc]
mov eax, dword [eax + ebx*8]
cmp esi, eax
je 0x50e1cc
mov esi, dword [edx + 0xc]
mov esi, dword [esi + ebx*8 + 4]
mov esi, dword [esi]
cmp esi, eax
je 0x50e1cc
mov edi, dword [edi]
nop dword [eax + eax]
mov esi, dword [esi + 4]
cmp edi, dword [esi + 8]
je 0x50e218
cmp esi, eax
jne 0x50e1c0
mov edi, dword [ebp + 0x10]
mov dword [ebp - 8], edi
mov eax, dword [edi]
cmp esi, eax
je 0x50e1ff
mov ecx, dword [edi + 4]
mov dword [ecx], eax
mov ecx, dword [eax + 4]
mov dword [ecx], esi
mov ecx, dword [esi + 4]
mov dword [ecx], edi
mov edx, dword [esi + 4]
mov ecx, dword [eax + 4]
mov dword [esi + 4], ecx
mov ecx, dword [edi + 4]
mov dword [eax + 4], ecx
mov ecx, dword [ebp + 0xc]
mov dword [edi + 4], edx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ebx*8]
cmp edi, dword [ecx]
mov edi, dword [ebp - 8]
jne 0x50e245
mov dword [eax + ebx*8], edi
mov eax, dword [edx + 0xc]
mov dword [eax + ebx*8 + 4], edi
jmp 0x50e26e
mov edi, dword [ebp + 0x10]
push edi
mov edx, dword [edi + 4]
mov eax, dword [edi]
mov dword [edx], eax
mov edx, dword [edi]
mov eax, dword [edi + 4]
mov dword [edx + 4], eax
dec dword [ecx + 4]
call fcn.00512030
mov eax, dword [ebp + 8]
pop edi
mov dword [eax], esi
pop esi
mov byte [eax + 4], 0
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [eax + ebx*8], esi
jne 0x50e24f
mov dword [eax + ebx*8], edi
jmp 0x50e26e
mov eax, dword [eax + ebx*8 + 4]
mov ecx, dword [edx + 0xc]
mov eax, dword [eax]
mov dword [ecx + ebx*8 + 4], eax
cmp eax, edi
je 0x50e26e
mov ecx, dword [edx + 0xc]
mov eax, dword [ecx + ebx*8 + 4]
mov eax, dword [eax + 4]
mov dword [ecx + ebx*8 + 4], eax
mov eax, dword [edx + 8]
mov ecx, dword [edx + 0x1c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x553230]
mov eax, ecx
shr eax, 0x1f
cvtpd2ps xmm1, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x553230]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [edx]
jbe 0x50e2fe
cmp ecx, 0x200
jae 0x50e2bc
shl ecx, 3
jmp 0x50e2c6
cmp ecx, 0x1fffffff
jae 0x50e2c6
add ecx, ecx
push ecx
mov ecx, edx
call fcn.00512110
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
cmp dword [eax], eax
je 0x50e2fe
mov eax, dword [eax + 4]
mov edi, eax
mov ebx, dword [ebp - 4]
nop
mov esi, dword [ecx]
mov ecx, ebx
mov esi, dword [esi]
push esi
lea eax, [esi + 8]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0050e150
lea ecx, [ebx + 4]
cmp esi, edi
jne 0x50e2e0
mov edi, dword [ebp - 8]
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 0xc
Function at 0x50e310
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov ebx, ecx
movzx eax, byte [edi]
xor eax, 0x811c9dc5
mov esi, dword [ebx + 4]
imul edx, eax, 0x1000193
movzx eax, byte [edi + 1]
xor edx, eax
movzx eax, byte [edi + 2]
imul edx, edx, 0x1000193
xor edx, eax
movzx eax, byte [edi + 3]
imul ecx, edx, 0x1000193
mov edx, dword [ebx + 0x18]
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [ebx + 0xc]
and edx, eax
mov dword [ebp + 0xc], edx
mov eax, dword [ecx + edx*8]
cmp esi, eax
je 0x50e37d
mov esi, dword [ecx + edx*8 + 4]
mov esi, dword [esi]
cmp esi, eax
je 0x50e37d
mov ecx, dword [edi]
mov esi, dword [esi + 4]
cmp ecx, dword [esi + 8]
je 0x50e3c4
cmp esi, eax
jne 0x50e371
mov edi, dword [ebp + 0x10]
mov dword [ebp - 4], edi
mov eax, dword [edi]
cmp esi, eax
je 0x50e3ad
mov ecx, dword [edi + 4]
mov dword [ecx], eax
mov ecx, dword [eax + 4]
mov dword [ecx], esi
mov ecx, dword [esi + 4]
mov dword [ecx], edi
mov edx, dword [esi + 4]
mov ecx, dword [eax + 4]
mov dword [esi + 4], ecx
mov ecx, dword [edi + 4]
mov dword [eax + 4], ecx
mov dword [edi + 4], edx
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx + edx*8]
cmp eax, dword [ebx + 4]
jne 0x50e3fc
mov dword [ecx + edx*8], edi
mov eax, dword [ebx + 0xc]
mov dword [eax + edx*8 + 4], edi
jmp 0x50e421
mov edi, dword [ebp + 0x10]
mov ecx, dword [edi + 4]
mov eax, dword [edi]
mov dword [ecx], eax
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov dword [ecx + 4], eax
dec dword [ebx + 8]
push dword [edi + 0xc]
call fcn.00525d05
push edi
call fcn.004db150
mov eax, dword [ebp + 8]
add esp, 8
pop edi
mov dword [eax], esi
pop esi
mov byte [eax + 4], 0
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp eax, esi
jne 0x50e405
mov dword [ecx + edx*8], edi
jmp 0x50e421
mov eax, dword [ecx + edx*8 + 4]
mov eax, dword [eax]
mov dword [ecx + edx*8 + 4], eax
cmp eax, edi
je 0x50e421
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx + edx*8 + 4]
mov eax, dword [eax + 4]
mov dword [ecx + edx*8 + 4], eax
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0x1c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x553230]
mov eax, ecx
shr eax, 0x1f
cvtpd2ps xmm1, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x553230]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [ebx]
jbe 0x50e4ac
cmp ecx, 0x200
jae 0x50e46f
shl ecx, 3
jmp 0x50e479
cmp ecx, 0x1fffffff
jae 0x50e479
add ecx, ecx
push ecx
mov ecx, ebx
call fcn.00512110
mov eax, dword [ebx + 4]
cmp dword [eax], eax
je 0x50e4ac
mov eax, dword [eax + 4]
mov edi, eax
nop dword [eax]
mov esi, dword [ebx + 4]
mov ecx, ebx
mov esi, dword [esi]
push esi
lea eax, [esi + 8]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.0050e310
cmp esi, edi
jne 0x50e490
mov edi, dword [ebp - 4]
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 0xc
Function at 0x50e6e0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov ebx, ecx
movzx eax, byte [edi]
xor eax, 0x811c9dc5
mov esi, dword [ebx + 4]
imul edx, eax, 0x1000193
movzx eax, byte [edi + 1]
xor edx, eax
movzx eax, byte [edi + 2]
imul edx, edx, 0x1000193
xor edx, eax
movzx eax, byte [edi + 3]
imul ecx, edx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [ebx + 0x18]
and ecx, eax
shl ecx, 3
mov dword [ebp - 8], ecx
add ecx, dword [ebx + 0xc]
mov eax, dword [ecx]
cmp esi, eax
je 0x50e74e
mov esi, dword [ecx + 4]
mov esi, dword [esi]
cmp esi, eax
je 0x50e74e
mov ecx, dword [edi]
mov esi, dword [esi + 4]
cmp ecx, dword [esi + 8]
je 0x50e76e
cmp esi, eax
jne 0x50e742
mov eax, dword [ebx + 4]
push 0xc
mov edi, dword [eax]
mov eax, dword [edi + 4]
mov dword [ebp - 4], eax
call fcn.004db11c
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x50e780
jmp 0x50e82a
mov eax, dword [ebp + 8]
pop edi
mov dword [eax], esi
pop esi
mov byte [eax + 4], 0
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [ebp - 4]
mov dword [ecx], edi
mov dword [ecx + 4], edx
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [ecx + 8], eax
mov eax, 0x15555554
sub eax, dword [ebx + 8]
cmp eax, 1
jb 0x50e82f
inc dword [ebx + 8]
mov dword [edi + 4], ecx
mov dword [edx], ecx
mov edi, dword [ebx + 4]
mov edi, dword [edi]
mov eax, dword [edi]
cmp esi, eax
je 0x50e7d5
mov ecx, dword [edi + 4]
mov dword [ecx], eax
mov ecx, dword [eax + 4]
mov dword [ecx], esi
mov ecx, dword [esi + 4]
mov dword [ecx], edi
mov ecx, dword [eax + 4]
mov edx, dword [esi + 4]
mov dword [esi + 4], ecx
mov ecx, dword [edi + 4]
mov dword [eax + 4], ecx
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebp - 8]
add ecx, edx
mov eax, dword [ecx]
cmp eax, dword [ebx + 4]
jne 0x50e7ef
mov dword [ecx], edi
mov eax, dword [ebx + 0xc]
mov dword [edx + eax + 4], edi
jmp 0x50e811
cmp eax, esi
jne 0x50e7f7
mov dword [ecx], edi
jmp 0x50e811
mov eax, dword [ecx + 4]
mov eax, dword [eax]
mov dword [ecx + 4], eax
cmp eax, edi
je 0x50e811
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx + edx + 4]
mov eax, dword [eax + 4]
mov dword [ecx + edx + 4], eax
mov ecx, ebx
call fcn.00511f30
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 0xc
call fcn.00525588
push str.list_T__too_long
call fcn.004d93ca
int3
Function at 0x511f30
Capabilities:
Hash data using fnv

Disassembly:
push esi
mov esi, ecx
mov eax, dword [esi + 8]
mov edx, dword [esi + 0x1c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x553230]
mov eax, edx
shr eax, 0x1f
cvtpd2ps xmm1, xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x553230]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [esi]
jbe 0x511fa5
cmp edx, 0x200
jae 0x511f8d
shl edx, 3
push edx
call fcn.00512110
mov ecx, esi
pop esi
jmp fcn.00512330
cmp edx, 0x1fffffff
jae 0x511f97
add edx, edx
push edx
call fcn.00512110
mov ecx, esi
pop esi
jmp fcn.00512330
pop esi
ret
Function at 0x512b80
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov esi, ecx
movzx eax, byte [edi]
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
movzx eax, byte [edi + 1]
xor edx, eax
movzx eax, byte [edi + 2]
imul edx, edx, 0x1000193
xor edx, eax
movzx eax, byte [edi + 3]
imul ecx, edx, 0x1000193
mov edx, dword [esi + 0xc]
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [esi + 0x18]
mov esi, dword [esi + 4]
and ecx, eax
mov eax, dword [edx + ecx*8]
add ecx, ecx
mov ebx, dword [edx + ecx*4]
lea edx, [edx + ecx*4]
cmp ebx, esi
jne 0x512bdb
mov ecx, esi
jmp 0x512be0
mov ecx, dword [edx + 4]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x512bfd
mov ecx, dword [eax + 8]
cmp ecx, dword [edi]
je 0x512bef
mov eax, dword [eax]
jmp 0x512bd3
mov ecx, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov dword [ecx], eax
mov eax, ecx
pop ebp
ret 8
mov eax, dword [ebp + 8]
pop edi
mov dword [eax], esi
pop esi
pop ebx
pop ebp
ret 8
Function at 0x512c10
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov esi, edi
mov dword [ebp - 8], ecx
cmp dword [edi + 0x14], 0x10
mov ebx, dword [edi + 0x10]
jb 0x512c2c
mov esi, dword [edi]
xor ecx, ecx
mov edx, 0x811c9dc5
test ebx, ebx
je 0x512c48
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x512c37
mov esi, dword [ebp - 8]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0xc]
and eax, edx
mov esi, dword [esi + 4]
mov dword [ebp - 8], esi
mov edx, dword [ecx + eax*8]
add eax, eax
mov edi, dword [ecx + eax*4]
inc eax
mov dword [ebp - 0xc], edi
mov edi, dword [ebp + 0xc]
lea eax, [ecx + eax*4]
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], edx
cmp dword [ebp - 0xc], esi
jne 0x512c7a
mov eax, esi
jmp 0x512c7e
mov eax, dword [eax]
mov eax, dword [eax]
cmp edx, eax
je 0x512d78
cmp dword [edi + 0x14], 0x10
lea eax, [edx + 8]
mov edx, edi
jb 0x512c93
mov edx, dword [edi]
cmp dword [eax + 0x14], 0x10
mov ecx, eax
jb 0x512c9d
mov ecx, dword [eax]
mov esi, dword [eax + 0x10]
cmp esi, ebx
jne 0x512cf3
sub esi, 4
jb 0x512cc1
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x512cc6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x512cb0
cmp esi, 0xfffffffc
je 0x512d03
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x512cf3
cmp esi, 0xfffffffd
je 0x512d03
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x512cf3
cmp esi, 0xfffffffe
je 0x512d03
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x512cf3
cmp esi, 0xffffffff
je 0x512d03
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x512d03
mov edx, dword [ebp - 4]
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov edx, dword [edx]
jmp 0x512c6e
mov edx, dword [ebp - 4]
cmp dword [edx + 0x1c], 0x10
lea ecx, [edx + 8]
jb 0x512d12
mov ecx, dword [edx + 8]
cmp dword [edi + 0x14], 0x10
jb 0x512d1a
mov edi, dword [edi]
cmp ebx, dword [edx + 0x18]
jne 0x512d67
sub ebx, 4
jb 0x512d35
mov eax, dword [edi]
cmp eax, dword [ecx]
jne 0x512d3a
add edi, 4
add ecx, 4
sub ebx, 4
jae 0x512d24
cmp ebx, 0xfffffffc
je 0x512d6a
mov al, byte [edi]
cmp al, byte [ecx]
jne 0x512d67
cmp ebx, 0xfffffffd
je 0x512d6a
mov al, byte [edi + 1]
cmp al, byte [ecx + 1]
jne 0x512d67
cmp ebx, 0xfffffffe
je 0x512d6a
mov al, byte [edi + 2]
cmp al, byte [ecx + 2]
jne 0x512d67
cmp ebx, 0xffffffff
je 0x512d6a
mov al, byte [edi + 3]
cmp al, byte [ecx + 3]
je 0x512d6a
mov edx, dword [ebp - 8]
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov dword [eax], edx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 8]
pop edi
mov dword [eax], esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x513780
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 4], ecx
mov esi, ebx
cmp dword [ebx + 0x14], 0x10
mov edi, dword [ebx + 0x10]
jb 0x51379c
mov esi, dword [ebx]
xor ecx, ecx
mov edx, 0x811c9dc5
test edi, edi
je 0x5137b8
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x5137a7
mov esi, dword [ebp - 4]
mov eax, dword [esi + 0x18]
and eax, edx
lea edx, [eax*8]
mov eax, dword [esi + 0xc]
add esi, 4
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], esi
mov ecx, dword [edx + eax]
mov esi, dword [esi]
mov dword [ebp + 0xc], ecx
cmp esi, ecx
je 0x51385e
mov esi, dword [edx + eax + 4]
mov esi, dword [esi]
cmp esi, ecx
je 0x51385e
nop dword [eax]
mov esi, dword [esi + 4]
cmp dword [esi + 0x1c], 0x10
lea edx, [esi + 8]
jb 0x5137ff
mov edx, dword [esi + 8]
cmp dword [ebx + 0x14], 0x10
mov eax, ebx
jb 0x513809
mov eax, dword [ebx]
cmp edi, dword [esi + 0x18]
jne 0x513859
sub edi, 4
jb 0x513824
mov ecx, dword [eax]
cmp ecx, dword [edx]
jne 0x513829
add eax, 4
add edx, 4
sub edi, 4
jae 0x513813
cmp edi, 0xfffffffc
je 0x5138a5
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x513856
cmp edi, 0xfffffffd
je 0x5138a5
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x513856
cmp edi, 0xfffffffe
je 0x5138a5
mov cl, byte [eax + 2]
cmp cl, byte [edx + 2]
jne 0x513856
cmp edi, 0xffffffff
je 0x5138a5
mov al, byte [eax + 3]
cmp al, byte [edx + 3]
je 0x5138a5
mov edi, dword [ebx + 0x10]
cmp esi, dword [ebp + 0xc]
jne 0x5137f0
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
cmp esi, eax
je 0x513888
mov ecx, dword [edi + 4]
mov dword [ecx], eax
mov ecx, dword [eax + 4]
mov dword [ecx], esi
mov ecx, dword [esi + 4]
mov dword [ecx], edi
mov ecx, dword [eax + 4]
mov edx, dword [esi + 4]
mov dword [esi + 4], ecx
mov ecx, dword [edi + 4]
mov dword [eax + 4], ecx
mov dword [edi + 4], edx
mov edx, dword [ebp - 4]
mov ebx, dword [ebp - 0xc]
mov ecx, dword [edx + 0xc]
add ecx, ebx
mov eax, dword [ecx]
cmp eax, dword [edx + 4]
jne 0x5138c6
mov dword [ecx], edi
mov eax, dword [edx + 0xc]
mov dword [ebx + eax + 4], edi
jmp 0x5138e8
push dword [ebp + 0x10]
mov ecx, dword [ebp - 8]
lea eax, [ebp + 0xc]
push eax
call fcn.00513d20
mov eax, dword [ebp + 8]
pop edi
mov dword [eax], esi
pop esi
mov byte [eax + 4], 0
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp eax, esi
jne 0x5138ce
mov dword [ecx], edi
jmp 0x5138e8
mov eax, dword [ecx + 4]
mov eax, dword [eax]
mov dword [ecx + 4], eax
cmp eax, edi
je 0x5138e8
mov ecx, dword [edx + 0xc]
mov eax, dword [ecx + ebx + 4]
mov eax, dword [eax + 4]
mov dword [ecx + ebx + 4], eax
mov ecx, edx
call fcn.00513c00
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 0xc
Function at 0x5150b0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov ebx, ecx
movzx eax, byte [edi]
xor eax, 0x811c9dc5
mov esi, dword [ebx + 4]
imul edx, eax, 0x1000193
movzx eax, byte [edi + 1]
xor edx, eax
movzx eax, byte [edi + 2]
imul edx, edx, 0x1000193
xor edx, eax
movzx eax, byte [edi + 3]
imul ecx, edx, 0x1000193
mov edx, dword [ebx + 0x18]
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [ebx + 0xc]
and edx, eax
mov dword [ebp + 0xc], edx
mov eax, dword [ecx + edx*8]
cmp esi, eax
je 0x51511d
mov esi, dword [ecx + edx*8 + 4]
mov esi, dword [esi]
cmp esi, eax
je 0x51511d
mov ecx, dword [edi]
mov esi, dword [esi + 4]
cmp ecx, dword [esi + 8]
je 0x515164
cmp esi, eax
jne 0x515111
mov edi, dword [ebp + 0x10]
mov dword [ebp - 4], edi
mov eax, dword [edi]
cmp esi, eax
je 0x51514d
mov ecx, dword [edi + 4]
mov dword [ecx], eax
mov ecx, dword [eax + 4]
mov dword [ecx], esi
mov ecx, dword [esi + 4]
mov dword [ecx], edi
mov edx, dword [esi + 4]
mov ecx, dword [eax + 4]
mov dword [esi + 4], ecx
mov ecx, dword [edi + 4]
mov dword [eax + 4], ecx
mov dword [edi + 4], edx
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx + edx*8]
cmp eax, dword [ebx + 4]
jne 0x5151ba
mov dword [ecx + edx*8], edi
mov eax, dword [ebx + 0xc]
mov dword [eax + edx*8 + 4], edi
jmp 0x5151df
mov edi, dword [ebp + 0x10]
mov ecx, dword [edi + 4]
mov eax, dword [edi]
mov dword [ecx], eax
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov dword [ecx + 4], eax
dec dword [ebx + 8]
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x51519f
lea edx, [ecx + 4]
or eax, 0xffffffff
lock xadd dword [edx], eax
cmp eax, 1
jne 0x51519f
xor eax, eax
test edx, edx
cmove ecx, eax
push ecx
call fcn.00503980
add esp, 4
push edi
call fcn.004db150
mov eax, dword [ebp + 8]
add esp, 4
pop edi
mov dword [eax], esi
pop esi
mov byte [eax + 4], 0
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp eax, esi
jne 0x5151c3
mov dword [ecx + edx*8], edi
jmp 0x5151df
mov eax, dword [ecx + edx*8 + 4]
mov eax, dword [eax]
mov dword [ecx + edx*8 + 4], eax
cmp eax, edi
je 0x5151df
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx + edx*8 + 4]
mov eax, dword [eax + 4]
mov dword [ecx + edx*8 + 4], eax
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0x1c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x553230]
mov eax, ecx
shr eax, 0x1f
cvtpd2ps xmm1, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x553230]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [ebx]
jbe 0x51526c
cmp ecx, 0x200
jae 0x51522d
shl ecx, 3
jmp 0x515237
cmp ecx, 0x1fffffff
jae 0x515237
add ecx, ecx
push ecx
mov ecx, ebx
call fcn.00512110
mov eax, dword [ebx + 4]
cmp dword [eax], eax
je 0x51526c
mov eax, dword [eax + 4]
mov edi, eax
nop dword [eax + eax]
mov esi, dword [ebx + 4]
mov ecx, ebx
mov esi, dword [esi]
push esi
lea eax, [esi + 8]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.005150b0
cmp esi, edi
jne 0x515250
mov edi, dword [ebp - 4]
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 0xc
Function at 0x516480
Capabilities:
Get thread local storage value

Disassembly:
mov eax, dword [0x58dc80]
sub eax, 0
je 0x5164ff
sub eax, 1
je 0x51649d
cmp dword [0x58dc80], 0
sete al
test al, al
jne 0x5164ff
mov eax, dword [0x58dc80]
test eax, 0xfffffffe
jne 0x5164f4
push 0x58dc80
call fcn.004fabe0
add esp, 4
test al, al
je 0x5164f4
xorps xmm0, xmm0
mov dword [0x58dc8c], 0
push 0
mov ecx, 0x58dc84
movq qword [0x58dc84], xmm0
call fcn.004f8d90
push 0x58dc80
push 0
push 0x58dc84
push 0x58dc80
call fcn.004fabc0
add esp, 0x10
mov ecx, dword [0x58dc80]
jmp fcn.004f90f0
xor eax, eax
ret
Function at 0x51aad0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
cmp dword [eax + 0x14], 0x10
mov edi, ecx
mov ebx, dword [eax + 0x10]
mov esi, eax
mov dword [ebp - 0x10], ebx
jb 0x51aaee
mov esi, dword [eax]
xor ecx, ecx
mov edx, 0x811c9dc5
test ebx, ebx
je 0x51ab11
nop dword [eax]
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x51ab00
mov ecx, dword [edi + 0x18]
mov ebx, dword [edi + 4]
and ecx, edx
mov edx, dword [edi + 0xc]
mov dword [ebp - 4], ebx
mov eax, dword [edx + ecx*8]
add ecx, ecx
mov esi, dword [edx + ecx*4]
inc ecx
mov dword [ebp - 8], esi
lea ecx, [edx + ecx*4]
mov dword [ebp - 0xc], ecx
cmp esi, ebx
jne 0x51ab39
mov ecx, ebx
jmp 0x51ab3d
mov ecx, dword [ecx]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x51ac5c
mov ecx, dword [ebp + 8]
mov esi, ecx
cmp dword [ecx + 0x14], 0x10
jb 0x51ab52
mov esi, dword [ecx]
cmp dword [eax + 0x1c], 0x10
lea edx, [eax + 8]
jb 0x51ab5e
mov edx, dword [eax + 8]
mov edi, dword [eax + 0x18]
cmp edi, dword [ebp - 0x10]
jne 0x51abb3
sub edi, 4
jb 0x51ab81
nop dword [eax + eax]
mov ecx, dword [edx]
cmp ecx, dword [esi]
jne 0x51ab86
add edx, 4
add esi, 4
sub edi, 4
jae 0x51ab70
cmp edi, 0xfffffffc
je 0x51abc0
mov cl, byte [edx]
cmp cl, byte [esi]
jne 0x51abb3
cmp edi, 0xfffffffd
je 0x51abc0
mov cl, byte [edx + 1]
cmp cl, byte [esi + 1]
jne 0x51abb3
cmp edi, 0xfffffffe
je 0x51abc0
mov cl, byte [edx + 2]
cmp cl, byte [esi + 2]
jne 0x51abb3
cmp edi, 0xffffffff
je 0x51abc0
mov cl, byte [edx + 3]
cmp cl, byte [esi + 3]
je 0x51abc0
mov eax, dword [eax]
mov esi, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
jmp 0x51ab31
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp + 8]
cmp dword [ebp - 8], ebx
jne 0x51abd1
mov edx, ebx
jmp 0x51abd8
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov edx, dword [edx]
cmp eax, edx
je 0x51ac55
cmp dword [eax + 0x1c], 0x10
lea edi, [eax + 8]
jb 0x51abe8
mov edi, dword [eax + 8]
cmp dword [ecx + 0x14], 0x10
mov esi, ecx
jb 0x51abf2
mov esi, dword [ecx]
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [eax + 0x18]
mov ecx, dword [ebp + 8]
jne 0x51ac55
mov ebx, dword [ecx + 0x10]
sub ebx, 4
jb 0x51ac16
mov edx, dword [esi]
cmp edx, dword [edi]
jne 0x51ac1b
add esi, 4
add edi, 4
sub ebx, 4
jae 0x51ac05
cmp ebx, 0xfffffffc
je 0x51ac48
mov dl, byte [esi]
cmp dl, byte [edi]
jne 0x51ac52
cmp ebx, 0xfffffffd
je 0x51ac48
mov dl, byte [esi + 1]
cmp dl, byte [edi + 1]
jne 0x51ac52
cmp ebx, 0xfffffffe
je 0x51ac48
mov dl, byte [esi + 2]
cmp dl, byte [edi + 2]
jne 0x51ac52
cmp ebx, 0xffffffff
je 0x51ac48
mov dl, byte [esi + 3]
cmp dl, byte [edi + 3]
jne 0x51ac52
mov eax, dword [eax]
mov ebx, dword [ebp - 4]
jmp 0x51abc8
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
cmp ecx, eax
jne 0x51ac60
mov ecx, ebx
mov eax, ebx
pop edi
xor edx, edx
pop esi
pop ebx
cmp ecx, eax
je 0x51ac77
nop dword [eax]
mov ecx, dword [ecx]
inc edx
cmp ecx, eax
jne 0x51ac70
mov eax, edx
mov esp, ebp
pop ebp
ret 4