417e6e:	56                   	push   %esi
417e6f:	88 01                	mov    %al,(%ecx)
417e71:	25 ff 00 00 00       	and    $0xff,%eax
417e76:	8b f8                	mov    %eax,%edi
417e78:	8b 06                	mov    (%esi),%eax
417e7a:	40                   	inc    %eax
417e7b:	89 06                	mov    %eax,(%esi)
417e7d:	e8 ce 76 ff ff       	call   0x40f550
417e82:	83 c4 04             	add    $0x4,%esp
417e85:	8b c7                	mov    %edi,%eax
417e87:	5f                   	pop    %edi
417e88:	5e                   	pop    %esi
417e89:	c3                   	ret
417e8a:	8b 54 24 0c          	mov    0xc(%esp),%edx
417e8e:	56                   	push   %esi
417e8f:	52                   	push   %edx
417e90:	e8 9b 87 ff ff       	call   0x410630
417e95:	83 c4 08             	add    $0x8,%esp
417e98:	8b f8                	mov    %eax,%edi
417e9a:	56                   	push   %esi
417e9b:	e8 b0 76 ff ff       	call   0x40f550
417ea0:	83 c4 04             	add    $0x4,%esp
417ea3:	8b c7                	mov    %edi,%eax
417ea5:	5f                   	pop    %edi
417ea6:	5e                   	pop    %esi
417ea7:	c3                   	ret
417ea8:	90                   	nop
417ea9:	90                   	nop
417eaa:	90                   	nop
417eab:	90                   	nop
417eac:	90                   	nop
417ead:	90                   	nop
417eae:	90                   	nop
417eaf:	90                   	nop
417eb0:	56                   	push   %esi
417eb1:	8b 74 24 08          	mov    0x8(%esp),%esi
417eb5:	57                   	push   %edi
417eb6:	56                   	push   %esi
417eb7:	e8 24 76 ff ff       	call   0x40f4e0
417ebc:	8b 46 04             	mov    0x4(%esi),%eax
417ebf:	83 c4 04             	add    $0x4,%esp
417ec2:	48                   	dec    %eax
417ec3:	89 46 04             	mov    %eax,0x4(%esi)
417ec6:	78 19                	js     0x417ee1
417ec8:	8b 06                	mov    (%esi),%eax
417eca:	33 c9                	xor    %ecx,%ecx
417ecc:	56                   	push   %esi
417ecd:	8a 08                	mov    (%eax),%cl
417ecf:	40                   	inc    %eax
417ed0:	8b f9                	mov    %ecx,%edi
417ed2:	89 06                	mov    %eax,(%esi)
417ed4:	e8 77 76 ff ff       	call   0x40f550
417ed9:	83 c4 04             	add    $0x4,%esp
417edc:	8b c7                	mov    %edi,%eax
417ede:	5f                   	pop    %edi
417edf:	5e                   	pop    %esi
417ee0:	c3                   	ret
417ee1:	56                   	push   %esi
417ee2:	e8 49 08 00 00       	call   0x418730
417ee7:	83 c4 04             	add    $0x4,%esp
417eea:	8b f8                	mov    %eax,%edi
417eec:	56                   	push   %esi
417eed:	e8 5e 76 ff ff       	call   0x40f550
417ef2:	83 c4 04             	add    $0x4,%esp
417ef5:	8b c7                	mov    %edi,%eax
417ef7:	5f                   	pop    %edi
417ef8:	5e                   	pop    %esi
417ef9:	c3                   	ret
417efa:	90                   	nop
417efb:	90                   	nop
417efc:	90                   	nop
417efd:	90                   	nop
417efe:	90                   	nop
417eff:	90                   	nop
417f00:	56                   	push   %esi
417f01:	8b 74 24 0c          	mov    0xc(%esp),%esi
417f05:	57                   	push   %edi
417f06:	56                   	push   %esi
417f07:	e8 d4 75 ff ff       	call   0x40f4e0
417f0c:	8b 44 24 10          	mov    0x10(%esp),%eax
417f10:	83 c4 04             	add    $0x4,%esp
417f13:	56                   	push   %esi
417f14:	50                   	push   %eax
417f15:	e8 16 00 00 00       	call   0x417f30
417f1a:	83 c4 08             	add    $0x8,%esp
417f1d:	8b f8                	mov    %eax,%edi
417f1f:	56                   	push   %esi
417f20:	e8 2b 76 ff ff       	call   0x40f550
417f25:	83 c4 04             	add    $0x4,%esp
417f28:	8b c7                	mov    %edi,%eax
417f2a:	5f                   	pop    %edi
417f2b:	5e                   	pop    %esi
417f2c:	c3                   	ret
417f2d:	90                   	nop
417f2e:	90                   	nop
417f2f:	90                   	nop
417f30:	53                   	push   %ebx
417f31:	8b 5c 24 08          	mov    0x8(%esp),%ebx
417f35:	83 fb ff             	cmp    $0xffffffff,%ebx
417f38:	56                   	push   %esi
417f39:	74 72                	je     0x417fad
417f3b:	8b 74 24 10          	mov    0x10(%esp),%esi
417f3f:	8b 46 0c             	mov    0xc(%esi),%eax
417f42:	a8 01                	test   $0x1,%al
417f44:	75 08                	jne    0x417f4e
417f46:	a8 80                	test   $0x80,%al
417f48:	74 63                	je     0x417fad
417f4a:	a8 02                	test   $0x2,%al
417f4c:	75 5f                	jne    0x417fad
417f4e:	8b 46 08             	mov    0x8(%esi),%eax
417f51:	85 c0                	test   %eax,%eax
417f53:	75 09                	jne    0x417f5e
417f55:	56                   	push   %esi
417f56:	e8 b5 a1 ff ff       	call   0x412110
417f5b:	83 c4 04             	add    $0x4,%esp
417f5e:	8b 06                	mov    (%esi),%eax
417f60:	8b 4e 08             	mov    0x8(%esi),%ecx
417f63:	3b c1                	cmp    %ecx,%eax
417f65:	75 0a                	jne    0x417f71
417f67:	8b 4e 04             	mov    0x4(%esi),%ecx
417f6a:	85 c9                	test   %ecx,%ecx
417f6c:	75 3f                	jne    0x417fad
417f6e:	40                   	inc    %eax
417f6f:	89 06                	mov    %eax,(%esi)
417f71:	f6 46 0c 40          	testb  $0x40,0xc(%esi)
417f75:	74 14                	je     0x417f8b
417f77:	8b 16                	mov    (%esi),%edx
417f79:	4a                   	dec    %edx
417f7a:	8b c2                	mov    %edx,%eax
417f7c:	89 16                	mov    %edx,(%esi)
417f7e:	38 18                	cmp    %bl,(%eax)
417f80:	74 10                	je     0x417f92
417f82:	40                   	inc    %eax
417f83:	89 06                	mov    %eax,(%esi)
417f85:	83 c8 ff             	or     $0xffffffff,%eax
417f88:	5e                   	pop    %esi
417f89:	5b                   	pop    %ebx
417f8a:	c3                   	ret
417f8b:	8b 06                	mov    (%esi),%eax
417f8d:	48                   	dec    %eax
417f8e:	89 06                	mov    %eax,(%esi)
417f90:	88 18                	mov    %bl,(%eax)
417f92:	8b 46 0c             	mov    0xc(%esi),%eax
417f95:	8b 56 04             	mov    0x4(%esi),%edx
417f98:	24 ef                	and    $0xef,%al
417f9a:	42                   	inc    %edx
417f9b:	0c 01                	or     $0x1,%al
417f9d:	89 56 04             	mov    %edx,0x4(%esi)
417fa0:	89 46 0c             	mov    %eax,0xc(%esi)
417fa3:	8b c3                	mov    %ebx,%eax
417fa5:	25 ff 00 00 00       	and    $0xff,%eax
417faa:	5e                   	pop    %esi
417fab:	5b                   	pop    %ebx
417fac:	c3                   	ret
417fad:	5e                   	pop    %esi
417fae:	83 c8 ff             	or     $0xffffffff,%eax
417fb1:	5b                   	pop    %ebx
417fb2:	c3                   	ret
417fb3:	90                   	nop
417fb4:	90                   	nop
417fb5:	90                   	nop
417fb6:	90                   	nop
417fb7:	90                   	nop
417fb8:	90                   	nop
417fb9:	90                   	nop
417fba:	90                   	nop
417fbb:	90                   	nop
417fbc:	90                   	nop
417fbd:	90                   	nop
417fbe:	90                   	nop
417fbf:	90                   	nop
417fc0:	8b 44 24 04          	mov    0x4(%esp),%eax
417fc4:	50                   	push   %eax
417fc5:	e8 56 08 00 00       	call   0x418820
417fca:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
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