Function at 0x634ed0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x48
mov ebx, ecx
lea eax, [esp + 0x64]
lea ecx, [esp + 0x14]
push eax
call fcn.0065a4e0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
xor ebp, ebp
mov edx, 0
test ecx, ecx
jle 0x634f1d
mov esi, dword [esp + 0x18]
add ecx, esi
xor edx, edx
nop word cs:[eax + eax]
lea edi, [edx + edx*4]
movsx edx, byte [esi]
add edx, edi
inc esi
cmp esi, ecx
jb 0x634f10
imul esi, eax, 0x1000193
xor esi, edx
mov edi, dword [ebx + 4]
test edi, edi
mov dword [esp], ebx
je 0x635033
mov eax, edi
shr eax, 1
and eax, 0x55555555
mov ecx, edi
sub ecx, eax
mov eax, ecx
and eax, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, eax
mov eax, ecx
shr eax, 4
add eax, ecx
and eax, 0xf0f0f0f
imul eax, eax, 0x1010101
shr eax, 0x18
mov dword [esp + 0x10], eax
cmp eax, 1
ja 0x634f77
lea ebp, [edi - 1]
and ebp, esi
jmp 0x634f85
mov ebp, esi
cmp esi, edi
jb 0x634f85
mov eax, esi
xor edx, edx
div edi
mov ebp, edx
mov eax, dword [ebx]
mov eax, dword [eax + ebp*4]
test eax, eax
je 0x635033
mov ebx, dword [eax]
test ebx, ebx
je 0x635030
lea eax, [edi - 1]
mov dword [esp + 0xc], eax
jmp 0x634fe3
and eax, dword [esp + 0xc]
cmp eax, ebp
jne 0x635030
lea eax, [ebx + 8]
lea ecx, [esp + 0x14]
push eax
call fcn.0065a4e0
lea ecx, [esp + 0x28]
lea eax, [esp + 0x64]
push eax
call fcn.0065a4e0
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x28]
je 0x635000
mov ebx, dword [ebx]
test ebx, ebx
je 0x635030
mov eax, dword [ebx + 4]
cmp eax, esi
je 0x634fb8
cmp dword [esp + 0x10], 1
jbe 0x634fb0
cmp eax, edi
jb 0x634fb4
xor edx, edx
div edi
mov eax, edx
jmp 0x634fb4
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x30]
jne 0x634fdd
test eax, eax
je 0x635029
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
cmp ecx, edx
je 0x635029
push eax
push edx
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x634fdd
xor eax, eax
jmp 0x6354da
mov ebx, dword [esp]
lea eax, [ebx + 8]
mov dword [esp + 8], eax
push 0xc
call fcn.0051c3d0
add esp, 4
lea ecx, [esp + 0x64]
mov ecx, dword [ecx]
mov dword [eax + 8], ecx
mov dword [eax + 4], esi
mov dword [esp + 0x38], eax
mov dword [eax], 0
mov eax, dword [ebx + 0xc]
inc eax
movq xmm2, qword [0x8d0030]
movd xmm0, eax
por xmm0, xmm2
subsd xmm0, xmm2
cvtsd2ss xmm0, xmm0
movss xmm1, dword [ebx + 0x10]
test edi, edi
je 0x63509f
movd xmm3, edi
por xmm3, xmm2
subsd xmm3, xmm2
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm3
mulss xmm2, xmm1
ucomiss xmm0, xmm2
jbe 0x635490
mov dword [esp + 4], esi
lea esi, [edi + edi]
cmp edi, 3
jb 0x6350b5
lea eax, [edi - 1]
test edi, eax
sete al
jmp 0x6350b7
xor eax, eax
xor al, 1
movzx eax, al
or esi, eax
divss xmm0, xmm1
sub esp, 4
movss dword [esp], xmm0
call fcn.0052a3a0
add esp, 4
fstp dword [esp + 0x44]
movss xmm0, dword [esp + 0x44]
cvttss2si ecx, xmm0
mov edx, ecx
sar edx, 0x1f
subss xmm0, dword [0x8d0038]
cvttss2si eax, xmm0
and eax, edx
or eax, ecx
cmp esi, eax
cmova eax, esi
mov edi, 2
cmp eax, 1
mov esi, dword [esp + 4]
je 0x63511a
lea ecx, [eax - 1]
test eax, ecx
je 0x635118
push eax
call fcn.004cdfe0
add esp, 4
mov edi, eax
mov ebx, dword [ebx + 4]
cmp edi, ebx
jbe 0x635231
mov ebp, edi
cmp ebp, 0x40000000
mov edi, dword [esp]
jae 0x6354e4
lea eax, [ebp*4]
push eax
call fcn.0051c3d0
add esp, 4
mov ecx, dword [edi]
mov dword [edi], eax
test ecx, ecx
je 0x635157
push ecx
call fcn.0051c570
add esp, 4
mov dword [edi + 4], ebp
lea edx, [ebp - 1]
mov eax, ebp
and eax, 3
xor ecx, ecx
mov dword [esp + 0x20], edx
cmp edx, 3
jb 0x6351ae
mov edx, ebp
and edx, 0xfffffffc
xor ecx, ecx
nop word cs:[eax + eax]
mov esi, dword [edi]
mov dword [esi + ecx*4], 0
mov esi, dword [edi]
mov dword [esi + ecx*4 + 4], 0
mov esi, dword [edi]
mov dword [esi + ecx*4 + 8], 0
mov esi, dword [edi]
mov dword [esi + ecx*4 + 0xc], 0
add ecx, 4
cmp edx, ecx
jne 0x635180
test eax, eax
je 0x6351cd
nop word cs:[eax + eax]
mov edx, dword [edi]
mov dword [edx + ecx*4], 0
inc ecx
dec eax
jne 0x6351c0
mov eax, dword [esp + 8]
mov eax, dword [eax]
test eax, eax
mov esi, dword [esp + 4]
je 0x63546f
mov edi, eax
mov edx, dword [eax + 4]
mov eax, ebp
shr eax, 1
and eax, 0x55555555
mov ecx, ebp
sub ecx, eax
mov eax, ecx
and eax, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, eax
mov eax, ecx
shr eax, 4
add eax, ecx
and eax, 0xf0f0f0f
imul eax, eax, 0x1010101
shr eax, 0x18
mov dword [esp + 0xc], eax
cmp eax, 1
ja 0x6352f1
and edx, dword [esp + 0x20]
mov ecx, dword [esp]
jmp 0x6352fe
jae 0x63546f
mov eax, dword [esp]
movss xmm0, dword [eax + 0xc]
orpd xmm0, xmmword [0x8d0040]
subsd xmm0, qword [0x8d0030]
cvtsd2ss xmm0, xmm0
divss xmm0, dword [eax + 0x10]
sub esp, 4
movss dword [esp], xmm0
call fcn.0052a3a0
add esp, 4
fstp dword [esp + 0x40]
movss xmm0, dword [esp + 0x40]
cvttss2si ecx, xmm0
mov edx, ecx
subss xmm0, dword [0x8d0038]
cvttss2si eax, xmm0
sar edx, 0x1f
and eax, edx
or eax, ecx
cmp ebx, 3
jb 0x635430
mov ecx, ebx
shr ecx, 1
and ecx, 0x55555555
mov edx, ebx
sub edx, ecx
mov ecx, edx
and ecx, 0x33333333
shr edx, 2
and edx, 0x33333333
add edx, ecx
mov ecx, edx
shr ecx, 4
add ecx, edx
and ecx, 0xf0f0f0f
imul ecx, ecx, 0x1010101
shr ecx, 0x18
cmp ecx, 1
ja 0x635430
lea ecx, [eax - 1]
bsr ecx, ecx
xor ecx, 0x1f
neg cl
mov ebp, 1
shl ebp, cl
cmp eax, 2
cmovb ebp, eax
jmp 0x63543b
cmp edx, ebp
mov ecx, dword [esp]
jb 0x6352fe
mov eax, edx
xor edx, edx
div ebp
mov eax, dword [ecx]
mov ecx, dword [esp + 8]
mov dword [eax + edx*4], ecx
mov eax, edi
mov edi, dword [edi]
test edi, edi
je 0x63546f
mov dword [esp + 0x34], ebp
jmp 0x63532c
mov eax, edi
mov edi, dword [eax]
test edi, edi
je 0x63546f
mov ebx, dword [edi + 4]
cmp dword [esp + 0xc], 1
ja 0x635340
and ebx, dword [esp + 0x20]
jmp 0x635358
cmp ebx, ebp
jb 0x635358
mov ecx, eax
mov eax, ebx
mov esi, edx
xor edx, edx
div ebp
mov eax, ecx
mov ebx, edx
mov edx, esi
mov esi, dword [esp + 4]
cmp ebx, edx
je 0x635320
mov dword [esp + 0x24], eax
mov eax, dword [esp]
mov eax, dword [eax]
cmp dword [eax + ebx*4], 0
je 0x635420
mov dword [esp + 0x3c], edx
mov esi, dword [edi]
mov ebp, edi
test esi, esi
je 0x6353f0
lea eax, [edi + 8]
mov dword [esp + 0x10], eax
mov ebp, edi
jmp 0x63539a
mov ebp, dword [ebp]
mov esi, dword [ebp]
test esi, esi
je 0x6353f0
add esi, 8
lea ecx, [esp + 0x14]
push dword [esp + 0x10]
call fcn.0065a4e0
lea ecx, [esp + 0x28]
push esi
call fcn.0065a4e0
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x28]
jne 0x6353f0
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x30]
jne 0x6353f0
test eax, eax
je 0x635390
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
cmp ecx, edx
je 0x635390
push eax
push edx
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
add esp, 0xc
test eax, eax
je 0x635390
nop word [eax + eax]
mov eax, dword [ebp]
mov edx, dword [esp + 0x24]
mov dword [edx], eax
mov ecx, dword [esp]
mov eax, dword [ecx]
mov eax, dword [eax + ebx*4]
mov eax, dword [eax]
mov dword [ebp], eax
mov eax, dword [ecx]
mov eax, dword [eax + ebx*4]
mov dword [eax], edi
mov eax, edx
mov esi, dword [esp + 4]
mov ebp, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
jmp 0x635322
mov ecx, dword [esp + 0x24]
mov dword [eax + ebx*4], ecx
mov eax, edi
mov edx, ebx
jmp 0x635322
push eax
call fcn.004cdfe0
add esp, 4
mov ebp, eax
cmp edi, ebp
cmova ebp, edi
cmp ebp, ebx
jae 0x63546f
test ebp, ebp
jne 0x635127
mov esi, dword [esp]
mov eax, dword [esi]
mov dword [esi], 0
test eax, eax
je 0x635464
push eax
call fcn.0051c570
add esp, 4
mov dword [esi + 4], 0
mov esi, dword [esp + 4]
mov ebx, dword [esp]
mov edi, dword [ebx + 4]
lea ebp, [edi - 1]
test edi, ebp
jne 0x635480
and ebp, esi
jmp 0x635490
cmp esi, edi
jae 0x635488
mov ebp, esi
jmp 0x635490
mov eax, esi
xor edx, edx
div edi
mov ebp, edx
mov ecx, dword [ebx]
mov eax, dword [ecx + ebp*4]
test eax, eax
mov esi, dword [esp + 0x38]
je 0x6354a3
mov ecx, dword [eax]
mov dword [esi], ecx
jmp 0x6354d3
mov edx, dword [esp + 8]
mov eax, dword [edx]
mov dword [esi], eax
mov dword [edx], esi
mov dword [ecx + ebp*4], edx
mov eax, dword [esi]
test eax, eax
je 0x6354d5
mov eax, dword [eax + 4]
lea ecx, [edi - 1]
test edi, ecx
jne 0x6354c4
and eax, ecx
jmp 0x6354ce
cmp eax, edi
jb 0x6354ce
xor edx, edx
div edi
mov eax, edx
shl eax, 2
add eax, dword [ebx]
mov dword [eax], esi
inc dword [ebx + 0xc]
mov al, 1
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
call sub.api_ms_win_crt_runtime_l1_1_0.dll_abort
nop dword [eax]
push ebx
push edi
push esi
sub esp, 0xc
mov esi, ecx
mov edi, dword [esp + 0x1c]
add ecx, 0x88
mov eax, dword [edi + 8]
movzx edx, byte [eax]
test dl, 1
je 0x635515
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
jmp 0x635518
inc eax
shr edx, 1
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], edi
mov eax, esp
push eax
push eax
call fcn.0065e9d0
mov ebx, edx
test bl, 1
je 0x63555e
mov eax, dword [esi + 0xc4]
cmp eax, dword [esi + 0xc8]
je 0x63554c
mov dword [eax], edi
add dword [esi + 0xc4], 4
jmp 0x63555e
add esi, 0xc0
lea eax, [esp + 0x1c]
mov ecx, esi
push eax
call fcn.0065efa0
and bl, 1
mov eax, ebx
add esp, 0xc
pop esi
pop edi
pop ebx
ret 4