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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x100e7008]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 8]
push ebx
mov ebx, ecx
push esi
push edi
mov dword [ebp - 0x18], ebx
mov dword [ebx + 0x77c], edx
mov eax, dword [edx + 8]
mov dword [ebx + 0x780], eax
mov eax, dword [edx + 0xc]
mov dword [ebx + 0x78c], eax
mov eax, dword [edx + 0x10]
mov dword [ebx + 0x790], eax
mov eax, dword [edx + 0x14]
mov dword [ebx + 0x794], eax
mov eax, dword [edx + 0x30]
mov dword [ebx + 0x784], eax
mov ecx, dword [0x101d0174]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x101d0178]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov edx, eax
mov dword [ebx], edx
test edx, edx
je 0x1003ff2b
mov ecx, dword [0x101d03c0]
add ecx, 0xffffffc9
xor ecx, 0x197e0969
test byte [ecx + edx], 0x40
jne 0x1003fa4d
mov eax, dword [0x101d038c]
add eax, 0xffffffd6
xor eax, 0x197e095c
cmp dword [eax + edx], 2
jge 0x1003fa51
mov byte [ebx + 0x14], 0
test dword [ebx + 0x784], 0x79a
setne al
mov byte [ebx + 0x70a], al
mov eax, dword [0x101d03c0]
movss xmm0, dword [0x101b6398]
add eax, 0xffffffc9
xor eax, 0x197e0969
test byte [eax + edx], 1
jne 0x1003fa87
subss xmm0, dword [0x100dacd8]
cvttss2si eax, xmm0
push 0
mov dword [ebx + 0x73c], eax
mov eax, dword [0x101d01e8]
mov eax, dword [eax + 0x4cb0]
mov dword [ebx + 0x740], eax
mov ecx, dword [0x101d01e0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x10], eax
call dword [ebp - 0x10]
fstp dword [ebx + 0x75c]
mov ecx, dword [0x101d01e0]
push 1
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x10], eax
call dword [ebp - 0x10]
movss xmm1, dword [ebx + 0x75c]
xorps xmm2, xmm2
fstp dword [ebx + 0x760]
mov eax, dword [0x101d01d4]
movaps xmm0, xmm1
divss xmm0, dword [eax + 0x20]
addss xmm0, dword [0x100dac90]
cvttss2si eax, xmm0
movss xmm0, dword [0x100dacd8]
comiss xmm1, xmm0
mov dword [ebx + 0x764], eax
jbe 0x1003fb10
movaps xmm1, xmm0
jmp 0x1003fb18
comiss xmm1, xmm2
ja 0x1003fb18
xorps xmm1, xmm1
mov eax, dword [0x101d983c]
movss dword [ebx + 0x75c], xmm1
test al, 1
jne 0x1003fba2
or eax, 1
mov dword [0x101d983c], eax
mov ebx, dword [0x101d0170]
mov ebx, dword [ebx + 0x30]
mov dword [ebp - 8], ebx
test ebx, ebx
je 0x1003fb88
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1003fb50
xor edx, edx
test ecx, ecx
je 0x1003fb79
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1003fb60
cmp edi, 0xadc3dc05
je 0x1003fb95
mov ebx, dword [ebx + 4]
mov dword [ebp - 8], ebx
test ebx, ebx
jne 0x1003fb41
mov eax, dword [0x101d983c]
xor ebx, ebx
mov dword [ebp - 8], ebx
mov dword [0x101d9848], ebx
jmp 0x1003fbab
mov eax, dword [0x101d983c]
mov dword [0x101d9848], ebx
jmp 0x1003fbab
mov ecx, dword [0x101d9848]
mov dword [ebp - 8], ecx
test al, 2
jne 0x1003fc11
or eax, 2
mov dword [0x101d983c], eax
mov ecx, dword [0x101d0170]
mov ebx, dword [ecx + 0x30]
test ebx, ebx
je 0x1003fc09
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop
inc ecx
cmp byte [ecx + esi], 0
jne 0x1003fbd0
xor edx, edx
test ecx, ecx
je 0x1003fbfd
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1003fbe0
cmp edi, 0xa9bf35
je 0x1003fd03
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x1003fbc4
mov eax, dword [0x101d983c]
xor ebx, ebx
mov dword [0x101d984c], ebx
test al, 4
jne 0x1003fc81
or eax, 4
mov dword [0x101d983c], eax
mov ecx, dword [0x101d0170]
mov ebx, dword [ecx + 0x30]
test ebx, ebx
je 0x1003fc79
nop word [eax + eax]
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1003fc40
xor edx, edx
test ecx, ecx
je 0x1003fc6d
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1003fc50
cmp edi, 0xb488961c
je 0x1003fd0d
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x1003fc30
mov eax, dword [0x101d983c]
xor ebx, ebx
mov dword [0x101d9838], ebx
test al, 8
jne 0x1003fced
or eax, 8
mov dword [0x101d983c], eax
mov ecx, dword [0x101d0170]
mov ebx, dword [ecx + 0x30]
test ebx, ebx
je 0x1003fce5
nop word [eax + eax]
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1003fcb0
xor edx, edx
test ecx, ecx
je 0x1003fcd9
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1003fcc0
cmp edi, 0x1da69e46
je 0x1003fd17
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x1003fca0
mov eax, dword [0x101d983c]
xor ebx, ebx
mov dword [0x101d9850], ebx
test al, 0x10
jne 0x1003fd66
or eax, 0x10
mov dword [0x101d983c], eax
mov eax, dword [0x101d0170]
mov ebx, dword [eax + 0x30]
jmp 0x1003fd5c
mov eax, dword [0x101d983c]
jmp 0x1003fc0b
mov eax, dword [0x101d983c]
jmp 0x1003fc7b
mov eax, dword [0x101d983c]
jmp 0x1003fce7
mov edi, dword [ebx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x1003fd30
xor edx, edx
test ecx, ecx
je 0x1003fd59
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x1003fd40
cmp esi, 0xe5abc68c
je 0x1003fd60
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x1003fd20
mov dword [0x101d9844], ebx
mov ecx, dword [ebp - 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10], eax
call dword [ebp - 0x10]
fstp dword [ebp - 8]
movss xmm0, dword [ebp - 8]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1003fd95
movss xmm1, dword [0x100dacd8]
movss dword [ebp - 8], xmm1
mov ecx, dword [0x101d984c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10], eax
call dword [ebp - 0x10]
mov ecx, dword [0x101d9838]
fstp dword [ebp - 0xc]
test ecx, ecx
je 0x1003fe39
cmp dword [0x101d9850], 0
je 0x1003fe39
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10], eax
call dword [ebp - 0x10]
fstp dword [ebp - 0x10]
movss xmm0, dword [ebp - 0x10]
ucomiss xmm0, dword [0x100dae94]
lahf
test ah, 0x44
jnp 0x1003fe39
mov ecx, dword [0x101d9850]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10], eax
call dword [ebp - 0x10]
mov ecx, dword [0x101d9838]
fstp dword [ebp - 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10], eax
call dword [ebp - 0x10]
movss xmm0, dword [ebp - 8]
comiss xmm0, dword [ebp - 0x14]
fstp dword [ebp - 0x10]
jbe 0x1003fe21
lea eax, [ebp - 0x14]
movss xmm0, dword [eax]
movss dword [ebp - 8], xmm0
jmp 0x1003fe51
comiss xmm0, dword [ebp - 0x10]
lea eax, [ebp - 0x10]
lea ecx, [ebp - 8]
cmovae eax, ecx
movss xmm0, dword [eax]
movss dword [ebp - 8], xmm0
jmp 0x1003fe51
movss xmm0, dword [ebp - 8]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1003fe51
mov dword [ebp - 8], 0x3f800000
mov ecx, dword [0x101d9844]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10], eax
call dword [ebp - 0x10]
fdivr dword [ebp - 8]
mov ebx, dword [ebp - 0x18]
fstp dword [ebp - 0x10]
movss xmm0, dword [ebp - 0x10]
maxss xmm0, dword [ebp - 0xc]
movss dword [ebx + 0x758], xmm0
mov eax, dword [0x101d01e8]
mov ecx, dword [eax + 0x16c]
mov eax, dword [ebx + 0x764]
add eax, ecx
mov dword [ebx + 0x768], ecx
mov ecx, dword [ebx]
mov dword [ebx + 0x76c], eax
mov byte [ebx + 0x2010], 0
test ecx, ecx
je 0x1003fed3
mov eax, dword [0x101d03bc]
add eax, 0xffffffca
xor eax, 0x197e0968
cmp byte [eax + ecx], 0
jne 0x1003fed3
mov eax, dword [0x101d03dc]
add eax, 0xffffffc2
xor eax, 0x197e0970
cmp dword [eax + ecx], 0
jle 0x1003fed3
mov al, 1
jmp 0x1003fed5
xor al, al
mov byte [ebx + 4], al
test al, al
je 0x1003ff2b
mov eax, dword [0x101d03c0]
add eax, 0xffffffc9
xor eax, 0x197e0969
mov eax, dword [eax + ecx]
mov dword [ebx + 0x18], eax
mov eax, dword [0x101d01d4]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 0x3d8]
setne al
mov byte [ebx + 0x3d4], al
mov eax, dword [0x101d01d4]
mov eax, dword [eax + 4]
mov dword [ebx + 0x3d8], eax
mov byte [ebx + 0x31], 0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100c4f7f
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov byte [ebx + 0x14], 0
xor ecx, ebp
pop ebx
call fcn.100c4f7f
mov esp, ebp
pop ebp
ret 4