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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1016ce43
mov eax, dword fs:[0]
push eax
sub esp, 0x110
mov eax, dword [0x1023d090]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xd4], ecx
mov eax, dword [ebp + 8]
xor edx, edx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0xf0], ecx
mov dword [ebp - 0xd0], edx
cmp dword [eax + 4], 2
mov dword [ebp - 0x10c], edx
jb 0x1006e333
cmp dword [ecx + 4], 4
jb 0x1006e333
mov eax, dword [eax]
mov edi, dword [eax + 4]
mov ecx, dword [eax]
mov dword [ebp - 0xcc], ecx
mov eax, dword [edi]
mov esi, dword [eax + 0x2c]
mov ecx, esi
call dword [0x101851c8]
mov ecx, edi
call esi
mov esi, eax
mov cl, byte [esi]
mov byte [ebp - 0xc8], cl
lea ecx, [esi + 4]
push ecx
lea ecx, [ebp - 0xc4]
call fcn.1007a9e0
cmp byte [ebp - 0xc8], 0
je 0x1006d5d7
cmp dword [ebp - 0xb0], 0x10
lea edx, [ebp - 0xc4]
cmovae edx, dword [ebp - 0xc4]
jmp 0x1006d5da
mov edx, dword [esi + 0x1c]
mov dword [ebp - 0xac], edx
mov ecx, dword [esi + 0x20]
mov dword [ebp - 0xa8], ecx
movss xmm0, dword [esi + 0x24]
movss dword [ebp - 0xa4], xmm0
mov eax, dword [esi + 0x28]
mov dword [ebp - 0xa0], eax
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x9c], eax
push ecx
lea eax, [ecx + edx]
mov dword [ebp - 4], 0
push eax
push edx
lea ecx, [ebp - 0x80]
call fcn.1007a9e0
mov eax, dword [ebp - 0xd4]
lea esi, [ebp - 0x80]
mov byte [ebp - 4], 1
add eax, 0x10c
cmp dword [ebp - 0x6c], 0x10
mov edx, 0x811c9dc5
mov edi, dword [ebp - 0x70]
cmovae esi, dword [ebp - 0x80]
xor ecx, ecx
mov dword [ebp - 0xf4], eax
test edi, edi
je 0x1006d667
nop dword [eax + eax]
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x1006d650
mov eax, dword [ebp - 0xf4]
push edx
lea ecx, [ebp - 0x80]
push ecx
lea ecx, [ebp - 0x11c]
push ecx
mov ecx, eax
call fcn.1007a9e0
mov eax, dword [eax + 4]
test eax, eax
jne 0x1006d68d
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + 0x110]
mov ecx, dword [ebp - 0xd4]
cmp eax, dword [ecx + 0x110]
je 0x1006e350
mov eax, dword [eax + 0x20]
mov edi, dword [ebp - 0xcc]
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0xf0]
mov eax, dword [eax]
mov ecx, dword [eax]
mov dword [ebp - 0xf0], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0xe4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xec], eax
mov eax, dword [edi]
mov dword [ebp - 0xe8], ecx
mov esi, dword [eax + 0x24]
mov ecx, esi
call dword [0x101851c8]
mov ecx, edi
call esi
mov edx, dword [ebp - 0xcc]
mov edi, eax
mov edx, dword [edx]
mov esi, dword [edx + 0x2c]
mov ecx, esi
call dword [0x101851c8]
mov ecx, dword [ebp - 0xcc]
call esi
lea ecx, [edi + edi*2]
mov dword [ebp - 0xf4], eax
shl ecx, 4
add ecx, eax
mov dword [ebp - 0x10c], ecx
cmp eax, ecx
je 0x1006e2ad
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x20]
push ecx
add eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x98]
call fcn.1007a9e0
cmp dword [ebp - 0x88], 0
je 0x1006e254
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
movq qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x40]
push 1
mov dword [ebp - 0x40], 0
push 0x1019dd48
movq qword [ebp - 0x4c], xmm0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.1007a9e0
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 4
push 1
push eax
lea edx, [ebp - 0x98]
lea ecx, [ebp - 0x4c]
call fcn.1007a9e0
add esp, 8
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0x10
jb 0x1006d7f5
mov edx, dword [ebp - 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1006d7eb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1006e35c
push ecx
push edx
call fcn.1007a9e0
add esp, 8
mov eax, dword [ebp - 0x48]
mov esi, dword [ebp - 0x4c]
sub eax, esi
sar eax, 3
imul eax, eax, 0xaaaaaaab
mov byte [ebp - 0x40], 0
mov dword [ebp - 0x100], 0
test eax, eax
je 0x1006dd7a
xor ecx, ecx
mov dword [ebp - 0x104], ecx
nop dword [eax]
nop dword [eax + eax]
xorps xmm0, xmm0
mov dword [ebp - 0x20], 0
movq qword [ebp - 0x28], xmm0
lea edi, [esi + ecx]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
xor edx, edx
mov byte [ebp - 4], 7
xor esi, esi
mov eax, dword [edi + 0x14]
mov ecx, edi
mov dword [ebp - 0xcc], edx
cmp eax, 0x10
jb 0x1006d871
mov ecx, dword [edi]
cmp byte [ecx + edx], 0
je 0x1006da4a
mov ecx, edi
cmp eax, 0x10
jb 0x1006d884
mov ecx, dword [edi]
mov al, byte [ecx + edx]
and al, 0xc0
cmp al, 0x80
je 0x1006da44
test edx, edx
jle 0x1006da44
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
cmp ecx, esi
jb 0x1006e366
sub ecx, esi
mov eax, edx
sub eax, esi
cmp ecx, eax
cmovb eax, ecx
cmp dword [edi + 0x14], 0x10
mov ecx, edi
jb 0x1006d8d2
mov ecx, dword [edi]
push eax
lea eax, [ecx + esi]
push eax
lea ecx, [ebp - 0x40]
call fcn.1007a9e0
or dword [ebp - 0xd0], 1
mov byte [ebp - 4], 8
mov esi, dword [ebp - 0x24]
cmp esi, dword [ebp - 0x20]
je 0x1006d9eb
mov eax, dword [ebp - 0x2c]
lea edx, [ebp - 0x40]
mov ecx, dword [ebp - 0x40]
cmp eax, 0x10
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x30]
cmovae edx, ecx
mov dword [esi], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0xd8], edx
mov dword [ebp - 0xdc], eax
cmp eax, 0x10
jae 0x1006d949
movups xmm0, xmmword [edx]
mov eax, 0xf
movups xmmword [esi], xmm0
jmp 0x1006d9d3
or eax, 0xf
mov ecx, 0x7fffffff
cmp eax, 0x7fffffff
cmova eax, ecx
mov dword [ebp - 0xf8], eax
inc eax
cmp eax, 0x1000
jb 0x1006d997
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x1006e361
push ecx
lfence
call fcn.1007a9e0
add esp, 4
test eax, eax
je 0x1006e35c
mov edx, dword [ebp - 0xd8]
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x1006d9b3
test eax, eax
je 0x1006d9b1
push eax
lfence
call fcn.1007a9e0
mov edx, dword [ebp - 0xd8]
add esp, 4
mov ecx, eax
jmp 0x1006d9b3
xor ecx, ecx
mov eax, dword [ebp - 0xdc]
inc eax
mov dword [esi], ecx
push eax
push edx
push ecx
call fcn.1013ae70
mov eax, dword [ebp - 0xf8]
add esp, 0xc
mov ecx, dword [ebp - 0xfc]
mov edx, dword [ebp - 0xdc]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], eax
add dword [ebp - 0x24], 0x18
mov eax, dword [ebp - 0xe0]
jmp 0x1006d9fe
lea eax, [ebp - 0x40]
push eax
push esi
lea ecx, [ebp - 0x28]
call fcn.1007a9e0
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0xcc]
mov esi, edx
mov byte [ebp - 4], 7
cmp eax, 0x10
jb 0x1006da40
lea edx, [eax + 1]
mov eax, ecx
cmp edx, 0x1000
jb 0x1006da30
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1006e35c
push edx
push ecx
call fcn.1007a9e0
mov edx, dword [ebp - 0xcc]
add esp, 8
mov byte [ebp - 0x40], 0
inc edx
jmp 0x1006d85f
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
cmp ecx, esi
jb 0x1006e366
sub ecx, esi
or edx, 0xffffffff
cmp ecx, 0xffffffff
cmovb edx, ecx
cmp eax, 0x10
jb 0x1006da80
mov edi, dword [edi]
push edx
lea eax, [edi + esi]
push eax
lea ecx, [ebp - 0x40]
call fcn.1007a9e0
mov esi, dword [ebp - 0xd0]
or esi, 2
mov dword [ebp - 0xd0], esi
mov byte [ebp - 4], 9
mov ecx, 0x1023ff54
cmp dword [0x1023ff68], 0x10
mov edx, dword [ebp - 0x30]
cmovae ecx, dword [0x1023ff54]
mov eax, dword [ebp - 0x2c]
mov edi, dword [0x1023ff64]
sub eax, edx
mov dword [ebp - 0xe0], edx
push edi
push ecx
cmp edi, eax
ja 0x1006db02
cmp dword [ebp - 0x2c], 0x10
lea esi, [ebp - 0x40]
lea eax, [edx + edi]
cmovae esi, dword [ebp - 0x40]
mov dword [ebp - 0x30], eax
lea eax, [esi + edx]
push eax
call fcn.1013ae70
mov ecx, dword [ebp - 0xe0]
lea eax, [edi + esi]
mov esi, dword [ebp - 0xd0]
add esp, 0xc
mov byte [eax + ecx], 0
lea eax, [ebp - 0x40]
jmp 0x1006db1b
mov byte [ebp - 0x110], 0
lea ecx, [ebp - 0x40]
push dword [ebp - 0x110]
lfence
push edi
call fcn.1007a9e0
movups xmm0, xmmword [eax]
or esi, 4
mov dword [ebp - 0xd0], esi
movups xmmword [ebp - 0x64], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x54], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0x10
jb 0x1006db7e
mov edx, dword [ebp - 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1006db74
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1006e35c
push ecx
push edx
call fcn.1007a9e0
add esp, 8
mov esi, dword [ebp - 0x24]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
cmp esi, dword [ebp - 0x20]
je 0x1006dc80
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x64]
cmp eax, 0x10
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x64]
cmovae ecx, eax
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x54]
mov dword [esi], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0xdc], eax
cmp eax, 0x10
jae 0x1006dbec
movups xmm0, xmmword [ecx]
mov edi, 0xf
movups xmmword [esi], xmm0
jmp 0x1006dc68
mov edi, eax
mov eax, 0x7fffffff
or edi, 0xf
cmp edi, 0x7fffffff
cmova edi, eax
lea eax, [edi + 1]
cmp eax, 0x1000
jb 0x1006dc33
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x1006e361
push ecx
lfence
call fcn.1007a9e0
add esp, 4
test eax, eax
je 0x1006e35c
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x1006dc49
test eax, eax
je 0x1006dc47
push eax
lfence
call fcn.1007a9e0
add esp, 4
mov ecx, eax
jmp 0x1006dc49
xor ecx, ecx
mov eax, dword [ebp - 0xdc]
inc eax
mov dword [esi], ecx
push eax
push dword [ebp - 0xe0]
push ecx
call fcn.1013ae70
mov eax, dword [ebp - 0xdc]
add esp, 0xc
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edi
add dword [ebp - 0x24], 0x18
mov esi, dword [ebp - 0xfc]
mov edi, dword [ebp - 0xf8]
jmp 0x1006dc93
lea eax, [ebp - 0x64]
push eax
push esi
lea ecx, [ebp - 0x28]
call fcn.1007a9e0
mov edi, dword [ebp - 0x50]
mov esi, dword [ebp - 0x64]
mov ecx, dword [ebp - 0xd4]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.1007a9e0
mov byte [ebp - 4], 7
cmp edi, 0x10
jb 0x1006dcda
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x1006dcd0
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1006e35c
push ecx
push esi
call fcn.1007a9e0
add esp, 8
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x1006dd45
mov edx, dword [ebp - 0x24]
push ecx
call fcn.1007a9e0
mov eax, dword [ebp - 0x20]
add esp, 4
mov edx, dword [ebp - 0x28]
sub eax, edx
sar eax, 3
imul eax, eax, 0xaaaaaaab
lea ecx, [eax + eax*2]
mov eax, edx
shl ecx, 3
cmp ecx, 0x1000
jb 0x1006dd26
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1006e35c
push ecx
push edx
call fcn.1007a9e0
add esp, 8
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov eax, dword [ebp - 0x48]
mov esi, dword [ebp - 0x4c]
sub eax, esi
mov edx, dword [ebp - 0x100]
mov ecx, dword [ebp - 0x104]
inc edx
sar eax, 3
add ecx, 0x18
imul eax, eax, 0xaaaaaaab
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x104], ecx
cmp edx, eax
jb 0x1006d830
mov edi, dword [ebp - 0xd4]
cmp dword [edi + 0x94], 0
jl 0x1006df57
cmp dword [edi + 0x98], 0
jl 0x1006df57
cmp dword [edi + 0x8c], 2
jle 0x1006df57
lea eax, [edi + 0xa4]
push eax
lea ecx, [ebp - 0x68]
call fcn.1007a9e0
mov esi, dword [ebp - 0xd0]
mov eax, dword [edi + 0x94]
or esi, 8
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 0xc
push eax
push dword [ebp - 0x1c]
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x1c]
call fcn.1007a9e0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x54]
cmp ecx, 0x10
jb 0x1006de1a
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1006de10
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1006e35c
push ecx
push edx
call fcn.1007a9e0
add esp, 8
mov ecx, dword [ebp - 0x18]
mov eax, 0x92492493
sub ecx, dword [ebp - 0x1c]
imul ecx
mov eax, dword [edi + 0x8c]
add edx, ecx
mov dword [ebp - 0x58], 0
sar edx, 4
dec eax
mov ecx, edx
mov dword [ebp - 0x54], 0xf
shr ecx, 0x1f
add ecx, edx
mov byte [ebp - 0x68], 0
lea edx, [edi + 0xbc]
cmp ecx, eax
push edx
lea ecx, [ebp - 0x68]
jbe 0x1006deaa
call fcn.1007a9e0
mov eax, dword [edi + 0x98]
or esi, 0x10
mov dword [ebp - 0x50], eax
mov dword [ebp - 0xd0], esi
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x68]
mov eax, dword [edi + 0x8c]
push ecx
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [ebp - 0x1c]
lea eax, [eax + ecx*4]
add eax, 0xffffffe4
lea ecx, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x118]
push eax
call fcn.1007a9e0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x54]
jmp 0x1006df11
call fcn.1007a9e0
mov edx, dword [edi + 0x98]
or esi, 0x20
mov dword [ebp - 0x50], edx
mov dword [ebp - 0xd0], esi
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x14]
je 0x1006defd
movups xmm0, xmmword [ebp - 0x68]
mov dword [eax], 0
mov ecx, 0xf
mov byte [ebp - 0x68], 0
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x58]
movq qword [eax + 0x10], xmm0
mov dword [eax + 0x18], edx
add dword [ebp - 0x18], 0x1c
mov dword [ebp - 0x58], 0
jmp 0x1006df0d
lea ecx, [ebp - 0x68]
push ecx
push eax
lea ecx, [ebp - 0x1c]
call fcn.1007a9e0
mov ecx, dword [ebp - 0x54]
mov byte [ebp - 4], 6
cmp ecx, 0x10
jb 0x1006df42
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1006df38
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1006e35c
push ecx
push edx
call fcn.1007a9e0
add esp, 8
mov esi, dword [ebp - 0x4c]
mov byte [ebp - 0x68], 0
mov dword [ebp - 0x54], 0xf
mov dword [ebp - 0x58], 0
cmp dword [edi + 0x8c], 0
mov dword [ebp - 0xd8], 0
jle 0x1006e0d5
mov dword [ebp - 0xcc], 0
nop dword [eax + eax]
mov ecx, dword [ebp - 0x18]
mov eax, 0x92492493
mov edi, dword [ebp - 0x1c]
sub ecx, edi
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0xd8], eax
jae 0x1006e020
mov eax, dword [ebp - 0xf0]
push 0
push 0
push ecx
mov eax, dword [eax]
mov dword [esp], 0x3f800000
mov esi, dword [eax + 0x18]
mov ecx, esi
mov eax, dword [ebp - 0xcc]
add eax, edi
push eax
call dword [0x101851c8]
mov ecx, dword [ebp - 0xf0]
call esi
mov ecx, dword [ebp - 0xe4]
mov edi, dword [ebp - 0xd8]
push edi
push edi
mov eax, dword [ecx]
mov ecx, dword [ebp - 0xcc]
push ecx
mov dword [esp], 0x3f800000
mov esi, dword [eax + 8]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + ecx + 0x18]
mov ecx, esi
push eax
call dword [0x101851c8]
mov ecx, dword [ebp - 0xe4]
call esi
mov ecx, dword [ebp - 0xe8]
push edi
push edi
push ecx
mov dword [esp], 0x3f800000
push 1
jmp 0x1006e072
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax + 0x90]
test ecx, ecx
js 0x1006e321
mov eax, dword [ebp - 0xe4]
mov edi, dword [ebp - 0xd8]
push edi
push edi
mov eax, dword [eax]
push ecx
mov dword [esp], 0x3f800000
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x101851c8]
mov ecx, dword [ebp - 0xe4]
call esi
mov ecx, dword [ebp - 0xe8]
push edi
push edi
push ecx
mov dword [esp], 0x3f800000
push 0
mov eax, dword [ecx]
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x101851c8]
mov ecx, dword [ebp - 0xe8]
call esi
mov ecx, dword [ebp - 0xec]
push edi
push edi
push ecx
mov eax, dword [ecx]
mov dword [esp], 0x3f800000
push dword [ebp - 0x108]
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x101851c8]
mov ecx, dword [ebp - 0xec]
call esi
mov eax, dword [ebp - 0xd4]
inc edi
add dword [ebp - 0xcc], 0x1c
mov dword [ebp - 0xd8], edi
cmp edi, dword [eax + 0x8c]
jl 0x1006df80
mov esi, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x1c]
mov byte [ebp - 4], 3
test esi, esi
je 0x1006e192
mov edi, dword [ebp - 0x48]
cmp esi, edi
je 0x1006e13e
nop dword [eax + eax]
mov ecx, dword [esi + 0x14]
cmp ecx, 0x10
jb 0x1006e123
mov eax, dword [esi]
inc ecx
cmp ecx, 0x1000
jb 0x1006e119
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1006e35c
mov eax, edx
push ecx
push eax
call fcn.1007a9e0
add esp, 8
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
add esi, 0x18
cmp esi, edi
jne 0x1006e0f0
mov esi, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x44]
sub eax, esi
sar eax, 3
imul eax, eax, 0xaaaaaaab
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x1006e170
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1006e35c
push ecx
push esi
call fcn.1007a9e0
mov edi, dword [ebp - 0x1c]
add esp, 8
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov byte [ebp - 4], 2
test edi, edi
je 0x1006e254
mov esi, dword [ebp - 0x18]
cmp edi, esi
je 0x1006e1f3
mov ecx, dword [edi + 0x14]
cmp ecx, 0x10
jb 0x1006e1d8
mov eax, dword [edi]
inc ecx
cmp ecx, 0x1000
jb 0x1006e1ce
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1006e35c
mov eax, edx
push ecx
push eax
call fcn.1007a9e0
add esp, 8
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
add edi, 0x1c
cmp edi, esi
jne 0x1006e1a5
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
mov eax, 0x92492493
sub ecx, edi
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov eax, edi
shl ecx, 2
cmp ecx, 0x1000
jb 0x1006e235
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1006e35c
push ecx
push edi
call fcn.1007a9e0
add esp, 8
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x84]
cmp ecx, 0x10
jb 0x1006e292
mov edx, dword [ebp - 0x98]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1006e288
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1006e35c
push ecx
push edx
call fcn.1007a9e0
add esp, 8
mov eax, dword [ebp - 0xf4]
add eax, 0x30
mov dword [ebp - 0xf4], eax
cmp eax, dword [ebp - 0x10c]
jne 0x1006d723
mov ecx, dword [ebp - 0x6c]
cmp ecx, 0x10
jb 0x1006e2e1
mov edx, dword [ebp - 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1006e2d7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1006e35c
push ecx
push edx
call fcn.1007a9e0
add esp, 8
mov ecx, dword [ebp - 0xb0]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
cmp ecx, 0x10
jb 0x1006e333
mov edx, dword [ebp - 0xc4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1006e329
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1006e35c
jmp 0x1006e329
mov esi, dword [ebp - 0x4c]
jmp 0x1006e0d8
push ecx
push edx
call fcn.1007a9e0
add esp, 8
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.10138f44
mov esp, ebp
pop ebp
ret 8
lea eax, [ebp - 0x80]
push eax
sub esp, 0x14
call fcn.1007a9e0
call fcn.10144b1f
call fcn.1007a9e0
call fcn.100159c0
int3