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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
movss xmm0, dword [0x100e8a9c]
mov eax, dword [0x101f723c]
mulss xmm1, xmm0
push ebx
movss dword [ebp - 4], xmm3
mov dword [ebp - 0x14], ecx
movss dword [ebp - 0x18], xmm0
movss dword [ebp - 0x10], xmm1
mov dword [ebp - 8], eax
push esi
push edi
test eax, eax
jne 0x100388de
mov ebx, dword [0x101f6e2c]
mov ebx, dword [ebx + 0x30]
jmp 0x100388cc
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x100388a0
xor edx, edx
test ecx, ecx
je 0x100388c9
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100388b0
cmp edi, 0x874b1932
je 0x100388d8
mov ebx, dword [ebx + 4]
mov dword [ebp - 8], ebx
test ebx, ebx
jne 0x10038890
xor ebx, ebx
mov dword [ebp - 8], ebx
mov dword [0x101f723c], ebx
cmp dword [0x101f7234], 0
jne 0x10038936
mov eax, dword [0x101f6e2c]
mov edi, dword [eax + 0x30]
jmp 0x1003892c
mov esi, dword [edi + 0xc]
mov ebx, 0x811c9dc5
xor ecx, ecx
nop dword [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10038900
xor edx, edx
test ecx, ecx
je 0x10038929
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, ebx
imul ebx, eax, 0x1000193
cmp edx, ecx
jb 0x10038910
cmp ebx, 0x51c2378
je 0x10038930
mov edi, dword [edi + 4]
test edi, edi
jne 0x100388f1
mov dword [0x101f7234], edi
mov eax, dword [0x101f722c]
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x1003899e
mov eax, dword [0x101f6e2c]
mov ebx, dword [eax + 0x30]
jmp 0x1003898c
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10038960
xor edx, edx
test ecx, ecx
je 0x10038989
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10038970
cmp edi, 0x227932f
je 0x10038998
mov ebx, dword [ebx + 4]
mov dword [ebp - 0xc], ebx
test ebx, ebx
jne 0x10038950
xor ebx, ebx
mov dword [ebp - 0xc], ebx
mov dword [0x101f722c], ebx
cmp dword [0x101f7240], 0
jne 0x100389f6
mov eax, dword [0x101f6e2c]
mov edi, dword [eax + 0x30]
jmp 0x100389ec
mov esi, dword [edi + 0xc]
mov ebx, 0x811c9dc5
xor ecx, ecx
nop dword [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x100389c0
xor edx, edx
test ecx, ecx
je 0x100389e9
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, ebx
imul ebx, eax, 0x1000193
cmp edx, ecx
jb 0x100389d0
cmp ebx, 0x2d45f02d
je 0x100389f0
mov edi, dword [edi + 4]
test edi, edi
jne 0x100389b1
mov dword [0x101f7240], edi
mov eax, dword [0x101f6ffc]
mov ebx, dword [ebp - 0x14]
add eax, 0xffffffda
xor eax, 0xfef7a43
cmp dword [eax + ebx], 3
jne 0x10038a1c
mov ecx, dword [ebp - 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x14], eax
call dword [ebp - 0x14]
jmp 0x10038a2a
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x14], eax
call dword [ebp - 0x14]
mov eax, dword [0x101f6ffc]
add eax, 0xffffffda
xor eax, 0xfef7a43
fstp dword [ebp - 0xc]
cmp dword [eax + ebx], 3
jne 0x10038a53
mov ecx, dword [0x101f7234]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x14], eax
call dword [ebp - 0x14]
jmp 0x10038a64
mov ecx, dword [0x101f7240]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x14], eax
call dword [ebp - 0x14]
mov eax, dword [0x101f7070]
movss xmm3, dword [ebp - 0x10]
add eax, 0xffffffbd
xor eax, 0xfef7a60
fstp dword [ebp - 8]
movss xmm0, dword [ebp - 8]
cmp byte [eax + ebx], 0
je 0x10038aa1
movss xmm5, dword [0x100e8a70]
mulss xmm3, dword [0x100e8a9c]
movaps xmm4, xmm5
mulss xmm0, dword [0x100e8a9c]
jmp 0x10038aae
movss xmm4, dword [0x100e8adc]
movss xmm5, dword [ebp - 0x18]
mov ecx, dword [ebp + 8]
lea eax, [ecx - 1]
cmp eax, 6
ja case.default.0x10038ab9
jmp dword [eax*4 + 0x10038b8c]
movss xmm2, dword [ebp - 4]
mulss xmm2, dword [0x100e8b4c]
mulss xmm2, xmm0
jmp 0x10038b0c
movss xmm2, dword [ebp - 0xc]
mulss xmm2, dword [ebp - 4]
jmp 0x10038b0c
movss xmm2, dword [ebp - 4]
mulss xmm2, dword [0x100e8ae4]
mulss xmm2, dword [ebp - 0xc]
jmp 0x10038b0c
movss xmm2, dword [ebp - 4]
mulss xmm2, dword [0x100e8ab0]
mulss xmm2, dword [ebp - 0xc]
jmp 0x10038b0c
movss xmm2, dword [ebp - 4]
mov eax, dword [0x101f7084]
add eax, 0xffffffb8
xor eax, 0xfef7a65
mov eax, dword [eax + ebx]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
comiss xmm1, dword [0x100e89c8]
jbe case.default.0x10038b35
test eax, eax
jle case.default.0x10038b35
cmp ecx, 5
ja case.default.0x10038b35
jmp dword [ecx*4 + 0x10038ba8]
mov eax, dword [0x101f7068]
add eax, 0xffffffbf
xor eax, 0xfef7a5e
cmp byte [eax + ebx], 0
je case.default.0x10038b35
mulss xmm3, xmm2
movaps xmm0, xmm2
mulss xmm4, xmm5
subss xmm0, xmm3
mulss xmm4, xmm0
comiss xmm4, xmm1
jbe 0x10038b72
divss xmm1, xmm5
movaps xmm3, xmm2
subss xmm3, xmm1
movaps xmm0, xmm3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
pop edi
pop esi
movaps xmm0, xmm2
pop ebx
mov esp, ebp
pop ebp
ret 4