40abd5:	75 11                	jne    0x40abe8
40abd7:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
40abdc:	50                   	push   %eax
40abdd:	68 44 30 40 00       	push   $0x403044
40abe2:	8b f0                	mov    %eax,%esi
40abe4:	6a 78                	push   $0x78
40abe6:	eb 61                	jmp    0x40ac49
40abe8:	8d 44 24 1c          	lea    0x1c(%esp),%eax
40abec:	8b cb                	mov    %ebx,%ecx
40abee:	50                   	push   %eax
40abef:	e8 45 05 00 00       	call   0x40b139
40abf4:	8b f0                	mov    %eax,%esi
40abf6:	85 f6                	test   %esi,%esi
40abf8:	79 0a                	jns    0x40ac04
40abfa:	56                   	push   %esi
40abfb:	68 44 30 40 00       	push   $0x403044
40ac00:	6a 7c                	push   $0x7c
40ac02:	eb 45                	jmp    0x40ac49
40ac04:	8b 74 24 1c          	mov    0x1c(%esp),%esi
40ac08:	8d 04 75 02 00 00 00 	lea    0x2(,%esi,2),%eax
40ac0f:	50                   	push   %eax
40ac10:	ff 15 38 62 41 00    	call   *0x416238
40ac16:	89 07                	mov    %eax,(%edi)
40ac18:	85 c0                	test   %eax,%eax
40ac1a:	75 11                	jne    0x40ac2d
40ac1c:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
40ac21:	50                   	push   %eax
40ac22:	68 44 30 40 00       	push   $0x403044
40ac27:	8b f0                	mov    %eax,%esi
40ac29:	6a 7f                	push   $0x7f
40ac2b:	eb 1c                	jmp    0x40ac49
40ac2d:	53                   	push   %ebx
40ac2e:	8d 56 01             	lea    0x1(%esi),%edx
40ac31:	8b c8                	mov    %eax,%ecx
40ac33:	e8 88 ed ff ff       	call   0x4099c0
40ac38:	8b f0                	mov    %eax,%esi
40ac3a:	85 f6                	test   %esi,%esi
40ac3c:	79 26                	jns    0x40ac64
40ac3e:	56                   	push   %esi
40ac3f:	68 44 30 40 00       	push   $0x403044
40ac44:	68 83 00 00 00       	push   $0x83
40ac49:	68 78 30 40 00       	push   $0x403078
40ac4e:	51                   	push   %ecx
40ac4f:	e8 7e 63 00 00       	call   0x410fd2
40ac54:	83 3f 00             	cmpl   $0x0,(%edi)
40ac57:	74 0b                	je     0x40ac64
40ac59:	ff 37                	push   (%edi)
40ac5b:	ff 15 34 62 41 00    	call   *0x416234
40ac61:	83 27 00             	andl   $0x0,(%edi)
40ac64:	8d 4c 24 10          	lea    0x10(%esp),%ecx
40ac68:	e8 82 bd ff ff       	call   0x4069ef
40ac6d:	ff 74 24 14          	push   0x14(%esp)
40ac71:	ff 15 b8 61 41 00    	call   *0x4161b8
40ac77:	5f                   	pop    %edi
40ac78:	8b c6                	mov    %esi,%eax
40ac7a:	5e                   	pop    %esi
40ac7b:	5b                   	pop    %ebx
40ac7c:	8b e5                	mov    %ebp,%esp
40ac7e:	5d                   	pop    %ebp
40ac7f:	c2 08 00             	ret    $0x8
40ac82:	cc                   	int3
40ac83:	cc                   	int3
40ac84:	cc                   	int3
40ac85:	cc                   	int3
40ac86:	cc                   	int3
40ac87:	cc                   	int3
40ac88:	cc                   	int3
40ac89:	cc                   	int3
40ac8a:	cc                   	int3
40ac8b:	cc                   	int3
40ac8c:	cc                   	int3
40ac8d:	cc                   	int3
40ac8e:	cc                   	int3
40ac8f:	cc                   	int3
40ac90:	cc                   	int3
40ac91:	cc                   	int3
40ac92:	cc                   	int3
40ac93:	cc                   	int3
40ac94:	cc                   	int3
40ac95:	cc                   	int3
40ac96:	cc                   	int3
40ac97:	cc                   	int3
40ac98:	cc                   	int3
40ac99:	cc                   	int3
40ac9a:	cc                   	int3
40ac9b:	cc                   	int3
40ac9c:	cc                   	int3
40ac9d:	cc                   	int3
40ac9e:	cc                   	int3
40ac9f:	cc                   	int3
40aca0:	8b ff                	mov    %edi,%edi
40aca2:	55                   	push   %ebp
40aca3:	8b ec                	mov    %esp,%ebp
40aca5:	83 e4 f8             	and    $0xfffffff8,%esp
40aca8:	83 ec 2c             	sub    $0x2c,%esp
40acab:	8b 45 0c             	mov    0xc(%ebp),%eax
40acae:	33 d2                	xor    %edx,%edx
40acb0:	89 54 24 14          	mov    %edx,0x14(%esp)
40acb4:	89 54 24 04          	mov    %edx,0x4(%esp)
40acb8:	89 54 24 0c          	mov    %edx,0xc(%esp)
40acbc:	89 54 24 10          	mov    %edx,0x10(%esp)
40acc0:	89 54 24 18          	mov    %edx,0x18(%esp)
40acc4:	53                   	push   %ebx
40acc5:	8b da                	mov    %edx,%ebx
40acc7:	56                   	push   %esi
40acc8:	8b f2                	mov    %edx,%esi
40acca:	57                   	push   %edi
40accb:	85 c0                	test   %eax,%eax
40accd:	75 17                	jne    0x40ace6
40accf:	b8 03 40 00 80       	mov    $0x80004003,%eax
40acd4:	50                   	push   %eax
40acd5:	68 14 31 40 00       	push   $0x403114
40acda:	8b f0                	mov    %eax,%esi
40acdc:	68 a9 00 00 00       	push   $0xa9
40ace1:	e9 31 03 00 00       	jmp    0x40b017
40ace6:	8b 4d 10             	mov    0x10(%ebp),%ecx
40ace9:	85 c9                	test   %ecx,%ecx
40aceb:	75 17                	jne    0x40ad04
40aced:	b8 03 40 00 80       	mov    $0x80004003,%eax
40acf2:	50                   	push   %eax
40acf3:	68 14 31 40 00       	push   $0x403114
40acf8:	8b f0                	mov    %eax,%esi
40acfa:	68 aa 00 00 00       	push   $0xaa
40acff:	e9 13 03 00 00       	jmp    0x40b017
40ad04:	89 10                	mov    %edx,(%eax)
40ad06:	68 44 31 40 00       	push   $0x403144
40ad0b:	89 11                	mov    %edx,(%ecx)
40ad0d:	ff 15 ec 60 41 00    	call   *0x4160ec
40ad13:	8b f8                	mov    %eax,%edi
40ad15:	85 ff                	test   %edi,%edi
40ad17:	0f 84 ea 02 00 00    	je     0x40b007
40ad1d:	68 60 31 40 00       	push   $0x403160
40ad22:	57                   	push   %edi
40ad23:	ff 15 70 61 41 00    	call   *0x416170
40ad29:	68 7c 31 40 00       	push   $0x40317c
40ad2e:	57                   	push   %edi
40ad2f:	89 44 24 34          	mov    %eax,0x34(%esp)
40ad33:	ff 15 70 61 41 00    	call   *0x416170
40ad39:	85 c0                	test   %eax,%eax
40ad3b:	75 17                	jne    0x40ad54
40ad3d:	b8 03 40 00 80       	mov    $0x80004003,%eax
40ad42:	50                   	push   %eax
40ad43:	68 14 31 40 00       	push   $0x403114
40ad48:	8b f0                	mov    %eax,%esi
40ad4a:	68 cf 00 00 00       	push   $0xcf
40ad4f:	e9 c3 02 00 00       	jmp    0x40b017
40ad54:	39 5c 24 2c          	cmp    %ebx,0x2c(%esp)
40ad58:	75 17                	jne    0x40ad71
40ad5a:	b8 03 40 00 80       	mov    $0x80004003,%eax
40ad5f:	50                   	push   %eax
40ad60:	68 14 31 40 00       	push   $0x403114
40ad65:	8b f0                	mov    %eax,%esi
40ad67:	68 d0 00 00 00       	push   $0xd0
40ad6c:	e9 a6 02 00 00       	jmp    0x40b017
40ad71:	8d 44 24 10          	lea    0x10(%esp),%eax
40ad75:	33 ff                	xor    %edi,%edi
40ad77:	50                   	push   %eax
40ad78:	8d 44 24 24          	lea    0x24(%esp),%eax
40ad7c:	50                   	push   %eax
40ad7d:	6a 01                	push   $0x1
40ad7f:	57                   	push   %edi
40ad80:	57                   	push   %edi
40ad81:	ff 15 fc 61 41 00    	call   *0x4161fc
40ad87:	85 c0                	test   %eax,%eax
40ad89:	75 20                	jne    0x40adab
40ad8b:	57                   	push   %edi
40ad8c:	68 14 31 40 00       	push   $0x403114
40ad91:	68 e1 00 00 00       	push   $0xe1
40ad96:	68 78 30 40 00       	push   $0x403078
40ad9b:	51                   	push   %ecx
40ad9c:	e8 31 62 00 00       	call   0x410fd2
40ada1:	be 05 40 00 80       	mov    $0x80004005,%esi
40ada6:	e9 77 02 00 00       	jmp    0x40b022
40adab:	8b 44 24 10          	mov    0x10(%esp),%eax
40adaf:	85 c0                	test   %eax,%eax
40adb1:	75 0d                	jne    0x40adc0
40adb3:	57                   	push   %edi
40adb4:	68 14 31 40 00       	push   $0x403114
40adb9:	68 e3 00 00 00       	push   $0xe3
40adbe:	eb d6                	jmp    0x40ad96
40adc0:	39 5c 24 20          	cmp    %ebx,0x20(%esp)
40adc4:	75 0d                	jne    0x40add3
40adc6:	57                   	push   %edi
40adc7:	68 14 31 40 00       	push   $0x403114
40adcc:	68 e4 00 00 00       	push   $0xe4
40add1:	eb c3                	jmp    0x40ad96
40add3:	c1 e0 02             	shl    $0x2,%eax
40add6:	50                   	push   %eax
40add7:	6a 08                	push   $0x8
40add9:	ff 15 e0 60 41 00    	call   *0x4160e0
40addf:	50                   	push   %eax
40ade0:	ff 15 dc 60 41 00    	call   *0x4160dc
40ade6:	8b d8                	mov    %eax,%ebx
40ade8:	85 db                	test   %ebx,%ebx
40adea:	75 17                	jne    0x40ae03
40adec:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
40adf1:	50                   	push   %eax
40adf2:	68 14 31 40 00       	push   $0x403114
40adf7:	8b f0                	mov    %eax,%esi
40adf9:	68 e6 00 00 00       	push   $0xe6
40adfe:	e9 14 02 00 00       	jmp    0x40b017
40ae03:	21 74 24 2c          	and    %esi,0x2c(%esp)
40ae07:	33 c0                	xor    %eax,%eax
40ae09:	8b 7c 24 20          	mov    0x20(%esp),%edi
40ae0d:	89 44 24 14          	mov    %eax,0x14(%esp)
40ae11:	39 44 24 10          	cmp    %eax,0x10(%esp)
40ae15:	0f 86 1a 01 00 00    	jbe    0x40af35
40ae1b:	85 ff                	test   %edi,%edi
40ae1d:	0f 84 67 01 00 00    	je     0x40af8a
40ae23:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
40ae28:	74 0f                	je     0x40ae39
40ae2a:	ff 74 24 18          	push   0x18(%esp)
40ae2e:	ff 15 04 62 41 00    	call   *0x416204
40ae34:	83 64 24 18 00       	andl   $0x0,0x18(%esp)
40ae39:	83 7c 24 1c 00       	cmpl   $0x0,0x1c(%esp)
40ae3e:	74 0f                	je     0x40ae4f
40ae40:	ff 74 24 1c          	push   0x1c(%esp)
40ae44:	ff 15 04 62 41 00    	call   *0x416204
40ae4a:	83 64 24 1c 00       	andl   $0x0,0x1c(%esp)
40ae4f:	8b 07                	mov    (%edi),%eax
40ae51:	89 44 24 28          	mov    %eax,0x28(%esp)
40ae55:	3d 00 00 01 00       	cmp    $0x10000,%eax
40ae5a:	0f 84 bb 00 00 00    	je     0x40af1b
40ae60:	83 7f 08 04          	cmpl   $0x4,0x8(%edi)
40ae64:	0f 84 b1 00 00 00    	je     0x40af1b
40ae6a:	83 7f 08 05          	cmpl   $0x5,0x8(%edi)
40ae6e:	0f 84 a7 00 00 00    	je     0x40af1b
40ae74:	8d 4c 24 34          	lea    0x34(%esp),%ecx
40ae78:	51                   	push   %ecx
40ae79:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
40ae7d:	51                   	push   %ecx
40ae7e:	6a 05                	push   $0x5
40ae80:	50                   	push   %eax
40ae81:	6a 00                	push   $0x0
40ae83:	ff 15 00 62 41 00    	call   *0x416200
40ae89:	85 c0                	test   %eax,%eax
40ae8b:	0f 84 8a 00 00 00    	je     0x40af1b
40ae91:	8d 44 24 30          	lea    0x30(%esp),%eax
40ae95:	50                   	push   %eax
40ae96:	8d 44 24 20          	lea    0x20(%esp),%eax
40ae9a:	50                   	push   %eax
40ae9b:	6a 07                	push   $0x7
40ae9d:	ff 74 24 34          	push   0x34(%esp)
40aea1:	6a 00                	push   $0x0
40aea3:	ff 15 00 62 41 00    	call   *0x416200
40aea9:	85 c0                	test   %eax,%eax
40aeab:	74 6e                	je     0x40af1b
40aead:	68 a0 31 40 00       	push   $0x4031a0
40aeb2:	ff 74 24 1c          	push   0x1c(%esp)
40aeb6:	ff 15 d0 61 41 00    	call   *0x4161d0
40aebc:	85 c0                	test   %eax,%eax
40aebe:	74 5b                	je     0x40af1b
40aec0:	8b 4c 24 30          	mov    0x30(%esp),%ecx
40aec4:	8b 74 24 34          	mov    0x34(%esp),%esi
40aec8:	83 c1 23             	add    $0x23,%ecx
40aecb:	03 f1                	add    %ecx,%esi
40aecd:	8d 04 36             	lea    (%esi,%esi,1),%eax
40aed0:	50                   	push   %eax
40aed1:	6a 08                	push   $0x8
40aed3:	ff 15 e0 60 41 00    	call   *0x4160e0
40aed9:	50                   	push   %eax
40aeda:	ff 15 dc 60 41 00    	call   *0x4160dc
40aee0:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40aee4:	89 04 8b             	mov    %eax,(%ebx,%ecx,4)
40aee7:	85 c0                	test   %eax,%eax
40aee9:	0f 84 84 00 00 00    	je     0x40af73
40aeef:	ff 74 24 28          	push   0x28(%esp)
40aef3:	ff 74 24 1c          	push   0x1c(%esp)
40aef7:	ff 74 24 24          	push   0x24(%esp)
40aefb:	68 8c 31 40 00       	push   $0x40318c
40af00:	56                   	push   %esi
40af01:	50                   	push   %eax
40af02:	e8 cb 01 00 00       	call   0x40b0d2
40af07:	8b f0                	mov    %eax,%esi
40af09:	83 c4 18             	add    $0x18,%esp
40af0c:	85 f6                	test   %esi,%esi
40af0e:	78 53                	js     0x40af63
40af10:	8b 44 24 14          	mov    0x14(%esp),%eax
40af14:	40                   	inc    %eax
40af15:	89 44 24 14          	mov    %eax,0x14(%esp)
40af19:	eb 04                	jmp    0x40af1f
40af1b:	8b 44 24 14          	mov    0x14(%esp),%eax
40af1f:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
40af23:	83 c7 0c             	add    $0xc,%edi
40af26:	41                   	inc    %ecx
40af27:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
40af2b:	3b 4c 24 10          	cmp    0x10(%esp),%ecx
40af2f:	0f 82 e6 fe ff ff    	jb     0x40ae1b
40af35:	50                   	push   %eax
40af36:	6a 00                	push   $0x0
40af38:	6a 08                	push   $0x8
40af3a:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40af3e:	ff 15 98 61 41 00    	call   *0x416198
40af44:	89 44 24 34          	mov    %eax,0x34(%esp)
40af48:	85 c0                	test   %eax,%eax
40af4a:	75 52                	jne    0x40af9e
40af4c:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
40af51:	50                   	push   %eax
40af52:	68 14 31 40 00       	push   $0x403114
40af57:	8b f0                	mov    %eax,%esi
40af59:	68 55 01 00 00       	push   $0x155
40af5e:	e9 b4 00 00 00       	jmp    0x40b017
40af63:	56                   	push   %esi
40af64:	68 14 31 40 00       	push   $0x403114
40af69:	68 45 01 00 00       	push   $0x145
40af6e:	e9 a4 00 00 00       	jmp    0x40b017
40af73:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
40af78:	50                   	push   %eax
40af79:	68 14 31 40 00       	push   $0x403114
40af7e:	8b f0                	mov    %eax,%esi
40af80:	68 3d 01 00 00       	push   $0x13d
40af85:	e9 8d 00 00 00       	jmp    0x40b017
40af8a:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
40af8f:	50                   	push   %eax
40af90:	68 14 31 40 00       	push   $0x403114
40af95:	8b f0                	mov    %eax,%esi
40af97:	68 f3 00 00 00       	push   $0xf3
40af9c:	eb 79                	jmp    0x40b017
40af9e:	8d 4c 24 24          	lea    0x24(%esp),%ecx
40afa2:	51                   	push   %ecx
40afa3:	50                   	push   %eax
40afa4:	ff 15 94 61 41 00    	call   *0x416194
40afaa:	33 ff                	xor    %edi,%edi
40afac:	39 7c 24 10          	cmp    %edi,0x10(%esp)
40afb0:	76 21                	jbe    0x40afd3
40afb2:	ff 34 bb             	push   (%ebx,%edi,4)
40afb5:	ff 15 a4 61 41 00    	call   *0x4161a4
40afbb:	8b 4c 24 24          	mov    0x24(%esp),%ecx
40afbf:	89 04 b9             	mov    %eax,(%ecx,%edi,4)
40afc2:	8b 44 24 24          	mov    0x24(%esp),%eax
40afc6:	83 3c b8 00          	cmpl   $0x0,(%eax,%edi,4)
40afca:	74 27                	je     0x40aff3
40afcc:	47                   	inc    %edi
40afcd:	3b 7c 24 10          	cmp    0x10(%esp),%edi
40afd1:	72 df                	jb     0x40afb2
40afd3:	8b 7c 24 34          	mov    0x34(%esp),%edi
40afd7:	57                   	push   %edi
40afd8:	ff 15 90 61 41 00    	call   *0x416190
40afde:	8b 45 0c             	mov    0xc(%ebp),%eax
40afe1:	8b 4d 10             	mov    0x10(%ebp),%ecx
40afe4:	83 64 24 24 00       	andl   $0x0,0x24(%esp)
40afe9:	89 38                	mov    %edi,(%eax)
40afeb:	8b 44 24 10          	mov    0x10(%esp),%eax
40afef:	89 01                	mov    %eax,(%ecx)
40aff1:	eb 2f                	jmp    0x40b022
40aff3:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
40aff8:	50                   	push   %eax
40aff9:	68 14 31 40 00       	push   $0x403114
40affe:	8b f0                	mov    %eax,%esi
40b000:	68 5c 01 00 00       	push   $0x15c