Function at 0x1007ec50
Capabilities:
Encode data using xor
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 0x100a9abe
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x78
mov eax, dword [0x100bf364]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
test eax, eax
je 0x1007f551
cmp dword [0x100bf4c8], 0
je 0x1007f551
mov edi, dword [eax + 8]
mov eax, dword [0x10143630]
test al, 1
jne 0x1007ed0e
or eax, 1
mov dword [0x10143630], eax
mov edx, 0x990704d7
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x4c]
call fcn.1003fab0
push 0xda7d68cb
mov edx, eax
mov ecx, 0x10143634
call fcn.1003feb0
add esp, 4
push 0x100ab4f0
call fcn.100a09fa
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x10143634]
call eax
mov esi, eax
mov dword [ebp - 0x38], esi
test edi, edi
je 0x1007ed90
test esi, esi
je 0x1007ed90
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x34], ecx
test ecx, ecx
je 0x1007ed90
nop dword [eax]
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov eax, dword [ecx]
mov ecx, esi
and eax, 0xffffff
push eax
call edx
mov esi, eax
test esi, esi
je 0x1007ed79
mov edi, 0x811c9dc5
xor ecx, ecx
nop
inc ecx
cmp byte [ecx + esi], 0
jne 0x1007ed50
xor edx, edx
test ecx, ecx
je 0x1007ed79
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1007ed60
cmp edi, 0x11ab48ff
je 0x1007ed8b
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x34], ecx
test ecx, ecx
je 0x1007ed90
mov esi, dword [ebp - 0x38]
jmp 0x1007ed30
mov ecx, dword [ebp - 0x34]
jmp 0x1007ed92
xor ecx, ecx
movsx eax, byte [ecx + 0x10]
dec eax
cmp eax, 6
ja case.0x1007ed9c.2
jmp dword [eax*4 + 0x1007f574]
push dword [ecx + 4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
mov edx, eax
jmp 0x1007edda
push dword [ecx + 8]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
add esp, 4
mov edx, eax
jmp 0x1007edda
movss xmm0, dword [ecx + 0xc]
call fcn.10028e20
cvttss2si edx, xmm0
jmp 0x1007edda
xor edx, edx
jmp 0x1007edda
mov edx, dword [ecx + 0xc]
mov ecx, dword [0x1013e434]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
call eax
mov esi, dword [0x1013e434]
mov edi, eax
mov ecx, dword [esi]
mov edx, dword [ecx + 0x30]
mov ecx, esi
call edx
cmp edi, eax
jne 0x1007f551
mov esi, dword [ebp - 0x18]
mov eax, dword [0x10143630]
mov esi, dword [esi + 8]
test al, 1
jne 0x1007ee54
or eax, 1
mov dword [0x10143630], eax
mov edx, 0x990704d7
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x4c]
call fcn.1003fab0
push 0xda7d68cb
mov edx, eax
mov ecx, 0x10143634
call fcn.1003feb0
add esp, 4
push 0x100ab4f0
call fcn.100a09fa
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x10143634]
call eax
mov edi, eax
mov dword [ebp - 0x38], edi
test esi, esi
je 0x1007eec9
test edi, edi
je 0x1007eec9
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x34], ecx
test ecx, ecx
je 0x1007eec9
mov eax, dword [edi]
mov edx, dword [eax + 0x10]
mov eax, dword [ecx]
mov ecx, edi
and eax, 0xffffff
push eax
call edx
mov esi, eax
test esi, esi
je 0x1007eebc
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1007ee90
xor edx, edx
test ecx, ecx
je 0x1007eeb9
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1007eea0
cmp edi, 0xfd0c5087
je 0x1007eedc
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x34], ecx
test ecx, ecx
jne 0x1007ee72
xor ecx, ecx
movsx eax, byte [ecx + 0x10]
dec eax
cmp eax, 6
ja case.0x1007eed5.4
jmp dword [eax*4 + 0x1007f590]
mov ecx, dword [ebp - 0x34]
jmp 0x1007eecb
push dword [ecx + 4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atof]
fstp dword [ebp - 0x34]
movss xmm0, dword [ebp - 0x34]
add esp, 4
movss dword [ebp - 0x3c], xmm0
jmp 0x1007ef42
push dword [ecx + 8]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtof]
jmp 0x1007eeea
movss xmm0, dword [ecx + 0xc]
movss dword [ebp - 0x3c], xmm0
jmp 0x1007ef42
movd xmm0, dword [ecx + 0xc]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x3c], xmm0
jmp 0x1007ef42
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.100a2520
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x3c], xmm0
jmp 0x1007ef42
xorps xmm1, xmm1
movss dword [ebp - 0x3c], xmm1
mov eax, dword [ebp - 0x18]
mov esi, dword [eax + 8]
mov eax, dword [0x10143630]
test al, 1
jne 0x1007ef95
or eax, 1
mov dword [0x10143630], eax
mov edx, 0x990704d7
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x4c]
call fcn.1003fab0
push 0xda7d68cb
mov edx, eax
mov ecx, 0x10143634
call fcn.1003feb0
add esp, 4
push 0x100ab4f0
call fcn.100a09fa
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x10143634]
call eax
mov edi, eax
mov dword [ebp - 0x38], edi
test esi, esi
je 0x1007f009
test edi, edi
je 0x1007f009
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x34], ecx
test ecx, ecx
je 0x1007f009
mov eax, dword [edi]
mov edx, dword [eax + 0x10]
mov eax, dword [ecx]
mov ecx, edi
and eax, 0xffffff
push eax
call edx
mov esi, eax
test esi, esi
je 0x1007effc
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1007efd1
xor edx, edx
test ecx, ecx
je 0x1007eff9
nop
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1007efe0
cmp edi, 0xfc0c4ef4
je 0x1007f01c
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x34], ecx
test ecx, ecx
jne 0x1007efb3
xor ecx, ecx
movsx eax, byte [ecx + 0x10]
dec eax
cmp eax, 6
ja case.0x1007f015.4
jmp dword [eax*4 + 0x1007f5ac]
mov ecx, dword [ebp - 0x34]
jmp 0x1007f00b
push dword [ecx + 4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atof]
fstp dword [ebp - 0x34]
movss xmm0, dword [ebp - 0x34]
add esp, 4
jmp 0x1007f074
push dword [ecx + 8]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtof]
fstp dword [ebp - 0x34]
movss xmm0, dword [ebp - 0x34]
add esp, 4
jmp 0x1007f074
movss xmm0, dword [ecx + 0xc]
jmp 0x1007f074
movd xmm0, dword [ecx + 0xc]
cvtdq2ps xmm0, xmm0
jmp 0x1007f074
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.100a2520
cvtsd2ss xmm0, xmm0
jmp 0x1007f074
xorps xmm0, xmm0
mov eax, dword [ebp - 0x18]
movss dword [ebp - 0x38], xmm0
mov edi, dword [eax + 8]
mov eax, dword [0x10143630]
test al, 1
jne 0x1007f0cf
or eax, 1
mov dword [0x10143630], eax
mov edx, 0x990704d7
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x88]
call fcn.1003fab0
push 0xda7d68cb
mov edx, eax
mov ecx, 0x10143634
call fcn.1003feb0
add esp, 4
push 0x100ab4f0
call fcn.100a09fa
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x10143634]
call eax
mov esi, eax
mov dword [ebp - 0x34], esi
test edi, edi
je 0x1007f150
test esi, esi
je 0x1007f150
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x1007f150
nop dword [eax]
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov eax, dword [ecx]
mov ecx, esi
and eax, 0xffffff
push eax
call edx
mov esi, eax
test esi, esi
je 0x1007f139
mov edi, 0x811c9dc5
xor ecx, ecx
nop
inc ecx
cmp byte [ecx + esi], 0
jne 0x1007f110
xor edx, edx
test ecx, ecx
je 0x1007f139
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1007f120
cmp edi, 0xff0c53ad
je 0x1007f14b
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x1007f150
mov esi, dword [ebp - 0x34]
jmp 0x1007f0f0
mov ecx, dword [ebp - 0x18]
jmp 0x1007f152
xor ecx, ecx
movsx eax, byte [ecx + 0x10]
dec eax
cmp eax, 6
ja case.0x1007f15c.4
jmp dword [eax*4 + 0x1007f5c8]
push dword [ecx + 4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atof]
fstp dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x18]
add esp, 4
jmp 0x1007f1b6
push dword [ecx + 8]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtof]
fstp dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x18]
add esp, 4
jmp 0x1007f1b6
movss xmm0, dword [ecx + 0xc]
jmp 0x1007f1b6
movd xmm0, dword [ecx + 0xc]
cvtdq2ps xmm0, xmm0
jmp 0x1007f1b6
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.100a2520
cvtsd2ss xmm0, xmm0
jmp 0x1007f1b6
xorps xmm0, xmm0
cmp byte [0x100ca3b8], 0
xorps xmm3, xmm3
movss xmm1, dword [ebp - 0x3c]
movss dword [ebp - 0x58], xmm1
movss xmm1, dword [ebp - 0x38]
movss dword [ebp - 0x34], xmm0
movss dword [ebp - 0x54], xmm1
movss dword [ebp - 0x50], xmm0
je 0x1007f4b1
mov esi, dword [0x100bf4c8]
mov ecx, dword [0x1013e6d4]
mov eax, dword [0x1013e618]
add ecx, 0xffffffac
xor ecx, 0xd2ca0fbe
add eax, 0xffffffdb
xor eax, 0xd2ca0f8f
cmp dword [esi + 0x39e1], 0
movss xmm1, dword [ecx + esi]
movss xmm0, dword [ecx + esi + 4]
movss xmm2, dword [ecx + esi + 8]
addss xmm2, dword [eax + esi + 8]
addss xmm1, dword [eax + esi]
addss xmm0, dword [eax + esi + 4]
movss dword [ebp - 0x40], xmm2
movss dword [ebp - 0x4c], xmm1
movss dword [ebp - 0x48], xmm0
movss dword [ebp - 0x44], xmm2
je 0x1007f43d
mov eax, dword [0x1013e5f4]
mov esi, dword [esi + eax]
test esi, esi
je 0x1007f43d
mov ecx, dword [esi + 0x60]
test ecx, ecx
je 0x1007f43d
cmp byte [esi + 0x109], 0
jne 0x1007f294
movss xmm0, dword [esi + 0xa4]
ucomiss xmm0, xmm3
lahf
test ah, 0x44
jp 0x1007f294
mov byte [esi + 0x238], 0
mov dword [esi + 0x234], 0x4eff0000
jmp 0x1007f43d
mov eax, dword [0x10143620]
test al, 1
jne 0x1007f351
or eax, 1
mov dword [0x10143620], eax
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x70]
push 0x32
push str.55_8B_EC_53_56_8B_F1_57_83_BE________________75_14
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
call fcn.10022820
mov byte [ebp - 4], 7
mov eax, dword [0x1013e3e4]
test eax, eax
je 0x1007f2e3
mov edx, dword [eax + 0x50]
jmp 0x1007f2e5
xor edx, edx
mov eax, dword [0x1013e3dc]
test eax, eax
je 0x1007f2f3
mov eax, dword [eax + 0x18]
jmp 0x1007f2f5
xor eax, eax
lea ecx, [ebp - 0x70]
push ecx
push eax
lea ecx, [ebp - 0x18]
call fcn.1001afb0
mov eax, dword [ebp - 0x18]
add esp, 8
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x5c]
mov dword [0x10143628], eax
cmp edx, 0x10
jb 0x1007f347
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1007f33d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1007f33d
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.100a0a14
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [esi + 0x60]
push str.head_0
call dword [0x10143628]
mov esi, dword [esi + 0x60]
mov ecx, esi
mov eax, dword [0x1013e428]
push str.head_0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
call eax
lea ecx, [ebp - 0x30]
push ecx
lea ecx, [ebp - 0x24]
push ecx
push eax
mov ecx, esi
call dword [0x1013e424]
movss xmm2, dword [ebp - 0x1c]
addss xmm2, dword [0x100b3cb8]
movss xmm4, dword [ebp - 0x40]
comiss xmm4, xmm2
jbe 0x1007f43d
movaps xmm0, xmm4
subss xmm0, xmm2
call fcn.10026410
subss xmm0, dword [0x100b3d1c]
movss xmm3, dword [0x100b3c98]
mov dword [ebp - 0x7c], 0x3f800000
mov dword [ebp - 0x40], 0
mulss xmm0, dword [0x100b3c00]
comiss xmm0, xmm3
movss dword [ebp - 0x18], xmm0
ja 0x1007f40e
xorps xmm1, xmm1
lea eax, [ebp - 0x40]
comiss xmm0, xmm1
lea ecx, [ebp - 0x18]
cmovae eax, ecx
movss xmm3, dword [eax]
movaps xmm1, xmm3
subss xmm2, xmm4
mulss xmm1, xmm3
movaps xmm0, xmm1
addss xmm1, xmm1
mulss xmm0, dword [0x100b3cf8]
mulss xmm1, xmm3
subss xmm0, xmm1
mulss xmm2, xmm0
addss xmm2, xmm4
movss dword [ebp - 0x44], xmm2
mov eax, dword [ebp - 0x50]
mov ecx, dword [0x1013e67c]
movq xmm0, qword [ebp - 0x58]
add ecx, 0xffffffc2
mov dword [ebp - 0x70], eax
xor ecx, 0xd2ca0fa8
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x64], eax
mov eax, dword [0x100bf4c8]
movq qword [ebp - 0x78], xmm0
movq xmm0, qword [ebp - 0x4c]
movq qword [ebp - 0x6c], xmm0
mov eax, dword [ecx + eax]
mov dword [ebp - 0x60], eax
mov eax, dword [0x100d3cb0]
mov word [ebp - 0x5c], 0
cmp dword [0x100d3cb4], eax
je 0x1007f4a2
movups xmm0, xmmword [ebp - 0x78]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x68]
movups xmmword [eax + 0x10], xmm0
add dword [0x100d3cb0], 0x20
jmp 0x1007f4b1
lea ecx, [ebp - 0x78]
push ecx
push eax
mov ecx, 0x100d3cac
call fcn.100817c0
mov eax, dword [0x100d3ca8]
test eax, eax
je 0x1007f551
mov ecx, dword [0x100d3ca4]
xor edx, edx
movss xmm1, dword [0x100b3e48]
lea esi, [eax + ecx]
mov dword [ebp - 0x18], esi
cmp ecx, esi
je 0x1007f551
mov edi, dword [0x100d3ca0]
movss xmm2, dword [0x100b3f90]
nop word [eax + eax]
mov esi, dword [0x100d3c9c]
lea eax, [edi - 1]
and eax, ecx
mov eax, dword [esi + eax*4]
mov esi, dword [ebp - 0x18]
cmp byte [eax + 0x42], 0
jne 0x1007f526
mov esi, dword [0x1013e494]
movss xmm0, dword [esi]
subss xmm0, dword [eax + 0xc]
mov esi, dword [ebp - 0x18]
andps xmm0, xmm2
comiss xmm1, xmm0
jb 0x1007f526
movaps xmm1, xmm0
mov edx, eax
inc ecx
cmp ecx, esi
jne 0x1007f4f0
test edx, edx
je 0x1007f551
movss xmm0, dword [ebp - 0x3c]
mov byte [edx + 0x42], 1
movss dword [edx + 0x28], xmm0
movss xmm0, dword [ebp - 0x38]
movss dword [edx + 0x2c], xmm0
movss xmm0, dword [ebp - 0x34]
movss dword [edx + 0x30], xmm0
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.100a04d8
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4