40f9a5:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f9a8:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40f9ab:	50                   	push   %eax
40f9ac:	51                   	push   %ecx
40f9ad:	6a 01                	push   $0x1
40f9af:	53                   	push   %ebx
40f9b0:	56                   	push   %esi
40f9b1:	8b 35 7c 4d 42 00    	mov    0x424d7c,%esi
40f9b7:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40f9ba:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40f9bd:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40f9c0:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40f9c3:	8b ce                	mov    %esi,%ecx
40f9c5:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40f9c8:	ff 15 78 64 42 00    	call   *0x426478
40f9ce:	ff d6                	call   *%esi
40f9d0:	eb 1b                	jmp    0x40f9ed
40f9d2:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40f9d6:	74 15                	je     0x40f9ed
40f9d8:	81 fb fe 00 00 00    	cmp    $0xfe,%ebx
40f9de:	74 0d                	je     0x40f9ed
40f9e0:	ff 75 0c             	push   0xc(%ebp)
40f9e3:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40f9e6:	8b d3                	mov    %ebx,%edx
40f9e8:	e8 a7 87 ff ff       	call   0x408194
40f9ed:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f9f0:	33 c0                	xor    %eax,%eax
40f9f2:	39 45 dc             	cmp    %eax,-0x24(%ebp)
40f9f5:	5f                   	pop    %edi
40f9f6:	0f 94 c0             	sete   %al
40f9f9:	33 cd                	xor    %ebp,%ecx
40f9fb:	5e                   	pop    %esi
40f9fc:	5b                   	pop    %ebx
40f9fd:	e8 6e 1e 01 00       	call   0x421870
40fa02:	c9                   	leave
40fa03:	c2 14 00             	ret    $0x14
40fa06:	8b ff                	mov    %edi,%edi
40fa08:	55                   	push   %ebp
40fa09:	8b ec                	mov    %esp,%ebp
40fa0b:	51                   	push   %ecx
40fa0c:	56                   	push   %esi
40fa0d:	57                   	push   %edi
40fa0e:	6a 03                	push   $0x3
40fa10:	8b f1                	mov    %ecx,%esi
40fa12:	8b fa                	mov    %edx,%edi
40fa14:	8b 55 14             	mov    0x14(%ebp),%edx
40fa17:	59                   	pop    %ecx
40fa18:	51                   	push   %ecx
40fa19:	51                   	push   %ecx
40fa1a:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40fa1d:	e8 c7 fb ff ff       	call   0x40f5e9
40fa22:	50                   	push   %eax
40fa23:	ff 75 0c             	push   0xc(%ebp)
40fa26:	8b d7                	mov    %edi,%edx
40fa28:	8b ce                	mov    %esi,%ecx
40fa2a:	ff 75 08             	push   0x8(%ebp)
40fa2d:	e8 0d ff ff ff       	call   0x40f93f
40fa32:	85 c0                	test   %eax,%eax
40fa34:	74 26                	je     0x40fa5c
40fa36:	8b 35 a8 4d 42 00    	mov    0x424da8,%esi
40fa3c:	85 f6                	test   %esi,%esi
40fa3e:	74 1c                	je     0x40fa5c
40fa40:	6a 01                	push   $0x1
40fa42:	33 c9                	xor    %ecx,%ecx
40fa44:	8d 45 fc             	lea    -0x4(%ebp),%eax
40fa47:	51                   	push   %ecx
40fa48:	51                   	push   %ecx
40fa49:	50                   	push   %eax
40fa4a:	ff 75 14             	push   0x14(%ebp)
40fa4d:	51                   	push   %ecx
40fa4e:	ff 75 10             	push   0x10(%ebp)
40fa51:	8b ce                	mov    %esi,%ecx
40fa53:	57                   	push   %edi
40fa54:	ff 15 78 64 42 00    	call   *0x426478
40fa5a:	ff d6                	call   *%esi
40fa5c:	5f                   	pop    %edi
40fa5d:	5e                   	pop    %esi
40fa5e:	c9                   	leave
40fa5f:	c2 18 00             	ret    $0x18
40fa62:	8b ff                	mov    %edi,%edi
40fa64:	55                   	push   %ebp
40fa65:	8b ec                	mov    %esp,%ebp
40fa67:	56                   	push   %esi
40fa68:	8b 75 0c             	mov    0xc(%ebp),%esi
40fa6b:	57                   	push   %edi
40fa6c:	8b fa                	mov    %edx,%edi
40fa6e:	85 f6                	test   %esi,%esi
40fa70:	75 04                	jne    0x40fa76
40fa72:	33 c0                	xor    %eax,%eax
40fa74:	eb 69                	jmp    0x40fadf
40fa76:	85 c9                	test   %ecx,%ecx
40fa78:	75 14                	jne    0x40fa8e
40fa7a:	ff 15 c0 63 42 00    	call   *0x4263c0
40fa80:	6a 16                	push   $0x16
40fa82:	5e                   	pop    %esi
40fa83:	89 30                	mov    %esi,(%eax)
40fa85:	e8 64 2d 01 00       	call   0x4227ee
40fa8a:	8b c6                	mov    %esi,%eax
40fa8c:	eb 51                	jmp    0x40fadf
40fa8e:	53                   	push   %ebx
40fa8f:	8b 5d 08             	mov    0x8(%ebp),%ebx
40fa92:	85 db                	test   %ebx,%ebx
40fa94:	74 13                	je     0x40faa9
40fa96:	3b fe                	cmp    %esi,%edi
40fa98:	72 0f                	jb     0x40faa9
40fa9a:	56                   	push   %esi
40fa9b:	53                   	push   %ebx
40fa9c:	51                   	push   %ecx
40fa9d:	e8 e1 30 01 00       	call   0x422b83
40faa2:	83 c4 0c             	add    $0xc,%esp
40faa5:	33 c0                	xor    %eax,%eax
40faa7:	eb 35                	jmp    0x40fade
40faa9:	57                   	push   %edi
40faaa:	6a 00                	push   $0x0
40faac:	51                   	push   %ecx
40faad:	e8 96 2d 01 00       	call   0x422848
40fab2:	83 c4 0c             	add    $0xc,%esp
40fab5:	85 db                	test   %ebx,%ebx
40fab7:	75 0a                	jne    0x40fac3
40fab9:	ff 15 c0 63 42 00    	call   *0x4263c0
40fabf:	6a 16                	push   $0x16
40fac1:	eb 0c                	jmp    0x40facf
40fac3:	3b fe                	cmp    %esi,%edi
40fac5:	73 14                	jae    0x40fadb
40fac7:	ff 15 c0 63 42 00    	call   *0x4263c0
40facd:	6a 22                	push   $0x22
40facf:	5e                   	pop    %esi
40fad0:	89 30                	mov    %esi,(%eax)
40fad2:	e8 17 2d 01 00       	call   0x4227ee
40fad7:	8b c6                	mov    %esi,%eax
40fad9:	eb 03                	jmp    0x40fade
40fadb:	6a 16                	push   $0x16
40fadd:	58                   	pop    %eax
40fade:	5b                   	pop    %ebx
40fadf:	5f                   	pop    %edi
40fae0:	5e                   	pop    %esi
40fae1:	5d                   	pop    %ebp
40fae2:	c3                   	ret
40fae3:	8b ff                	mov    %edi,%edi
40fae5:	55                   	push   %ebp
40fae6:	8b ec                	mov    %esp,%ebp
40fae8:	51                   	push   %ecx
40fae9:	51                   	push   %ecx
40faea:	89 55 fc             	mov    %edx,-0x4(%ebp)
40faed:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40faf0:	53                   	push   %ebx
40faf1:	56                   	push   %esi
40faf2:	57                   	push   %edi
40faf3:	8b 7d 08             	mov    0x8(%ebp),%edi
40faf6:	85 d2                	test   %edx,%edx
40faf8:	75 05                	jne    0x40faff
40fafa:	83 ff ff             	cmp    $0xffffffff,%edi
40fafd:	74 7e                	je     0x40fb7d
40faff:	8b f7                	mov    %edi,%esi
40fb01:	85 d2                	test   %edx,%edx
40fb03:	74 23                	je     0x40fb28
40fb05:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
40fb0a:	3b f8                	cmp    %eax,%edi
40fb0c:	73 02                	jae    0x40fb10
40fb0e:	8b c7                	mov    %edi,%eax
40fb10:	8b f2                	mov    %edx,%esi
40fb12:	85 c0                	test   %eax,%eax
40fb14:	74 0e                	je     0x40fb24
40fb16:	66 83 3e 00          	cmpw   $0x0,(%esi)
40fb1a:	74 08                	je     0x40fb24
40fb1c:	83 c6 02             	add    $0x2,%esi
40fb1f:	83 e8 01             	sub    $0x1,%eax
40fb22:	75 f2                	jne    0x40fb16
40fb24:	2b f2                	sub    %edx,%esi
40fb26:	d1 fe                	sar    $1,%esi
40fb28:	83 ff ff             	cmp    $0xffffffff,%edi
40fb2b:	75 02                	jne    0x40fb2f
40fb2d:	8b fe                	mov    %esi,%edi
40fb2f:	8d 04 7d 02 00 00 00 	lea    0x2(,%edi,2),%eax
40fb36:	50                   	push   %eax
40fb37:	ff 15 e0 62 42 00    	call   *0x4262e0
40fb3d:	8b d8                	mov    %eax,%ebx
40fb3f:	85 db                	test   %ebx,%ebx
40fb41:	74 2e                	je     0x40fb71
40fb43:	8b 45 fc             	mov    -0x4(%ebp),%eax
40fb46:	85 c0                	test   %eax,%eax
40fb48:	74 1c                	je     0x40fb66
40fb4a:	03 f6                	add    %esi,%esi
40fb4c:	8d 14 7d 02 00 00 00 	lea    0x2(,%edi,2),%edx
40fb53:	56                   	push   %esi
40fb54:	50                   	push   %eax
40fb55:	8b cb                	mov    %ebx,%ecx
40fb57:	e8 06 ff ff ff       	call   0x40fa62
40fb5c:	59                   	pop    %ecx
40fb5d:	33 c0                	xor    %eax,%eax
40fb5f:	59                   	pop    %ecx
40fb60:	66 89 04 1e          	mov    %ax,(%esi,%ebx,1)
40fb64:	eb 05                	jmp    0x40fb6b
40fb66:	33 c0                	xor    %eax,%eax
40fb68:	66 89 03             	mov    %ax,(%ebx)
40fb6b:	33 c0                	xor    %eax,%eax
40fb6d:	66 89 04 7b          	mov    %ax,(%ebx,%edi,2)
40fb71:	8b 45 f8             	mov    -0x8(%ebp),%eax
40fb74:	5f                   	pop    %edi
40fb75:	5e                   	pop    %esi
40fb76:	89 18                	mov    %ebx,(%eax)
40fb78:	5b                   	pop    %ebx
40fb79:	c9                   	leave
40fb7a:	c2 04 00             	ret    $0x4
40fb7d:	8b 4d 04             	mov    0x4(%ebp),%ecx
40fb80:	ba ac 0c 00 00       	mov    $0xcac,%edx
40fb85:	68 a4 1a 40 00       	push   $0x401aa4
40fb8a:	e8 4c 74 ff ff       	call   0x406fdb
40fb8f:	cc                   	int3
40fb90:	83 39 00             	cmpl   $0x0,(%ecx)
40fb93:	74 08                	je     0x40fb9d
40fb95:	ff 31                	push   (%ecx)
40fb97:	ff 15 dc 62 42 00    	call   *0x4262dc
40fb9d:	c3                   	ret
40fb9e:	8b ff                	mov    %edi,%edi
40fba0:	55                   	push   %ebp
40fba1:	8b ec                	mov    %esp,%ebp
40fba3:	83 ec 24             	sub    $0x24,%esp
40fba6:	a1 10 42 42 00       	mov    0x424210,%eax
40fbab:	33 c5                	xor    %ebp,%eax
40fbad:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fbb0:	56                   	push   %esi
40fbb1:	33 f6                	xor    %esi,%esi
40fbb3:	46                   	inc    %esi
40fbb4:	3b ce                	cmp    %esi,%ecx
40fbb6:	75 27                	jne    0x40fbdf
40fbb8:	ff 15 cc 60 42 00    	call   *0x4260cc
40fbbe:	6a 10                	push   $0x10
40fbc0:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40fbc3:	0f b7 c0             	movzwl %ax,%eax
40fbc6:	51                   	push   %ecx
40fbc7:	6a 58                	push   $0x58
40fbc9:	50                   	push   %eax
40fbca:	ff 15 90 60 42 00    	call   *0x426090
40fbd0:	85 c0                	test   %eax,%eax
40fbd2:	74 1f                	je     0x40fbf3
40fbd4:	f7 45 ea 00 08 00 00 	testl  $0x800,-0x16(%ebp)
40fbdb:	75 18                	jne    0x40fbf5
40fbdd:	eb 14                	jmp    0x40fbf3
40fbdf:	83 f9 06             	cmp    $0x6,%ecx
40fbe2:	74 11                	je     0x40fbf5
40fbe4:	83 f9 17             	cmp    $0x17,%ecx
40fbe7:	74 0c                	je     0x40fbf5
40fbe9:	83 f9 0a             	cmp    $0xa,%ecx
40fbec:	74 07                	je     0x40fbf5
40fbee:	83 f9 08             	cmp    $0x8,%ecx
40fbf1:	74 02                	je     0x40fbf5
40fbf3:	33 f6                	xor    %esi,%esi
40fbf5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40fbf8:	8b c6                	mov    %esi,%eax
40fbfa:	33 cd                	xor    %ebp,%ecx
40fbfc:	5e                   	pop    %esi
40fbfd:	e8 6e 1c 01 00       	call   0x421870
40fc02:	c9                   	leave
40fc03:	c3                   	ret
40fc04:	8b ff                	mov    %edi,%edi
40fc06:	55                   	push   %ebp
40fc07:	8b ec                	mov    %esp,%ebp
40fc09:	83 e4 f8             	and    $0xfffffff8,%esp
40fc0c:	81 ec 14 04 00 00    	sub    $0x414,%esp
40fc12:	a1 10 42 42 00       	mov    0x424210,%eax
40fc17:	33 c4                	xor    %esp,%eax
40fc19:	89 84 24 10 04 00 00 	mov    %eax,0x410(%esp)
40fc20:	53                   	push   %ebx
40fc21:	56                   	push   %esi
40fc22:	57                   	push   %edi
40fc23:	68 94 02 00 00       	push   $0x294
40fc28:	8d 84 24 84 01 00 00 	lea    0x184(%esp),%eax
40fc2f:	8b f9                	mov    %ecx,%edi
40fc31:	6a 00                	push   $0x0
40fc33:	50                   	push   %eax
40fc34:	e8 0f 2c 01 00       	call   0x422848
40fc39:	83 c4 0c             	add    $0xc,%esp
40fc3c:	8d 44 24 10          	lea    0x10(%esp),%eax
40fc40:	33 db                	xor    %ebx,%ebx
40fc42:	43                   	inc    %ebx
40fc43:	8b f3                	mov    %ebx,%esi
40fc45:	50                   	push   %eax
40fc46:	ff 15 d0 60 42 00    	call   *0x4260d0
40fc4c:	6a 10                	push   $0x10
40fc4e:	8d 44 24 24          	lea    0x24(%esp),%eax
40fc52:	89 5c 24 10          	mov    %ebx,0x10(%esp)
40fc56:	50                   	push   %eax
40fc57:	6a 58                	push   $0x58
40fc59:	bb 00 04 00 00       	mov    $0x400,%ebx
40fc5e:	53                   	push   %ebx
40fc5f:	ff 15 90 60 42 00    	call   *0x426090
40fc65:	85 c0                	test   %eax,%eax
40fc67:	74 32                	je     0x40fc9b
40fc69:	f7 44 24 2e 00 08 00 	testl  $0x800,0x2e(%esp)
40fc70:	00
40fc71:	74 28                	je     0x40fc9b
40fc73:	6a 02                	push   $0x2
40fc75:	8d 44 24 10          	lea    0x10(%esp),%eax
40fc79:	50                   	push   %eax
40fc7a:	68 09 10 00 20       	push   $0x20001009
40fc7f:	53                   	push   %ebx
40fc80:	ff 15 90 60 42 00    	call   *0x426090
40fc86:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40fc8a:	e8 0f ff ff ff       	call   0x40fb9e
40fc8f:	8b f0                	mov    %eax,%esi
40fc91:	f7 de                	neg    %esi
40fc93:	1b f6                	sbb    %esi,%esi
40fc95:	83 e6 10             	and    $0x10,%esi
40fc98:	83 c6 11             	add    $0x11,%esi
40fc9b:	6a 50                	push   $0x50
40fc9d:	8d 84 24 e4 00 00 00 	lea    0xe4(%esp),%eax
40fca4:	50                   	push   %eax
40fca5:	6a 00                	push   $0x0
40fca7:	8d 44 24 1c          	lea    0x1c(%esp),%eax
40fcab:	50                   	push   %eax
40fcac:	56                   	push   %esi
40fcad:	53                   	push   %ebx
40fcae:	ff 15 d4 60 42 00    	call   *0x4260d4
40fcb4:	6a 50                	push   $0x50
40fcb6:	8d 44 24 44          	lea    0x44(%esp),%eax
40fcba:	50                   	push   %eax
40fcbb:	6a 00                	push   $0x0
40fcbd:	8d 44 24 1c          	lea    0x1c(%esp),%eax
40fcc1:	50                   	push   %eax
40fcc2:	6a 02                	push   $0x2
40fcc4:	53                   	push   %ebx
40fcc5:	ff 15 d8 60 42 00    	call   *0x4260d8
40fccb:	bb f8 1f 40 00       	mov    $0x401ff8,%ebx
40fcd0:	be 4a 01 00 00       	mov    $0x14a,%esi
40fcd5:	85 ff                	test   %edi,%edi
40fcd7:	74 0f                	je     0x40fce8
40fcd9:	53                   	push   %ebx
40fcda:	8b d6                	mov    %esi,%edx
40fcdc:	8d 8c 24 84 01 00 00 	lea    0x184(%esp),%ecx
40fce3:	e8 a1 67 ff ff       	call   0x406489
40fce8:	8d 44 24 40          	lea    0x40(%esp),%eax
40fcec:	8b d6                	mov    %esi,%edx
40fcee:	50                   	push   %eax
40fcef:	8d 8c 24 84 01 00 00 	lea    0x184(%esp),%ecx
40fcf6:	e8 8e 67 ff ff       	call   0x406489
40fcfb:	68 00 20 40 00       	push   $0x402000
40fd00:	8b d6                	mov    %esi,%edx
40fd02:	8d 8c 24 84 01 00 00 	lea    0x184(%esp),%ecx
40fd09:	e8 7b 67 ff ff       	call   0x406489
40fd0e:	8d 84 24 e0 00 00 00 	lea    0xe0(%esp),%eax
40fd15:	8b d6                	mov    %esi,%edx
40fd17:	50                   	push   %eax
40fd18:	8d 8c 24 84 01 00 00 	lea    0x184(%esp),%ecx
40fd1f:	e8 65 67 ff ff       	call   0x406489
40fd24:	85 ff                	test   %edi,%edi
40fd26:	74 0f                	je     0x40fd37
40fd28:	53                   	push   %ebx
40fd29:	8b d6                	mov    %esi,%edx
40fd2b:	8d 8c 24 84 01 00 00 	lea    0x184(%esp),%ecx