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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5c
cmp byte [0x102b2088], 0
push ebx
push esi
push edi
jne 0x1016ba76
cmp byte [0x102a56d8], 0
je 0x1016ba76
mov ecx, dword [0x1029a48c]
xor esi, esi
mov dword [esp + 0x14], esi
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
test eax, eax
je 0x1016ba6f
mov ecx, dword [0x1029a48c]
test esi, esi
js 0x1016ba55
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
cmp esi, eax
jge 0x1016ba55
mov eax, dword [0x102a5814]
lea ecx, [esi + esi*2]
lea eax, [eax + ecx*4]
add eax, 4
je 0x1016ba55
mov ebx, dword [eax]
test ebx, ebx
je 0x1016ba55
mov ecx, dword [ebx + 4]
push 0x102383a2
push str.item_type_name
call fcn.10180610
mov edi, eax
mov esi, 0x811c9dc5
test edi, edi
je 0x1016ba51
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1016b662
sub ecx, edx
mov edx, 0
je 0x1016ba51
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x1016b676
cmp esi, 0xb9bdaa29
jne 0x1016ba51
mov ecx, dword [ebx + 4]
push 0x102383a2
push str.model_world
call fcn.10180610
push eax
call fcn.1006b540
push eax
call fcn.10137c60
test eax, eax
je 0x1016ba51
push eax
call fcn.10035120
mov dword [esp + 0xc], eax
test eax, eax
je 0x1016ba51
push 0x102a5f00
lea ecx, [esp + 0x28]
call fcn.1016bf60
mov ecx, dword [esp + 0xc]
xor esi, esi
mov ecx, dword [ecx + 0x9c]
test ecx, ecx
jle 0x1016ba12
mov eax, dword [esp + 0xc]
cmp esi, ecx
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x10]
jg 0x1016b9f9
mov eax, dword [eax + 0xa0]
add eax, ecx
add eax, dword [esp + 0xc]
je 0x1016b9f5
mov ebx, dword [eax]
add ebx, eax
mov eax, 0x811c9dc5
je 0x1016b9f5
mov edx, ebx
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x1016b727
sub edx, edi
mov edi, 0
je 0x1016b9f1
nop dword [eax + eax]
movsx ecx, byte [edi + ebx]
inc edi
xor ecx, eax
imul eax, ecx, 0x1000193
cmp edi, edx
jb 0x1016b740
cmp eax, 0x75d161dd
ja 0x1016b8b9
je 0x1016b8ac
cmp eax, 0x4dd10178
ja 0x1016b816
je 0x1016b809
cmp eax, 0x15fccf2d
ja 0x1016b7c9
je 0x1016b7bc
cmp eax, 0x2e2d642
je 0x1016b7af
cmp eax, 0xfa29148
je 0x1016b7a2
cmp eax, 0x13d140ac
jne 0x1016b9f1
mov dword [esp + 0x18], 0x1c
jmp 0x1016b9e1
mov dword [esp + 0x18], 0
jmp 0x1016b9e1
mov dword [esp + 0x18], 0x16
jmp 0x1016b9e1
mov dword [esp + 0x18], 0x13
jmp 0x1016b9e1
cmp eax, 0x1eb5fd9f
je 0x1016b7fc
cmp eax, 0x29d1634e
je 0x1016b7ef
cmp eax, 0x34b62041
jne 0x1016b9f1
mov dword [esp + 0x18], 8
jmp 0x1016b9e1
mov dword [esp + 0x18], 0x17
jmp 0x1016b9e1
mov dword [esp + 0x18], 0xf
jmp 0x1016b9e1
mov dword [esp + 0x18], 0xb
jmp 0x1016b9e1
cmp eax, 0x5cc1fc89
ja 0x1016b86c
je 0x1016b85f
cmp eax, 0x56c1f317
je 0x1016b852
cmp eax, 0x57fd8973
je 0x1016b845
cmp eax, 0x5bd11782
jne 0x1016b9f1
mov dword [esp + 0x18], 0x12
jmp 0x1016b9e1
mov dword [esp + 0x18], 0xd
jmp 0x1016b9e1
mov dword [esp + 0x18], 0xe
jmp 0x1016b9e1
mov dword [esp + 0x18], 7
jmp 0x1016b9e1
cmp eax, 0x649d2684
je 0x1016b89f
cmp eax, 0x6f27dbdf
je 0x1016b892
cmp eax, 0x724eaf57
jne 0x1016b9f1
mov dword [esp + 0x18], 0x19
jmp 0x1016b9e1
mov dword [esp + 0x18], 0x18
jmp 0x1016b9e1
mov dword [esp + 0x18], 0xa
jmp 0x1016b9e1
mov dword [esp + 0x18], 9
jmp 0x1016b9e1
cmp eax, 0xbdba5017
ja 0x1016b96a
je 0x1016b960
cmp eax, 0x982979bc
ja 0x1016b920
je 0x1016b913
cmp eax, 0x75fdb8ad
je 0x1016b906
cmp eax, 0x784eb8c9
je 0x1016b8f9
cmp eax, 0x8527fe81
jne 0x1016b9f1
mov dword [esp + 0x18], 0x1d
jmp 0x1016b9e1
mov dword [esp + 0x18], 0x1e
jmp 0x1016b9e1
mov dword [esp + 0x18], 0x14
jmp 0x1016b9e1
mov dword [esp + 0x18], 0x1b
jmp 0x1016b9e1
cmp eax, 0x9ef74c7a
je 0x1016b953
cmp eax, 0xaa70742c
je 0x1016b946
cmp eax, 0xbd6a1fc0
jne 0x1016b9f1
mov dword [esp + 0x18], 2
jmp 0x1016b9e1
mov dword [esp + 0x18], 6
jmp 0x1016b9e1
mov dword [esp + 0x18], 0x11
jmp 0x1016b9e1
mov dword [esp + 0x18], 0x15
jmp 0x1016b9e1
cmp eax, 0xc3ba5989
ja 0x1016b9b0
je 0x1016b9a6
cmp eax, 0xbe6a2153
je 0x1016b99c
cmp eax, 0xbf6a22e6
je 0x1016b992
cmp eax, 0xc06a2479
jne 0x1016b9f1
mov dword [esp + 0x18], 3
jmp 0x1016b9e1
mov dword [esp + 0x18], 4
jmp 0x1016b9e1
mov dword [esp + 0x18], 1
jmp 0x1016b9e1
mov dword [esp + 0x18], 0x1a
jmp 0x1016b9e1
cmp eax, 0xcc63b5ef
je 0x1016b9d9
cmp eax, 0xdb122563
je 0x1016b9cf
cmp eax, 0xee6e0705
jne 0x1016b9f1
mov dword [esp + 0x18], 5
jmp 0x1016b9e1
mov dword [esp + 0x18], 0xc
jmp 0x1016b9e1
mov dword [esp + 0x18], 0x10
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
call fcn.10080020
mov dword [eax], esi
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
add ecx, 0xd8
inc esi
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0x9c]
cmp esi, ecx
jl 0x1016b6f7
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
lea ecx, [esp + 0x48]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x24]
push eax
call fcn.1016bf60
lea eax, [esp + 0x44]
mov ecx, 0x102b208c
push eax
lea eax, [esp + 0x20]
push eax
call fcn.1016c710
lea ecx, [esp + 0x48]
call fcn.10003780
lea ecx, [esp + 0x24]
call fcn.10003780
mov esi, dword [esp + 0x14]
mov ecx, dword [0x1029a48c]
inc esi
mov dword [esp + 0x14], esi
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
cmp esi, eax
jb 0x1016b601
mov byte [0x102b2088], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret