40ac34:	68 c0 7c 40 00       	push   $0x407cc0
40ac39:	56                   	push   %esi
40ac3a:	50                   	push   %eax
40ac3b:	ff 15 48 10 40 00    	call   *0x401048
40ac41:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40ac44:	ff 15 b0 11 40 00    	call   *0x4011b0
40ac4a:	68 80 77 40 00       	push   $0x407780
40ac4f:	ff 15 88 10 40 00    	call   *0x401088
40ac55:	dd 05 d8 11 40 00    	fldl   0x4011d8
40ac5b:	52                   	push   %edx
40ac5c:	50                   	push   %eax
40ac5d:	ff 15 f0 10 40 00    	call   *0x4010f0
40ac63:	85 c0                	test   %eax,%eax
40ac65:	0f 84 8c 00 00 00    	je     0x40acf7
40ac6b:	a1 38 03 41 00       	mov    0x410338,%eax
40ac70:	85 c0                	test   %eax,%eax
40ac72:	75 10                	jne    0x40ac84
40ac74:	68 38 03 41 00       	push   $0x410338
40ac79:	68 b0 7c 40 00       	push   $0x407cb0
40ac7e:	ff 15 24 11 40 00    	call   *0x401124
40ac84:	8b 35 38 03 41 00    	mov    0x410338,%esi
40ac8a:	8b 16                	mov    (%esi),%edx
40ac8c:	8d 45 e0             	lea    -0x20(%ebp),%eax
40ac8f:	50                   	push   %eax
40ac90:	56                   	push   %esi
40ac91:	ff 52 1c             	call   *0x1c(%edx)
40ac94:	db e2                	fnclex
40ac96:	85 c0                	test   %eax,%eax
40ac98:	7d 0f                	jge    0x40aca9
40ac9a:	6a 1c                	push   $0x1c
40ac9c:	68 a0 7c 40 00       	push   $0x407ca0
40aca1:	56                   	push   %esi
40aca2:	50                   	push   %eax
40aca3:	ff 15 48 10 40 00    	call   *0x401048
40aca9:	8b 45 e0             	mov    -0x20(%ebp),%eax
40acac:	8b 38                	mov    (%eax),%edi
40acae:	83 ec 10             	sub    $0x10,%esp
40acb1:	8b dc                	mov    %esp,%ebx
40acb3:	ba 0a 00 00 00       	mov    $0xa,%edx
40acb8:	89 13                	mov    %edx,(%ebx)
40acba:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40acbd:	89 53 04             	mov    %edx,0x4(%ebx)
40acc0:	b9 04 00 02 80       	mov    $0x80020004,%ecx
40acc5:	89 4b 08             	mov    %ecx,0x8(%ebx)
40acc8:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40accb:	68 88 7d 40 00       	push   $0x407d88
40acd0:	50                   	push   %eax
40acd1:	8b f0                	mov    %eax,%esi
40acd3:	89 4b 0c             	mov    %ecx,0xc(%ebx)
40acd6:	ff 57 60             	call   *0x60(%edi)
40acd9:	db e2                	fnclex
40acdb:	85 c0                	test   %eax,%eax
40acdd:	7d 0f                	jge    0x40acee
40acdf:	6a 60                	push   $0x60
40ace1:	68 c0 7c 40 00       	push   $0x407cc0
40ace6:	56                   	push   %esi
40ace7:	50                   	push   %eax
40ace8:	ff 15 48 10 40 00    	call   *0x401048
40acee:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40acf1:	ff 15 b0 11 40 00    	call   *0x4011b0
40acf7:	68 80 77 40 00       	push   $0x407780
40acfc:	ff 15 88 10 40 00    	call   *0x401088
40ad02:	dd 05 d8 11 40 00    	fldl   0x4011d8
40ad08:	52                   	push   %edx
40ad09:	50                   	push   %eax
40ad0a:	ff 15 f0 10 40 00    	call   *0x4010f0
40ad10:	85 c0                	test   %eax,%eax
40ad12:	0f 84 8c 00 00 00    	je     0x40ada4
40ad18:	a1 38 03 41 00       	mov    0x410338,%eax
40ad1d:	85 c0                	test   %eax,%eax
40ad1f:	75 10                	jne    0x40ad31
40ad21:	68 38 03 41 00       	push   $0x410338
40ad26:	68 b0 7c 40 00       	push   $0x407cb0
40ad2b:	ff 15 24 11 40 00    	call   *0x401124
40ad31:	8b 35 38 03 41 00    	mov    0x410338,%esi
40ad37:	8b 16                	mov    (%esi),%edx
40ad39:	8d 45 e0             	lea    -0x20(%ebp),%eax
40ad3c:	50                   	push   %eax
40ad3d:	56                   	push   %esi
40ad3e:	ff 52 1c             	call   *0x1c(%edx)
40ad41:	db e2                	fnclex
40ad43:	85 c0                	test   %eax,%eax
40ad45:	7d 0f                	jge    0x40ad56
40ad47:	6a 1c                	push   $0x1c
40ad49:	68 a0 7c 40 00       	push   $0x407ca0
40ad4e:	56                   	push   %esi
40ad4f:	50                   	push   %eax
40ad50:	ff 15 48 10 40 00    	call   *0x401048
40ad56:	8b 45 e0             	mov    -0x20(%ebp),%eax
40ad59:	8b 38                	mov    (%eax),%edi
40ad5b:	83 ec 10             	sub    $0x10,%esp
40ad5e:	8b dc                	mov    %esp,%ebx
40ad60:	ba 0a 00 00 00       	mov    $0xa,%edx
40ad65:	89 13                	mov    %edx,(%ebx)
40ad67:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40ad6a:	89 53 04             	mov    %edx,0x4(%ebx)
40ad6d:	b9 04 00 02 80       	mov    $0x80020004,%ecx
40ad72:	89 4b 08             	mov    %ecx,0x8(%ebx)
40ad75:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40ad78:	68 a4 7d 40 00       	push   $0x407da4
40ad7d:	50                   	push   %eax
40ad7e:	8b f0                	mov    %eax,%esi
40ad80:	89 4b 0c             	mov    %ecx,0xc(%ebx)
40ad83:	ff 57 60             	call   *0x60(%edi)
40ad86:	db e2                	fnclex
40ad88:	85 c0                	test   %eax,%eax
40ad8a:	7d 0f                	jge    0x40ad9b
40ad8c:	6a 60                	push   $0x60
40ad8e:	68 c0 7c 40 00       	push   $0x407cc0
40ad93:	56                   	push   %esi
40ad94:	50                   	push   %eax
40ad95:	ff 15 48 10 40 00    	call   *0x401048
40ad9b:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40ad9e:	ff 15 b0 11 40 00    	call   *0x4011b0
40ada4:	9b                   	fwait
40ada5:	68 c7 ad 40 00       	push   $0x40adc7
40adaa:	eb 0a                	jmp    0x40adb6
40adac:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40adaf:	ff 15 b0 11 40 00    	call   *0x4011b0
40adb5:	c3                   	ret
40adb6:	8b 35 ac 11 40 00    	mov    0x4011ac,%esi
40adbc:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40adbf:	ff d6                	call   *%esi
40adc1:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40adc4:	ff d6                	call   *%esi
40adc6:	c3                   	ret
40adc7:	66 8b 45 e4          	mov    -0x1c(%ebp),%ax
40adcb:	8b 55 20             	mov    0x20(%ebp),%edx
40adce:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40add1:	5f                   	pop    %edi
40add2:	66 89 02             	mov    %ax,(%edx)
40add5:	5e                   	pop    %esi
40add6:	33 c0                	xor    %eax,%eax
40add8:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40addf:	5b                   	pop    %ebx
40ade0:	8b e5                	mov    %ebp,%esp
40ade2:	5d                   	pop    %ebp
40ade3:	c2 1c 00             	ret    $0x1c
40ade6:	90                   	nop
40ade7:	90                   	nop
40ade8:	90                   	nop
40ade9:	90                   	nop
40adea:	90                   	nop
40adeb:	90                   	nop
40adec:	90                   	nop
40aded:	90                   	nop
40adee:	90                   	nop
40adef:	90                   	nop
40adf0:	55                   	push   %ebp
40adf1:	8b ec                	mov    %esp,%ebp
40adf3:	83 ec 08             	sub    $0x8,%esp
40adf6:	68 b6 12 40 00       	push   $0x4012b6
40adfb:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40ae01:	50                   	push   %eax
40ae02:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40ae09:	81 ec 9c 00 00 00    	sub    $0x9c,%esp
40ae0f:	53                   	push   %ebx
40ae10:	56                   	push   %esi
40ae11:	57                   	push   %edi
40ae12:	89 65 f8             	mov    %esp,-0x8(%ebp)
40ae15:	c7 45 fc f0 11 40 00 	movl   $0x4011f0,-0x4(%ebp)
40ae1c:	8b 55 0c             	mov    0xc(%ebp),%edx
40ae1f:	33 c0                	xor    %eax,%eax
40ae21:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40ae24:	89 45 ec             	mov    %eax,-0x14(%ebp)
40ae27:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40ae2a:	89 45 e8             	mov    %eax,-0x18(%ebp)
40ae2d:	89 45 e0             	mov    %eax,-0x20(%ebp)
40ae30:	89 45 d0             	mov    %eax,-0x30(%ebp)
40ae33:	89 45 c0             	mov    %eax,-0x40(%ebp)
40ae36:	89 45 b0             	mov    %eax,-0x50(%ebp)
40ae39:	89 45 a0             	mov    %eax,-0x60(%ebp)
40ae3c:	ff 15 40 11 40 00    	call   *0x401140
40ae42:	68 80 77 40 00       	push   $0x407780
40ae47:	ff 15 28 11 40 00    	call   *0x401128
40ae4d:	dc 1d d8 11 40 00    	fcompl 0x4011d8
40ae53:	df e0                	fnstsw %ax
40ae55:	f6 c4 40             	test   $0x40,%ah
40ae58:	0f 85 97 00 00 00    	jne    0x40aef5
40ae5e:	ff 15 58 11 40 00    	call   *0x401158
40ae64:	8b 1d 74 10 40 00    	mov    0x401074,%ebx
40ae6a:	50                   	push   %eax
40ae6b:	8d 45 e0             	lea    -0x20(%ebp),%eax
40ae6e:	50                   	push   %eax
40ae6f:	ff d3                	call   *%ebx
40ae71:	8d 55 a0             	lea    -0x60(%ebp),%edx
40ae74:	52                   	push   %edx
40ae75:	8d 55 b0             	lea    -0x50(%ebp),%edx
40ae78:	52                   	push   %edx
40ae79:	8d 55 c0             	lea    -0x40(%ebp),%edx
40ae7c:	52                   	push   %edx
40ae7d:	8d 55 d0             	lea    -0x30(%ebp),%edx
40ae80:	bf 04 00 02 80       	mov    $0x80020004,%edi
40ae85:	be 0a 00 00 00       	mov    $0xa,%esi
40ae8a:	52                   	push   %edx
40ae8b:	68 aa 51 00 00       	push   $0x51aa
40ae90:	89 7d a8             	mov    %edi,-0x58(%ebp)
40ae93:	89 75 a0             	mov    %esi,-0x60(%ebp)
40ae96:	89 7d b8             	mov    %edi,-0x48(%ebp)
40ae99:	89 75 b0             	mov    %esi,-0x50(%ebp)
40ae9c:	89 7d c8             	mov    %edi,-0x38(%ebp)
40ae9f:	89 75 c0             	mov    %esi,-0x40(%ebp)
40aea2:	89 7d d8             	mov    %edi,-0x28(%ebp)
40aea5:	89 75 d0             	mov    %esi,-0x30(%ebp)
40aea8:	8b 08                	mov    (%eax),%ecx
40aeaa:	50                   	push   %eax
40aeab:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
40aeb1:	ff 51 44             	call   *0x44(%ecx)
40aeb4:	db e2                	fnclex
40aeb6:	85 c0                	test   %eax,%eax
40aeb8:	7d 15                	jge    0x40aecf
40aeba:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
40aec0:	6a 44                	push   $0x44
40aec2:	68 bc 7d 40 00       	push   $0x407dbc
40aec7:	51                   	push   %ecx
40aec8:	50                   	push   %eax
40aec9:	ff 15 48 10 40 00    	call   *0x401048
40aecf:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40aed2:	ff 15 b0 11 40 00    	call   *0x4011b0
40aed8:	8d 55 a0             	lea    -0x60(%ebp),%edx
40aedb:	52                   	push   %edx
40aedc:	8d 45 b0             	lea    -0x50(%ebp),%eax
40aedf:	50                   	push   %eax
40aee0:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40aee3:	51                   	push   %ecx
40aee4:	8d 55 d0             	lea    -0x30(%ebp),%edx
40aee7:	52                   	push   %edx
40aee8:	6a 04                	push   $0x4
40aeea:	ff 15 28 10 40 00    	call   *0x401028
40aef0:	83 c4 14             	add    $0x14,%esp
40aef3:	eb 10                	jmp    0x40af05
40aef5:	8b 1d 74 10 40 00    	mov    0x401074,%ebx
40aefb:	bf 04 00 02 80       	mov    $0x80020004,%edi
40af00:	be 0a 00 00 00       	mov    $0xa,%esi
40af05:	68 80 77 40 00       	push   $0x407780
40af0a:	ff 15 28 11 40 00    	call   *0x401128
40af10:	dc 1d d8 11 40 00    	fcompl 0x4011d8
40af16:	df e0                	fnstsw %ax
40af18:	f6 c4 40             	test   $0x40,%ah
40af1b:	0f 85 85 00 00 00    	jne    0x40afa6
40af21:	ff 15 58 11 40 00    	call   *0x401158
40af27:	50                   	push   %eax
40af28:	8d 45 e0             	lea    -0x20(%ebp),%eax
40af2b:	50                   	push   %eax
40af2c:	ff d3                	call   *%ebx
40af2e:	8d 55 a0             	lea    -0x60(%ebp),%edx
40af31:	52                   	push   %edx
40af32:	8d 55 b0             	lea    -0x50(%ebp),%edx
40af35:	52                   	push   %edx
40af36:	8d 55 c0             	lea    -0x40(%ebp),%edx
40af39:	52                   	push   %edx
40af3a:	8d 55 d0             	lea    -0x30(%ebp),%edx
40af3d:	52                   	push   %edx
40af3e:	68 29 06 00 00       	push   $0x629
40af43:	89 7d a8             	mov    %edi,-0x58(%ebp)
40af46:	89 75 a0             	mov    %esi,-0x60(%ebp)
40af49:	89 7d b8             	mov    %edi,-0x48(%ebp)
40af4c:	89 75 b0             	mov    %esi,-0x50(%ebp)
40af4f:	89 7d c8             	mov    %edi,-0x38(%ebp)
40af52:	89 75 c0             	mov    %esi,-0x40(%ebp)
40af55:	89 7d d8             	mov    %edi,-0x28(%ebp)
40af58:	89 75 d0             	mov    %esi,-0x30(%ebp)
40af5b:	8b 08                	mov    (%eax),%ecx
40af5d:	50                   	push   %eax
40af5e:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
40af64:	ff 51 44             	call   *0x44(%ecx)
40af67:	db e2                	fnclex
40af69:	85 c0                	test   %eax,%eax
40af6b:	7d 15                	jge    0x40af82
40af6d:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
40af73:	6a 44                	push   $0x44
40af75:	68 bc 7d 40 00       	push   $0x407dbc
40af7a:	51                   	push   %ecx
40af7b:	50                   	push   %eax
40af7c:	ff 15 48 10 40 00    	call   *0x401048
40af82:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40af85:	ff 15 b0 11 40 00    	call   *0x4011b0
40af8b:	8d 55 a0             	lea    -0x60(%ebp),%edx
40af8e:	52                   	push   %edx
40af8f:	8d 45 b0             	lea    -0x50(%ebp),%eax
40af92:	50                   	push   %eax
40af93:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40af96:	51                   	push   %ecx
40af97:	8d 55 d0             	lea    -0x30(%ebp),%edx
40af9a:	52                   	push   %edx
40af9b:	6a 04                	push   $0x4
40af9d:	ff 15 28 10 40 00    	call   *0x401028
40afa3:	83 c4 14             	add    $0x14,%esp
40afa6:	68 80 77 40 00       	push   $0x407780
40afab:	ff 15 28 11 40 00    	call   *0x401128
40afb1:	dc 1d d8 11 40 00    	fcompl 0x4011d8
40afb7:	df e0                	fnstsw %ax
40afb9:	f6 c4 40             	test   $0x40,%ah
40afbc:	0f 85 85 00 00 00    	jne    0x40b047
40afc2:	ff 15 58 11 40 00    	call   *0x401158
40afc8:	50                   	push   %eax
40afc9:	8d 45 e0             	lea    -0x20(%ebp),%eax
40afcc:	50                   	push   %eax
40afcd:	ff d3                	call   *%ebx
40afcf:	8d 55 a0             	lea    -0x60(%ebp),%edx
40afd2:	52                   	push   %edx
40afd3:	8d 55 b0             	lea    -0x50(%ebp),%edx
40afd6:	52                   	push   %edx
40afd7:	8d 55 c0             	lea    -0x40(%ebp),%edx
40afda:	52                   	push   %edx
40afdb:	8d 55 d0             	lea    -0x30(%ebp),%edx
40afde:	52                   	push   %edx
40afdf:	68 e5 56 00 00       	push   $0x56e5
40afe4:	89 7d a8             	mov    %edi,-0x58(%ebp)
40afe7:	89 75 a0             	mov    %esi,-0x60(%ebp)
40afea:	89 7d b8             	mov    %edi,-0x48(%ebp)
40afed:	89 75 b0             	mov    %esi,-0x50(%ebp)
40aff0:	89 7d c8             	mov    %edi,-0x38(%ebp)
40aff3:	89 75 c0             	mov    %esi,-0x40(%ebp)
40aff6:	89 7d d8             	mov    %edi,-0x28(%ebp)
40aff9:	89 75 d0             	mov    %esi,-0x30(%ebp)
40affc:	8b 08                	mov    (%eax),%ecx
40affe:	50                   	push   %eax
40afff:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
40b005:	ff 51 44             	call   *0x44(%ecx)
40b008:	db e2                	fnclex
40b00a:	85 c0                	test   %eax,%eax
40b00c:	7d 15                	jge    0x40b023
40b00e:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
40b014:	6a 44                	push   $0x44
40b016:	68 bc 7d 40 00       	push   $0x407dbc
40b01b:	51                   	push   %ecx
40b01c:	50                   	push   %eax
40b01d:	ff 15 48 10 40 00    	call   *0x401048
40b023:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40b026:	ff 15 b0 11 40 00    	call   *0x4011b0
40b02c:	8d 55 a0             	lea    -0x60(%ebp),%edx
40b02f:	52                   	push   %edx
40b030:	8d 45 b0             	lea    -0x50(%ebp),%eax
40b033:	50                   	push   %eax
40b034:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40b037:	51                   	push   %ecx
40b038:	8d 55 d0             	lea    -0x30(%ebp),%edx
40b03b:	52                   	push   %edx
40b03c:	6a 04                	push   $0x4
40b03e:	ff 15 28 10 40 00    	call   *0x401028
40b044:	83 c4 14             	add    $0x14,%esp
40b047:	68 80 77 40 00       	push   $0x407780
40b04c:	ff 15 28 11 40 00    	call   *0x401128
40b052:	dc 1d d8 11 40 00    	fcompl 0x4011d8
40b058:	df e0                	fnstsw %ax
40b05a:	f6 c4 40             	test   $0x40,%ah
40b05d:	0f 85 85 00 00 00    	jne    0x40b0e8
40b063:	ff 15 58 11 40 00    	call   *0x401158
40b069:	50                   	push   %eax