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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10108a95
mov eax, dword fs:[0]
push eax
sub esp, 0x44
mov eax, dword [0x1011900c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x10465a2c]
test al, 1
jne 0x100f3e28
or eax, 1
mov dword [0x10465a2c], eax
mov eax, dword [0x1045f944]
mov ebx, dword [eax + 0x30]
jmp 0x100f3e1c
mov edi, dword [ebx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x100f3df0
xor edx, edx
test ecx, ecx
je 0x100f3e19
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100f3e00
cmp esi, 0xcc254ccd
je 0x100f3e20
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100f3de6
mov dword [0x10465908], ebx
jmp 0x100f3e2e
mov ebx, dword [0x10465908]
mov eax, dword [ebx]
movss xmm0, dword [0x10430db4]
push ecx
mov ecx, ebx
movss dword [esp], xmm0
mov eax, dword [eax + 0x3c]
call eax
mov eax, dword [0x10465a2c]
test al, 2
jne 0x100f3ea8
or eax, 2
mov dword [0x10465a2c], eax
mov eax, dword [0x1045f944]
mov ebx, dword [eax + 0x30]
jmp 0x100f3e9c
mov edi, dword [ebx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x100f3e70
xor edx, edx
test ecx, ecx
je 0x100f3e99
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100f3e80
cmp esi, 0x5b8a97d3
je 0x100f3ea0
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100f3e60
mov dword [0x104658ec], ebx
jmp 0x100f3eae
mov ebx, dword [0x104658ec]
mov eax, dword [ebx]
xor edx, edx
cmp byte [0x10430c88], dl
mov ecx, ebx
setne dl
mov eax, dword [eax + 0x40]
push edx
call eax
mov eax, dword [0x10465a2c]
test al, 4
jne 0x100f3f28
or eax, 4
mov dword [0x10465a2c], eax
mov eax, dword [0x1045f944]
mov ebx, dword [eax + 0x30]
jmp 0x100f3f1c
mov edi, dword [ebx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x100f3ef0
xor edx, edx
test ecx, ecx
je 0x100f3f19
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100f3f00
cmp esi, 0x90f473ab
je 0x100f3f20
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100f3ee0
mov dword [0x10465914], ebx
jmp 0x100f3f2e
mov ebx, dword [0x10465914]
cmp byte [0x104282ac], 0
je 0x100f3f58
mov ecx, dword [0x1045fb84]
mov eax, dword [0x1041cfb8]
add ecx, 0xffffffb8
xor ecx, 0xae997d16
cmp byte [ecx + eax], 0
jne 0x100f3f58
mov ecx, 3
jmp 0x100f3f5a
xor ecx, ecx
mov eax, dword [ebx]
push ecx
mov ecx, ebx
mov eax, dword [eax + 0x40]
call eax
cmp byte [0x10430c00], 0
je 0x100f42c1
mov eax, dword [0x1045f9a4]
movss xmm1, dword [eax + 0x10]
comiss xmm1, dword [0x10464af0]
ja 0x100f42c1
movss xmm2, dword [0x10464af4]
xorps xmm0, xmm0
comiss xmm0, xmm2
jae 0x100f42c1
subss xmm1, dword [0x10464aec]
mov eax, dword [0x1041d398]
movss xmm0, dword [0x1010d898]
mov ecx, dword [0x1045f954]
cdq
divss xmm1, xmm2
sub eax, edx
mov word [ebp - 0x2c], 0xc8c8
mov ebx, eax
mov byte [ebp - 0x2a], 0xc8
mov eax, dword [0x1041d39c]
cdq
sub eax, edx
sar ebx, 1
mov edi, eax
mov dword [ebp - 0x34], ebx
sar edi, 1
mov dword [ebp - 0x38], edi
subss xmm0, xmm1
mulss xmm0, dword [0x1010da2c]
cvttss2si eax, xmm0
mov byte [ebp - 0x29], al
push dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1045f954]
lea edx, [edi - 1]
push edx
lea esi, [ebx - 1]
add ebx, 0xfffffffa
push esi
mov eax, dword [ecx]
lea edx, [edi - 6]
push edx
push ebx
mov eax, dword [eax + 0x4c]
call eax
mov ecx, dword [0x1045f954]
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0x29], al
mov word [ebp - 0x2c], 0xc8c8
mov eax, dword [ecx]
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1045f954]
inc edi
mov edx, dword [ebp - 0x38]
push edi
push esi
mov eax, dword [ecx]
add edx, 6
push edx
push ebx
mov eax, dword [eax + 0x4c]
call eax
mov ecx, dword [0x1045f954]
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0x29], al
mov word [ebp - 0x2c], 0xc8c8
mov eax, dword [ecx]
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov edx, dword [ebp - 0x34]
mov ecx, dword [0x1045f954]
push edi
mov edi, dword [ebp - 0x38]
lea esi, [edx + 1]
mov eax, dword [ecx]
lea ebx, [edx + 6]
push esi
lea edx, [edi + 6]
push edx
mov eax, dword [eax + 0x4c]
push ebx
call eax
mov ecx, dword [0x1045f954]
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0x29], al
mov word [ebp - 0x2c], 0xc8c8
mov eax, dword [ecx]
mov byte [ebp - 0x2a], 0xc8
push dword [ebp - 0x2c]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1045f954]
lea edx, [edi - 1]
push edx
push esi
lea edx, [edi - 6]
mov eax, dword [ecx]
push edx
push ebx
mov eax, dword [eax + 0x4c]
call eax
push 0x10432e88
lea edx, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0xa6925
lea ecx, [ebp - 0x28]
call fcn.100fc4f0
add esp, 4
mov dword [ebp - 4], 0
mov edi, 1
mov eax, dword [0x1045f9a4]
cmp dword [eax + 0x18], edi
jl 0x100f428b
nop
mov ecx, dword [0x1045f94c]
push edi
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov edx, 0x10432eb4
mov ecx, 0x10432e9c
call fcn.100eede0
test al, al
je 0x100f427c
mov edx, 0x10432ebc
mov ecx, 0x10432ea8
call fcn.100eede0
test al, al
je 0x100f427c
movss xmm3, dword [0x10432eb8]
movaps xmm0, xmm3
subss xmm0, dword [0x10432ec0]
cvttss2si eax, xmm0
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movaps xmm0, xmm2
subss xmm3, xmm2
mulss xmm0, dword [0x1010d860]
cvttss2si ebx, xmm0
movss xmm0, dword [0x10432eb4]
cvttss2si esi, xmm3
movd xmm1, ebx
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [0x1010d860]
subss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [ebp - 0x38], eax
mov al, byte [0x10432e8d]
test al, al
jne 0x100f41dd
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0x28]
push 2
push eax
mov ecx, esi
sub ecx, dword [0x10462004]
sub ecx, 0xa
push ecx
mov eax, esp
push ecx
cvttss2si ecx, xmm0
mov word [eax], 0xff
mov byte [eax + 2], 0
mov byte [eax + 3], dl
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov ecx, 0x10462044
push eax
call fcn.100ef200
mov al, byte [0x10432e8d]
cmp al, 1
jne 0x100f427c
push 8
mov dword [ebp - 0x50], 0
lea ecx, [ebp - 0x50]
push str.HEADSHOT
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
call fcn.1002f190
push 2
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 1
sub esi, dword [0x10462004]
push eax
mov eax, dword [ebp - 0x30]
sub esi, 0x14
push ecx
mov ecx, esp
push esi
mov byte [ecx + 3], al
mov eax, ebx
cdq
sub eax, edx
mov word [ecx], 0xb41e
sar eax, 1
add eax, dword [ebp - 0x38]
mov byte [ecx + 2], 0x1e
mov ecx, 0x10462044
push eax
call fcn.100ef200
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x100f427c
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100f4272
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100f42b1
push ecx
push edx
call fcn.100fda60
add esp, 8
mov eax, dword [0x1045f9a4]
inc edi
cmp edi, dword [eax + 0x18]
jle 0x100f4100
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x10
jb 0x100f42c1
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100f42b7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100f42b7
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100fda60
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100fd5e5
mov esp, ebp
pop ebp
ret