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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101d4690
mov eax, dword fs:[0]
push eax
sub esp, 0xac
mov eax, dword [0x10216080]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x6c], ecx
mov eax, dword [edi + 0x20]
add eax, 0x78
mov dword [ebp - 0x94], eax
mov ecx, dword [eax]
test ecx, ecx
je 0x10191dd2
mov eax, dword [edi + 0x18]
add ecx, eax
mov dword [ebp - 0x68], ecx
je 0x10191dd2
mov edx, dword [ecx + 0x20]
mov esi, dword [ecx + 0x1c]
add edx, eax
mov dword [ebp - 0x64], edx
add esi, eax
mov edx, dword [ecx + 0x24]
add edx, eax
mov dword [ebp - 0x90], esi
mov dword [ebp - 0x8c], edx
test esi, esi
je 0x10191dd2
cmp dword [ebp - 0x64], 0
je 0x10191dd2
test edx, edx
je 0x10191dd2
xor eax, eax
xor esi, esi
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x60], eax
cmp dword [ecx + 0x18], eax
jbe 0x10191dcb
mov ecx, dword [ebp - 0x64]
xorps xmm0, xmm0
movups xmmword [ebp - 0x44], xmm0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov edx, dword [ecx + eax*4]
add edx, dword [edi + 0x18]
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10191837
sub ecx, edi
push ecx
push edx
lea ecx, [ebp - 0x44]
call fcn.1011aef0
mov dword [ebp - 4], 0
cmp dword [ebp - 0x34], 0
jne 0x10191893
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x30]
cmp ecx, 0xf
jbe 0x10191d7f
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1019188c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10191df6
push ecx
push edx
jmp 0x10191d77
cmp dword [ebp - 0x30], 0xf
lea eax, [ebp - 0x44]
mov edi, dword [ebp - 0x44]
cmova eax, edi
mov dword [ebp - 0x50], edi
mov ecx, eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x4c], 0x811c9dc5
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x101918b2
sub ecx, edx
mov edx, 0
je 0x101918e2
mov esi, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x54]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101918c8
mov edi, dword [ebp - 0x50]
mov dword [ebp - 0x4c], esi
mov esi, dword [ebp - 0x58]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x2c], eax
test ecx, ecx
je 0x101918f7
cmp ecx, eax
jne 0x10191d45
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x8c]
movzx esi, word [ecx + eax*2]
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x68]
mov esi, dword [eax + esi*4]
mov eax, dword [ebp - 0x5c]
add esi, dword [eax + 0x18]
mov dword [ebp - 0x58], esi
cmp esi, ecx
jb 0x10191d2e
mov eax, dword [ebp - 0x94]
mov eax, dword [eax + 4]
add eax, ecx
cmp esi, eax
jae 0x10191d2b
mov ecx, esi
mov dword [ebp - 0x18], 0
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
movups xmmword [ebp - 0x28], xmm0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10191950
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.1011aef0
mov byte [ebp - 4], 1
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0x14]
cmp eax, 0xf
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x18]
seta byte [ebp - 0x45]
cmova edx, edi
mov dword [ebp - 0x50], ecx
test ecx, ecx
je 0x10191d99
or eax, 0xffffffff
dec ecx
cmp ecx, eax
cmovb eax, ecx
add eax, edx
cmp byte [eax], 0x2e
je 0x101919a6
cmp eax, edx
je 0x10191d96
dec eax
cmp byte [eax], 0x2e
jne 0x10191998
sub eax, edx
cmp eax, 0xffffffff
je 0x10191d96
lea edx, [eax + 1]
mov dword [ebp - 0x78], 0
mov eax, dword [ebp - 0x50]
xorps xmm0, xmm0
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x74], 0
movups xmmword [ebp - 0x88], xmm0
cmp eax, edx
jb 0x10191dfb
sub eax, edx
or ecx, 0xffffffff
cmp eax, 0xffffffff
cmovb ecx, eax
cmp byte [ebp - 0x45], 0
lea eax, [ebp - 0x28]
cmovne eax, edi
push ecx
add eax, edx
lea ecx, [ebp - 0x88]
push eax
call fcn.1011aef0
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0x44]
call fcn.1011afb0
mov dword [ebp - 0x4c], eax
cmp dword [eax + 0x14], 0xf
jbe 0x10191a1b
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
mov ecx, eax
mov edi, 0x811c9dc5
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10191a25
sub ecx, edx
mov edx, 0
je 0x10191a4c
mov esi, dword [ebp - 0x4c]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10191a38
mov esi, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x2c], edi
cmp ecx, 0xf
jbe 0x10191a86
mov edx, dword [ebp - 0x88]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10191a7c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10191df6
push ecx
push edx
call fcn.101a942d
add esp, 8
mov cl, 1
call fcn.10191e10
mov ecx, dword [ebp - 0x54]
xorps xmm0, xmm0
cmp dword [ebp - 0x18], ecx
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x28]
cmovb ecx, dword [ebp - 0x18]
cmp dword [ebp - 0x14], 0xf
push ecx
cmova eax, dword [ebp - 0x28]
lea ecx, [ebp - 0x88]
push eax
movups xmmword [ebp - 0x88], xmm0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
call fcn.1011aef0
push 3
push 0x10208c64
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 2
call fcn.1013fa60
mov edi, 0x811c9dc5
mov dword [ebp - 0x54], edi
movups xmm1, xmmword [eax]
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0xa0], xmm0
movups xmmword [ebp - 0xb0], xmm1
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0xb0]
cmp dword [ebp - 0x9c], 0xf
movd ecx, xmm1
seta byte [ebp - 0x45]
cmova eax, ecx
mov dword [ebp - 0x70], ecx
mov ecx, eax
mov dword [ebp - 0x50], eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10191b33
sub ecx, edx
xor edx, edx
test ecx, ecx
je 0x10191b5c
mov esi, dword [ebp - 0x50]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10191b45
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x54], edi
mov edx, dword [ebp - 0x54]
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0x50], edx
imul eax, eax, 0x1000193
xor ecx, eax
mov eax, edx
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
shr edx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [ebp - 0x4c]
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.10114f20
mov edi, dword [eax + 4]
test edi, edi
jne 0x10191bbc
mov eax, dword [ebp - 0x4c]
mov edi, dword [eax + 4]
cmp byte [ebp - 0x45], 0
je 0x10191bf4
mov ecx, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10191bea
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10191df6
push ecx
push edx
call fcn.101a942d
add esp, 8
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x74]
cmp ecx, 0xf
jbe 0x10191c2f
mov edx, dword [ebp - 0x88]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10191c25
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10191df6
push ecx
push edx
call fcn.101a942d
add esp, 8
mov eax, dword [ebp - 0x4c]
cmp edi, dword [eax + 4]
jne 0x10191cc5
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xf
jbe 0x10191c73
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10191c69
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10191df6
push ecx
push edx
call fcn.101a942d
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
cmp ecx, 0xf
jbe 0x10191d7f
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1019188c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10191df6
push ecx
push edx
jmp 0x10191d77
push dword [ebp - 0x2c]
lea edx, [edi + 0xc]
lea ecx, [ebp - 0x98]
call fcn.10191770
add esp, 4
mov esi, dword [eax]
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x58], esi
cmp ecx, 0xf
jbe 0x10191d16
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10191d0c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10191df6
push ecx
push edx
call fcn.101a942d
add esp, 8
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov eax, dword [ebp - 0x5c]
cmp dword [ebp + 8], 0
jne 0x10191d45
lea ecx, [eax + 0x44]
lea eax, [ebp - 0x2c]
push eax
call fcn.1017e220
mov dword [eax], esi
mov edi, dword [ebp - 0x44]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x30]
cmp eax, 0xf
jbe 0x10191d7f
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10191d75
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10191df6
push ecx
push edi
call fcn.101a942d
add esp, 8
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x68]
inc eax
mov dword [ebp - 0x60], eax
cmp eax, dword [ecx + 0x18]
jae 0x10191dcb
mov edi, dword [ebp - 0x5c]
jmp 0x10191814
mov eax, dword [ebp - 0x14]
cmp byte [ebp - 0x45], 0
mov byte [ebp - 4], 0
je 0x10191c73
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10191dc4
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10191df6
push ecx
push edi
jmp 0x10191c6b
mov eax, dword [ebp - 0x6c]
mov dword [eax], esi
jmp 0x10191ddb
mov eax, dword [ebp - 0x6c]
mov dword [eax], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.101a8fbb
mov esp, ebp
pop ebp
ret
call fcn.101ae3cf
call fcn.10119cc0
int3