414ff3:	52                   	push   %edx
414ff4:	51                   	push   %ecx
414ff5:	e8 a6 7f ff ff       	call   0x40cfa0
414ffa:	8b 7e 08             	mov    0x8(%esi),%edi
414ffd:	83 c4 0c             	add    $0xc,%esp
415000:	2b fb                	sub    %ebx,%edi
415002:	8b ce                	mov    %esi,%ecx
415004:	6a 00                	push   $0x0
415006:	57                   	push   %edi
415007:	e8 ba 59 ff ff       	call   0x40a9c6
41500c:	84 c0                	test   %al,%al
41500e:	74 0a                	je     0x41501a
415010:	8b 46 04             	mov    0x4(%esi),%eax
415013:	89 7e 08             	mov    %edi,0x8(%esi)
415016:	c6 04 07 00          	movb   $0x0,(%edi,%eax,1)
41501a:	8b 4c 24 10          	mov    0x10(%esp),%ecx
41501e:	8b 51 3c             	mov    0x3c(%ecx),%edx
415021:	66 8b 44 24 18       	mov    0x18(%esp),%ax
415026:	89 51 40             	mov    %edx,0x40(%ecx)
415029:	5f                   	pop    %edi
41502a:	5e                   	pop    %esi
41502b:	5d                   	pop    %ebp
41502c:	5b                   	pop    %ebx
41502d:	59                   	pop    %ecx
41502e:	c2 04 00             	ret    $0x4
415031:	66 0d ff ff          	or     $0xffff,%ax
415035:	5f                   	pop    %edi
415036:	5e                   	pop    %esi
415037:	5d                   	pop    %ebp
415038:	5b                   	pop    %ebx
415039:	59                   	pop    %ecx
41503a:	c2 04 00             	ret    $0x4
41503d:	90                   	nop
41503e:	90                   	nop
41503f:	90                   	nop
415040:	56                   	push   %esi
415041:	8b f1                	mov    %ecx,%esi
415043:	57                   	push   %edi
415044:	8b 46 1c             	mov    0x1c(%esi),%eax
415047:	8b 00                	mov    (%eax),%eax
415049:	85 c0                	test   %eax,%eax
41504b:	74 12                	je     0x41505f
41504d:	8b 4e 2c             	mov    0x2c(%esi),%ecx
415050:	8b 11                	mov    (%ecx),%edx
415052:	8d 0c 50             	lea    (%eax,%edx,2),%ecx
415055:	3b c1                	cmp    %ecx,%eax
415057:	73 06                	jae    0x41505f
415059:	66 8b 00             	mov    (%eax),%ax
41505c:	5f                   	pop    %edi
41505d:	5e                   	pop    %esi
41505e:	c3                   	ret
41505f:	8b 3e                	mov    (%esi),%edi
415061:	8b ce                	mov    %esi,%ecx
415063:	ff 57 14             	call   *0x14(%edi)
415066:	50                   	push   %eax
415067:	8b ce                	mov    %esi,%ecx
415069:	ff 57 08             	call   *0x8(%edi)
41506c:	5f                   	pop    %edi
41506d:	5e                   	pop    %esi
41506e:	c3                   	ret
41506f:	90                   	nop
415070:	83 ec 0c             	sub    $0xc,%esp
415073:	53                   	push   %ebx
415074:	55                   	push   %ebp
415075:	56                   	push   %esi
415076:	8b f1                	mov    %ecx,%esi
415078:	57                   	push   %edi
415079:	8b 46 1c             	mov    0x1c(%esi),%eax
41507c:	8b 00                	mov    (%eax),%eax
41507e:	85 c0                	test   %eax,%eax
415080:	74 24                	je     0x4150a6
415082:	8b 4e 2c             	mov    0x2c(%esi),%ecx
415085:	8b 11                	mov    (%ecx),%edx
415087:	8d 3c 50             	lea    (%eax,%edx,2),%edi
41508a:	3b c7                	cmp    %edi,%eax
41508c:	73 18                	jae    0x4150a6
41508e:	4a                   	dec    %edx
41508f:	89 11                	mov    %edx,(%ecx)
415091:	8b 76 1c             	mov    0x1c(%esi),%esi
415094:	8b 06                	mov    (%esi),%eax
415096:	8d 48 02             	lea    0x2(%eax),%ecx
415099:	89 0e                	mov    %ecx,(%esi)
41509b:	66 8b 00             	mov    (%eax),%ax
41509e:	5f                   	pop    %edi
41509f:	5e                   	pop    %esi
4150a0:	5d                   	pop    %ebp
4150a1:	5b                   	pop    %ebx
4150a2:	83 c4 0c             	add    $0xc,%esp
4150a5:	c3                   	ret
4150a6:	8b 46 50             	mov    0x50(%esi),%eax
4150a9:	85 c0                	test   %eax,%eax
4150ab:	75 0c                	jne    0x4150b9
4150ad:	66 0d ff ff          	or     $0xffff,%ax
4150b1:	5f                   	pop    %edi
4150b2:	5e                   	pop    %esi
4150b3:	5d                   	pop    %ebp
4150b4:	5b                   	pop    %ebx
4150b5:	83 c4 0c             	add    $0xc,%esp
4150b8:	c3                   	ret
4150b9:	8b 4e 38             	mov    0x38(%esi),%ecx
4150bc:	85 c9                	test   %ecx,%ecx
4150be:	75 2e                	jne    0x4150ee
4150c0:	50                   	push   %eax
4150c1:	e8 fa 33 00 00       	call   0x4184c0
4150c6:	83 c4 04             	add    $0x4,%esp
4150c9:	66 3d ff ff          	cmp    $0xffff,%ax
4150cd:	75 08                	jne    0x4150d7
4150cf:	8b 44 24 10          	mov    0x10(%esp),%eax
4150d3:	32 c9                	xor    %cl,%cl
4150d5:	eb 02                	jmp    0x4150d9
4150d7:	b1 01                	mov    $0x1,%cl
4150d9:	84 c9                	test   %cl,%cl
4150db:	0f 85 8b 01 00 00    	jne    0x41526c
4150e1:	b8 ff ff 00 00       	mov    $0xffff,%eax
4150e6:	5f                   	pop    %edi
4150e7:	5e                   	pop    %esi
4150e8:	5d                   	pop    %ebp
4150e9:	5b                   	pop    %ebx
4150ea:	83 c4 0c             	add    $0xc,%esp
4150ed:	c3                   	ret
4150ee:	8b 56 40             	mov    0x40(%esi),%edx
4150f1:	8b 7e 44             	mov    0x44(%esi),%edi
4150f4:	89 56 3c             	mov    %edx,0x3c(%esi)
4150f7:	8b 1d 90 ca 42 00    	mov    0x42ca90,%ebx
4150fd:	8b cf                	mov    %edi,%ecx
4150ff:	e8 0c e4 ff ff       	call   0x413510
415104:	8b 47 08             	mov    0x8(%edi),%eax
415107:	3b c3                	cmp    %ebx,%eax
415109:	73 02                	jae    0x41510d
41510b:	8b d8                	mov    %eax,%ebx
41510d:	85 db                	test   %ebx,%ebx
41510f:	76 31                	jbe    0x415142
415111:	8b 4f 04             	mov    0x4(%edi),%ecx
415114:	2b c3                	sub    %ebx,%eax
415116:	50                   	push   %eax
415117:	8d 04 0b             	lea    (%ebx,%ecx,1),%eax
41511a:	50                   	push   %eax
41511b:	51                   	push   %ecx
41511c:	e8 7f 7e ff ff       	call   0x40cfa0
415121:	8b 6f 08             	mov    0x8(%edi),%ebp
415124:	83 c4 0c             	add    $0xc,%esp
415127:	2b eb                	sub    %ebx,%ebp
415129:	8b cf                	mov    %edi,%ecx
41512b:	6a 00                	push   $0x0
41512d:	55                   	push   %ebp
41512e:	e8 93 58 ff ff       	call   0x40a9c6
415133:	84 c0                	test   %al,%al
415135:	74 0b                	je     0x415142
415137:	8b 4f 04             	mov    0x4(%edi),%ecx
41513a:	89 6f 08             	mov    %ebp,0x8(%edi)
41513d:	c6 44 0d 00 00       	movb   $0x0,0x0(%ebp,%ecx,1)
415142:	8b 56 50             	mov    0x50(%esi),%edx
415145:	52                   	push   %edx
415146:	e8 65 2d 00 00       	call   0x417eb0
41514b:	8b d8                	mov    %eax,%ebx
41514d:	83 c4 04             	add    $0x4,%esp
415150:	83 fb ff             	cmp    $0xffffffff,%ebx
415153:	0f 84 c8 00 00 00    	je     0x415221
415159:	8b 7e 44             	mov    0x44(%esi),%edi
41515c:	a1 90 ca 42 00       	mov    0x42ca90,%eax
415161:	2b 47 08             	sub    0x8(%edi),%eax
415164:	83 f8 01             	cmp    $0x1,%eax
415167:	77 05                	ja     0x41516e
415169:	e8 f2 0f 00 00       	call   0x416160
41516e:	8b 6f 08             	mov    0x8(%edi),%ebp
415171:	6a 00                	push   $0x0
415173:	45                   	inc    %ebp
415174:	8b cf                	mov    %edi,%ecx
415176:	55                   	push   %ebp
415177:	e8 4a 58 ff ff       	call   0x40a9c6
41517c:	84 c0                	test   %al,%al
41517e:	74 1a                	je     0x41519a
415180:	8b 57 04             	mov    0x4(%edi),%edx
415183:	8b 47 08             	mov    0x8(%edi),%eax
415186:	0f be cb             	movsbl %bl,%ecx
415189:	03 d0                	add    %eax,%edx
41518b:	8a e9                	mov    %cl,%ch
41518d:	88 0a                	mov    %cl,(%edx)
41518f:	8b 4f 04             	mov    0x4(%edi),%ecx
415192:	89 6f 08             	mov    %ebp,0x8(%edi)
415195:	c6 44 0d 00 00       	movb   $0x0,0x0(%ebp,%ecx,1)
41519a:	8b 7e 44             	mov    0x44(%esi),%edi
41519d:	8b 56 3c             	mov    0x3c(%esi),%edx
4151a0:	8d 5e 40             	lea    0x40(%esi),%ebx
4151a3:	8b cf                	mov    %edi,%ecx
4151a5:	89 13                	mov    %edx,(%ebx)
4151a7:	e8 c4 e2 ff ff       	call   0x413470
4151ac:	8b 47 04             	mov    0x4(%edi),%eax
4151af:	85 c0                	test   %eax,%eax
4151b1:	75 04                	jne    0x4151b7
4151b3:	33 ed                	xor    %ebp,%ebp
4151b5:	eb 05                	jmp    0x4151bc
4151b7:	8b 6f 08             	mov    0x8(%edi),%ebp
4151ba:	03 e8                	add    %eax,%ebp
4151bc:	8b 7e 44             	mov    0x44(%esi),%edi
4151bf:	8b cf                	mov    %edi,%ecx
4151c1:	e8 aa e2 ff ff       	call   0x413470
4151c6:	8d 54 24 14          	lea    0x14(%esp),%edx
4151ca:	8b 4e 38             	mov    0x38(%esi),%ecx
4151cd:	52                   	push   %edx
4151ce:	8d 54 24 16          	lea    0x16(%esp),%edx
4151d2:	52                   	push   %edx
4151d3:	8b 01                	mov    (%ecx),%eax
4151d5:	8d 54 24 18          	lea    0x18(%esp),%edx
4151d9:	52                   	push   %edx
4151da:	8d 54 24 24          	lea    0x24(%esp),%edx
4151de:	52                   	push   %edx
4151df:	8b 57 04             	mov    0x4(%edi),%edx
4151e2:	55                   	push   %ebp
4151e3:	52                   	push   %edx
4151e4:	53                   	push   %ebx
4151e5:	ff 50 10             	call   *0x10(%eax)
4151e8:	83 e8 00             	sub    $0x0,%eax
4151eb:	74 7b                	je     0x415268
4151ed:	48                   	dec    %eax
4151ee:	74 0e                	je     0x4151fe
4151f0:	83 e8 02             	sub    $0x2,%eax
4151f3:	75 2c                	jne    0x415221
4151f5:	8b 46 44             	mov    0x44(%esi),%eax
4151f8:	83 78 08 02          	cmpl   $0x2,0x8(%eax)
4151fc:	73 2f                	jae    0x41522d
4151fe:	8b 4e 50             	mov    0x50(%esi),%ecx
415201:	51                   	push   %ecx
415202:	e8 a9 2c 00 00       	call   0x417eb0
415207:	8b d8                	mov    %eax,%ebx
415209:	83 c4 04             	add    $0x4,%esp
41520c:	83 fb ff             	cmp    $0xffffffff,%ebx
41520f:	0f 85 44 ff ff ff    	jne    0x415159
415215:	66 0d ff ff          	or     $0xffff,%ax
415219:	5f                   	pop    %edi
41521a:	5e                   	pop    %esi
41521b:	5d                   	pop    %ebp
41521c:	5b                   	pop    %ebx
41521d:	83 c4 0c             	add    $0xc,%esp
415220:	c3                   	ret
415221:	66 0d ff ff          	or     $0xffff,%ax
415225:	5f                   	pop    %edi
415226:	5e                   	pop    %esi
415227:	5d                   	pop    %ebp
415228:	5b                   	pop    %ebx
415229:	83 c4 0c             	add    $0xc,%esp
41522c:	c3                   	ret
41522d:	8b 76 44             	mov    0x44(%esi),%esi
415230:	8b 46 04             	mov    0x4(%esi),%eax
415233:	85 c0                	test   %eax,%eax
415235:	74 18                	je     0x41524f
415237:	8a 40 ff             	mov    -0x1(%eax),%al
41523a:	84 c0                	test   %al,%al
41523c:	74 11                	je     0x41524f
41523e:	3c ff                	cmp    $0xff,%al
415240:	74 0d                	je     0x41524f
415242:	8b 56 08             	mov    0x8(%esi),%edx
415245:	6a 00                	push   $0x0
415247:	52                   	push   %edx
415248:	8b ce                	mov    %esi,%ecx
41524a:	e8 77 57 ff ff       	call   0x40a9c6
41524f:	8b 46 04             	mov    0x4(%esi),%eax
415252:	85 c0                	test   %eax,%eax
415254:	74 04                	je     0x41525a
415256:	c6 40 ff ff          	movb   $0xff,-0x1(%eax)
41525a:	8b 46 04             	mov    0x4(%esi),%eax
41525d:	66 8b 00             	mov    (%eax),%ax
415260:	5f                   	pop    %edi
415261:	5e                   	pop    %esi
415262:	5d                   	pop    %ebp
415263:	5b                   	pop    %ebx
415264:	83 c4 0c             	add    $0xc,%esp
415267:	c3                   	ret
415268:	8b 44 24 10          	mov    0x10(%esp),%eax
41526c:	5f                   	pop    %edi
41526d:	5e                   	pop    %esi
41526e:	5d                   	pop    %ebp
41526f:	5b                   	pop    %ebx
415270:	83 c4 0c             	add    $0xc,%esp
415273:	c3                   	ret
415274:	90                   	nop
415275:	90                   	nop
415276:	90                   	nop
415277:	90                   	nop
415278:	90                   	nop
415279:	90                   	nop
41527a:	90                   	nop
41527b:	90                   	nop
41527c:	90                   	nop
41527d:	90                   	nop
41527e:	90                   	nop
41527f:	90                   	nop
415280:	83 ec 0c             	sub    $0xc,%esp
415283:	8b 44 24 1c          	mov    0x1c(%esp),%eax
415287:	53                   	push   %ebx
415288:	55                   	push   %ebp
415289:	56                   	push   %esi
41528a:	8b 74 24 20          	mov    0x20(%esp),%esi
41528e:	57                   	push   %edi
41528f:	8b f9                	mov    %ecx,%edi
415291:	89 44 24 14          	mov    %eax,0x14(%esp)
415295:	8b 4c 24 30          	mov    0x30(%esp),%ecx
415299:	89 7c 24 10          	mov    %edi,0x10(%esp)
41529d:	8b 47 50             	mov    0x50(%edi),%eax
4152a0:	89 4c 24 18          	mov    %ecx,0x18(%esp)
4152a4:	85 c0                	test   %eax,%eax
4152a6:	0f 84 28 01 00 00    	je     0x4153d4
4152ac:	8d 54 24 14          	lea    0x14(%esp),%edx
4152b0:	52                   	push   %edx
4152b1:	50                   	push   %eax
4152b2:	e8 19 2e 00 00       	call   0x4180d0
4152b7:	83 c4 08             	add    $0x8,%esp
4152ba:	85 c0                	test   %eax,%eax
4152bc:	0f 85 12 01 00 00    	jne    0x4153d4
4152c2:	85 f6                	test   %esi,%esi
4152c4:	74 17                	je     0x4152dd
4152c6:	8b 47 50             	mov    0x50(%edi),%eax
4152c9:	6a 01                	push   $0x1
4152cb:	56                   	push   %esi
4152cc:	50                   	push   %eax
4152cd:	e8 1e 2d 00 00       	call   0x417ff0
4152d2:	83 c4 0c             	add    $0xc,%esp
4152d5:	85 c0                	test   %eax,%eax
4152d7:	0f 85 f7 00 00 00    	jne    0x4153d4
4152dd:	8b 57 50             	mov    0x50(%edi),%edx
4152e0:	8d 4c 24 14          	lea    0x14(%esp),%ecx
4152e4:	51                   	push   %ecx
4152e5:	52                   	push   %edx
4152e6:	e8 d5 2c 00 00       	call   0x417fc0
4152eb:	83 c4 08             	add    $0x8,%esp
4152ee:	85 c0                	test   %eax,%eax
4152f0:	0f 85 de 00 00 00    	jne    0x4153d4
4152f6:	8b 5f 44             	mov    0x44(%edi),%ebx
4152f9:	85 db                	test   %ebx,%ebx
4152fb:	0f 84 ab 00 00 00    	je     0x4153ac
415301:	8b 44 24 34          	mov    0x34(%esp),%eax
415305:	89 47 40             	mov    %eax,0x40(%edi)
415308:	8b 73 04             	mov    0x4(%ebx),%esi
41530b:	8b 2d 90 ca 42 00    	mov    0x42ca90,%ebp
415311:	85 f6                	test   %esi,%esi
415313:	74 55                	je     0x41536a
415315:	8a 46 ff             	mov    -0x1(%esi),%al
415318:	84 c0                	test   %al,%al
41531a:	74 4e                	je     0x41536a
41531c:	3c ff                	cmp    $0xff,%al
41531e:	74 4a                	je     0x41536a
415320:	6a 01                	push   $0x1
415322:	8b cb                	mov    %ebx,%ecx
415324:	e8 dc 57 ff ff       	call   0x40ab05
415329:	8b fe                	mov    %esi,%edi
41532b:	83 c9 ff             	or     $0xffffffff,%ecx
41532e:	33 c0                	xor    %eax,%eax
415330:	6a 01                	push   $0x1
415332:	f2 ae                	repnz scas %es:(%edi),%al
415334:	f7 d1                	not    %ecx