Function at 0x10199730
Capabilities:
Hash data using fnv

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101d4c89
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x68
push esi
push edi
mov eax, dword [0x10216080]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x20], esi
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x1c], eax
movzx eax, dl
xor eax, 0x811c9dc5
mov edi, dword [ebx + 0x10]
imul ecx, eax, 0x1000193
mov eax, edx
sar eax, 8
movzx eax, al
mov dword [ebp - 0x18], edi
xor ecx, eax
mov eax, edx
sar eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
sar eax, 0x18
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [esi + 0x20]
push eax
lea eax, [ebx + 0xc]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10114f20
mov edx, dword [eax + 4]
mov dword [ebp - 0x28], edx
test edx, edx
jne 0x101997de
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x28], eax
mov ecx, dword [0x1021c9f4]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x14], eax
mov ecx, eax
mov eax, dword [0x104ce6d4]
cmp eax, dword [ecx + 4]
jle 0x1019982d
push 0x104ce6d4
call fcn.101a94df
add esp, 4
cmp dword [0x104ce6d4], 0xffffffff
jne 0x1019982a
mov eax, dword [ebx + 0xc]
push 0x104ce6d4
mov dword [0x104ce68c], eax
call fcn.101a948e
add esp, 4
mov ecx, dword [ebp - 0x14]
mov eax, dword [0x104ce6d8]
cmp eax, dword [ecx + 4]
jle 0x101998b9
push 0x104ce6d8
call fcn.101a94df
add esp, 4
cmp dword [0x104ce6d8], 0xffffffff
jne 0x101998b9
mov ecx, edi
mov dword [ebp - 4], 0
xorps xmm0, xmm0
mov dword [0x104ce6a0], 0
movups xmmword [0x104ce690], xmm0
mov dword [0x104ce6a4], 0
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10199880
sub ecx, edx
sar ecx, 1
push ecx
push edi
mov ecx, 0x104ce690
call fcn.1010ddd0
push 0x101d7620
call fcn.101a9413
push 0x104ce6d8
mov dword [ebp - 4], 0xffffffff
call fcn.101a948e
add esp, 8
mov edi, dword [ebp - 0x14]
mov eax, dword [0x104ce688]
cmp eax, dword [edi + 4]
jle 0x10199900
push 0x104ce688
call fcn.101a94df
add esp, 4
cmp dword [0x104ce688], 0xffffffff
jne 0x10199900
push 0x104ce688
mov dword [0x104ce680], 0
mov dword [0x104ce684], 0
call fcn.101a948e
add esp, 4
mov edi, dword [ebp - 0x28]
cmp edi, dword [esi + 0x24]
jne 0x10199a2d
cmp dword [esi + 0x14], 7
mov eax, esi
jbe 0x10199916
mov eax, dword [esi]
push dword [esi + 0x1c]
mov edi, dword [ebx + 0xc]
lea ecx, [ebp - 0x78]
push dword [esi + 0x18]
push edi
push eax
call fcn.10197350
lea eax, [ebx + 0xc]
mov dword [ebp - 4], 1
push eax
lea ecx, [esi + 0x20]
call fcn.10199f40
mov edi, eax
lea eax, [ebp - 0x78]
cmp edi, eax
je 0x10199958
cmp dword [ebp - 0x64], 7
mov ecx, edi
push dword [ebp - 0x68]
cmova eax, dword [ebp - 0x78]
push eax
call fcn.1013e7f0
mov eax, dword [ebp - 0x60]
lea ecx, [edi + 0x38]
mov dword [edi + 0x18], eax
mov eax, dword [ebp - 0x5c]
mov dword [edi + 0x1c], eax
mov eax, dword [ebp - 0x58]
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x54]
mov dword [edi + 0x24], eax
mov eax, dword [ebp - 0x50]
mov dword [edi + 0x28], eax
mov eax, dword [ebp - 0x4c]
mov dword [edi + 0x2c], eax
mov eax, dword [ebp - 0x48]
mov dword [edi + 0x30], eax
lea eax, [ebp - 0x40]
movss xmm0, dword [ebp - 0x44]
movss dword [edi + 0x34], xmm0
cmp ecx, eax
je 0x101999a8
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
sub eax, edx
sar eax, 4
push eax
push edx
call fcn.1019a8e0
mov dword [ebp - 4], 2
mov ecx, dword [ebp - 0x54]
test ecx, ecx
je 0x101999d0
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x101d8258]
call esi
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x54], 0
lea ecx, [ebp - 0x40]
call fcn.10113840
lea ecx, [ebp - 0x78]
call fcn.1010f990
mov dword [ebp - 4], 0xffffffff
mov ecx, edi
push dword [esi + 0x40]
call fcn.10197650
push dword [ebp - 0x18]
lea eax, [ebp - 0x24]
mov ecx, edi
push eax
call fcn.10197b90
movss xmm1, dword [eax]
cvttss2si ecx, xmm1
movss dword [0x104ce680], xmm1
movss xmm0, dword [eax + 4]
mov eax, dword [ebp - 0x1c]
movss dword [0x104ce684], xmm0
mov dword [eax], ecx
cvttss2si ecx, xmm0
mov dword [eax + 4], ecx
jmp 0x10199b05
mov edi, dword [ebx + 0xc]
cmp edi, dword [0x104ce68c]
jne 0x10199a99
mov ecx, dword [ebp - 0x18]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10199a40
mov esi, dword [0x104ce6a0]
sub ecx, edx
sar ecx, 1
mov eax, 0x104ce690
cmp dword [0x104ce6a4], 7
cmova eax, dword [0x104ce690]
cmp esi, ecx
jne 0x10199a99
mov ecx, dword [ebp - 0x18]
mov edx, ecx
test esi, esi
je 0x10199aeb
sub eax, ecx
mov dword [ebp - 0x20], eax
nop word [eax + eax]
movzx ecx, word [eax + edx]
movzx eax, word [edx]
cmp cx, ax
jne 0x10199a99
mov eax, dword [ebp - 0x20]
add edx, 2
sub esi, 1
jne 0x10199a80
jmp 0x10199aeb
mov esi, dword [ebp - 0x18]
lea eax, [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
push esi
push eax
add ecx, 0xc
call fcn.10197b90
mov edx, esi
mov dword [0x104ce68c], edi
movss xmm0, dword [eax]
movss dword [0x104ce680], xmm0
lea edi, [edx + 2]
movss xmm0, dword [eax + 4]
movss dword [0x104ce684], xmm0
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x10199ad0
sub edx, edi
mov ecx, 0x104ce690
sar edx, 1
push edx
push esi
call fcn.1013e7f0
cvttss2si eax, dword [0x104ce680]
mov edx, dword [ebp - 0x1c]
cvttss2si ecx, dword [0x104ce684]
mov dword [edx], eax
mov eax, edx
mov dword [edx + 4], ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc