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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101e19fb
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x1021b380]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x18], ecx
mov eax, dword [0x102b5764]
test al, 1
jne 0x10144968
or eax, 1
mov dword [0x102b5764], eax
mov dword [ebp - 4], 0
mov ebx, dword [0x102b3e88]
cmp ebx, dword [0x102b3e8c]
je 0x10144899
mov eax, dword [ebx]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x1014488e
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x10144868
xor edx, edx
test ecx, ecx
je 0x1014488e
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10144875
cmp edi, 0x4e9f1122
je 0x101448ac
add ebx, 4
cmp ebx, dword [0x102b3e8c]
jne 0x10144855
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x102b5768], eax
jmp 0x1014496d
mov eax, dword [ebp - 0x10]
xor esi, esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], esi
cmp dword [eax + 4], esi
jle 0x10144944
xor ecx, ecx
mov dword [ebp - 0x20], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x101448f6
cmp dword [ecx + 4], 0
jle 0x101448f6
push 0
mov edx, 0x1c93bcf0
call fcn.1012aec0
add esp, 4
test eax, eax
je 0x101448f3
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp - 0x14], esi
mov eax, dword [ebp - 0x10]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop
inc ecx
cmp byte [esi + ecx], 0
jne 0x10144900
xor edx, edx
test ecx, ecx
je 0x1014492c
nop dword [eax]
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10144910
cmp edi, 0x1c93bcf0
je 0x10144954
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
inc edx
mov esi, dword [ebp - 0x14]
add ecx, 0x3c
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], ecx
cmp edx, dword [eax + 4]
jl 0x101448c5
mov eax, esi
mov dword [ebp - 4], 0xffffffff
mov dword [0x102b5768], eax
jmp 0x1014496d
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp - 0x14]
mov dword [0x102b5768], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1014496d
mov eax, dword [0x102b5768]
mov ebx, dword [ebp + 8]
mov eax, dword [eax + ebx]
mov dword [ebp - 0x24], eax
mov eax, dword [0x102b707c]
test al, 1
jne 0x10144ac2
or eax, 1
mov dword [0x102b707c], eax
mov dword [ebp - 4], 1
mov ebx, dword [0x102b3e88]
cmp ebx, dword [0x102b3e8c]
je 0x101449e4
mov eax, dword [ebx]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x101449d9
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x101449b3
xor edx, edx
test ecx, ecx
je 0x101449d9
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x101449c0
cmp edi, 0x72e242a1
je 0x101449fa
add ebx, 4
cmp ebx, dword [0x102b3e8c]
jne 0x101449a0
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov ebx, dword [ebp + 8]
mov dword [0x102b703c], eax
jmp 0x10144ac7
mov eax, dword [ebp - 0x14]
xor ebx, ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x20], ebx
cmp dword [eax + 4], ebx
jle 0x10144a98
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov edi, dword [eax]
add edi, ecx
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x10144a44
cmp dword [ecx + 4], 0
jle 0x10144a44
push 0
mov edx, 0x84cdad2
call fcn.1012aec0
add esp, 4
test eax, eax
je 0x10144a41
mov ecx, dword [edi + 0x2c]
add ecx, eax
add ebx, ecx
mov dword [ebp - 0x10], ebx
mov eax, dword [ebp - 0x14]
mov esi, dword [edi]
mov ebx, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [esi + ecx], 0
jne 0x10144a50
xor edx, edx
test ecx, ecx
je 0x10144a7c
nop dword [eax]
movsx eax, byte [esi + edx]
inc edx
xor eax, ebx
imul ebx, eax, 0x1000193
cmp edx, ecx
jb 0x10144a60
cmp ebx, 0x84cdad2
je 0x10144aab
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
inc edx
mov ebx, dword [ebp - 0x10]
add ecx, 0x3c
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x10144a13
mov eax, ebx
mov dword [ebp - 4], 0xffffffff
mov ebx, dword [ebp + 8]
mov dword [0x102b703c], eax
jmp 0x10144ac7
mov eax, dword [edi + 0x2c]
add eax, dword [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
mov ebx, dword [ebp + 8]
mov dword [0x102b703c], eax
jmp 0x10144ac7
mov eax, dword [0x102b703c]
cmp dword [ebp - 0x24], 2
je 0x10144ecd
cmp dword [eax + ebx], 0
jle 0x10144ecd
mov eax, dword [ebx + 8]
lea edi, [ebx + 8]
mov ecx, edi
mov eax, dword [eax + 0x24]
call eax
test al, al
jne 0x10144ecd
mov eax, dword [0x102b88e8]
mov ecx, edi
test al, 1
jne 0x10144c3a
or eax, 1
mov dword [0x102b88e8], eax
mov dword [ebp - 4], 2
mov ebx, dword [0x102b3e88]
cmp ebx, dword [0x102b3e8c]
je 0x10144b64
nop dword [eax]
mov eax, dword [ebx]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x10144b59
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x10144b33
xor edx, edx
test ecx, ecx
je 0x10144b59
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10144b40
cmp edi, 0x72e242a1
je 0x10144b80
add ebx, 4
cmp ebx, dword [0x102b3e8c]
jne 0x10144b20
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov ebx, dword [ebp + 8]
mov dword [0x102b88e4], eax
lea edi, [ebx + 8]
lea ecx, [ebx + 8]
jmp 0x10144c3f
mov eax, dword [ebp - 0x14]
xor ebx, ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x20], ebx
cmp dword [eax + 4], ebx
jle 0x10144c28
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
nop dword [eax]
mov edi, dword [eax]
add edi, ecx
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x10144bd1
cmp dword [ecx + 4], 0
jle 0x10144bd1
push 0
mov edx, 0x9c15080d
call fcn.1012aec0
add esp, 4
test eax, eax
je 0x10144bce
mov ecx, dword [edi + 0x2c]
add ecx, eax
add ebx, ecx
mov dword [ebp - 0x10], ebx
mov eax, dword [ebp - 0x14]
mov esi, dword [edi]
mov ebx, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [esi + ecx], 0
jne 0x10144be0
xor edx, edx
test ecx, ecx
je 0x10144c0c
nop dword [eax]
movsx eax, byte [esi + edx]
inc edx
xor eax, ebx
imul ebx, eax, 0x1000193
cmp edx, ecx
jb 0x10144bf0
cmp ebx, 0x9c15080d
je 0x10144c2f
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
inc edx
mov ebx, dword [ebp - 0x10]
add ecx, 0x3c
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x10144ba0
mov eax, ebx
jmp 0x10144b66
mov eax, dword [edi + 0x2c]
add eax, dword [ebp - 0x10]
jmp 0x10144b66
mov eax, dword [0x102b88e4]
cmp byte [eax + ebx], 0
jne 0x10144ecd
mov eax, dword [ebp - 0x18]
mov esi, dword [eax]
mov eax, dword [ecx]
mov ecx, edi
call dword [eax + 0x28]
imul eax, eax, 0x1890
lea ecx, [esi + 0x30]
add ecx, eax
mov dword [ebp - 0x2c], ecx
je 0x10144ecd
mov eax, dword [ecx + 8]
test eax, eax
je 0x10144ecd
cmp eax, ebx
jne 0x10144ecd
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 4]
inc dword [eax]
cmp byte [0x1029fcc0], 0
mov ecx, dword [ecx + 8]
mov eax, dword [edx]
mov dword [ebp - 0x24], ecx
je 0x10144c9d
mov eax, dword [eax + 0x6570c]
jmp 0x10144ca3
mov eax, dword [eax + 0x65708]
mov ecx, dword [0x102b707c]
mov dword [ebp - 0x10], eax
test cl, 1
jne 0x10144dea
or ecx, 1
mov dword [0x102b707c], ecx
mov dword [ebp - 4], 3
mov ebx, dword [0x102b3e88]
cmp ebx, dword [0x102b3e8c]
je 0x10144d17
mov eax, dword [ebx]
mov dword [ebp + 8], eax
test eax, eax
je 0x10144d0c
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x10144ce6
xor edx, edx
test ecx, ecx
je 0x10144d0c
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10144cf3
cmp edi, 0x72e242a1
je 0x10144d30
add ebx, 4
cmp ebx, dword [0x102b3e8c]
jne 0x10144cd3
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [0x102b707c]
mov dword [0x102b703c], eax
jmp 0x10144def
mov eax, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x20], ebx
cmp dword [eax + 4], ebx
jle 0x10144dd8
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
nop dword [eax]
mov edi, dword [eax]
add edi, ecx
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x10144d81
cmp dword [ecx + 4], 0
jle 0x10144d81
push 0
mov edx, 0x84cdad2
call fcn.1012aec0
add esp, 4
test eax, eax
je 0x10144d7e
mov ecx, dword [edi + 0x2c]
add ecx, eax
add ebx, ecx
mov dword [ebp - 0x14], ebx
mov eax, dword [ebp + 8]
mov esi, dword [edi]
mov ebx, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [esi + ecx], 0
jne 0x10144d90
xor edx, edx
test ecx, ecx
je 0x10144dbc
nop dword [eax]
movsx eax, byte [esi + edx]
inc edx
xor eax, ebx
imul ebx, eax, 0x1000193
cmp edx, ecx
jb 0x10144da0
cmp ebx, 0x84cdad2
je 0x10144ddf
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
inc edx
mov ebx, dword [ebp - 0x14]
add ecx, 0x3c
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x10144d50
mov eax, ebx
jmp 0x10144d19
mov eax, dword [edi + 0x2c]
add eax, dword [ebp - 0x14]
jmp 0x10144d19
mov eax, dword [0x102b703c]
mov edx, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x10]
mov edx, dword [edx + eax]
mov dword [ebp - 0x28], edx
cmp ebx, 0x63
jle 0x10144e0a
add ebx, 0xffffff9c
add ebx, edx
jmp 0x10144e91
test cl, 1
jne 0x10144e88
or ecx, 1
mov dword [0x102b707c], ecx
mov dword [ebp - 4], 4
mov ebx, dword [0x102b3e88]
cmp ebx, dword [0x102b3e8c]
je 0x10144e74
nop dword [eax]
mov eax, dword [ebx]
mov dword [ebp + 8], eax
test eax, eax
je 0x10144e69
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x10144e43
xor edx, edx
test ecx, ecx
je 0x10144e69
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10144e50
cmp edi, 0x72e242a1
je 0x10144ee1
add ebx, 4
cmp ebx, dword [0x102b3e8c]
jne 0x10144e30
xor eax, eax
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x28]
mov dword [0x102b703c], eax
mov ecx, dword [ebp - 0x24]
cmp ebx, dword [ecx + eax]
cmovg ebx, edx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], ebx
mov ecx, dword [eax]
lea eax, [ecx + 0x24]
mov dword [ebp + 8], eax
lea eax, [ecx + 0x18]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
push ecx
mov ecx, dword [0x102cbbbc]
add ecx, 0x39486626
xor ecx, 0xdc43cf7
call fcn.10155700
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x20], ebx
cmp dword [eax + 4], ebx
jle 0x10144f88
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
nop word [eax + eax]
mov edi, dword [eax]
add edi, ecx
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x10144f31
cmp dword [ecx + 4], 0
jle 0x10144f31
push 0
mov edx, 0x84cdad2
call fcn.1012aec0
add esp, 4
test eax, eax
je 0x10144f2e
mov ecx, dword [edi + 0x2c]
add ecx, eax
add ebx, ecx
mov dword [ebp - 0x14], ebx
mov eax, dword [ebp + 8]
mov esi, dword [edi]
mov ebx, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [esi + ecx], 0
jne 0x10144f40
xor edx, edx
test ecx, ecx
je 0x10144f6c
nop dword [eax]
movsx eax, byte [esi + edx]
inc edx
xor eax, ebx
imul ebx, eax, 0x1000193
cmp edx, ecx
jb 0x10144f50
cmp ebx, 0x84cdad2
je 0x10144f8f
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
inc edx
mov ebx, dword [ebp - 0x14]
add ecx, 0x3c
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x10144f00
mov eax, ebx
jmp 0x10144e76
mov eax, dword [edi + 0x2c]
add eax, dword [ebp - 0x14]
jmp 0x10144e76