Function at 0x101793a0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0x2c]
sub esp, 0x44
mov edx, dword [0x102999e4]
push ebx
mov ebx, dword [eax + edx*4]
mov eax, dword [0x102bbce0]
push esi
push edi
mov edi, ecx
cmp eax, dword [ebx + 4]
jle 0x10179429
push 0x102bbce0
call fcn.101e23b9
add esp, 4
cmp dword [0x102bbce0], 0xffffffff
jne 0x10179429
push 0
push 0x102383a2
mov ecx, 0x102bbce4
mov dword [0x102bbce4], 0
mov dword [0x102bbcf4], 0
mov dword [0x102bbcf8], 0xf
call fcn.1000d310
push 0x102113d0
call fcn.101e2242
add esp, 4
push 0x102bbce0
call fcn.101e236f
add esp, 4
call fcn.101792c0
mov esi, eax
mov ecx, edi
mov dword [esp + 0x14], esi
call fcn.10006f70
movsx edx, word [eax]
mov eax, edx
mov dword [esp + 0x10], edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
imul eax, eax, 0x1000193
xor ecx, eax
mov eax, edx
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
shr edx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, esi
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.10006b20
mov esi, dword [eax + 4]
test esi, esi
jne 0x1017949b
mov esi, dword [esp + 0x14]
mov esi, dword [esi + 4]
call fcn.101792c0
cmp esi, dword [eax + 4]
jne 0x10179655
mov eax, dword [0x102bbc9c]
cmp eax, dword [ebx + 4]
jle 0x101794ff
push 0x102bbc9c
call fcn.101e23b9
add esp, 4
cmp dword [0x102bbc9c], 0xffffffff
jne 0x101794ff
lea eax, [esp + 0x14]
mov dword [esp + 0x14], str.GetCSWpnData
push eax
lea eax, [esp + 0x1c]
mov ecx, 0x102a5794
push eax
call fcn.10006340
push 0x102bbc9c
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [0x102bbca0], eax
call fcn.101e236f
add esp, 4
mov ecx, dword [edi]
mov eax, dword [0x102bbca0]
mov eax, dword [ecx + eax*4]
mov ecx, edi
call eax
test eax, eax
je 0x10179649
mov ecx, eax
call fcn.1009d290
push 0x102383a2
push str.item_name
mov eax, dword [eax]
mov ecx, dword [eax + 4]
call fcn.10180610
push eax
call fcn.1007b340
mov edx, eax
mov dword [esp + 0x20], 0
mov ecx, edx
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 7
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10179555
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [esp + 0x28]
call fcn.10024b40
cmp dword [esp + 0x34], 8
lea edx, [esp + 0x20]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
setae bl
jb 0x1017958a
lea eax, [ecx + eax*2]
jmp 0x10179595
lea eax, [edx + eax*2]
lea edx, [esp + 0x20]
test bl, bl
je 0x10179597
mov edx, ecx
push ecx
push eax
push edx
lea ecx, [esp + 0x44]
call fcn.100817a0
call fcn.101792c0
mov ecx, edi
mov esi, eax
call fcn.10006f70
mov ecx, esi
movsx eax, word [eax]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
call fcn.1007fc20
mov ecx, eax
lea eax, [esp + 0x38]
cmp ecx, eax
je 0x101795e2
cmp dword [esp + 0x4c], 0x10
push dword [esp + 0x48]
cmovae eax, dword [esp + 0x3c]
push eax
call fcn.1000d310
call fcn.101792c0
mov ecx, edi
mov esi, eax
call fcn.10006f70
mov ecx, esi
movsx eax, word [eax]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
call fcn.1007fc20
mov edx, dword [esp + 0x4c]
mov esi, eax
cmp edx, 0x10
jb 0x10179637
mov ecx, dword [esp + 0x38]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1017962d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1017965f
push edx
push ecx
call fcn.101e1f2f
add esp, 8
lea ecx, [esp + 0x20]
call fcn.10026090
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x102bbce4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
lea eax, [esi + 0xc]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.101e6db2
int3