Function at 0x10035830
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 0x100e1455
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x518
mov eax, dword [0x1013e040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x78], ecx
mov esi, dword [0x10265810]
lea edi, [ebp - 0x528]
mov dword [ebp - 0xb8], esi
mov ecx, 0x11b
add esi, 0x38a8
xorps xmm7, xmm7
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0xb8]
mov edi, edx
mov eax, dword [esi + 0x3fc8]
mov byte [eax + 0xb0], 1
mov eax, dword [esi + 0x3fc8]
movss xmm3, dword [edi]
comiss xmm3, xmm7
mov dword [ebp - 0x84], eax
movss xmm1, dword [edi + 0xc]
movss xmm0, dword [eax + 0xf8]
movss xmm4, dword [edi + 4]
movss xmm5, dword [edi + 8]
movss dword [ebp - 0x8c], xmm1
movss xmm1, dword [0x10134a90]
movss dword [ebp - 0x90], xmm0
movss dword [ebp - 0x94], xmm3
movss dword [ebp - 0x98], xmm4
movss dword [ebp - 0x9c], xmm5
jb 0x10035911
movss xmm2, dword [0x10134934]
jmp 0x10035914
movaps xmm2, xmm1
comiss xmm4, xmm7
movss xmm6, dword [0x10134a50]
movaps xmm0, xmm3
mulss xmm0, xmm6
addss xmm0, xmm2
cvttss2si eax, xmm0
mov dword [ebp - 0x68], eax
jb 0x1003593d
movss xmm2, dword [0x10134934]
jmp 0x10035940
movaps xmm2, xmm1
comiss xmm5, xmm7
movaps xmm0, xmm4
mulss xmm0, xmm6
addss xmm0, xmm2
cvttss2si eax, xmm0
mov dword [ebp - 0x64], eax
jb 0x10035961
movss xmm2, dword [0x10134934]
jmp 0x10035964
movaps xmm2, xmm1
movaps xmm0, xmm5
mulss xmm0, xmm6
addss xmm0, xmm2
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 0x8c]
comiss xmm0, xmm7
mov dword [ebp - 0x60], eax
jb 0x1003598b
movss xmm1, dword [0x10134934]
mulss xmm0, xmm6
movaps xmm2, xmm5
mov byte [ebp - 0x69], 0
comiss xmm2, xmm4
addss xmm0, xmm1
movss dword [ebp - 0x70], xmm3
movaps xmm6, xmm4
xorps xmm1, xmm1
cvttss2si eax, xmm0
movaps xmm0, xmm3
mov dword [ebp - 0x5c], eax
movss dword [ebp - 0xb0], xmm0
jbe 0x100359ca
movss xmm1, dword [0x10134a9c]
movaps xmm6, xmm2
movaps xmm2, xmm4
comiss xmm6, xmm0
jbe 0x100359ee
movss xmm0, dword [0x10134a8c]
movaps xmm3, xmm6
subss xmm0, xmm1
movss dword [ebp - 0x70], xmm6
movss xmm6, dword [ebp - 0xb0]
movaps xmm1, xmm0
movaps xmm0, xmm6
movss dword [ebp - 0x7c], xmm3
minss xmm0, xmm2
movss dword [ebp - 0xa8], xmm4
movaps xmm7, xmm3
movss dword [ebp - 0xa4], xmm5
subss xmm6, xmm2
mov dword [ebp - 0xa0], 0
lea ecx, [ebp - 0xac]
subss xmm7, xmm0
movaps xmm2, xmm7
movss dword [ebp - 0xb0], xmm7
movaps xmm0, xmm2
mulss xmm0, dword [0x101349dc]
addss xmm0, dword [0x101348e0]
divss xmm6, xmm0
movaps xmm0, xmm3
addss xmm0, dword [0x101348e0]
addss xmm6, xmm1
divss xmm2, xmm0
movss xmm0, dword [edi]
andps xmm6, xmmword [0x10134fc0]
movss dword [ebp - 0x88], xmm6
movss dword [ebp - 0xb0], xmm2
movss dword [ebp - 0x80], xmm2
movss dword [ebp - 0xac], xmm0
call fcn.10006ca0
xorps xmm7, xmm7
cmp dword [esi + 0x3f58], eax
jne 0x10035aec
movss xmm0, dword [ebp - 0xb0]
ucomiss xmm0, xmm7
lahf
test ah, 0x44
jnp 0x10035ac1
ucomiss xmm6, xmm7
lahf
test ah, 0x44
jp 0x10035ad1
movss xmm0, dword [esi + 0x3f50]
ucomiss xmm0, dword [0x1013496c]
lahf
test ah, 0x44
jp 0x10035ad1
movss xmm0, dword [esi + 0x3f50]
movss dword [ebp - 0x88], xmm0
movss xmm0, dword [ebp - 0x70]
ucomiss xmm0, xmm7
lahf
test ah, 0x44
jp 0x10035aec
movss xmm0, dword [esi + 0x3f54]
movss dword [ebp - 0x80], xmm0
mov eax, dword fs:[0x2c]
mov ecx, dword [0x102657dc]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10265ad8]
cmp eax, dword [ecx + 8]
jle 0x10035bde
push 0x10265ad8
call fcn.100df199
add esp, 4
cmp dword [0x10265ad8], 0xffffffff
jne 0x10035bde
xorps xmm0, xmm0
mov dword [ebp - 4], 0
movups xmmword [0x10265adc], xmm0
push 0x10
movups xmmword [0x10265aec], xmm0
mov dword [0x10265adc], 0
mov dword [0x10265ae0], 0
mov dword [0x10265ae4], 0
call fcn.100df648
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [0x10265ae0], eax
mov dword [0x10265ae8], 0
mov dword [0x10265aec], 0
mov dword [0x10265af0], 0
mov byte [ebp - 4], 2
mov ecx, 0x10265ae8
push eax
push 0x10
mov dword [0x10265af4], 7
mov dword [0x10265af8], 8
mov dword [0x10265adc], 0x3f800000
call fcn.10038130
push 0x100e4c90
call fcn.100df633
add esp, 4
mov dword [ebp - 4], 0xffffffff
push 0x10265ad8
call fcn.100df148
add esp, 4
mov eax, dword [ebp - 0x78]
movzx eax, al
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [ebp - 0x77]
xor ecx, eax
movzx eax, byte [ebp - 0x76]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [ebp - 0x75]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
push eax
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.10038730
mov ecx, dword [0x10265ae0]
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
cmp ecx, dword [0x10265ae0]
jne 0x10035c54
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0xb4]
mov dword [ebp - 0x70], 0xffffffff
push eax
call fcn.10038330
mov esi, dword [ebp - 0x5c]
mov eax, 0xff
mov dword [ebp - 0x70], eax
test esi, esi
jns 0x10035c67
xor esi, esi
jmp 0x10035c6c
cmp esi, eax
cmovg esi, eax
mov edx, dword [ebp - 0x60]
test edx, edx
jns 0x10035c77
xor edx, edx
jmp 0x10035c7c
cmp edx, eax
cmovg edx, eax
mov ecx, dword [ebp - 0x64]
test ecx, ecx
jns 0x10035c87
xor ecx, ecx
jmp 0x10035c8c
cmp ecx, eax
cmovg ecx, eax
mov eax, dword [ebp - 0x68]
test eax, eax
jns 0x10035c97
xor eax, eax
jmp 0x10035ca0
cmp eax, 0xff
cmovg eax, dword [ebp - 0x70]
push esi
push edx
push ecx
push eax
push str._02X_02X_02X_02X
lea eax, [ebp - 0x58]
push 0x40
push eax
call fcn.10006410
mov eax, dword [0x10265810]
lea edx, [ebp - 0x74]
movss xmm0, dword [0x10134a04]
add esp, 0x1c
mov ecx, 0xb
mov dword [ebp - 0x74], 0x41d00000
movss xmm1, dword [eax + 0x3d18]
mulss xmm1, dword [0x10134934]
subss xmm0, xmm1
movss dword [ebp - 0x70], xmm0
call fcn.10007450
movss xmm0, dword [ebp - 0x528]
lea edx, [ebp - 0xac]
mulss xmm0, dword [0x101348fc]
mov ecx, 7
mov dword [ebp - 0xac], 0x3f800000
mov dword [ebp - 0xa8], 0x3f800000
mov dword [ebp - 0xa4], 0x3f800000
movss dword [ebp - 0xa0], xmm0
call fcn.10007300
movss xmm1, dword [ebp - 0x520]
mov edx, 0x1011be67
mov eax, dword [ebp - 0x84]
mov ecx, str.Input
mulss xmm1, dword [0x101349b0]
push 0
push 0
movss xmm0, dword [eax + 0x20]
lea eax, [ebp - 0x74]
push 0
push eax
subss xmm0, xmm1
mov dword [ebp - 0x70], 0x420c0000
lea eax, [ebp - 0x58]
push 0x40
push eax
movss dword [ebp - 0x74], xmm0
call fcn.1002d650
add esp, 0x18
test al, al
je 0x10035eaf
mov byte [ebp - 0x69], 1
lea ecx, [ebp - 0x58]
mov al, byte [ecx]
cmp al, 0x23
je 0x10035da1
cmp al, 0x20
je 0x10035da1
cmp al, 9
jne 0x10035da4
inc ecx
jmp 0x10035d93
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x60], 0
push eax
lea eax, [ebp - 0x60]
mov dword [ebp - 0x64], 0
push eax
lea eax, [ebp - 0x64]
mov dword [ebp - 0x68], 0
push eax
lea eax, [ebp - 0x68]
mov dword [ebp - 0x5c], 0xff
push eax
push str._02X_02X_02X_02X
push ecx
call fcn.10003f80
movd xmm1, dword [ebp - 0x64]
add esp, 0x18
movd xmm4, dword [ebp - 0x60]
movd xmm0, dword [ebp - 0x68]
movss xmm2, dword [0x10134a50]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm4, xmm4
cvtdq2ps xmm0, xmm0
divss xmm1, xmm2
divss xmm4, xmm2
divss xmm0, xmm2
comiss xmm4, xmm1
movss dword [ebp - 0x94], xmm0
movaps xmm2, xmm1
movss dword [ebp - 0x98], xmm1
movss dword [ebp - 0x9c], xmm4
jbe 0x10035e3a
movss xmm3, dword [0x10134a9c]
movaps xmm2, xmm4
movaps xmm4, xmm1
jmp 0x10035e3d
xorps xmm3, xmm3
comiss xmm2, xmm0
movaps xmm5, xmm0
jbe 0x10035e5a
movaps xmm5, xmm2
movaps xmm2, xmm0
movss xmm0, dword [0x10134a8c]
subss xmm0, xmm3
movaps xmm3, xmm0
movaps xmm0, xmm2
movss dword [ebp - 0x7c], xmm5
minss xmm0, xmm4
movaps xmm1, xmm5
subss xmm2, xmm4
subss xmm1, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [0x101349dc]
addss xmm0, dword [0x101348e0]
divss xmm2, xmm0
movaps xmm0, xmm5
addss xmm0, dword [0x101348e0]
addss xmm2, xmm3
divss xmm1, xmm0
andps xmm2, xmmword [0x10134fc0]
movss dword [ebp - 0x88], xmm2
movss dword [ebp - 0x80], xmm1
mov esi, dword [0x10265810]
mov eax, dword [esi + 0x4a10]
cmp eax, 1
jl 0x10035ee3
mov ecx, dword [esi + 0x4a18]
lea edx, [eax + eax*4]
mov eax, dword [ecx + edx*4 - 0x14]
movups xmm0, xmmword [ecx + edx*4 - 0x10]
add eax, 0x39a
add eax, eax
movups xmmword [esi + eax*8], xmm0
dec dword [esi + 0x4a10]
movss xmm1, dword [0x1013496c]
mov ecx, 1
call fcn.10007010
mov edx, eax
call fcn.100071c0
mov esi, dword [0x10265810]
lea eax, [ebp - 0x74]
movss xmm3, dword [0x10134a84]
push 0
push 0
movss xmm2, dword [esi + 0x3d18]
push 0x1012bd78
push ecx
mov ecx, dword [esi + 0x3d14]
mov dword [esp], 0xbf800000
push eax
call fcn.10026080
movss xmm0, dword [ebp - 0x74]
sub esp, 8
addss xmm0, dword [0x10134964]
movss xmm3, dword [esi + 0x38e4]
xor edx, edx
mulss xmm3, dword [0x10134934]
mov ecx, 0x1012bd78
movss xmm1, dword [esi + 0x38e8]
cvttss2si eax, xmm0
addss xmm3, dword [ebp - 0x90]
movd xmm0, eax
mov eax, dword [ebp - 0x84]
cvtdq2ps xmm0, xmm0
movss xmm2, dword [eax + 0xfc]
mov eax, esp
mulss xmm0, dword [0x10134934]
push 1
subss xmm3, xmm0
movaps xmm0, xmm1
addss xmm0, xmm1
addss xmm3, dword [0x1013496c]
addss xmm0, dword [esi + 0x3d18]
movss dword [eax], xmm3
subss xmm2, xmm0
subss xmm2, dword [ebp - 0x4d8]
addss xmm2, xmm1
movss dword [eax + 4], xmm2
call fcn.100075b0
mov ecx, dword [0x10265810]
add esp, 0xc
mov eax, dword [ecx + 0x4a10]
cmp eax, 1
jl 0x10035ffe
mov edx, dword [ecx + 0x4a18]
lea esi, [eax + eax*4]
mov eax, dword [edx + esi*4 - 0x14]
movups xmm0, xmmword [edx + esi*4 - 0x10]
add eax, 0x39a
add eax, eax
movups xmmword [ecx + eax*8], xmm0
dec dword [ecx + 0x4a10]
mov ecx, 1
call fcn.10007520
movss xmm1, dword [ebp - 0x88]
lea eax, [ebp - 0x69]
push eax
lea eax, [ebp - 0x7c]
mov ecx, edi
push eax
lea edx, [ebp - 0x80]
call fcn.100332a0
movss xmm1, dword [ebp - 0x88]
lea edx, [ebp - 0x69]
call fcn.10032050
movss xmm1, dword [ebp - 0x8c]
lea edx, [ebp - 0x69]
mov ecx, edi
movss dword [ebp - 0x84], xmm0
call fcn.10032cd0
movss xmm2, dword [ebp - 0x7c]
lea eax, [ebp - 0x9c]
movss xmm1, dword [ebp - 0x80]
lea edx, [ebp - 0x98]
movss dword [ebp - 0x90], xmm0
lea ecx, [ebp - 0x94]
movss xmm0, dword [ebp - 0x84]
push eax
call fcn.10006d50
add esp, 0xc
cmp byte [ebp - 0x69], 0
je 0x10036122
mov esi, dword [ebp - 0xb8]
lea ecx, [ebp - 0xac]
movss xmm0, dword [ebp - 0x84]
mov dword [ebp - 0xa0], 0
movss dword [esi + 0x3f50], xmm0
movss xmm0, dword [ebp - 0x80]
movss dword [esi + 0x3f54], xmm0
movss xmm0, dword [edi]
movss dword [ebp - 0xac], xmm0
movss xmm0, dword [edi + 4]
movss dword [ebp - 0xa8], xmm0
movss xmm0, dword [edi + 8]
movss dword [ebp - 0xa4], xmm0
call fcn.10006ca0
movss xmm0, dword [ebp - 0x94]
mov dword [esi + 0x3f58], eax
movss dword [edi], xmm0
movss xmm0, dword [ebp - 0x98]
movss dword [edi + 4], xmm0
movss xmm0, dword [ebp - 0x9c]
movss dword [edi + 8], xmm0
movss xmm0, dword [ebp - 0x90]
movss dword [edi + 0xc], xmm0
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100df10f
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret