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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101e2835
mov eax, dword fs:[0]
push eax
sub esp, 0x14
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 esi, ecx
mov dword [ebp - 0x10], esi
mov ebx, dword [ebp + 8]
mov dword [esi + 0x24], ebx
mov eax, dword [0x107001f0]
add eax, 0xd5bd03c9
xor eax, 0xde9a561b
cmp ebx, dword [eax + 0x14c]
jne 0x1015b1d6
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x28]
jmp 0x1015b30d
mov eax, dword [0x102b7018]
test al, 1
jne 0x1015b306
or eax, 1
mov dword [0x102b7018], eax
mov dword [ebp - 4], 0
mov ebx, dword [0x102b3e88]
cmp ebx, dword [0x102b3e8c]
je 0x1015b244
mov eax, dword [ebx]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x1015b239
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x1015b213
xor edx, edx
test ecx, ecx
je 0x1015b239
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1015b220
cmp edi, 0x1eee87cc
je 0x1015b25d
add ebx, 4
cmp ebx, dword [0x102b3e8c]
jne 0x1015b200
xor eax, eax
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 0x10]
mov dword [0x102b705c], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1015b30b
mov eax, dword [ebp - 0x14]
xor esi, esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
cmp dword [eax + 4], esi
jle 0x1015b2f4
xor ecx, ecx
mov dword [ebp - 0x20], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1015b2a7
cmp dword [ecx + 4], 0
jle 0x1015b2a7
push 0
mov edx, 0x559d81af
call fcn.1012aec0
add esp, 4
test eax, eax
je 0x1015b2a4
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp - 0x18], esi
mov eax, dword [ebp - 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x1015b2b0
xor edx, edx
test ecx, ecx
je 0x1015b2dc
nop dword [eax]
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1015b2c0
cmp edi, 0x559d81af
je 0x1015b2fb
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
inc edx
mov esi, dword [ebp - 0x18]
add ecx, 0x3c
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], ecx
cmp edx, dword [eax + 4]
jl 0x1015b276
mov eax, esi
jmp 0x1015b246
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp - 0x18]
jmp 0x1015b246
mov eax, dword [0x102b705c]
add eax, ebx
movq xmm0, qword [eax]
mov ecx, ebx
movq qword [esi + 0x28], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 0x30], eax
mov eax, dword [ebx + 0x2990]
mov dword [esi + 0x20], eax
mov eax, dword [ebp + 0x14]
mov dword [esi + 0x1c], eax
mov dword [esi + 8], 0xd
mov eax, dword [ebx]
call dword [eax + 0x2c]
movq xmm0, qword [eax]
movq qword [esi + 0x34], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 0x3c], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x18], eax
mov dword [esi + 4], 0x7ff00
mov eax, dword [0x107001f0]
add eax, 0xd5bd03c9
xor eax, 0xde9a561b
cmp ebx, dword [eax + 0x14c]
jne 0x1015b376
movss xmm0, dword [eax + 0x40]
jmp 0x1015b4b0
mov eax, dword [0x102b7048]
test al, 1
jne 0x1015b4a6
or eax, 1
mov dword [0x102b7048], eax
mov dword [ebp - 4], 1
mov ebx, dword [0x102b3e88]
cmp ebx, dword [0x102b3e8c]
je 0x1015b3e4
mov eax, dword [ebx]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x1015b3d9
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x1015b3b3
xor edx, edx
test ecx, ecx
je 0x1015b3d9
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1015b3c0
cmp edi, 0x1eee87cc
je 0x1015b3fd
add ebx, 4
cmp ebx, dword [0x102b3e8c]
jne 0x1015b3a0
xor eax, eax
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 0x10]
mov dword [0x102b7000], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1015b4ab
mov eax, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp + 0xc], esi
mov dword [ebp - 0x20], esi
cmp dword [eax + 4], esi
jle 0x1015b494
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1015b447
cmp dword [ecx + 4], 0
jle 0x1015b447
push 0
mov edx, 0x7fcb378d
call fcn.1012aec0
add esp, 4
test eax, eax
je 0x1015b444
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x1015b450
xor edx, edx
test ecx, ecx
je 0x1015b47c
nop dword [eax]
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1015b460
cmp edi, 0x7fcb378d
je 0x1015b49b
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
inc edx
mov esi, dword [ebp + 0xc]
add ecx, 0x3c
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x1015b416
mov eax, esi
jmp 0x1015b3e6
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp + 0xc]
jmp 0x1015b3e6
mov eax, dword [0x102b7000]
movss xmm0, dword [eax + ebx]
mov eax, dword [ebp + 0x18]
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0x1c]
mov dword [esi + 0x10], eax
mov eax, dword [0x102b7060]
movss dword [esi + 0x14], xmm0
mov word [esi + 1], 0
mov byte [esi + 3], 1
test al, 1
jne 0x1015b60e
or eax, 1
mov dword [0x102b7060], eax
mov dword [ebp - 4], 2
mov ebx, dword [0x102b3e88]
cmp ebx, dword [0x102b3e8c]
je 0x1015b539
mov eax, dword [ebx]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x1015b52e
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x1015b508
xor edx, edx
test ecx, ecx
je 0x1015b52e
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1015b515
cmp edi, 0x54aff69
je 0x1015b54f
add ebx, 4
cmp ebx, dword [0x102b3e8c]
jne 0x1015b4f5
mov ebx, dword [ebp + 8]
xor eax, eax
mov dword [0x102b7074], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1015b613
mov eax, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x18], esi
cmp dword [eax + 4], esi
jle 0x1015b5e4
xor ecx, ecx
mov dword [ebp + 0x1c], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1015b599
cmp dword [ecx + 4], 0
jle 0x1015b599
push 0
mov edx, 0xa3316f9
call fcn.1012aec0
add esp, 4
test eax, eax
je 0x1015b596
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x1015b5a2
xor edx, edx
test ecx, ecx
je 0x1015b5cc
nop
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1015b5b0
cmp edi, 0xa3316f9
je 0x1015b5f7
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
inc edx
mov esi, dword [ebp + 0xc]
add ecx, 0x3c
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x1015b568
mov ebx, dword [ebp + 8]
mov eax, esi
mov dword [0x102b7074], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1015b613
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov dword [0x102b7074], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1015b613
mov eax, dword [0x102b7074]
mov edi, dword [ebp - 0x10]
lea esi, [eax + ebx]
mov eax, dword [0x102b5740]
add edi, 0x4c
mov ecx, 0x60
rep movsb byte es:[edi], byte [esi]
test al, 1
jne 0x1015b772
or eax, 1
mov dword [0x102b5740], eax
mov dword [ebp - 4], 3
mov ebx, dword [0x102b3e88]
cmp ebx, dword [0x102b3e8c]
je 0x1015b694
nop dword [eax]
mov eax, dword [ebx]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x1015b689
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x1015b663
xor edx, edx
test ecx, ecx
je 0x1015b689
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1015b670
cmp edi, 0x72e242a1
je 0x1015b6aa
add ebx, 4
cmp ebx, dword [0x102b3e8c]
jne 0x1015b650
mov ebx, dword [ebp + 8]
xor eax, eax
mov dword [0x102b57d8], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1015b777
mov eax, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x18], esi
cmp dword [eax + 4], esi
jle 0x1015b748
xor ecx, ecx
mov dword [ebp + 0x1c], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1015b6f4
cmp dword [ecx + 4], 0
jle 0x1015b6f4
push 0
mov edx, 0xf3c2c786
call fcn.1012aec0
add esp, 4
test eax, eax
je 0x1015b6f1
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [esi + ecx], 0
jne 0x1015b700
xor edx, edx
test ecx, ecx
je 0x1015b72c
nop dword [eax]
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1015b710
cmp edi, 0xf3c2c786
je 0x1015b75b
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
inc edx
mov esi, dword [ebp + 0xc]
add ecx, 0x3c
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x1015b6c3
mov ebx, dword [ebp + 8]
mov eax, esi
mov dword [0x102b57d8], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1015b777
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov dword [0x102b57d8], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1015b777
mov eax, dword [0x102b57d8]
movq xmm0, qword [eax + ebx]
mov ecx, dword [ebp - 0x10]
movq qword [ecx + 0x40], xmm0
mov eax, dword [eax + ebx + 8]
mov dword [ecx + 0x48], eax
mov eax, dword [0x107001f0]
add eax, 0xd5bd03c9
xor eax, 0xde9a561b
mov eax, dword [eax + 0xc8]
mov dword [ebp - 0x20], eax
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x102b6ffc]
test al, 1
jne 0x1015b8ee
or eax, 1
mov dword [0x102b6ffc], eax
mov dword [ebp - 4], 4
mov ebx, dword [0x102b3e88]
cmp ebx, dword [0x102b3e8c]
je 0x1015b819
mov eax, dword [ebx]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x1015b80e
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x1015b7e8
xor edx, edx
test ecx, ecx
je 0x1015b80e
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1015b7f5
cmp edi, 0x4e9f1122
je 0x1015b82f
add ebx, 4
cmp ebx, dword [0x102b3e8c]
jne 0x1015b7d5
mov ebx, dword [ebp + 8]
xor eax, eax
mov dword [0x102b5760], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1015b8f3
mov eax, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x18], esi
cmp dword [eax + 4], esi
jle 0x1015b8c4
xor ecx, ecx
mov dword [ebp + 0x1c], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1015b879
cmp dword [ecx + 4], 0
jle 0x1015b879
push 0
mov edx, 0x940131c5
call fcn.1012aec0
add esp, 4
test eax, eax
je 0x1015b876
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x1015b882
xor edx, edx
test ecx, ecx
je 0x1015b8ac
nop
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1015b890
cmp edi, 0x940131c5
je 0x1015b8d7
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
inc edx
mov esi, dword [ebp + 0xc]
add ecx, 0x3c
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x1015b848
mov ebx, dword [ebp + 8]
mov eax, esi
mov dword [0x102b5760], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1015b8f3
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov dword [0x102b5760], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1015b8f3
mov eax, dword [0x102b5760]
push dword [eax + ebx]
mov ecx, dword [ebp - 0x20]
call dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x1015bbf7
mov ecx, dword [0x107001f0]
add ecx, 0xd5bd03c9
xor ecx, 0xde9a561b
mov eax, dword [ecx + 0xc8]
mov dword [ebp - 0x1c], eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [0x102ba44c]
test al, 1
jne 0x1015ba7c
or eax, 1
mov dword [0x102ba44c], eax
mov dword [ebp - 4], 5
mov ebx, dword [0x102b3e88]
cmp ebx, dword [0x102b3e8c]
je 0x1015b9a4
mov eax, dword [ebx]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x1015b999
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax + eax]
inc ecx
cmp byte [esi + ecx], 0
jne 0x1015b970
xor edx, edx
test ecx, ecx
je 0x1015b999
nop dword [eax]
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1015b980
cmp edi, 0xf2f193b3
je 0x1015b9b7
add ebx, 4
cmp ebx, dword [0x102b3e8c]
jne 0x1015b958
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x102ba450], eax
jmp 0x1015ba81
mov eax, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x18], esi
cmp dword [eax + 4], esi
jle 0x1015ba58
xor ecx, ecx
mov dword [ebp + 0x1c], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1015ba01
cmp dword [ecx + 4], 0
jle 0x1015ba01
push 0
mov edx, 0xa822535a
call fcn.1012aec0
add esp, 4
test eax, eax
je 0x1015b9fe
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [esi + ecx], 0
jne 0x1015ba10
xor edx, edx
test ecx, ecx
je 0x1015ba3c
nop dword [eax]
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1015ba20
cmp edi, 0xa822535a
je 0x1015ba68
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
inc edx
mov esi, dword [ebp + 0xc]
add ecx, 0x3c
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x1015b9d0
mov eax, esi
mov dword [ebp - 4], 0xffffffff
mov dword [0x102ba450], eax
jmp 0x1015ba81
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp + 0xc]
mov dword [0x102ba450], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1015ba81
mov eax, dword [0x102ba450]
mov ecx, dword [ebp - 0x20]
push dword [eax + ecx]
mov ecx, dword [ebp - 0x1c]
call dword [ebp - 0x18]
mov dword [ebp + 0x1c], eax
test eax, eax
je 0x1015bbf7
mov ecx, dword [0x102b7060]
test cl, 1
jne 0x1015bbea
or ecx, 1
mov dword [0x102b7060], ecx
mov dword [ebp - 4], 6
mov ebx, dword [0x102b3e88]
cmp ebx, dword [0x102b3e8c]
je 0x1015bb14
nop dword [eax]
mov eax, dword [ebx]
mov dword [ebp + 8], eax
test eax, eax
je 0x1015bb09
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x1015bae3
xor edx, edx
test ecx, ecx
je 0x1015bb09
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1015baf0
cmp edi, 0x54aff69
je 0x1015bb23
add ebx, 4
cmp ebx, dword [0x102b3e8c]
jne 0x1015bad0
mov esi, dword [ebp + 0x1c]
xor eax, eax
mov dword [0x102b7074], eax
jmp 0x1015bd36
mov eax, dword [ebp + 8]
xor esi, esi
mov dword [ebp + 0x14], esi
mov dword [ebp + 0xc], esi
cmp dword [eax + 4], esi
jle 0x1015bbc8
xor ecx, ecx
mov dword [ebp + 0x18], ecx
nop dword [eax]
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1015bb71
cmp dword [ecx + 4], 0
jle 0x1015bb71
push 0
mov edx, 0xa3316f9
call fcn.1012aec0
add esp, 4
test eax, eax
je 0x1015bb6e
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp + 0x14], esi
mov eax, dword [ebp + 8]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [esi + ecx], 0
jne 0x1015bb80
xor edx, edx
test ecx, ecx
je 0x1015bbac
nop dword [eax]
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1015bb90
cmp edi, 0xa3316f9
je 0x1015bbd7
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x18]
inc edx
mov esi, dword [ebp + 0x14]
add ecx, 0x3c
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x18], ecx
cmp edx, dword [eax + 4]
jl 0x1015bb40
mov eax, esi
mov esi, dword [ebp + 0x1c]
mov dword [0x102b7074], eax
jmp 0x1015bd36
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x1c]
mov dword [0x102b7074], eax
jmp 0x1015bd36
mov eax, dword [0x102b7074]
mov esi, dword [ebp + 0x1c]
jmp 0x1015bd36
mov eax, dword [0x102b7060]
test al, 1
jne 0x1015bd2e
or eax, 1
mov dword [0x102b7060], eax
mov dword [ebp - 4], 7
mov ebx, dword [0x102b3e88]
cmp ebx, dword [0x102b3e8c]
je 0x1015bc65
mov eax, dword [ebx]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x1015bc5a
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x1015bc34
xor edx, edx
test ecx, ecx
je 0x1015bc5a
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1015bc41
cmp edi, 0x54aff69
je 0x1015bc71
add ebx, 4
cmp ebx, dword [0x102b3e8c]
jne 0x1015bc21
xor eax, eax
mov dword [0x102b7074], eax
jmp 0x1015bd33
mov eax, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x18], esi
cmp dword [eax + 4], esi
jle 0x1015bd18
xor ecx, ecx
mov dword [ebp + 0x1c], ecx
nop word [eax + eax]
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1015bcc1
cmp dword [ecx + 4], 0
jle 0x1015bcc1
push 0
mov edx, 0xa3316f9
call fcn.1012aec0
add esp, 4
test eax, eax
je 0x1015bcbe
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [esi + ecx], 0
jne 0x1015bcd0
xor edx, edx
test ecx, ecx
je 0x1015bcfc
nop dword [eax]
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1015bce0
cmp edi, 0xa3316f9
je 0x1015bd21
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
inc edx
mov esi, dword [ebp + 0xc]
add ecx, 0x3c
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x1015bc90
mov eax, esi
mov dword [0x102b7074], eax
jmp 0x1015bd33
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp + 0xc]
mov dword [0x102b7074], eax
jmp 0x1015bd33
mov eax, dword [0x102b7074]
mov esi, dword [ebp + 8]
add esi, eax
mov ecx, 0x60
mov eax, dword [ebp - 0x10]
lea edi, [eax + 0xac]
rep movsb byte es:[edi], byte [esi]
mov byte [eax], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18