40a8bf:	c3                   	ret
40a8c0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a8c3:	5f                   	pop    %edi
40a8c4:	5e                   	pop    %esi
40a8c5:	33 c0                	xor    %eax,%eax
40a8c7:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a8ce:	5b                   	pop    %ebx
40a8cf:	8b e5                	mov    %ebp,%esp
40a8d1:	5d                   	pop    %ebp
40a8d2:	c2 24 00             	ret    $0x24
40a8d5:	90                   	nop
40a8d6:	90                   	nop
40a8d7:	90                   	nop
40a8d8:	90                   	nop
40a8d9:	90                   	nop
40a8da:	90                   	nop
40a8db:	90                   	nop
40a8dc:	90                   	nop
40a8dd:	90                   	nop
40a8de:	90                   	nop
40a8df:	90                   	nop
40a8e0:	55                   	push   %ebp
40a8e1:	8b ec                	mov    %esp,%ebp
40a8e3:	83 ec 0c             	sub    $0xc,%esp
40a8e6:	68 76 12 40 00       	push   $0x401276
40a8eb:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40a8f1:	50                   	push   %eax
40a8f2:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40a8f9:	81 ec 8c 00 00 00    	sub    $0x8c,%esp
40a8ff:	53                   	push   %ebx
40a900:	56                   	push   %esi
40a901:	57                   	push   %edi
40a902:	89 65 f4             	mov    %esp,-0xc(%ebp)
40a905:	c7 45 f8 c8 11 40 00 	movl   $0x4011c8,-0x8(%ebp)
40a90c:	33 ff                	xor    %edi,%edi
40a90e:	89 7d fc             	mov    %edi,-0x4(%ebp)
40a911:	8b 45 08             	mov    0x8(%ebp),%eax
40a914:	8b 08                	mov    (%eax),%ecx
40a916:	50                   	push   %eax
40a917:	ff 51 04             	call   *0x4(%ecx)
40a91a:	8b 55 14             	mov    0x14(%ebp),%edx
40a91d:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40a920:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40a923:	89 7d e0             	mov    %edi,-0x20(%ebp)
40a926:	89 7d dc             	mov    %edi,-0x24(%ebp)
40a929:	89 7d d8             	mov    %edi,-0x28(%ebp)
40a92c:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40a92f:	89 7d d0             	mov    %edi,-0x30(%ebp)
40a932:	89 7d c0             	mov    %edi,-0x40(%ebp)
40a935:	89 7d b0             	mov    %edi,-0x50(%ebp)
40a938:	89 7d a0             	mov    %edi,-0x60(%ebp)
40a93b:	89 7d 90             	mov    %edi,-0x70(%ebp)
40a93e:	89 7d 80             	mov    %edi,-0x80(%ebp)
40a941:	89 bd 7c ff ff ff    	mov    %edi,-0x84(%ebp)
40a947:	ff 15 2c 11 40 00    	call   *0x40112c
40a94d:	8d 55 c0             	lea    -0x40(%ebp),%edx
40a950:	52                   	push   %edx
40a951:	8d 45 b0             	lea    -0x50(%ebp),%eax
40a954:	50                   	push   %eax
40a955:	c7 45 c8 0e 00 00 00 	movl   $0xe,-0x38(%ebp)
40a95c:	c7 45 c0 02 00 00 00 	movl   $0x2,-0x40(%ebp)
40a963:	ff 15 7c 11 40 00    	call   *0x40117c
40a969:	68 e8 91 40 00       	push   $0x4091e8
40a96e:	68 fc 91 40 00       	push   $0x4091fc
40a973:	ff 15 3c 10 40 00    	call   *0x40103c
40a979:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40a97c:	51                   	push   %ecx
40a97d:	8d 55 a0             	lea    -0x60(%ebp),%edx
40a980:	52                   	push   %edx
40a981:	89 45 a8             	mov    %eax,-0x58(%ebp)
40a984:	c7 45 a0 08 80 00 00 	movl   $0x8008,-0x60(%ebp)
40a98b:	ff 15 50 11 40 00    	call   *0x401150
40a991:	8b 1d 20 10 40 00    	mov    0x401020,%ebx
40a997:	66 8b f0             	mov    %ax,%si
40a99a:	8d 45 a0             	lea    -0x60(%ebp),%eax
40a99d:	50                   	push   %eax
40a99e:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40a9a1:	51                   	push   %ecx
40a9a2:	8d 55 c0             	lea    -0x40(%ebp),%edx
40a9a5:	52                   	push   %edx
40a9a6:	6a 03                	push   $0x3
40a9a8:	ff d3                	call   *%ebx
40a9aa:	83 c4 10             	add    $0x10,%esp
40a9ad:	66 3b f7             	cmp    %di,%si
40a9b0:	74 37                	je     0x40a9e9
40a9b2:	8d 55 80             	lea    -0x80(%ebp),%edx
40a9b5:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40a9b8:	c7 45 88 1c 92 40 00 	movl   $0x40921c,-0x78(%ebp)
40a9bf:	c7 45 80 08 00 00 00 	movl   $0x8,-0x80(%ebp)
40a9c6:	ff 15 60 11 40 00    	call   *0x401160
40a9cc:	8d 45 c0             	lea    -0x40(%ebp),%eax
40a9cf:	50                   	push   %eax
40a9d0:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40a9d3:	51                   	push   %ecx
40a9d4:	ff 15 50 10 40 00    	call   *0x401050
40a9da:	8d 55 b0             	lea    -0x50(%ebp),%edx
40a9dd:	52                   	push   %edx
40a9de:	8d 45 c0             	lea    -0x40(%ebp),%eax
40a9e1:	50                   	push   %eax
40a9e2:	6a 02                	push   $0x2
40a9e4:	ff d3                	call   *%ebx
40a9e6:	83 c4 0c             	add    $0xc,%esp
40a9e9:	68 50 92 40 00       	push   $0x409250
40a9ee:	68 58 92 40 00       	push   $0x409258
40a9f3:	ff 15 3c 10 40 00    	call   *0x40103c
40a9f9:	8b 35 70 11 40 00    	mov    0x401170,%esi
40a9ff:	8b d0                	mov    %eax,%edx
40aa01:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40aa04:	ff d6                	call   *%esi
40aa06:	50                   	push   %eax
40aa07:	ff 15 38 11 40 00    	call   *0x401138
40aa0d:	50                   	push   %eax
40aa0e:	ff 15 00 11 40 00    	call   *0x401100
40aa14:	8b d0                	mov    %eax,%edx
40aa16:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40aa19:	ff d6                	call   *%esi
40aa1b:	50                   	push   %eax
40aa1c:	68 bc 91 40 00       	push   $0x4091bc
40aa21:	ff 15 90 10 40 00    	call   *0x401090
40aa27:	8b f0                	mov    %eax,%esi
40aa29:	f7 de                	neg    %esi
40aa2b:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40aa2e:	51                   	push   %ecx
40aa2f:	1b f6                	sbb    %esi,%esi
40aa31:	8d 55 d8             	lea    -0x28(%ebp),%edx
40aa34:	52                   	push   %edx
40aa35:	f7 de                	neg    %esi
40aa37:	6a 02                	push   $0x2
40aa39:	f7 de                	neg    %esi
40aa3b:	ff 15 3c 11 40 00    	call   *0x40113c
40aa41:	83 c4 0c             	add    $0xc,%esp
40aa44:	66 3b f7             	cmp    %di,%si
40aa47:	74 2d                	je     0x40aa76
40aa49:	8d 55 80             	lea    -0x80(%ebp),%edx
40aa4c:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40aa4f:	c7 45 88 60 92 40 00 	movl   $0x409260,-0x78(%ebp)
40aa56:	c7 45 80 08 00 00 00 	movl   $0x8,-0x80(%ebp)
40aa5d:	ff 15 60 11 40 00    	call   *0x401160
40aa63:	8d 45 c0             	lea    -0x40(%ebp),%eax
40aa66:	50                   	push   %eax
40aa67:	ff 15 94 10 40 00    	call   *0x401094
40aa6d:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40aa70:	ff 15 18 10 40 00    	call   *0x401018
40aa76:	39 3d c8 d6 40 00    	cmp    %edi,0x40d6c8
40aa7c:	75 10                	jne    0x40aa8e
40aa7e:	68 c8 d6 40 00       	push   $0x40d6c8
40aa83:	68 28 8f 40 00       	push   $0x408f28
40aa88:	ff 15 14 11 40 00    	call   *0x401114
40aa8e:	8b 35 c8 d6 40 00    	mov    0x40d6c8,%esi
40aa94:	8b 0e                	mov    (%esi),%ecx
40aa96:	8d 55 d0             	lea    -0x30(%ebp),%edx
40aa99:	52                   	push   %edx
40aa9a:	56                   	push   %esi
40aa9b:	ff 51 14             	call   *0x14(%ecx)
40aa9e:	db e2                	fnclex
40aaa0:	3b c7                	cmp    %edi,%eax
40aaa2:	7d 13                	jge    0x40aab7
40aaa4:	8b 1d 44 10 40 00    	mov    0x401044,%ebx
40aaaa:	6a 14                	push   $0x14
40aaac:	68 18 8f 40 00       	push   $0x408f18
40aab1:	56                   	push   %esi
40aab2:	50                   	push   %eax
40aab3:	ff d3                	call   *%ebx
40aab5:	eb 06                	jmp    0x40aabd
40aab7:	8b 1d 44 10 40 00    	mov    0x401044,%ebx
40aabd:	8b 45 d0             	mov    -0x30(%ebp),%eax
40aac0:	8b 08                	mov    (%eax),%ecx
40aac2:	8d 95 7c ff ff ff    	lea    -0x84(%ebp),%edx
40aac8:	52                   	push   %edx
40aac9:	50                   	push   %eax
40aaca:	8b f0                	mov    %eax,%esi
40aacc:	ff 91 c8 00 00 00    	call   *0xc8(%ecx)
40aad2:	db e2                	fnclex
40aad4:	3b c7                	cmp    %edi,%eax
40aad6:	7d 0e                	jge    0x40aae6
40aad8:	68 c8 00 00 00       	push   $0xc8
40aadd:	68 38 8f 40 00       	push   $0x408f38
40aae2:	56                   	push   %esi
40aae3:	50                   	push   %eax
40aae4:	ff d3                	call   *%ebx
40aae6:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40aae9:	ff 15 8c 11 40 00    	call   *0x40118c
40aaef:	b8 02 00 00 00       	mov    $0x2,%eax
40aaf4:	89 45 c8             	mov    %eax,-0x38(%ebp)
40aaf7:	89 45 c0             	mov    %eax,-0x40(%ebp)
40aafa:	8d 45 c0             	lea    -0x40(%ebp),%eax
40aafd:	50                   	push   %eax
40aafe:	ff 15 fc 10 40 00    	call   *0x4010fc
40ab04:	8b d0                	mov    %eax,%edx
40ab06:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40ab09:	ff 15 70 11 40 00    	call   *0x401170
40ab0f:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40ab12:	ff 15 18 10 40 00    	call   *0x401018
40ab18:	39 3d c8 d6 40 00    	cmp    %edi,0x40d6c8
40ab1e:	75 10                	jne    0x40ab30
40ab20:	68 c8 d6 40 00       	push   $0x40d6c8
40ab25:	68 28 8f 40 00       	push   $0x408f28
40ab2a:	ff 15 14 11 40 00    	call   *0x401114
40ab30:	8b 35 c8 d6 40 00    	mov    0x40d6c8,%esi
40ab36:	8b 0e                	mov    (%esi),%ecx
40ab38:	8d 55 d0             	lea    -0x30(%ebp),%edx
40ab3b:	52                   	push   %edx
40ab3c:	56                   	push   %esi
40ab3d:	ff 51 14             	call   *0x14(%ecx)
40ab40:	db e2                	fnclex
40ab42:	3b c7                	cmp    %edi,%eax
40ab44:	7d 0b                	jge    0x40ab51
40ab46:	6a 14                	push   $0x14
40ab48:	68 18 8f 40 00       	push   $0x408f18
40ab4d:	56                   	push   %esi
40ab4e:	50                   	push   %eax
40ab4f:	ff d3                	call   *%ebx
40ab51:	8b 45 d0             	mov    -0x30(%ebp),%eax
40ab54:	8b 08                	mov    (%eax),%ecx
40ab56:	8d 55 d8             	lea    -0x28(%ebp),%edx
40ab59:	52                   	push   %edx
40ab5a:	50                   	push   %eax
40ab5b:	8b f0                	mov    %eax,%esi
40ab5d:	ff 51 60             	call   *0x60(%ecx)
40ab60:	db e2                	fnclex
40ab62:	3b c7                	cmp    %edi,%eax
40ab64:	7d 0b                	jge    0x40ab71
40ab66:	6a 60                	push   $0x60
40ab68:	68 38 8f 40 00       	push   $0x408f38
40ab6d:	56                   	push   %esi
40ab6e:	50                   	push   %eax
40ab6f:	ff d3                	call   *%ebx
40ab71:	8b 55 d8             	mov    -0x28(%ebp),%edx
40ab74:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40ab77:	89 7d d8             	mov    %edi,-0x28(%ebp)
40ab7a:	ff 15 70 11 40 00    	call   *0x401170
40ab80:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40ab83:	ff 15 8c 11 40 00    	call   *0x40118c
40ab89:	68 de ab 40 00       	push   $0x40abde
40ab8e:	eb 38                	jmp    0x40abc8
40ab90:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40ab93:	50                   	push   %eax
40ab94:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40ab97:	51                   	push   %ecx
40ab98:	6a 02                	push   $0x2
40ab9a:	ff 15 3c 11 40 00    	call   *0x40113c
40aba0:	83 c4 0c             	add    $0xc,%esp
40aba3:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40aba6:	ff 15 8c 11 40 00    	call   *0x40118c
40abac:	8d 55 90             	lea    -0x70(%ebp),%edx
40abaf:	52                   	push   %edx
40abb0:	8d 45 a0             	lea    -0x60(%ebp),%eax
40abb3:	50                   	push   %eax
40abb4:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40abb7:	51                   	push   %ecx
40abb8:	8d 55 c0             	lea    -0x40(%ebp),%edx
40abbb:	52                   	push   %edx
40abbc:	6a 04                	push   $0x4
40abbe:	ff 15 20 10 40 00    	call   *0x401020
40abc4:	83 c4 14             	add    $0x14,%esp
40abc7:	c3                   	ret
40abc8:	8b 35 90 11 40 00    	mov    0x401190,%esi
40abce:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40abd1:	ff d6                	call   *%esi
40abd3:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40abd6:	ff d6                	call   *%esi
40abd8:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40abdb:	ff d6                	call   *%esi
40abdd:	c3                   	ret
40abde:	8b 45 08             	mov    0x8(%ebp),%eax
40abe1:	8b 08                	mov    (%eax),%ecx
40abe3:	50                   	push   %eax
40abe4:	ff 51 08             	call   *0x8(%ecx)
40abe7:	8b 45 fc             	mov    -0x4(%ebp),%eax
40abea:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40abed:	5f                   	pop    %edi
40abee:	5e                   	pop    %esi
40abef:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40abf6:	5b                   	pop    %ebx
40abf7:	8b e5                	mov    %ebp,%esp
40abf9:	5d                   	pop    %ebp
40abfa:	c2 28 00             	ret    $0x28
40abfd:	90                   	nop
40abfe:	90                   	nop
40abff:	90                   	nop
40ac00:	55                   	push   %ebp
40ac01:	8b ec                	mov    %esp,%ebp
40ac03:	83 ec 0c             	sub    $0xc,%esp
40ac06:	68 76 12 40 00       	push   $0x401276
40ac0b:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40ac11:	50                   	push   %eax
40ac12:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40ac19:	83 ec 5c             	sub    $0x5c,%esp
40ac1c:	53                   	push   %ebx
40ac1d:	56                   	push   %esi
40ac1e:	57                   	push   %edi
40ac1f:	89 65 f4             	mov    %esp,-0xc(%ebp)
40ac22:	c7 45 f8 d8 11 40 00 	movl   $0x4011d8,-0x8(%ebp)
40ac29:	33 db                	xor    %ebx,%ebx
40ac2b:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40ac2e:	8b 75 08             	mov    0x8(%ebp),%esi
40ac31:	8b 06                	mov    (%esi),%eax
40ac33:	56                   	push   %esi
40ac34:	ff 50 04             	call   *0x4(%eax)
40ac37:	8b 55 14             	mov    0x14(%ebp),%edx
40ac3a:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40ac3d:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40ac40:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40ac43:	89 5d d0             	mov    %ebx,-0x30(%ebp)
40ac46:	89 5d cc             	mov    %ebx,-0x34(%ebp)
40ac49:	89 5d bc             	mov    %ebx,-0x44(%ebp)
40ac4c:	89 5d a8             	mov    %ebx,-0x58(%ebp)
40ac4f:	ff 15 2c 11 40 00    	call   *0x40112c
40ac55:	8b 0e                	mov    (%esi),%ecx
40ac57:	8d 55 d0             	lea    -0x30(%ebp),%edx
40ac5a:	52                   	push   %edx
40ac5b:	56                   	push   %esi
40ac5c:	ff 91 a8 00 00 00    	call   *0xa8(%ecx)
40ac62:	db e2                	fnclex
40ac64:	3b c3                	cmp    %ebx,%eax
40ac66:	7d 16                	jge    0x40ac7e
40ac68:	8b 3d 44 10 40 00    	mov    0x401044,%edi
40ac6e:	68 a8 00 00 00       	push   $0xa8
40ac73:	68 7c 8d 40 00       	push   $0x408d7c
40ac78:	56                   	push   %esi
40ac79:	50                   	push   %eax
40ac7a:	ff d7                	call   *%edi
40ac7c:	eb 06                	jmp    0x40ac84
40ac7e:	8b 3d 44 10 40 00    	mov    0x401044,%edi
40ac84:	8b 45 d0             	mov    -0x30(%ebp),%eax
40ac87:	50                   	push   %eax
40ac88:	53                   	push   %ebx
40ac89:	ff 15 90 10 40 00    	call   *0x401090
40ac8f:	8b f0                	mov    %eax,%esi
40ac91:	f7 de                	neg    %esi
40ac93:	1b f6                	sbb    %esi,%esi
40ac95:	46                   	inc    %esi
40ac96:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40ac99:	f7 de                	neg    %esi
40ac9b:	ff 15 90 11 40 00    	call   *0x401190
40aca1:	66 3b f3             	cmp    %bx,%si
40aca4:	74 70                	je     0x40ad16
40aca6:	39 1d c8 d6 40 00    	cmp    %ebx,0x40d6c8
40acac:	75 14                	jne    0x40acc2
40acae:	8b 1d 14 11 40 00    	mov    0x401114,%ebx
40acb4:	68 c8 d6 40 00       	push   $0x40d6c8
40acb9:	68 28 8f 40 00       	push   $0x408f28
40acbe:	ff d3                	call   *%ebx
40acc0:	eb 06                	jmp    0x40acc8
40acc2:	8b 1d 14 11 40 00    	mov    0x401114,%ebx
40acc8:	8b 35 c8 d6 40 00    	mov    0x40d6c8,%esi
40acce:	8b 0e                	mov    (%esi),%ecx
40acd0:	8d 55 cc             	lea    -0x34(%ebp),%edx
40acd3:	52                   	push   %edx
40acd4:	56                   	push   %esi