40ad78:	68 b8 7d 40 00       	push   $0x407db8
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 d4 7c 40 00       	push   $0x407cd4
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 ac 11 40 00    	call   *0x4011ac
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 ac 11 40 00    	call   *0x4011ac
40adb5:	c3                   	ret
40adb6:	8b 35 a8 11 40 00    	mov    0x4011a8,%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 c6 12 40 00       	push   $0x4012c6
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 44 11 40 00    	call   *0x401144
40ae42:	68 94 77 40 00       	push   $0x407794
40ae47:	ff 15 2c 11 40 00    	call   *0x40112c
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 5c 11 40 00    	call   *0x40115c
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 d0 7d 40 00       	push   $0x407dd0
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 ac 11 40 00    	call   *0x4011ac
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 94 77 40 00       	push   $0x407794
40af0a:	ff 15 2c 11 40 00    	call   *0x40112c
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 5c 11 40 00    	call   *0x40115c
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 d0 7d 40 00       	push   $0x407dd0
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 ac 11 40 00    	call   *0x4011ac
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 94 77 40 00       	push   $0x407794
40afab:	ff 15 2c 11 40 00    	call   *0x40112c
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 5c 11 40 00    	call   *0x40115c
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 d0 7d 40 00       	push   $0x407dd0
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 ac 11 40 00    	call   *0x4011ac
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 94 77 40 00       	push   $0x407794
40b04c:	ff 15 2c 11 40 00    	call   *0x40112c
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 5c 11 40 00    	call   *0x40115c
40b069:	50                   	push   %eax
40b06a:	8d 45 e0             	lea    -0x20(%ebp),%eax
40b06d:	50                   	push   %eax
40b06e:	ff d3                	call   *%ebx
40b070:	8d 55 a0             	lea    -0x60(%ebp),%edx
40b073:	52                   	push   %edx
40b074:	8d 55 b0             	lea    -0x50(%ebp),%edx
40b077:	52                   	push   %edx
40b078:	8d 55 c0             	lea    -0x40(%ebp),%edx
40b07b:	52                   	push   %edx
40b07c:	8d 55 d0             	lea    -0x30(%ebp),%edx
40b07f:	52                   	push   %edx
40b080:	68 9f 45 00 00       	push   $0x459f
40b085:	89 7d a8             	mov    %edi,-0x58(%ebp)
40b088:	89 75 a0             	mov    %esi,-0x60(%ebp)
40b08b:	89 7d b8             	mov    %edi,-0x48(%ebp)
40b08e:	89 75 b0             	mov    %esi,-0x50(%ebp)
40b091:	89 7d c8             	mov    %edi,-0x38(%ebp)
40b094:	89 75 c0             	mov    %esi,-0x40(%ebp)
40b097:	89 7d d8             	mov    %edi,-0x28(%ebp)
40b09a:	89 75 d0             	mov    %esi,-0x30(%ebp)
40b09d:	8b 08                	mov    (%eax),%ecx
40b09f:	50                   	push   %eax
40b0a0:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
40b0a6:	ff 51 44             	call   *0x44(%ecx)
40b0a9:	db e2                	fnclex
40b0ab:	85 c0                	test   %eax,%eax
40b0ad:	7d 15                	jge    0x40b0c4
40b0af:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
40b0b5:	6a 44                	push   $0x44
40b0b7:	68 d0 7d 40 00       	push   $0x407dd0
40b0bc:	51                   	push   %ecx
40b0bd:	50                   	push   %eax
40b0be:	ff 15 48 10 40 00    	call   *0x401048
40b0c4:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40b0c7:	ff 15 ac 11 40 00    	call   *0x4011ac
40b0cd:	8d 55 a0             	lea    -0x60(%ebp),%edx
40b0d0:	52                   	push   %edx
40b0d1:	8d 45 b0             	lea    -0x50(%ebp),%eax
40b0d4:	50                   	push   %eax
40b0d5:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40b0d8:	51                   	push   %ecx
40b0d9:	8d 55 d0             	lea    -0x30(%ebp),%edx
40b0dc:	52                   	push   %edx
40b0dd:	6a 04                	push   $0x4
40b0df:	ff 15 28 10 40 00    	call   *0x401028
40b0e5:	83 c4 14             	add    $0x14,%esp
40b0e8:	68 94 77 40 00       	push   $0x407794
40b0ed:	ff 15 2c 11 40 00    	call   *0x40112c
40b0f3:	dc 1d d8 11 40 00    	fcompl 0x4011d8
40b0f9:	df e0                	fnstsw %ax
40b0fb:	f6 c4 40             	test   $0x40,%ah
40b0fe:	0f 85 85 00 00 00    	jne    0x40b189
40b104:	ff 15 5c 11 40 00    	call   *0x40115c
40b10a:	50                   	push   %eax
40b10b:	8d 45 e0             	lea    -0x20(%ebp),%eax
40b10e:	50                   	push   %eax
40b10f:	ff d3                	call   *%ebx
40b111:	8d 55 a0             	lea    -0x60(%ebp),%edx
40b114:	52                   	push   %edx
40b115:	8d 55 b0             	lea    -0x50(%ebp),%edx
40b118:	52                   	push   %edx
40b119:	8d 55 c0             	lea    -0x40(%ebp),%edx
40b11c:	52                   	push   %edx
40b11d:	8d 55 d0             	lea    -0x30(%ebp),%edx
40b120:	52                   	push   %edx
40b121:	68 df 53 00 00       	push   $0x53df
40b126:	89 7d a8             	mov    %edi,-0x58(%ebp)
40b129:	89 75 a0             	mov    %esi,-0x60(%ebp)
40b12c:	89 7d b8             	mov    %edi,-0x48(%ebp)
40b12f:	89 75 b0             	mov    %esi,-0x50(%ebp)
40b132:	89 7d c8             	mov    %edi,-0x38(%ebp)
40b135:	89 75 c0             	mov    %esi,-0x40(%ebp)
40b138:	89 7d d8             	mov    %edi,-0x28(%ebp)
40b13b:	89 75 d0             	mov    %esi,-0x30(%ebp)
40b13e:	8b 08                	mov    (%eax),%ecx
40b140:	50                   	push   %eax
40b141:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
40b147:	ff 51 44             	call   *0x44(%ecx)
40b14a:	db e2                	fnclex
40b14c:	85 c0                	test   %eax,%eax
40b14e:	7d 15                	jge    0x40b165
40b150:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
40b156:	6a 44                	push   $0x44
40b158:	68 d0 7d 40 00       	push   $0x407dd0
40b15d:	51                   	push   %ecx
40b15e:	50                   	push   %eax
40b15f:	ff 15 48 10 40 00    	call   *0x401048
40b165:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40b168:	ff 15 ac 11 40 00    	call   *0x4011ac
40b16e:	8d 55 a0             	lea    -0x60(%ebp),%edx
40b171:	52                   	push   %edx
40b172:	8d 45 b0             	lea    -0x50(%ebp),%eax
40b175:	50                   	push   %eax
40b176:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40b179:	51                   	push   %ecx
40b17a:	8d 55 d0             	lea    -0x30(%ebp),%edx
40b17d:	52                   	push   %edx
40b17e:	6a 04                	push   $0x4
40b180:	ff 15 28 10 40 00    	call   *0x401028