Function at 0x106e1bc
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0xa8
push ebx
mov ebx, ecx
xor eax, eax
test byte [ebx + 0x34], 8
jne 0x106eefe
push esi
push edi
xor edi, edi
cmp dword [ebx + 4], edi
mov dword [ebp + 0x1c], edi
jbe 0x106e1f1
mov ecx, dword [ebx + 0x10]
mov ecx, dword [ecx + eax*4]
inc eax
mov dword [ecx + 0x10], edi
cmp eax, dword [ebx + 4]
jb 0x106e1e2
xor edx, edx
cmp dword [ebx + 8], edi
jbe 0x106e22c
mov eax, dword [ebx + 0x14]
mov esi, dword [eax + edx*4]
mov eax, dword [esi]
cmp dword [ebx + 0x4c], eax
je 0x106e226
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax + 4]
test cl, 2
je 0x106e226
test ch, 2
jne 0x106e226
mov esi, dword [esi + 8]
lea ecx, [esi + 1]
cmp dword [eax + 0x10], ecx
jae 0x106e226
mov dword [eax + 0x10], ecx
inc edx
cmp edx, dword [ebx + 8]
jb 0x106e1f8
xor eax, eax
cmp dword [ebx + 4], edi
jbe 0x106e244
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov esi, dword [ecx]
add eax, dword [esi + 0x10]
add ecx, 4
dec edx
jne 0x106e239
mov esi, eax
shl esi, 2
push esi
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
mov edi, eax
test edi, edi
pop ecx
mov dword [ebp + 8], edi
je 0x106ef04
mov ecx, esi
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
xor edx, edx
xor ecx, ecx
cmp dword [ebx + 4], edx
jbe 0x106e29f
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + edx*4]
mov esi, dword [eax + 0x10]
mov edi, dword [ebp + 8]
neg esi
sbb esi, esi
lea edi, [edi + ecx*4]
and esi, edi
mov dword [eax + 0x1c], esi
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + edx*4]
add ecx, dword [esi + 0x10]
inc edx
cmp edx, dword [ebx + 4]
jb 0x106e27b
xor esi, esi
xor edx, edx
cmp dword [ebx + 8], esi
jbe 0x106e2d8
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax]
cmp dword [ebx + 0x4c], ecx
je 0x106e2d2
mov edi, dword [ebx + 0x10]
mov ecx, dword [edi + ecx*4]
mov ecx, dword [ecx + 0x1c]
cmp ecx, esi
je 0x106e2d2
mov edi, dword [eax + 8]
mov eax, dword [eax + 0xc]
lea ecx, [ecx + edi*4]
inc eax
cmp dword [ecx], eax
jae 0x106e2d2
mov dword [ecx], eax
inc edx
cmp edx, dword [ebx + 8]
jb 0x106e2a8
mov eax, dword [ebx + 0x90]
test al, 6
jne 0x106e648
mov ecx, ebx
call fcn.01068ac3
cmp dword [ebx + 0xc], esi
mov dword [ebp + 0x64], esi
jbe 0x106e648
mov edi, dword [ebx + 0x18]
mov eax, dword [ebp + 0x64]
mov eax, dword [edi + eax*4]
cmp dword [eax], 0x24000001
mov dword [ebp + 0x68], eax
jne 0x106e639
mov eax, dword [eax + 8]
mov edx, dword [eax]
mov ecx, dword [ebx + 0x14]
mov eax, dword [eax + 4]
mov edx, dword [ecx + edx*4]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebx + 0x10]
mov esi, dword [edx]
mov esi, dword [eax + esi*4]
test byte [esi + 4], 2
je 0x106e639
mov esi, dword [ecx]
mov eax, dword [eax + esi*4]
test byte [eax + 4], 2
je 0x106e639
mov eax, dword [edx + 0x2c]
mov esi, dword [edi + eax*4]
cmp dword [esi], 0x25000001
mov eax, dword [ecx + 0x2c]
mov edi, dword [edi + eax*4]
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x4c], edi
je 0x106e36c
mov ecx, esi
call fcn.01064cd4
test eax, eax
je 0x106e639
cmp dword [edi], 0x25000001
je 0x106e383
mov ecx, edi
call fcn.01064cd4
test eax, eax
je 0x106e639
mov edx, dword [ebx + 0x90]
mov ecx, dword [edi + 4]
mov eax, dword [esi + 4]
not edx
and edx, 0x20
shr ecx, 1
shr eax, 1
or edx, 0x40
mov dword [ebp + 0x3c], ecx
add ecx, eax
shr edx, 5
cmp ecx, edx
mov dword [ebp + 0x6c], ecx
jb 0x106e639
cmp ecx, 4
ja 0x106e639
mov edx, dword [esi + 0x10]
mov edx, dword [edx]
mov ecx, dword [ebx + 0x14]
mov esi, dword [ecx + edx*4]
mov edx, dword [ebp + 0x64]
cmp edx, dword [esi + 0x38]
jne 0x106e639
cmp edx, dword [esi + 0x3c]
jne 0x106e639
mov esi, dword [edi + 0x10]
mov esi, dword [esi]
mov ecx, dword [ecx + esi*4]
cmp edx, dword [ecx + 0x38]
jne 0x106e639
cmp edx, dword [ecx + 0x3c]
jne 0x106e639
mov ecx, dword [ebp + 0x50]
mov esi, dword [ecx + 8]
shl eax, 2
mov dword [ebp + 0x5c], esi
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea edi, [ebp + 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x4c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [edx + 8]
mov ecx, dword [ebp + 0x3c]
shl ecx, 2
mov dword [ebp + 0x40], ecx
mov edx, ecx
shr ecx, 2
mov dword [ebp + 0x38], esi
lea edi, [ebp + eax + 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x5c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea esi, [edx + eax]
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea edi, [ebp - 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x38]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x40]
lea esi, [edx + ecx]
lea edi, [ebp + eax - 0xc]
mov dword [ebp + 0x48], eax
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push 0xffffffffffffffff
push dword [ebp + 0x68]
mov ecx, eax
push 0
push 0
push dword [ebp + 0x6c]
and ecx, 3
lea eax, [ebp + 0xc]
rep movsb byte es:[edi], byte [esi]
push eax
mov ecx, ebx
call fcn.010681a8
test eax, eax
je 0x106e4a9
push 0xffffffffffffffff
push dword [ebp + 0x68]
xor esi, esi
push esi
push esi
push dword [ebp + 0x6c]
lea eax, [ebp - 0xc]
push eax
mov ecx, ebx
call fcn.010681a8
test eax, eax
je 0x106e4a9
mov dword [ebp + 0x48], esi
jmp 0x106e561
mov eax, dword [ebp + 0x50]
mov eax, dword [eax + 8]
mov ecx, dword [ebp + 0x48]
mov edx, ecx
shr ecx, 2
mov esi, eax
lea edi, [ebp + 0x28]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x4c]
mov edx, dword [ecx + 8]
mov ecx, dword [ebp + 0x40]
mov edi, dword [ebp + 0x48]
lea esi, [edx + ecx]
lea edi, [ebp + edi + 0x28]
mov dword [ebp + 0x38], edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x48]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea esi, [eax + edx]
mov ecx, edx
mov eax, ecx
shr ecx, 2
lea edi, [ebp - 0x1c]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x40]
mov esi, dword [ebp + 0x38]
mov eax, ecx
shr ecx, 2
lea edi, [ebp + edx - 0x1c]
rep movsd dword es:[edi], dword [esi]
push 0xffffffffffffffff
push dword [ebp + 0x68]
mov ecx, eax
push 0
push 0
push dword [ebp + 0x6c]
and ecx, 3
lea eax, [ebp + 0x28]
rep movsb byte es:[edi], byte [esi]
push eax
mov ecx, ebx
call fcn.010681a8
test eax, eax
je 0x106e639
push 0xffffffffffffffff
push dword [ebp + 0x68]
lea eax, [ebp - 0x1c]
push 0
push 0
push dword [ebp + 0x6c]
mov ecx, ebx
push eax
call fcn.010681a8
test eax, eax
je 0x106e639
mov dword [ebp + 0x48], 1
xor esi, esi
push 0x38
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, esi
pop ecx
je 0x106e579
mov ecx, eax
call fcn.01064916
mov dword [ebp + 0x44], eax
jmp 0x106e57c
mov dword [ebp + 0x44], esi
cmp dword [ebp + 0x44], esi
je 0x106ef04
mov eax, dword [ebp + 0x6c]
mov edi, dword [ebp + 0x44]
push 0
lea ecx, [eax + eax]
push 1
and eax, 0xffffff
push ecx
or eax, 0x30000000
push eax
mov ecx, edi
call fcn.0106496d
mov esi, eax
test esi, esi
jl 0x106e6f0
push dword [ebp + 0x68]
mov ecx, edi
call fcn.01064c4f
mov esi, eax
test esi, esi
jl 0x106e6f0
cmp dword [ebp + 0x48], 0
mov eax, dword [ebp + 0x68]
mov eax, dword [eax + 0x10]
mov ecx, dword [edi + 0x10]
mov eax, dword [eax]
mov dword [ecx], eax
lea esi, [ebp + 0xc]
je 0x106e5dc
lea esi, [ebp + 0x28]
mov eax, dword [ebp + 0x6c]
mov edx, dword [ebp + 0x44]
mov edi, dword [edx + 8]
shl eax, 2
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp dword [ebp + 0x48], 0
rep movsb byte es:[edi], byte [esi]
lea esi, [ebp - 0xc]
je 0x106e604
lea esi, [ebp - 0x1c]
mov edx, dword [ebp + 0x44]
mov edi, dword [edx + 8]
mov ecx, eax
shr ecx, 2
add edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebp + 0x64]
mov dword [eax + ecx*4], edx
mov ecx, dword [ebp + 0x68]
push 1
call fcn.01064393
mov eax, dword [ebp + 0x50]
and dword [eax], 0
mov eax, dword [ebp + 0x4c]
and dword [eax], 0
inc dword [ebp + 0x64]
mov eax, dword [ebp + 0x64]
cmp eax, dword [ebx + 0xc]
jb 0x106e2f9
mov ecx, ebx
call fcn.01068ac3
and dword [ebp + 0x64], 0
cmp dword [ebx + 0xc], 0
jbe 0x106eee7
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebp + 0x64]
mov edi, dword [eax + ecx*4]
mov ecx, edi
mov dword [ebp + 0x3c], edi
call fcn.01064d1c
test eax, eax
jne 0x106e68e
mov ecx, edi
call fcn.01064d2e
test eax, eax
jne 0x106e68e
mov ecx, edi
call fcn.01064d40
test eax, eax
je 0x106eed8
mov ecx, edi
call fcn.01064cb0
test eax, eax
jne 0x106e6a6
test byte [ebx + 0x90], 6
jne 0x106eed8
mov eax, dword [edi + 0x10]
mov eax, dword [eax]
mov ecx, dword [ebx + 0x14]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax]
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [edx + eax*4]
mov eax, dword [eax + 0x1c]
test eax, eax
mov dword [ebp + 0x40], eax
je 0x106eed8
mov eax, dword [ebx + 0xc]
and dword [ebp + 0x44], 0
cmp dword [edi + 4], 0
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x48], eax
jbe 0x106e72c
mov eax, dword [edi + 8]
mov dword [ebp + 0x50], eax
mov eax, dword [edi + 4]
mov dword [ebp + 0x5c], eax
mov eax, dword [ebp + 0x50]
mov eax, dword [eax]
jmp 0x106e71e
mov ecx, edi
push 1
call fcn.01064393
jmp 0x106eef1
mov eax, dword [ecx + eax*4]
mov esi, dword [eax]
mov edx, dword [ebx + 0x10]
mov edx, dword [edx + esi*4]
test byte [edx + 4], 2
je 0x106e71b
mov edx, dword [eax + 0x2c]
inc edx
cmp dword [ebp + 0x44], edx
jae 0x106e71b
mov dword [ebp + 0x44], edx
mov eax, dword [eax + 4]
cmp eax, 0xffffffff
jne 0x106e6fe
add dword [ebp + 0x50], 4
dec dword [ebp + 0x5c]
jne 0x106e6e9
cmp dword [edi + 0xc], 0
jbe 0x106e77a
mov eax, dword [edi + 0xc]
mov esi, dword [edi + 0x10]
mov dword [ebp + 0x5c], eax
mov eax, dword [esi]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax + 0x38]
cmp dword [ebp + 0x38], edx
jbe 0x106e76a
mov dword [ebp + 0x38], edx
jmp 0x106e76a
mov eax, dword [ecx + eax*4]
mov edi, dword [eax]
mov edx, dword [ebx + 0x10]
mov edx, dword [edx + edi*4]
test byte [edx + 4], 2
je 0x106e76a
mov edx, dword [eax + 0x2c]
inc edx
cmp dword [ebp + 0x44], edx
jae 0x106e76a
mov dword [ebp + 0x44], edx
mov eax, dword [eax + 4]
cmp eax, 0xffffffff
jne 0x106e74d
add esi, 4
dec dword [ebp + 0x5c]
jne 0x106e73b
mov eax, dword [ebp + 0x44]
mov dword [ebp + 0x68], eax
jmp 0x106ec44
mov eax, dword [ebp + 0x68]
cmp dword [ebp + 0x64], eax
je 0x106ec3e
cmp dword [ebp + 0x64], eax
mov ecx, dword [ebx + 0x18]
mov ecx, dword [ecx + eax*4]
mov dword [ebp + 0x20], ecx
jae 0x106e7a4
mov dword [ebp + 0x58], ecx
jmp 0x106e7aa
mov edx, dword [ebp + 0x3c]
mov dword [ebp + 0x58], edx
cmp dword [ebp + 0x64], eax
jae 0x106e7b2
mov ecx, dword [ebp + 0x3c]
mov eax, dword [ecx]
mov dword [ebp + 0x70], ecx
mov ecx, dword [ebp + 0x58]
xor eax, dword [ecx]
test eax, 0xff000000
jne 0x106ec3e
mov ecx, dword [ebp + 0x70]
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx]
mov eax, dword [ebx + 0x14]
mov edx, dword [eax + ecx*4]
mov ecx, dword [ebp + 0x58]
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
cmp ecx, dword [edx]
mov dword [ebp + 0x6c], ecx
jne 0x106ec3e
mov ecx, dword [eax + 4]
cmp ecx, dword [edx + 4]
jne 0x106ec3e
mov esi, dword [ebp + 0x70]
mov ecx, dword [esi + 4]
mov edi, dword [ebp + 0x58]
add ecx, dword [edi + 4]
mov dword [ebp + 4], ecx
mov ecx, dword [esi + 0xc]
mov esi, dword [edi + 0xc]
mov dword [ebp + 0x4c], ecx
add ecx, esi
cmp ecx, 4
mov dword [ebp + 0x54], esi
mov dword [ebp + 0x60], ecx
ja 0x106ec3e
mov eax, dword [eax + 8]
mov edx, dword [edx + 8]
cmp eax, edx
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x5c], edx
je 0x106e869
test byte [ebx + 0x90], 6
jne 0x106ec3e
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp + 0x6c]
mov eax, dword [eax + ecx*4]
test byte [eax + 4], 0x10
jne 0x106ec3e
mov eax, dword [ebp + 0x40]
mov ecx, edx
mov ecx, dword [eax + ecx*4]
mov edx, dword [ebp + 0x50]
add ecx, dword [eax + edx*4]
cmp ecx, 4
ja 0x106ec3e
mov eax, dword [ebp + 0x64]
mov ecx, dword [ebp + 0x68]
cmp eax, ecx
mov dword [ebp + 0x74], eax
jb 0x106e879
mov dword [ebp + 0x74], ecx
mov esi, dword [ebp + 0x58]
mov ecx, esi
call fcn.01064cb0
test eax, eax
jne 0x106ebab
mov ecx, esi
call fcn.01064cc2
test eax, eax
jne 0x106ebab
mov ecx, esi
call fcn.01064d1c
test eax, eax
je 0x106e8f0
mov eax, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x70]
mov esi, dword [edx + 8]
push dword [ebp + 0x74]
shl eax, 2
push dword [ebp + 0x70]
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea edi, [ebp + 0x28]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x58]
and ecx, 3
push 0
rep movsb byte es:[edi], byte [esi]
mov esi, dword [edx + 8]
mov ecx, dword [ebp + 0x54]
push 0
push dword [ebp + 0x60]
lea edi, [ebp + eax + 0x28]
lea eax, [ebp + 0x28]
rep movsd dword es:[edi], dword [esi]
push eax
mov ecx, ebx
call fcn.010681a8
jmp 0x106eba5
mov ecx, esi
call fcn.01064d2e
test eax, eax
je 0x106ea89
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp + 0x70]
mov esi, dword [ecx + 8]
shl eax, 2
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea edi, [ebp + 0x28]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x58]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [edx + 8]
mov ecx, dword [ebp + 0x54]
shl ecx, 2
mov dword [ebp + 0x4c], ecx
mov edx, ecx
shr ecx, 2
mov dword [ebp + 0x6c], esi
lea edi, [ebp + eax + 0x28]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x70]
mov edx, dword [edx + 8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push dword [ebp + 0x74]
lea esi, [edx + eax]
mov ecx, eax
mov edx, ecx
shr ecx, 2
push dword [ebp + 0x70]
lea edi, [ebp + 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x6c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x4c]
lea esi, [edx + ecx]
lea edi, [ebp + eax + 0xc]
mov dword [ebp + 0x24], eax
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push 0
mov ecx, eax
push 0
push dword [ebp + 0x60]
and ecx, 3
lea eax, [ebp + 0x28]
rep movsb byte es:[edi], byte [esi]
push eax
mov ecx, ebx
call fcn.010681a8
push dword [ebp + 0x74]
mov esi, eax
push dword [ebp + 0x70]
lea eax, [ebp + 0xc]
push 0
push 0
push dword [ebp + 0x60]
mov ecx, ebx
push eax
call fcn.010681a8
test esi, esi
je 0x106e9ba
test eax, eax
jne 0x106ebff
mov ecx, dword [ebp + 0x58]
call fcn.01064d74
test eax, eax
je 0x106ec1b
mov eax, dword [ebp + 0x70]
mov esi, dword [eax + 8]
mov eax, dword [ebp + 0x24]
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea edi, [ebp - 0x1c]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x58]
mov edx, dword [ecx + 8]
mov ecx, dword [ebp + 0x4c]
lea esi, [edx + ecx]
mov dword [ebp + 0x6c], edx
mov edx, ecx
shr ecx, 2
lea edi, [ebp + eax - 0x1c]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x70]
mov edx, dword [edx + 8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push dword [ebp + 0x74]
mov ecx, eax
push dword [ebp + 0x70]
lea esi, [edx + eax]
mov edx, ecx
shr ecx, 2
lea edi, [ebp - 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x4c]
mov esi, dword [ebp + 0x6c]
lea edi, [ebp + eax - 0xc]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push 0
mov ecx, eax
push 0
push dword [ebp + 0x60]
and ecx, 3
lea eax, [ebp - 0x1c]
rep movsb byte es:[edi], byte [esi]
push eax
mov ecx, ebx
call fcn.010681a8
push dword [ebp + 0x74]
mov esi, eax
push dword [ebp + 0x70]
lea eax, [ebp - 0xc]
push 0
push 0
push dword [ebp + 0x60]
mov ecx, ebx
push eax
call fcn.010681a8
test esi, esi
je 0x106ec1b
test eax, eax
je 0x106ec1b
mov dword [ebp + 0x54], 1
jmp 0x106ec03
mov ecx, esi
call fcn.01064d40
test eax, eax
je 0x106ec1b
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp + 0x70]
mov esi, dword [ecx + 8]
shl eax, 2
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea edi, [ebp + 0x28]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x54]
shl ecx, 2
mov edx, dword [ebp + 0x58]
mov esi, dword [edx + 8]
mov edx, ecx
shr ecx, 2
mov dword [ebp + 0x6c], esi
lea edi, [ebp + eax + 0x28]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebp + 0x70]
mov edx, dword [edx + 8]
lea esi, [edx + eax]
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea edi, [ebp + 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x6c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x54]
shl ecx, 2
lea esi, [edx + ecx]
mov edx, ecx
shr ecx, 2
lea edi, [ebp + eax + 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x70]
mov edx, dword [edx + 8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0x4c]
lea esi, [edx + esi*8]
push dword [ebp + 0x74]
mov ecx, eax
mov edx, ecx
shr ecx, 2
push dword [ebp + 0x70]
lea edi, [ebp - 0x30]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x54]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0x6c]
mov ecx, edx
shl ecx, 2
lea edi, [ebp + eax - 0x30]
mov eax, ecx
shr ecx, 2
lea esi, [esi + edx*8]
rep movsd dword es:[edi], dword [esi]
push 0
mov ecx, eax
push 0
push dword [ebp + 0x60]
and ecx, 3
lea eax, [ebp + 0x28]
rep movsb byte es:[edi], byte [esi]
push eax
mov ecx, ebx
call fcn.010681a8
push dword [ebp + 0x74]
mov edi, eax
push dword [ebp + 0x70]
xor esi, esi
push esi
push esi
push dword [ebp + 0x60]
lea eax, [ebp + 0xc]
push eax
mov ecx, ebx
call fcn.010681a8
push dword [ebp + 0x74]
mov dword [ebp + 0x24], eax
push dword [ebp + 0x70]
lea eax, [ebp - 0x30]
push esi
push esi
push dword [ebp + 0x60]
mov ecx, ebx
push eax
call fcn.010681a8
cmp edi, esi
je 0x106ec1b
cmp dword [ebp + 0x24], esi
je 0x106ec1b
test eax, eax
je 0x106ec1b
jmp 0x106ebff
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x70]
mov esi, dword [edx + 8]
mov eax, dword [ebx + 0x14]
mov edx, dword [esi]
mov dword [ebp + 0x6c], ecx
mov ecx, dword [ecx]
mov ecx, dword [eax + ecx*4]
mov eax, dword [eax + edx*4]
mov edx, dword [ecx]
cmp edx, dword [eax]
jne 0x106ec1b
mov edx, dword [ecx + 4]
cmp edx, dword [eax + 4]
jne 0x106ec1b
mov ecx, dword [ecx + 8]
cmp ecx, dword [eax + 8]
jne 0x106ec1b
mov eax, dword [ebp + 0x4c]
shl eax, 2
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea edi, [ebp + 0x28]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x54]
mov esi, dword [ebp + 0x6c]
lea edi, [ebp + eax + 0x28]
rep movsd dword es:[edi], dword [esi]
and dword [ebp + 0x54], 0
mov ecx, dword [ebp + 0x50]
mov edx, dword [ebp + 0x5c]
cmp ecx, edx
je 0x106ec52
mov eax, dword [ebp + 0x40]
mov edx, dword [eax + edx*4]
add edx, dword [eax + ecx*4]
cmp edx, 4
jbe 0x106ec52
mov esi, dword [ebp + 0x48]
jmp 0x106ec39
dec dword [ebx + 0xc]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx + eax*4]
test eax, eax
je 0x106ec39
push 1
mov ecx, eax
call fcn.01064393
cmp dword [ebx + 0xc], esi
ja 0x106ec20
inc dword [ebp + 0x68]
mov eax, dword [ebp + 0x68]
cmp eax, dword [ebp + 0x38]
jb 0x106e785
jmp 0x106eed8
push 0x38
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
test eax, eax
pop ecx
je 0x106ec6a
mov ecx, eax
call fcn.01064916
mov dword [ebp + 0x74], eax
jmp 0x106ec6e
and dword [ebp + 0x74], 0
cmp dword [ebp + 0x74], 0
je 0x106ef04
mov edi, dword [ebp + 0x58]
mov eax, dword [edi]
xor eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x74]
push 0
push dword [ebp + 0x60]
and eax, 0xffffff
push dword [ebp + 4]
xor eax, dword [edi]
push eax
call fcn.0106496d
mov esi, eax
test esi, esi
jl 0x106ef0b
mov ecx, dword [ebp + 0x74]
push edi
call fcn.01064c4f
mov esi, eax
test esi, esi
jl 0x106ef0b
mov edx, dword [ebp + 0x5c]
cmp dword [ebp + 0x50], edx
je 0x106ecfb
mov ecx, dword [ebp + 0x40]
xor esi, esi
cmp dword [ebx + 8], esi
jbe 0x106eceb
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + esi*4]
mov edi, dword [ebp - 0x20]
cmp edi, dword [eax]
jne 0x106ece5
mov edi, dword [ebp + 0x50]
cmp edi, dword [eax + 8]
jne 0x106ece5
mov dword [eax + 8], edx
mov edi, dword [ecx + edx*4]
add dword [eax + 0xc], edi
inc esi
cmp esi, dword [ebx + 8]
jb 0x106ecc7
lea eax, [ecx + edx*4]
mov edx, dword [ebp + 0x50]
lea ecx, [ecx + edx*4]
mov edx, dword [ecx]
add dword [eax], edx
and dword [ecx], 0
mov eax, dword [ebp + 0x70]
mov ecx, dword [eax + 0xc]
mov esi, dword [eax + 0x10]
mov edx, dword [ebp + 0x74]
mov edi, dword [edx + 0x10]
shl ecx, 2
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x58]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [edx + 0xc]
mov eax, dword [eax + 0xc]
mov edi, dword [ebp + 0x74]
mov edi, dword [edi + 0x10]
mov esi, dword [edx + 0x10]
shl ecx, 2
lea edi, [edi + eax*4]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, edx
call fcn.01064d1c
test eax, eax
je 0x106ed5a
mov eax, dword [ebp + 0x74]
mov ecx, dword [ebp + 0x60]
mov edi, dword [eax + 8]
lea esi, [ebp + 0x28]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x58]
call fcn.01064d2e
test eax, eax
je 0x106eda6
cmp dword [ebp + 0x54], 0
lea esi, [ebp + 0x28]
je 0x106ed72
lea esi, [ebp - 0x1c]
mov eax, dword [ebp + 0x60]
mov edx, dword [ebp + 0x74]
mov edi, dword [edx + 8]
shl eax, 2
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp dword [ebp + 0x54], 0
rep movsb byte es:[edi], byte [esi]
lea esi, [ebp + 0xc]
je 0x106ed9a
lea esi, [ebp - 0xc]
mov edx, dword [ebp + 0x74]
mov edi, dword [edx + 8]
mov ecx, eax
add edi, eax
jmp 0x106edfc
mov ecx, dword [ebp + 0x58]
call fcn.01064d40
test eax, eax
je 0x106ee0a
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x74]
mov edi, dword [eax + 8]
shl ecx, 2
mov edx, ecx
shr ecx, 2
lea esi, [ebp + 0x28]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [eax + 8]
mov ecx, dword [ebp + 0x60]
shl ecx, 2
add edi, ecx
mov edx, ecx
shr ecx, 2
lea esi, [ebp + 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x60]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [eax + 8]
mov ecx, edx
shl ecx, 2
lea esi, [ebp - 0x30]
lea edi, [eax + edx*8]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x20]
xor esi, esi
cmp ecx, esi
je 0x106ee1a
push 1
call fcn.01064393
mov ecx, dword [ebx + 0x18]
mov eax, dword [ebp + 0x68]
mov edx, dword [ebp + 0x74]
shl eax, 2
mov dword [eax + ecx], edx
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x3c]
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 0xc], esi
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebp + 0x48]
jbe 0x106eec3
sub eax, dword [ebp + 0x48]
mov dword [ebp + 0x20], eax
shl eax, 2
push eax
mov dword [ebp + 0x5c], eax
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, esi
pop ecx
mov dword [ebp + 0x3c], eax
je 0x106ef04
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x5c]
mov edi, dword [ebp + 0x3c]
lea esi, [eax + edx*4]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x68]
mov eax, dword [ebx + 0x18]
sub edx, ecx
shl edx, 2
push edx
mov edx, dword [ebp + 0x40]
add edx, eax
push edx
mov edx, dword [ebp + 0x20]
add edx, ecx
lea eax, [eax + edx*4]
push eax
call sub.msvcrt.dll_memmove
mov edi, dword [ebx + 0x18]
mov ecx, dword [ebp + 0x5c]
add edi, dword [ebp + 0x40]
mov esi, dword [ebp + 0x3c]
push dword [ebp + 0x3c]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 0x10
mov ecx, ebx
call fcn.01068ac3
mov eax, dword [ebp + 0x44]
dec eax
mov dword [ebp + 0x1c], 1
mov dword [ebp + 0x64], eax
inc dword [ebp + 0x64]
mov eax, dword [ebp + 0x64]
cmp eax, dword [ebx + 0xc]
jb 0x106e65d
xor eax, eax
cmp dword [ebp + 0x1c], eax
sete al
mov esi, eax
push dword [ebp + 8]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x78
leave
ret
mov esi, 0x8007000e
jmp 0x106eef1
mov ecx, dword [ebp + 0x74]
jmp 0x106e6f2