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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword fs:[0x2c]
push ebx
push esi
mov esi, dword [0x102999e4]
push edi
mov edi, edx
mov dword [ebp - 8], ecx
mov esi, dword [eax + esi*4]
mov eax, dword [0x102baa38]
cmp eax, dword [esi + 4]
jle 0x10120d77
push 0x102baa38
call fcn.101e23b9
add esp, 4
cmp dword [0x102baa38], 0xffffffff
jne 0x10120d77
push 0xb5f94dc6
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], 0x6c5a4374
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.101700c0
mov eax, dword [eax + 4]
test eax, eax
je 0x10120d63
cmp eax, dword [0x102b2594]
je 0x10120d63
lea eax, [ebp - 0xc]
push eax
call fcn.1016fcd0
jmp 0x10120d65
xor eax, eax
push 0x102baa38
mov dword [0x102baa3c], eax
call fcn.101e236f
add esp, 4
mov eax, dword [0x102baa40]
cmp eax, dword [esi + 4]
jle 0x10120e37
push 0x102baa40
call fcn.101e23b9
add esp, 4
cmp dword [0x102baa40], 0xffffffff
jne 0x10120e37
push 0x10
mov dword [0x102baa44], 0
mov dword [0x102baa48], 0
mov dword [0x102baa4c], 0
call fcn.101e2257
add esp, 4
mov ecx, 0x102baa50
mov dword [eax], eax
mov dword [eax + 4], eax
push eax
push 0x10
mov dword [0x102baa48], eax
mov dword [0x102baa50], 0
mov dword [0x102baa54], 0
mov dword [0x102baa58], 0
mov dword [0x102baa5c], 7
mov dword [0x102baa60], 8
mov dword [0x102baa44], 0x3f800000
call fcn.10003810
push 0x1020fdd0
call fcn.101e2242
add esp, 4
push 0x102baa40
call fcn.101e236f
add esp, 4
mov ebx, 0x811c9dc5
test edi, edi
je 0x10120e66
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10120e45
sub ecx, edx
mov edx, 0
je 0x10120e66
movsx eax, byte [edx + edi]
inc edx
xor eax, ebx
imul ebx, eax, 0x1000193
cmp edx, ecx
jb 0x10120e55
movzx eax, bl
xor eax, 0x811c9dc5
mov dword [ebp - 4], ebx
imul ecx, eax, 0x1000193
mov eax, ebx
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
imul ecx, ecx, 0x1000193
shr ebx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
xor eax, ebx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10122600
mov eax, dword [eax + 4]
test eax, eax
je 0x10120ec3
cmp eax, dword [0x102baa48]
jne 0x10120f48
mov ecx, dword [0x102baa3c]
lea eax, [ebp - 0xc]
push 1
push 1
push edi
push eax
call fcn.1016ee60
cmp dword [ebp - 0xc], 0
je 0x10120f7e
push 1
push 0xc8
push 0
push str.89_75_F8_C7_45_FC
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0xc]
call fcn.101228d0
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x10120f59
add eax, 6
je 0x10120f09
mov eax, dword [eax]
push ecx
push 0xc8
push 0
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x10]
push str.FF_75_FC
lea eax, [ebp - 0xc]
push eax
call fcn.10122730
mov esi, dword [eax]
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.101220c0
mov eax, dword [eax]
mov dword [eax + 0xc], esi
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.101220c0
mov eax, dword [eax]
mov ecx, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov dword [ecx], eax
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 1
push 0xc8
push 0
push str.C7_45_FC_________89_75_F8
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0xc]
call fcn.101228d0
mov eax, dword [eax]
test eax, eax
je 0x10120f7e
add eax, 3
jmp 0x10120f05
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
mov dword [eax], 0
mov esp, ebp
pop ebp
ret