417fce:	83 c4 04             	add    $0x4,%esp
417fd1:	89 01                	mov    %eax,(%ecx)
417fd3:	89 51 04             	mov    %edx,0x4(%ecx)
417fd6:	8b 11                	mov    (%ecx),%edx
417fd8:	8b 41 04             	mov    0x4(%ecx),%eax
417fdb:	23 d0                	and    %eax,%edx
417fdd:	83 fa ff             	cmp    $0xffffffff,%edx
417fe0:	74 03                	je     0x417fe5
417fe2:	33 c0                	xor    %eax,%eax
417fe4:	c3                   	ret
417fe5:	83 c8 ff             	or     $0xffffffff,%eax
417fe8:	c3                   	ret
417fe9:	90                   	nop
417fea:	90                   	nop
417feb:	90                   	nop
417fec:	90                   	nop
417fed:	90                   	nop
417fee:	90                   	nop
417fef:	90                   	nop
417ff0:	56                   	push   %esi
417ff1:	8b 74 24 08          	mov    0x8(%esp),%esi
417ff5:	57                   	push   %edi
417ff6:	56                   	push   %esi
417ff7:	e8 e4 74 ff ff       	call   0x40f4e0
417ffc:	8b 44 24 18          	mov    0x18(%esp),%eax
418000:	8b 4c 24 14          	mov    0x14(%esp),%ecx
418004:	83 c4 04             	add    $0x4,%esp
418007:	50                   	push   %eax
418008:	51                   	push   %ecx
418009:	56                   	push   %esi
41800a:	e8 21 00 00 00       	call   0x418030
41800f:	83 c4 0c             	add    $0xc,%esp
418012:	8b f8                	mov    %eax,%edi
418014:	56                   	push   %esi
418015:	e8 36 75 ff ff       	call   0x40f550
41801a:	83 c4 04             	add    $0x4,%esp
41801d:	8b c7                	mov    %edi,%eax
41801f:	5f                   	pop    %edi
418020:	5e                   	pop    %esi
418021:	c3                   	ret
418022:	90                   	nop
418023:	90                   	nop
418024:	90                   	nop
418025:	90                   	nop
418026:	90                   	nop
418027:	90                   	nop
418028:	90                   	nop
418029:	90                   	nop
41802a:	90                   	nop
41802b:	90                   	nop
41802c:	90                   	nop
41802d:	90                   	nop
41802e:	90                   	nop
41802f:	90                   	nop
418030:	56                   	push   %esi
418031:	8b 74 24 08          	mov    0x8(%esp),%esi
418035:	57                   	push   %edi
418036:	8b 46 0c             	mov    0xc(%esi),%eax
418039:	a8 83                	test   $0x83,%al
41803b:	74 79                	je     0x4180b6
41803d:	8b 7c 24 14          	mov    0x14(%esp),%edi
418041:	85 ff                	test   %edi,%edi
418043:	74 0a                	je     0x41804f
418045:	83 ff 01             	cmp    $0x1,%edi
418048:	74 05                	je     0x41804f
41804a:	83 ff 02             	cmp    $0x2,%edi
41804d:	75 67                	jne    0x4180b6
41804f:	24 ef                	and    $0xef,%al
418051:	83 ff 01             	cmp    $0x1,%edi
418054:	89 46 0c             	mov    %eax,0xc(%esi)
418057:	75 15                	jne    0x41806e
418059:	56                   	push   %esi
41805a:	e8 e1 09 00 00       	call   0x418a40
41805f:	8b 4c 24 14          	mov    0x14(%esp),%ecx
418063:	83 c4 04             	add    $0x4,%esp
418066:	03 c8                	add    %eax,%ecx
418068:	33 ff                	xor    %edi,%edi
41806a:	89 4c 24 10          	mov    %ecx,0x10(%esp)
41806e:	56                   	push   %esi
41806f:	e8 7c a6 ff ff       	call   0x4126f0
418074:	8b 46 0c             	mov    0xc(%esi),%eax
418077:	83 c4 04             	add    $0x4,%esp
41807a:	a8 80                	test   $0x80,%al
41807c:	74 07                	je     0x418085
41807e:	24 fc                	and    $0xfc,%al
418080:	89 46 0c             	mov    %eax,0xc(%esi)
418083:	eb 14                	jmp    0x418099
418085:	a8 01                	test   $0x1,%al
418087:	74 10                	je     0x418099
418089:	a8 08                	test   $0x8,%al
41808b:	74 0c                	je     0x418099
41808d:	f6 c4 04             	test   $0x4,%ah
418090:	75 07                	jne    0x418099
418092:	c7 46 18 00 02 00 00 	movl   $0x200,0x18(%esi)
418099:	8b 44 24 10          	mov    0x10(%esp),%eax
41809d:	8b 4e 10             	mov    0x10(%esi),%ecx
4180a0:	57                   	push   %edi
4180a1:	50                   	push   %eax
4180a2:	51                   	push   %ecx
4180a3:	e8 d8 9c ff ff       	call   0x411d80
4180a8:	83 c4 0c             	add    $0xc,%esp
4180ab:	40                   	inc    %eax
4180ac:	f7 d8                	neg    %eax
4180ae:	1b c0                	sbb    %eax,%eax
4180b0:	f7 d8                	neg    %eax
4180b2:	48                   	dec    %eax
4180b3:	5f                   	pop    %edi
4180b4:	5e                   	pop    %esi
4180b5:	c3                   	ret
4180b6:	e8 d5 55 ff ff       	call   0x40d690
4180bb:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4180c1:	5f                   	pop    %edi
4180c2:	83 c8 ff             	or     $0xffffffff,%eax
4180c5:	5e                   	pop    %esi
4180c6:	c3                   	ret
4180c7:	90                   	nop
4180c8:	90                   	nop
4180c9:	90                   	nop
4180ca:	90                   	nop
4180cb:	90                   	nop
4180cc:	90                   	nop
4180cd:	90                   	nop
4180ce:	90                   	nop
4180cf:	90                   	nop
4180d0:	8b 44 24 08          	mov    0x8(%esp),%eax
4180d4:	6a 00                	push   $0x0
4180d6:	8b 48 04             	mov    0x4(%eax),%ecx
4180d9:	8b 10                	mov    (%eax),%edx
4180db:	8b 44 24 08          	mov    0x8(%esp),%eax
4180df:	51                   	push   %ecx
4180e0:	52                   	push   %edx
4180e1:	50                   	push   %eax
4180e2:	e8 09 0b 00 00       	call   0x418bf0
4180e7:	83 c4 10             	add    $0x10,%esp
4180ea:	c3                   	ret
4180eb:	90                   	nop
4180ec:	90                   	nop
4180ed:	90                   	nop
4180ee:	90                   	nop
4180ef:	90                   	nop
4180f0:	53                   	push   %ebx
4180f1:	8b 5c 24 10          	mov    0x10(%esp),%ebx
4180f5:	55                   	push   %ebp
4180f6:	56                   	push   %esi
4180f7:	33 ed                	xor    %ebp,%ebp
4180f9:	57                   	push   %edi
4180fa:	8b 7c 24 20          	mov    0x20(%esp),%edi
4180fe:	83 fb 04             	cmp    $0x4,%ebx
418101:	74 1e                	je     0x418121
418103:	83 ff 02             	cmp    $0x2,%edi
418106:	72 11                	jb     0x418119
418108:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
41810e:	77 09                	ja     0x418119
418110:	85 db                	test   %ebx,%ebx
418112:	74 0d                	je     0x418121
418114:	83 fb 40             	cmp    $0x40,%ebx
418117:	74 08                	je     0x418121
418119:	83 c8 ff             	or     $0xffffffff,%eax
41811c:	5f                   	pop    %edi
41811d:	5e                   	pop    %esi
41811e:	5d                   	pop    %ebp
41811f:	5b                   	pop    %ebx
418120:	c3                   	ret
418121:	8b 74 24 14          	mov    0x14(%esp),%esi
418125:	83 e7 fe             	and    $0xfffffffe,%edi
418128:	56                   	push   %esi
418129:	e8 b2 73 ff ff       	call   0x40f4e0
41812e:	83 c4 04             	add    $0x4,%esp
418131:	56                   	push   %esi
418132:	e8 b9 a5 ff ff       	call   0x4126f0
418137:	83 c4 04             	add    $0x4,%esp
41813a:	56                   	push   %esi
41813b:	e8 00 af ff ff       	call   0x413040
418140:	8b 4e 0c             	mov    0xc(%esi),%ecx
418143:	83 c4 04             	add    $0x4,%esp
418146:	81 e1 f3 c2 ff ff    	and    $0xffffc2f3,%ecx
41814c:	f6 c3 04             	test   $0x4,%bl
41814f:	89 4e 0c             	mov    %ecx,0xc(%esi)
418152:	74 10                	je     0x418164
418154:	83 c9 04             	or     $0x4,%ecx
418157:	8d 46 14             	lea    0x14(%esi),%eax
41815a:	89 4e 0c             	mov    %ecx,0xc(%esi)
41815d:	bf 02 00 00 00       	mov    $0x2,%edi
418162:	eb 44                	jmp    0x4181a8
418164:	8b 44 24 18          	mov    0x18(%esp),%eax
418168:	85 c0                	test   %eax,%eax
41816a:	75 36                	jne    0x4181a2
41816c:	57                   	push   %edi
41816d:	e8 4e 43 ff ff       	call   0x40c4c0
418172:	83 c4 04             	add    $0x4,%esp
418175:	85 c0                	test   %eax,%eax
418177:	75 1e                	jne    0x418197
418179:	a1 64 74 43 00       	mov    0x437464,%eax
41817e:	56                   	push   %esi
41817f:	40                   	inc    %eax
418180:	83 cd ff             	or     $0xffffffff,%ebp
418183:	a3 64 74 43 00       	mov    %eax,0x437464
418188:	e8 c3 73 ff ff       	call   0x40f550
41818d:	83 c4 04             	add    $0x4,%esp
418190:	8b c5                	mov    %ebp,%eax
418192:	5f                   	pop    %edi
418193:	5e                   	pop    %esi
418194:	5d                   	pop    %ebp
418195:	5b                   	pop    %ebx
418196:	c3                   	ret
418197:	8b 4e 0c             	mov    0xc(%esi),%ecx
41819a:	81 c9 08 04 00 00    	or     $0x408,%ecx
4181a0:	eb 03                	jmp    0x4181a5
4181a2:	80 cd 05             	or     $0x5,%ch
4181a5:	89 4e 0c             	mov    %ecx,0xc(%esi)
4181a8:	56                   	push   %esi
4181a9:	89 7e 18             	mov    %edi,0x18(%esi)
4181ac:	89 46 08             	mov    %eax,0x8(%esi)
4181af:	89 06                	mov    %eax,(%esi)
4181b1:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
4181b8:	e8 93 73 ff ff       	call   0x40f550
4181bd:	83 c4 04             	add    $0x4,%esp
4181c0:	8b c5                	mov    %ebp,%eax
4181c2:	5f                   	pop    %edi
4181c3:	5e                   	pop    %esi
4181c4:	5d                   	pop    %ebp
4181c5:	5b                   	pop    %ebx
4181c6:	c3                   	ret
4181c7:	90                   	nop
4181c8:	90                   	nop
4181c9:	90                   	nop
4181ca:	90                   	nop
4181cb:	90                   	nop
4181cc:	90                   	nop
4181cd:	90                   	nop
4181ce:	90                   	nop
4181cf:	90                   	nop
4181d0:	56                   	push   %esi
4181d1:	8b 74 24 0c          	mov    0xc(%esp),%esi
4181d5:	57                   	push   %edi
4181d6:	56                   	push   %esi
4181d7:	e8 04 73 ff ff       	call   0x40f4e0
4181dc:	8b 44 24 10          	mov    0x10(%esp),%eax
4181e0:	83 c4 04             	add    $0x4,%esp
4181e3:	56                   	push   %esi
4181e4:	50                   	push   %eax
4181e5:	e8 16 00 00 00       	call   0x418200
4181ea:	83 c4 08             	add    $0x8,%esp
4181ed:	8b f8                	mov    %eax,%edi
4181ef:	56                   	push   %esi
4181f0:	e8 5b 73 ff ff       	call   0x40f550
4181f5:	83 c4 04             	add    $0x4,%esp
4181f8:	66 8b c7             	mov    %di,%ax
4181fb:	5f                   	pop    %edi
4181fc:	5e                   	pop    %esi
4181fd:	c3                   	ret
4181fe:	90                   	nop
4181ff:	90                   	nop
418200:	83 ec 08             	sub    $0x8,%esp
418203:	56                   	push   %esi
418204:	8b 74 24 14          	mov    0x14(%esp),%esi
418208:	57                   	push   %edi
418209:	f6 46 0c 40          	testb  $0x40,0xc(%esi)
41820d:	0f 85 18 01 00 00    	jne    0x41832b
418213:	8b 46 10             	mov    0x10(%esi),%eax
418216:	83 f8 ff             	cmp    $0xffffffff,%eax
418219:	74 17                	je     0x418232
41821b:	8b c8                	mov    %eax,%ecx
41821d:	c1 f9 05             	sar    $0x5,%ecx
418220:	83 e0 1f             	and    $0x1f,%eax
418223:	8d 14 c0             	lea    (%eax,%eax,8),%edx
418226:	8b 04 8d a0 89 43 00 	mov    0x4389a0(,%ecx,4),%eax
41822d:	8d 04 90             	lea    (%eax,%edx,4),%eax
418230:	eb 05                	jmp    0x418237
418232:	b8 e8 1d 43 00       	mov    $0x431de8,%eax
418237:	f6 40 04 80          	testb  $0x80,0x4(%eax)
41823b:	0f 84 ea 00 00 00    	je     0x41832b
418241:	8b 7c 24 14          	mov    0x14(%esp),%edi
418245:	8d 4c 24 08          	lea    0x8(%esp),%ecx
418249:	57                   	push   %edi
41824a:	51                   	push   %ecx
41824b:	e8 50 9f ff ff       	call   0x4121a0
418250:	83 c4 08             	add    $0x8,%esp
418253:	83 f8 ff             	cmp    $0xffffffff,%eax
418256:	75 15                	jne    0x41826d
418258:	e8 33 54 ff ff       	call   0x40d690
41825d:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
418263:	66 0d ff ff          	or     $0xffff,%ax
418267:	5f                   	pop    %edi
418268:	5e                   	pop    %esi
418269:	83 c4 08             	add    $0x8,%esp
41826c:	c3                   	ret
41826d:	83 f8 01             	cmp    $0x1,%eax
418270:	8b 46 04             	mov    0x4(%esi),%eax
418273:	75 3c                	jne    0x4182b1
418275:	48                   	dec    %eax
418276:	89 46 04             	mov    %eax,0x4(%esi)
418279:	78 18                	js     0x418293
41827b:	8b 16                	mov    (%esi),%edx
41827d:	8a 44 24 08          	mov    0x8(%esp),%al
418281:	88 02                	mov    %al,(%edx)
418283:	8b 44 24 08          	mov    0x8(%esp),%eax
418287:	8b 0e                	mov    (%esi),%ecx
418289:	25 ff 00 00 00       	and    $0xff,%eax
41828e:	41                   	inc    %ecx
41828f:	89 0e                	mov    %ecx,(%esi)
418291:	eb 0f                	jmp    0x4182a2
418293:	0f be 4c 24 08       	movsbl 0x8(%esp),%ecx
418298:	56                   	push   %esi
418299:	51                   	push   %ecx
41829a:	e8 91 83 ff ff       	call   0x410630
41829f:	83 c4 08             	add    $0x8,%esp
4182a2:	83 f8 ff             	cmp    $0xffffffff,%eax
4182a5:	75 71                	jne    0x418318
4182a7:	66 0d ff ff          	or     $0xffff,%ax
4182ab:	5f                   	pop    %edi
4182ac:	5e                   	pop    %esi
4182ad:	83 c4 08             	add    $0x8,%esp
4182b0:	c3                   	ret
4182b1:	48                   	dec    %eax
4182b2:	89 46 04             	mov    %eax,0x4(%esi)
4182b5:	78 18                	js     0x4182cf
4182b7:	8b 16                	mov    (%esi),%edx
4182b9:	8a 44 24 08          	mov    0x8(%esp),%al
4182bd:	88 02                	mov    %al,(%edx)
4182bf:	8b 44 24 08          	mov    0x8(%esp),%eax
4182c3:	8b 0e                	mov    (%esi),%ecx
4182c5:	25 ff 00 00 00       	and    $0xff,%eax
4182ca:	41                   	inc    %ecx
4182cb:	89 0e                	mov    %ecx,(%esi)
4182cd:	eb 0f                	jmp    0x4182de
4182cf:	0f be 4c 24 08       	movsbl 0x8(%esp),%ecx
4182d4:	56                   	push   %esi
4182d5:	51                   	push   %ecx
4182d6:	e8 55 83 ff ff       	call   0x410630
4182db:	83 c4 08             	add    $0x8,%esp
4182de:	83 f8 ff             	cmp    $0xffffffff,%eax
4182e1:	74 3e                	je     0x418321
4182e3:	8b 46 04             	mov    0x4(%esi),%eax
4182e6:	48                   	dec    %eax
4182e7:	89 46 04             	mov    %eax,0x4(%esi)
4182ea:	78 18                	js     0x418304
4182ec:	8b 16                	mov    (%esi),%edx
4182ee:	8a 44 24 09          	mov    0x9(%esp),%al
4182f2:	88 02                	mov    %al,(%edx)
4182f4:	8b 44 24 09          	mov    0x9(%esp),%eax
4182f8:	8b 0e                	mov    (%esi),%ecx
4182fa:	25 ff 00 00 00       	and    $0xff,%eax
4182ff:	41                   	inc    %ecx
418300:	89 0e                	mov    %ecx,(%esi)
418302:	eb 0f                	jmp    0x418313
418304:	0f be 4c 24 09       	movsbl 0x9(%esp),%ecx
418309:	56                   	push   %esi
41830a:	51                   	push   %ecx
41830b:	e8 20 83 ff ff       	call   0x410630