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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10103ea5
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x101190b8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor eax, eax
mov dword [ebp - 0x14], 0
xorps xmm0, xmm0
mov dword [ebp - 0x38], eax
movq qword [ebp - 0x1c], xmm0
xor esi, esi
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], esi
xor edi, edi
movq qword [ebp - 0x28], xmm0
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 1
cmp dword [0x10138e84], edi
je 0x100ecc38
mov ecx, dword [0x101b8a44]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x100ecc38
mov ecx, dword [0x101b8a74]
mov eax, dword [ecx]
mov eax, dword [eax + 0x158]
call eax
mov ecx, dword [0x101b8a74]
movzx ebx, ax
mov dword [ebp - 0x30], ebx
mov eax, dword [ecx]
mov eax, dword [eax + 0x160]
call eax
cmp bx, ax
je 0x100ec3f9
nop dword [eax]
mov ecx, dword [0x101b8a74]
push ebx
mov eax, dword [ecx]
mov eax, dword [eax + 0x164]
call eax
mov ebx, eax
mov dword [ebp - 0x2c], ebx
test ebx, ebx
je 0x100ec3b9
mov ecx, dword [ebx]
mov edx, dword [ecx + 0xa8]
mov ecx, ebx
call edx
test al, al
jne 0x100ec3b9
mov eax, dword [ebx]
mov ecx, ebx
mov eax, dword [eax + 4]
call eax
mov dword [ebp - 0x34], eax
xor ecx, ecx
mov dword [ebp - 0x38], 0x811c9dc5
inc ecx
cmp byte [ecx + eax], 0
jne 0x100ec2f7
xor edx, edx
test ecx, ecx
je 0x100ec350
mov ebx, dword [ebp - 0x38]
movsx eax, byte [edx + eax]
inc edx
xor eax, ebx
imul ebx, eax, 0x1000193
mov eax, dword [ebp - 0x34]
cmp edx, ecx
jb 0x100ec307
cmp ebx, 0xbb2da711
mov ebx, dword [ebp - 0x2c]
jne 0x100ec350
cmp esi, dword [ebp - 0x40]
je 0x100ec338
mov dword [esi], ebx
add esi, 4
mov dword [ebp - 0x18], esi
jmp 0x100ec3b9
lea eax, [ebp - 0x2c]
push eax
push esi
lea ecx, [ebp - 0x1c]
call fcn.1002a480
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
mov dword [ebp - 0x40], eax
jmp 0x100ec3b9
mov eax, dword [ebx]
mov ecx, ebx
mov eax, dword [eax + 4]
call eax
mov dword [ebp - 0x34], eax
xor ecx, ecx
mov dword [ebp - 0x38], 0x811c9dc5
inc ecx
cmp byte [ecx + eax], 0
jne 0x100ec365
xor edx, edx
test ecx, ecx
je 0x100ec3b9
mov ebx, dword [ebp - 0x38]
movsx eax, byte [edx + eax]
inc edx
xor eax, ebx
imul ebx, eax, 0x1000193
mov eax, dword [ebp - 0x34]
cmp edx, ecx
jb 0x100ec375
cmp ebx, 0xd402d032
mov ebx, dword [ebp - 0x2c]
jne 0x100ec3b9
cmp edi, dword [ebp - 0x3c]
je 0x100ec3a3
mov dword [edi], ebx
add edi, 4
mov dword [ebp - 0x24], edi
jmp 0x100ec3b9
lea eax, [ebp - 0x2c]
push eax
push edi
lea ecx, [ebp - 0x28]
call fcn.1002a480
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x3c], eax
mov ecx, dword [0x101b8a74]
push dword [ebp - 0x30]
mov eax, dword [ecx]
mov eax, dword [eax + 0x15c]
call eax
mov ecx, dword [0x101b8a74]
movzx ebx, ax
mov dword [ebp - 0x30], ebx
mov eax, dword [ecx]
mov eax, dword [eax + 0x160]
call eax
cmp bx, ax
jne 0x100ec2b0
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], eax
jmp 0x100ec3fb
xor edx, edx
mov eax, dword [0x10145780]
mov ecx, dword [0x10145784]
cmp eax, ecx
je 0x100ec420
nop word [eax + eax]
cmp dword [eax], 0
je 0x100ec516
add eax, 4
cmp eax, ecx
jne 0x100ec410
mov ebx, edx
cmp ebx, esi
je 0x100ec450
mov ecx, dword [ebx]
sub esp, 0xc
mov eax, dword [ecx]
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
mov eax, dword [eax + 0x70]
call eax
add ebx, 4
cmp ebx, esi
jne 0x100ec426
mov ecx, dword [0x101b8b44]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
cmp eax, 0xffffffff
je 0x100ec471
mov ecx, dword [0x101b8b44]
push 0xffffffffffffffff
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov ebx, dword [ebp - 0x34]
mov esi, ebx
cmp esi, edi
je 0x100ec4aa
nop word [eax + eax]
mov ecx, dword [esi]
sub esp, 0xc
mov eax, dword [ecx]
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
mov eax, dword [eax + 0x70]
call eax
add esi, 4
cmp esi, edi
jne 0x100ec480
cmp byte [0x10145ad4], 0
mov ecx, dword [0x101b8b44]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
je 0x100ec64f
call eax
test eax, eax
je 0x100ec4d7
mov ecx, dword [0x101b8b44]
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
movss xmm0, dword [0x10145b64]
mov esi, ebx
mulss xmm0, dword [0x1010d5c8]
movss dword [ebp - 0x30], xmm0
cmp esi, edi
je 0x100ec688
mov ecx, dword [esi]
push ecx
movss dword [esp], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
movss xmm0, dword [ebp - 0x30]
add esi, 4
cmp esi, edi
jne 0x100ec4f6
jmp 0x100ec688
cmp eax, ecx
je 0x100ec420
mov eax, dword [0x1014582c]
sub eax, 0
je 0x100ec5bd
sub eax, 1
je 0x100ec58b
sub eax, 1
jne 0x100ec5ed
movss xmm0, dword [0x101458a8]
mov ebx, edx
mulss xmm0, dword [0x1010d5c8]
movss dword [ebp - 0x30], xmm0
cmp ebx, esi
je 0x100ec5ed
nop dword [eax]
mov ecx, dword [ebx]
sub esp, 0xc
mov eax, dword [ecx]
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm0
movss dword [esp], xmm0
mov eax, dword [eax + 0x70]
call eax
movss xmm0, dword [ebp - 0x30]
add ebx, 4
cmp ebx, esi
jne 0x100ec560
jmp 0x100ec5ed
mov ebx, edx
cmp ebx, esi
je 0x100ec5ed
mov ecx, dword [ebx]
sub esp, 0xc
mov eax, dword [ecx]
mov dword [esp + 8], 0x3df5c28f
mov dword [esp + 4], 0x3db851ec
mov dword [esp], 0x3db851ec
mov eax, dword [eax + 0x70]
call eax
add ebx, 4
cmp ebx, esi
jne 0x100ec591
jmp 0x100ec5ed
mov ebx, edx
cmp ebx, esi
je 0x100ec5ed
mov ecx, dword [ebx]
sub esp, 0xc
mov eax, dword [ecx]
mov dword [esp + 8], 0x3e3851ec
mov dword [esp + 4], 0x3e23d70a
mov dword [esp], 0x3e2e147b
mov eax, dword [eax + 0x70]
call eax
add ebx, 4
cmp ebx, esi
jne 0x100ec5c3
mov ecx, dword [0x101b8b44]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
test eax, eax
je 0x100ec60d
mov ecx, dword [0x101b8b44]
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov ebx, dword [ebp - 0x34]
mov esi, ebx
cmp esi, edi
je 0x100ec4aa
nop word [eax + eax]
mov ecx, dword [esi]
sub esp, 0xc
mov eax, dword [ecx]
mov dword [esp + 8], 0x3f000000
mov dword [esp + 4], 0x3f000000
mov dword [esp], 0x3f000000
mov eax, dword [eax + 0x70]
call eax
add esi, 4
cmp esi, edi
jne 0x100ec620
jmp 0x100ec4aa
call eax
cmp eax, 0xffffffff
je 0x100ec665
mov ecx, dword [0x101b8b44]
push 0xffffffffffffffff
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov esi, ebx
cmp esi, edi
je 0x100ec688
nop dword [eax + eax]
mov ecx, dword [esi]
push ecx
mov dword [esp], 0x3f800000
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
add esi, 4
cmp esi, edi
jne 0x100ec670
mov ecx, dword [0x101ba3a8]
test cl, 1
jne 0x100ec714
or ecx, 1
mov dword [0x101ba3a8], ecx
mov ebx, dword [0x101b8a40]
mov ebx, dword [ebx + 0x30]
mov dword [ebp - 0x2c], ebx
test ebx, ebx
je 0x100ec6f9
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x100ec6c0
xor edx, edx
test ecx, ecx
je 0x100ec6e9
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100ec6d0
cmp edi, 0x90e95fa0
je 0x100ec706
mov ebx, dword [ebx + 4]
mov dword [ebp - 0x2c], ebx
test ebx, ebx
jne 0x100ec6b0
mov ecx, dword [0x101ba3a8]
xor ebx, ebx
mov dword [ebp - 0x2c], ebx
mov dword [0x101ba378], ebx
jmp 0x100ec71c
mov ecx, dword [0x101ba3a8]
mov dword [0x101ba378], ebx
jmp 0x100ec71c
mov eax, dword [0x101ba378]
mov dword [ebp - 0x2c], eax
test cl, 2
jne 0x100ec77e
or ecx, 2
mov dword [0x101ba3a8], ecx
mov eax, dword [0x101b8a40]
mov ebx, dword [eax + 0x30]
test ebx, ebx
je 0x100ec776
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x100ec740
xor edx, edx
test ecx, ecx
je 0x100ec769
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100ec750
cmp edi, 0xa5e980af
je 0x100ec796
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100ec736
mov ecx, dword [0x101ba3a8]
xor ebx, ebx
mov dword [0x101ba380], ebx
test cl, 4
jne 0x100ec7e6
or ecx, 4
mov dword [0x101ba3a8], ecx
mov eax, dword [0x101b8a40]
mov ebx, dword [eax + 0x30]
jmp 0x100ec7dc
mov ecx, dword [0x101ba3a8]
jmp 0x100ec778
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x100ec7b0
xor edx, edx
test ecx, ecx
je 0x100ec7d9
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100ec7c0
cmp edi, 0xa0e978d0
je 0x100ec7e0
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100ec7a0
mov dword [0x101ba3a4], ebx
mov eax, dword [0x10145780]
mov ecx, dword [0x10145784]
cmp eax, ecx
je 0x100ec805
cmp dword [eax], 2
je 0x100ec8bc
add eax, 4
cmp eax, ecx
jne 0x100ec7f5
mov ecx, dword [ebp - 0x2c]
push ecx
mov dword [esp], 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
call eax
mov ecx, dword [0x101ba380]
push ecx
mov dword [esp], 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
call eax
mov ecx, dword [0x101ba3a4]
push ecx
mov dword [esp], 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
call eax
mov eax, dword [0x101ba3a8]
test al, 8
jne 0x100ec95a
or eax, 8
mov dword [0x101ba3a8], eax
mov ebx, dword [0x101b8a40]
mov ebx, dword [ebx + 0x30]
mov dword [ebp - 0x2c], ebx
test ebx, ebx
je 0x100ec8ac
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x100ec870
xor edx, edx
test ecx, ecx
je 0x100ec89d
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100ec880
cmp edi, 0x1539adbe
je 0x100ec94d
mov ebx, dword [ebx + 4]
mov dword [ebp - 0x2c], ebx
test ebx, ebx
jne 0x100ec866
mov eax, dword [0x101ba3a8]
xor ebx, ebx
mov dword [ebp - 0x2c], ebx
mov dword [0x101ba390], ebx
jmp 0x100ec963
cmp eax, ecx
je 0x100ec805
movss xmm1, dword [0x1010d6b0]
divss xmm1, dword [0x10145a18]
mov eax, dword [0x1014599c]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x48], eax
movzx eax, al
mov edx, dword [ecx]
push ecx
movd xmm0, eax
mov eax, dword [edx + 0x3c]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x30], xmm1
mulss xmm0, xmm1
movss dword [esp], xmm0
call eax
mov eax, dword [ebp - 0x44]
mov ecx, dword [0x101ba380]
movzx eax, ah
push ecx
mov edx, dword [ecx]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [edx + 0x3c]
mulss xmm0, dword [ebp - 0x30]
movss dword [esp], xmm0
call eax
movzx eax, byte [ebp - 0x46]
mov ecx, dword [0x101ba3a4]
push ecx
movd xmm0, eax
mov edx, dword [ecx]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx + 0x3c]
mulss xmm0, dword [ebp - 0x30]
movss dword [esp], xmm0
jmp 0x100ec83f
mov eax, dword [0x101ba3a8]
mov dword [0x101ba390], ebx
jmp 0x100ec963
mov ecx, dword [0x101ba390]
mov dword [ebp - 0x2c], ecx
test al, 0x10
jne 0x100ec9d1
or eax, 0x10
mov dword [0x101ba3a8], eax
mov ecx, dword [0x101b8a40]
mov ebx, dword [ecx + 0x30]
test ebx, ebx
je 0x100ec9c9
nop dword [eax]
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x100ec990
xor edx, edx
test ecx, ecx
je 0x100ec9bd
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100ec9a0
cmp edi, 0x7c0ae72b
je 0x100ecac5
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100ec980
mov eax, dword [0x101ba3a8]
xor ebx, ebx
mov dword [0x101ba39c], ebx
test al, 0x20
jne 0x100eca41
or eax, 0x20
mov dword [0x101ba3a8], eax
mov ecx, dword [0x101b8a40]
mov ebx, dword [ecx + 0x30]
test ebx, ebx
je 0x100eca39
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 0x100eca00
xor edx, edx
test ecx, ecx
je 0x100eca2d
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100eca10
cmp edi, 0xe7b7bf01
je 0x100ecacf
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100ec9f0
mov eax, dword [0x101ba3a8]
xor ebx, ebx
mov dword [0x101ba3b0], ebx
test al, 0x40
jne 0x100ecaad
or eax, 0x40
mov dword [0x101ba3a8], eax
mov ecx, dword [0x101b8a40]
mov ebx, dword [ecx + 0x30]
test ebx, ebx
je 0x100ecaa5
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 0x100eca70
xor edx, edx
test ecx, ecx
je 0x100eca99
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100eca80
cmp edi, 0xe6b7bd6e
je 0x100ecad9
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100eca60
mov eax, dword [0x101ba3a8]
xor ebx, ebx
mov dword [0x101ba374], ebx
test al, al
js 0x100ecb26
or eax, 0x80
mov dword [0x101ba3a8], eax
mov eax, dword [0x101b8a40]
mov ebx, dword [eax + 0x30]
jmp 0x100ecb1c
mov eax, dword [0x101ba3a8]
jmp 0x100ec9cb
mov eax, dword [0x101ba3a8]
jmp 0x100eca3b
mov eax, dword [0x101ba3a8]
jmp 0x100ecaa7
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x100ecaf0
xor edx, edx
test ecx, ecx
je 0x100ecb19
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100ecb00
cmp edi, 0xe5b7bbdb
je 0x100ecb20
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100ecae0
mov dword [0x101ba3ac], ebx
mov eax, dword [0x10145780]
mov ecx, dword [0x10145784]
cmp eax, ecx
je 0x100ecb45
cmp dword [eax], 3
je 0x100ecbdb
add eax, 4
cmp eax, ecx
jne 0x100ecb35
mov ecx, dword [ebp - 0x2c]
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [0x101ba39c]
push 0x1010ce4c
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x101ba3b0]
push 0x1010d444
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x100ecba8
mov edx, dword [ebp - 0x3c]
mov eax, ecx
sub edx, ecx
and edx, 0xfffffffc
cmp edx, 0x1000
jb 0x100ecb9e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ecbd5
push edx
push ecx
call fcn.100f9140
add esp, 8
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x100ecc38
mov edx, dword [ebp - 0x40]
mov eax, ecx
sub edx, ecx
and edx, 0xfffffffc
cmp edx, 0x1000
jb 0x100ecc2e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100ecc2e
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
cmp eax, ecx
je 0x100ecb45
mov ecx, dword [ebp - 0x2c]
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [0x101ba39c]
push 1
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [0x101ba3b0]
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [0x101ba374]
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [0x101ba3ac]
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
jmp 0x100ecb73
push edx
push ecx
call fcn.100f9140
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100f8cc5
mov esp, ebp
pop ebp
ret