406eb6:	e8 7a 08 00 00       	call   0x407735
406ebb:	84 c0                	test   %al,%al
406ebd:	74 05                	je     0x406ec4
406ebf:	e8 d2 f2 00 00       	call   0x416196
406ec4:	e8 b2 06 00 00       	call   0x40757b
406ec9:	33 c0                	xor    %eax,%eax
406ecb:	c3                   	ret
406ecc:	6a 07                	push   $0x7
406ece:	e8 5a 05 00 00       	call   0x40742d
406ed3:	cc                   	int3
406ed4:	e8 82 08 00 00       	call   0x40775b
406ed9:	33 c0                	xor    %eax,%eax
406edb:	c3                   	ret
406edc:	e8 e1 06 00 00       	call   0x4075c2
406ee1:	e8 3d 08 00 00       	call   0x407723
406ee6:	50                   	push   %eax
406ee7:	e8 a9 0b 01 00       	call   0x417a95
406eec:	59                   	pop    %ecx
406eed:	c3                   	ret
406eee:	6a 14                	push   $0x14
406ef0:	68 28 7e 43 00       	push   $0x437e28
406ef5:	e8 26 07 00 00       	call   0x407620
406efa:	6a 01                	push   $0x1
406efc:	e8 76 fa ff ff       	call   0x406977
406f01:	59                   	pop    %ecx
406f02:	84 c0                	test   %al,%al
406f04:	75 07                	jne    0x406f0d
406f06:	6a 07                	push   $0x7
406f08:	e8 20 05 00 00       	call   0x40742d
406f0d:	32 db                	xor    %bl,%bl
406f0f:	88 5d e7             	mov    %bl,-0x19(%ebp)
406f12:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406f16:	e8 27 fa ff ff       	call   0x406942
406f1b:	88 45 dc             	mov    %al,-0x24(%ebp)
406f1e:	a1 f8 95 83 02       	mov    0x28395f8,%eax
406f23:	33 c9                	xor    %ecx,%ecx
406f25:	41                   	inc    %ecx
406f26:	3b c1                	cmp    %ecx,%eax
406f28:	74 dc                	je     0x406f06
406f2a:	85 c0                	test   %eax,%eax
406f2c:	75 49                	jne    0x406f77
406f2e:	89 0d f8 95 83 02    	mov    %ecx,0x28395f8
406f34:	68 98 72 42 00       	push   $0x427298
406f39:	68 74 72 42 00       	push   $0x427274
406f3e:	e8 52 f9 00 00       	call   0x416895
406f43:	59                   	pop    %ecx
406f44:	59                   	pop    %ecx
406f45:	85 c0                	test   %eax,%eax
406f47:	74 11                	je     0x406f5a
406f49:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406f50:	b8 ff 00 00 00       	mov    $0xff,%eax
406f55:	e9 f6 00 00 00       	jmp    0x407050
406f5a:	68 70 72 42 00       	push   $0x427270
406f5f:	68 54 72 42 00       	push   $0x427254
406f64:	e8 d0 f8 00 00       	call   0x416839
406f69:	59                   	pop    %ecx
406f6a:	59                   	pop    %ecx
406f6b:	c7 05 f8 95 83 02 02 	movl   $0x2,0x28395f8
406f72:	00 00 00
406f75:	eb 05                	jmp    0x406f7c
406f77:	8a d9                	mov    %cl,%bl
406f79:	88 5d e7             	mov    %bl,-0x19(%ebp)
406f7c:	ff 75 dc             	push   -0x24(%ebp)
406f7f:	e8 4d fb ff ff       	call   0x406ad1
406f84:	59                   	pop    %ecx
406f85:	e8 fa 07 00 00       	call   0x407784
406f8a:	8b f0                	mov    %eax,%esi
406f8c:	33 ff                	xor    %edi,%edi
406f8e:	39 3e                	cmp    %edi,(%esi)
406f90:	74 1a                	je     0x406fac
406f92:	56                   	push   %esi
406f93:	e8 af fa ff ff       	call   0x406a47
406f98:	59                   	pop    %ecx
406f99:	84 c0                	test   %al,%al
406f9b:	74 0f                	je     0x406fac
406f9d:	57                   	push   %edi
406f9e:	6a 02                	push   $0x2
406fa0:	57                   	push   %edi
406fa1:	8b 36                	mov    (%esi),%esi
406fa3:	8b ce                	mov    %esi,%ecx
406fa5:	e8 c7 00 00 00       	call   0x407071
406faa:	ff d6                	call   *%esi
406fac:	e8 d9 07 00 00       	call   0x40778a
406fb1:	8b f0                	mov    %eax,%esi
406fb3:	39 3e                	cmp    %edi,(%esi)
406fb5:	74 13                	je     0x406fca
406fb7:	56                   	push   %esi
406fb8:	e8 8a fa ff ff       	call   0x406a47
406fbd:	59                   	pop    %ecx
406fbe:	84 c0                	test   %al,%al
406fc0:	74 08                	je     0x406fca
406fc2:	ff 36                	push   (%esi)
406fc4:	e8 e0 eb 00 00       	call   0x415ba9
406fc9:	59                   	pop    %ecx
406fca:	e8 79 05 00 00       	call   0x407548
406fcf:	0f b7 c0             	movzwl %ax,%eax
406fd2:	50                   	push   %eax
406fd3:	e8 0e f8 00 00       	call   0x4167e6
406fd8:	50                   	push   %eax
406fd9:	57                   	push   %edi
406fda:	68 00 00 40 00       	push   $0x400000
406fdf:	e8 6c a0 ff ff       	call   0x401050
406fe4:	8b f0                	mov    %eax,%esi
406fe6:	e8 93 05 00 00       	call   0x40757e
406feb:	84 c0                	test   %al,%al
406fed:	75 06                	jne    0x406ff5
406fef:	56                   	push   %esi
406ff0:	e8 ec eb 00 00       	call   0x415be1
406ff5:	84 db                	test   %bl,%bl
406ff7:	75 05                	jne    0x406ffe
406ff9:	e8 86 eb 00 00       	call   0x415b84
406ffe:	57                   	push   %edi
406fff:	6a 01                	push   $0x1
407001:	e8 e8 fa ff ff       	call   0x406aee
407006:	59                   	pop    %ecx
407007:	59                   	pop    %ecx
407008:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40700f:	8b c6                	mov    %esi,%eax
407011:	eb 3d                	jmp    0x407050
407013:	8b 4d ec             	mov    -0x14(%ebp),%ecx
407016:	8b 01                	mov    (%ecx),%eax
407018:	8b 00                	mov    (%eax),%eax
40701a:	89 45 e0             	mov    %eax,-0x20(%ebp)
40701d:	51                   	push   %ecx
40701e:	50                   	push   %eax
40701f:	e8 95 e7 00 00       	call   0x4157b9
407024:	59                   	pop    %ecx
407025:	59                   	pop    %ecx
407026:	c3                   	ret
407027:	8b 65 e8             	mov    -0x18(%ebp),%esp
40702a:	e8 4f 05 00 00       	call   0x40757e
40702f:	84 c0                	test   %al,%al
407031:	75 08                	jne    0x40703b
407033:	ff 75 e0             	push   -0x20(%ebp)
407036:	e8 58 eb 00 00       	call   0x415b93
40703b:	80 7d e7 00          	cmpb   $0x0,-0x19(%ebp)
40703f:	75 05                	jne    0x407046
407041:	e8 2f eb 00 00       	call   0x415b75
407046:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40704d:	8b 45 e0             	mov    -0x20(%ebp),%eax
407050:	e8 11 06 00 00       	call   0x407666
407055:	c3                   	ret
407056:	e8 20 06 00 00       	call   0x40767b
40705b:	e9 8e fe ff ff       	jmp    0x406eee
407060:	3b 0d 28 ba 43 00    	cmp    0x43ba28,%ecx
407066:	f2 75 02             	bnd jne 0x40706b
407069:	f2 c3                	bnd ret
40706b:	f2 e9 9d 07 00 00    	bnd jmp 0x40780e
407071:	ff 25 50 72 42 00    	jmp    *0x427250
407077:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40707a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
407081:	59                   	pop    %ecx
407082:	5f                   	pop    %edi
407083:	5f                   	pop    %edi
407084:	5e                   	pop    %esi
407085:	5b                   	pop    %ebx
407086:	8b e5                	mov    %ebp,%esp
407088:	5d                   	pop    %ebp
407089:	51                   	push   %ecx
40708a:	f2 c3                	bnd ret
40708c:	50                   	push   %eax
40708d:	64 ff 35 00 00 00 00 	push   %fs:0x0
407094:	8d 44 24 0c          	lea    0xc(%esp),%eax
407098:	2b 64 24 0c          	sub    0xc(%esp),%esp
40709c:	53                   	push   %ebx
40709d:	56                   	push   %esi
40709e:	57                   	push   %edi
40709f:	89 28                	mov    %ebp,(%eax)
4070a1:	8b e8                	mov    %eax,%ebp
4070a3:	a1 28 ba 43 00       	mov    0x43ba28,%eax
4070a8:	33 c5                	xor    %ebp,%eax
4070aa:	50                   	push   %eax
4070ab:	ff 75 fc             	push   -0x4(%ebp)
4070ae:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
4070b5:	8d 45 f4             	lea    -0xc(%ebp),%eax
4070b8:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4070be:	f2 c3                	bnd ret
4070c0:	50                   	push   %eax
4070c1:	64 ff 35 00 00 00 00 	push   %fs:0x0
4070c8:	8d 44 24 0c          	lea    0xc(%esp),%eax
4070cc:	2b 64 24 0c          	sub    0xc(%esp),%esp
4070d0:	53                   	push   %ebx
4070d1:	56                   	push   %esi
4070d2:	57                   	push   %edi
4070d3:	89 28                	mov    %ebp,(%eax)
4070d5:	8b e8                	mov    %eax,%ebp
4070d7:	a1 28 ba 43 00       	mov    0x43ba28,%eax
4070dc:	33 c5                	xor    %ebp,%eax
4070de:	50                   	push   %eax
4070df:	89 65 f0             	mov    %esp,-0x10(%ebp)
4070e2:	ff 75 fc             	push   -0x4(%ebp)
4070e5:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
4070ec:	8d 45 f4             	lea    -0xc(%ebp),%eax
4070ef:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4070f5:	f2 c3                	bnd ret
4070f7:	cc                   	int3
4070f8:	cc                   	int3
4070f9:	cc                   	int3
4070fa:	cc                   	int3
4070fb:	cc                   	int3
4070fc:	cc                   	int3
4070fd:	cc                   	int3
4070fe:	cc                   	int3
4070ff:	cc                   	int3
407100:	51                   	push   %ecx
407101:	8d 4c 24 08          	lea    0x8(%esp),%ecx
407105:	2b c8                	sub    %eax,%ecx
407107:	83 e1 0f             	and    $0xf,%ecx
40710a:	03 c1                	add    %ecx,%eax
40710c:	1b c9                	sbb    %ecx,%ecx
40710e:	0b c1                	or     %ecx,%eax
407110:	59                   	pop    %ecx
407111:	e9 ca fc ff ff       	jmp    0x406de0
407116:	51                   	push   %ecx
407117:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40711b:	2b c8                	sub    %eax,%ecx
40711d:	83 e1 07             	and    $0x7,%ecx
407120:	03 c1                	add    %ecx,%eax
407122:	1b c9                	sbb    %ecx,%ecx
407124:	0b c1                	or     %ecx,%eax
407126:	59                   	pop    %ecx
407127:	e9 b4 fc ff ff       	jmp    0x406de0
40712c:	cc                   	int3
40712d:	cc                   	int3
40712e:	cc                   	int3
40712f:	cc                   	int3
407130:	8b 44 24 08          	mov    0x8(%esp),%eax
407134:	8b 4c 24 10          	mov    0x10(%esp),%ecx
407138:	0b c8                	or     %eax,%ecx
40713a:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40713e:	75 09                	jne    0x407149
407140:	8b 44 24 04          	mov    0x4(%esp),%eax
407144:	f7 e1                	mul    %ecx
407146:	c2 10 00             	ret    $0x10
407149:	53                   	push   %ebx
40714a:	f7 e1                	mul    %ecx
40714c:	8b d8                	mov    %eax,%ebx
40714e:	8b 44 24 08          	mov    0x8(%esp),%eax
407152:	f7 64 24 14          	mull   0x14(%esp)
407156:	03 d8                	add    %eax,%ebx
407158:	8b 44 24 08          	mov    0x8(%esp),%eax
40715c:	f7 e1                	mul    %ecx
40715e:	03 d3                	add    %ebx,%edx
407160:	5b                   	pop    %ebx
407161:	c2 10 00             	ret    $0x10
407164:	cc                   	int3
407165:	cc                   	int3
407166:	cc                   	int3
407167:	cc                   	int3
407168:	cc                   	int3
407169:	cc                   	int3
40716a:	cc                   	int3
40716b:	cc                   	int3
40716c:	cc                   	int3
40716d:	cc                   	int3
40716e:	cc                   	int3
40716f:	cc                   	int3
407170:	53                   	push   %ebx
407171:	56                   	push   %esi
407172:	8b 44 24 18          	mov    0x18(%esp),%eax
407176:	0b c0                	or     %eax,%eax
407178:	75 18                	jne    0x407192
40717a:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40717e:	8b 44 24 10          	mov    0x10(%esp),%eax
407182:	33 d2                	xor    %edx,%edx
407184:	f7 f1                	div    %ecx
407186:	8b d8                	mov    %eax,%ebx
407188:	8b 44 24 0c          	mov    0xc(%esp),%eax
40718c:	f7 f1                	div    %ecx
40718e:	8b d3                	mov    %ebx,%edx
407190:	eb 41                	jmp    0x4071d3
407192:	8b c8                	mov    %eax,%ecx
407194:	8b 5c 24 14          	mov    0x14(%esp),%ebx
407198:	8b 54 24 10          	mov    0x10(%esp),%edx
40719c:	8b 44 24 0c          	mov    0xc(%esp),%eax
4071a0:	d1 e9                	shr    $1,%ecx
4071a2:	d1 db                	rcr    $1,%ebx
4071a4:	d1 ea                	shr    $1,%edx
4071a6:	d1 d8                	rcr    $1,%eax
4071a8:	0b c9                	or     %ecx,%ecx
4071aa:	75 f4                	jne    0x4071a0
4071ac:	f7 f3                	div    %ebx
4071ae:	8b f0                	mov    %eax,%esi
4071b0:	f7 64 24 18          	mull   0x18(%esp)
4071b4:	8b c8                	mov    %eax,%ecx
4071b6:	8b 44 24 14          	mov    0x14(%esp),%eax
4071ba:	f7 e6                	mul    %esi
4071bc:	03 d1                	add    %ecx,%edx
4071be:	72 0e                	jb     0x4071ce
4071c0:	3b 54 24 10          	cmp    0x10(%esp),%edx
4071c4:	77 08                	ja     0x4071ce
4071c6:	72 07                	jb     0x4071cf
4071c8:	3b 44 24 0c          	cmp    0xc(%esp),%eax
4071cc:	76 01                	jbe    0x4071cf
4071ce:	4e                   	dec    %esi
4071cf:	33 d2                	xor    %edx,%edx
4071d1:	8b c6                	mov    %esi,%eax
4071d3:	5e                   	pop    %esi
4071d4:	5b                   	pop    %ebx
4071d5:	c2 10 00             	ret    $0x10
4071d8:	55                   	push   %ebp
4071d9:	8b ec                	mov    %esp,%ebp
4071db:	56                   	push   %esi
4071dc:	ff 75 08             	push   0x8(%ebp)
4071df:	8b f1                	mov    %ecx,%esi
4071e1:	e8 09 ba ff ff       	call   0x402bef
4071e6:	c7 06 1c a6 42 00    	movl   $0x42a61c,(%esi)
4071ec:	8b c6                	mov    %esi,%eax
4071ee:	5e                   	pop    %esi
4071ef:	5d                   	pop    %ebp
4071f0:	c2 04 00             	ret    $0x4
4071f3:	83 61 04 00          	andl   $0x0,0x4(%ecx)
4071f7:	8b c1                	mov    %ecx,%eax
4071f9:	83 61 08 00          	andl   $0x0,0x8(%ecx)
4071fd:	c7 41 04 24 a6 42 00 	movl   $0x42a624,0x4(%ecx)
407204:	c7 01 1c a6 42 00    	movl   $0x42a61c,(%ecx)
40720a:	c3                   	ret
40720b:	8d 41 04             	lea    0x4(%ecx),%eax
40720e:	c7 01 c4 72 42 00    	movl   $0x4272c4,(%ecx)
407214:	50                   	push   %eax
407215:	e8 dd 0d 00 00       	call   0x407ff7
40721a:	59                   	pop    %ecx
40721b:	c3                   	ret
40721c:	55                   	push   %ebp
40721d:	8b ec                	mov    %esp,%ebp
40721f:	56                   	push   %esi
407220:	8b f1                	mov    %ecx,%esi
407222:	8d 46 04             	lea    0x4(%esi),%eax
407225:	c7 06 c4 72 42 00    	movl   $0x4272c4,(%esi)
40722b:	50                   	push   %eax
40722c:	e8 c6 0d 00 00       	call   0x407ff7
407231:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
407235:	59                   	pop    %ecx
407236:	74 0a                	je     0x407242
407238:	6a 0c                	push   $0xc
40723a:	56                   	push   %esi
40723b:	e8 93 f6 ff ff       	call   0x4068d3
407240:	59                   	pop    %ecx
407241:	59                   	pop    %ecx
407242:	8b c6                	mov    %esi,%eax
407244:	5e                   	pop    %esi
407245:	5d                   	pop    %ebp
407246:	c2 04 00             	ret    $0x4
407249:	55                   	push   %ebp
40724a:	8b ec                	mov    %esp,%ebp
40724c:	83 ec 0c             	sub    $0xc,%esp
40724f:	8d 4d f4             	lea    -0xc(%ebp),%ecx
407252:	e8 53 e5 ff ff       	call   0x4057aa
407257:	68 74 7c 43 00       	push   $0x437c74
40725c:	8d 45 f4             	lea    -0xc(%ebp),%eax