40aad3:	55                   	push   %ebp
40aad4:	8b ec                	mov    %esp,%ebp
40aad6:	56                   	push   %esi
40aad7:	68 2c aa 41 00       	push   $0x41aa2c
40aadc:	68 24 aa 41 00       	push   $0x41aa24
40aae1:	68 84 a0 41 00       	push   $0x41a084
40aae6:	6a 22                	push   $0x22
40aae8:	e8 05 fe ff ff       	call   0x40a8f2
40aaed:	8b f0                	mov    %eax,%esi
40aaef:	83 c4 10             	add    $0x10,%esp
40aaf2:	85 f6                	test   %esi,%esi
40aaf4:	74 15                	je     0x40ab0b
40aaf6:	ff 75 0c             	push   0xc(%ebp)
40aaf9:	8b ce                	mov    %esi,%ecx
40aafb:	ff 75 08             	push   0x8(%ebp)
40aafe:	ff 15 54 91 41 00    	call   *0x419154
40ab04:	ff d6                	call   *%esi
40ab06:	5e                   	pop    %esi
40ab07:	5d                   	pop    %ebp
40ab08:	c2 08 00             	ret    $0x8
40ab0b:	5e                   	pop    %esi
40ab0c:	5d                   	pop    %ebp
40ab0d:	ff 25 a8 90 41 00    	jmp    *0x4190a8
40ab13:	8b ff                	mov    %edi,%edi
40ab15:	55                   	push   %ebp
40ab16:	8b ec                	mov    %esp,%ebp
40ab18:	56                   	push   %esi
40ab19:	68 ac a9 41 00       	push   $0x41a9ac
40ab1e:	68 a4 a9 41 00       	push   $0x41a9a4
40ab23:	68 98 a0 41 00       	push   $0x41a098
40ab28:	6a 0f                	push   $0xf
40ab2a:	e8 c3 fd ff ff       	call   0x40a8f2
40ab2f:	8b f0                	mov    %eax,%esi
40ab31:	83 c4 10             	add    $0x10,%esp
40ab34:	85 f6                	test   %esi,%esi
40ab36:	74 15                	je     0x40ab4d
40ab38:	ff 75 10             	push   0x10(%ebp)
40ab3b:	8b ce                	mov    %esi,%ecx
40ab3d:	ff 75 0c             	push   0xc(%ebp)
40ab40:	ff 75 08             	push   0x8(%ebp)
40ab43:	ff 15 54 91 41 00    	call   *0x419154
40ab49:	ff d6                	call   *%esi
40ab4b:	eb 0c                	jmp    0x40ab59
40ab4d:	ff 75 0c             	push   0xc(%ebp)
40ab50:	ff 75 08             	push   0x8(%ebp)
40ab53:	ff 15 9c 90 41 00    	call   *0x41909c
40ab59:	5e                   	pop    %esi
40ab5a:	5d                   	pop    %ebp
40ab5b:	c2 0c 00             	ret    $0xc
40ab5e:	8b ff                	mov    %edi,%edi
40ab60:	55                   	push   %ebp
40ab61:	8b ec                	mov    %esp,%ebp
40ab63:	56                   	push   %esi
40ab64:	e8 8a fc ff ff       	call   0x40a7f3
40ab69:	8b f0                	mov    %eax,%esi
40ab6b:	85 f6                	test   %esi,%esi
40ab6d:	74 27                	je     0x40ab96
40ab6f:	ff 75 28             	push   0x28(%ebp)
40ab72:	8b ce                	mov    %esi,%ecx
40ab74:	ff 75 24             	push   0x24(%ebp)
40ab77:	ff 75 20             	push   0x20(%ebp)
40ab7a:	ff 75 1c             	push   0x1c(%ebp)
40ab7d:	ff 75 18             	push   0x18(%ebp)
40ab80:	ff 75 14             	push   0x14(%ebp)
40ab83:	ff 75 10             	push   0x10(%ebp)
40ab86:	ff 75 0c             	push   0xc(%ebp)
40ab89:	ff 75 08             	push   0x8(%ebp)
40ab8c:	ff 15 54 91 41 00    	call   *0x419154
40ab92:	ff d6                	call   *%esi
40ab94:	eb 20                	jmp    0x40abb6
40ab96:	ff 75 1c             	push   0x1c(%ebp)
40ab99:	ff 75 18             	push   0x18(%ebp)
40ab9c:	ff 75 14             	push   0x14(%ebp)
40ab9f:	ff 75 10             	push   0x10(%ebp)
40aba2:	ff 75 0c             	push   0xc(%ebp)
40aba5:	6a 00                	push   $0x0
40aba7:	ff 75 08             	push   0x8(%ebp)
40abaa:	e8 0c 00 00 00       	call   0x40abbb
40abaf:	50                   	push   %eax
40abb0:	ff 15 dc 90 41 00    	call   *0x4190dc
40abb6:	5e                   	pop    %esi
40abb7:	5d                   	pop    %ebp
40abb8:	c2 24 00             	ret    $0x24
40abbb:	8b ff                	mov    %edi,%edi
40abbd:	55                   	push   %ebp
40abbe:	8b ec                	mov    %esp,%ebp
40abc0:	56                   	push   %esi
40abc1:	e8 47 fc ff ff       	call   0x40a80d
40abc6:	8b f0                	mov    %eax,%esi
40abc8:	85 f6                	test   %esi,%esi
40abca:	74 12                	je     0x40abde
40abcc:	ff 75 0c             	push   0xc(%ebp)
40abcf:	8b ce                	mov    %esi,%ecx
40abd1:	ff 75 08             	push   0x8(%ebp)
40abd4:	ff 15 54 91 41 00    	call   *0x419154
40abda:	ff d6                	call   *%esi
40abdc:	eb 09                	jmp    0x40abe7
40abde:	ff 75 08             	push   0x8(%ebp)
40abe1:	e8 d0 5e 00 00       	call   0x410ab6
40abe6:	59                   	pop    %ecx
40abe7:	5e                   	pop    %esi
40abe8:	5d                   	pop    %ebp
40abe9:	c2 08 00             	ret    $0x8
40abec:	a1 c0 10 42 00       	mov    0x4210c0,%eax
40abf1:	57                   	push   %edi
40abf2:	6a 23                	push   $0x23
40abf4:	59                   	pop    %ecx
40abf5:	bf 18 21 42 00       	mov    $0x422118,%edi
40abfa:	f3 ab                	rep stos %eax,%es:(%edi)
40abfc:	b0 01                	mov    $0x1,%al
40abfe:	5f                   	pop    %edi
40abff:	c3                   	ret
40ac00:	8b ff                	mov    %edi,%edi
40ac02:	55                   	push   %ebp
40ac03:	8b ec                	mov    %esp,%ebp
40ac05:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
40ac09:	75 27                	jne    0x40ac32
40ac0b:	56                   	push   %esi
40ac0c:	be c0 20 42 00       	mov    $0x4220c0,%esi
40ac11:	83 3e 00             	cmpl   $0x0,(%esi)
40ac14:	74 10                	je     0x40ac26
40ac16:	83 3e ff             	cmpl   $0xffffffff,(%esi)
40ac19:	74 08                	je     0x40ac23
40ac1b:	ff 36                	push   (%esi)
40ac1d:	ff 15 b0 90 41 00    	call   *0x4190b0
40ac23:	83 26 00             	andl   $0x0,(%esi)
40ac26:	83 c6 04             	add    $0x4,%esi
40ac29:	81 fe 18 21 42 00    	cmp    $0x422118,%esi
40ac2f:	75 e0                	jne    0x40ac11
40ac31:	5e                   	pop    %esi
40ac32:	b0 01                	mov    $0x1,%al
40ac34:	5d                   	pop    %ebp
40ac35:	c3                   	ret
40ac36:	6a 10                	push   $0x10
40ac38:	68 48 00 42 00       	push   $0x420048
40ac3d:	e8 5e 92 ff ff       	call   0x403ea0
40ac42:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40ac46:	6a 08                	push   $0x8
40ac48:	e8 3f 33 00 00       	call   0x40df8c
40ac4d:	59                   	pop    %ecx
40ac4e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ac52:	6a 03                	push   $0x3
40ac54:	5e                   	pop    %esi
40ac55:	89 75 e0             	mov    %esi,-0x20(%ebp)
40ac58:	3b 35 3c 1e 42 00    	cmp    0x421e3c,%esi
40ac5e:	74 59                	je     0x40acb9
40ac60:	a1 40 1e 42 00       	mov    0x421e40,%eax
40ac65:	8b 04 b0             	mov    (%eax,%esi,4),%eax
40ac68:	85 c0                	test   %eax,%eax
40ac6a:	74 4a                	je     0x40acb6
40ac6c:	8b 40 0c             	mov    0xc(%eax),%eax
40ac6f:	90                   	nop
40ac70:	c1 e8 0d             	shr    $0xd,%eax
40ac73:	a8 01                	test   $0x1,%al
40ac75:	74 16                	je     0x40ac8d
40ac77:	a1 40 1e 42 00       	mov    0x421e40,%eax
40ac7c:	ff 34 b0             	push   (%eax,%esi,4)
40ac7f:	e8 f0 c5 ff ff       	call   0x407274
40ac84:	59                   	pop    %ecx
40ac85:	83 f8 ff             	cmp    $0xffffffff,%eax
40ac88:	74 03                	je     0x40ac8d
40ac8a:	ff 45 e4             	incl   -0x1c(%ebp)
40ac8d:	a1 40 1e 42 00       	mov    0x421e40,%eax
40ac92:	8b 04 b0             	mov    (%eax,%esi,4),%eax
40ac95:	83 c0 20             	add    $0x20,%eax
40ac98:	50                   	push   %eax
40ac99:	ff 15 98 90 41 00    	call   *0x419098
40ac9f:	a1 40 1e 42 00       	mov    0x421e40,%eax
40aca4:	ff 34 b0             	push   (%eax,%esi,4)
40aca7:	e8 f3 fa ff ff       	call   0x40a79f
40acac:	59                   	pop    %ecx
40acad:	a1 40 1e 42 00       	mov    0x421e40,%eax
40acb2:	83 24 b0 00          	andl   $0x0,(%eax,%esi,4)
40acb6:	46                   	inc    %esi
40acb7:	eb 9c                	jmp    0x40ac55
40acb9:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40acc0:	e8 13 00 00 00       	call   0x40acd8
40acc5:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40acc8:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40accb:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40acd2:	59                   	pop    %ecx
40acd3:	5f                   	pop    %edi
40acd4:	5e                   	pop    %esi
40acd5:	5b                   	pop    %ebx
40acd6:	c9                   	leave
40acd7:	c3                   	ret
40acd8:	6a 08                	push   $0x8
40acda:	e8 f5 32 00 00       	call   0x40dfd4
40acdf:	59                   	pop    %ecx
40ace0:	c3                   	ret
40ace1:	6a 08                	push   $0x8
40ace3:	68 68 00 42 00       	push   $0x420068
40ace8:	e8 b3 91 ff ff       	call   0x403ea0
40aced:	8b 45 08             	mov    0x8(%ebp),%eax
40acf0:	ff 30                	push   (%eax)
40acf2:	e8 f0 b9 ff ff       	call   0x4066e7
40acf7:	59                   	pop    %ecx
40acf8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40acfc:	8b 75 0c             	mov    0xc(%ebp),%esi
40acff:	ff 76 04             	push   0x4(%esi)
40ad02:	8b 06                	mov    (%esi),%eax
40ad04:	ff 30                	push   (%eax)
40ad06:	e8 5b 01 00 00       	call   0x40ae66
40ad0b:	59                   	pop    %ecx
40ad0c:	59                   	pop    %ecx
40ad0d:	84 c0                	test   %al,%al
40ad0f:	74 32                	je     0x40ad43
40ad11:	8b 46 08             	mov    0x8(%esi),%eax
40ad14:	80 38 00             	cmpb   $0x0,(%eax)
40ad17:	75 0e                	jne    0x40ad27
40ad19:	8b 06                	mov    (%esi),%eax
40ad1b:	8b 00                	mov    (%eax),%eax
40ad1d:	8b 40 0c             	mov    0xc(%eax),%eax
40ad20:	90                   	nop
40ad21:	d1 e8                	shr    $1,%eax
40ad23:	a8 01                	test   $0x1,%al
40ad25:	74 1c                	je     0x40ad43
40ad27:	8b 06                	mov    (%esi),%eax
40ad29:	ff 30                	push   (%eax)
40ad2b:	e8 f3 01 00 00       	call   0x40af23
40ad30:	59                   	pop    %ecx
40ad31:	83 f8 ff             	cmp    $0xffffffff,%eax
40ad34:	74 07                	je     0x40ad3d
40ad36:	8b 46 04             	mov    0x4(%esi),%eax
40ad39:	ff 00                	incl   (%eax)
40ad3b:	eb 06                	jmp    0x40ad43
40ad3d:	8b 46 0c             	mov    0xc(%esi),%eax
40ad40:	83 08 ff             	orl    $0xffffffff,(%eax)
40ad43:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40ad4a:	e8 12 00 00 00       	call   0x40ad61
40ad4f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40ad52:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ad59:	59                   	pop    %ecx
40ad5a:	5f                   	pop    %edi
40ad5b:	5e                   	pop    %esi
40ad5c:	5b                   	pop    %ebx
40ad5d:	c9                   	leave
40ad5e:	c2 0c 00             	ret    $0xc
40ad61:	8b 45 10             	mov    0x10(%ebp),%eax
40ad64:	ff 30                	push   (%eax)
40ad66:	e8 90 b9 ff ff       	call   0x4066fb
40ad6b:	59                   	pop    %ecx
40ad6c:	c3                   	ret
40ad6d:	6a 2c                	push   $0x2c
40ad6f:	68 88 00 42 00       	push   $0x420088
40ad74:	e8 27 91 ff ff       	call   0x403ea0
40ad79:	8b 45 08             	mov    0x8(%ebp),%eax
40ad7c:	ff 30                	push   (%eax)
40ad7e:	e8 09 32 00 00       	call   0x40df8c
40ad83:	59                   	pop    %ecx
40ad84:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ad88:	8b 35 40 1e 42 00    	mov    0x421e40,%esi
40ad8e:	a1 3c 1e 42 00       	mov    0x421e3c,%eax
40ad93:	8d 1c 86             	lea    (%esi,%eax,4),%ebx
40ad96:	8b 7d 0c             	mov    0xc(%ebp),%edi
40ad99:	89 75 d4             	mov    %esi,-0x2c(%ebp)
40ad9c:	3b f3                	cmp    %ebx,%esi
40ad9e:	74 4f                	je     0x40adef
40ada0:	8b 06                	mov    (%esi),%eax
40ada2:	89 45 e0             	mov    %eax,-0x20(%ebp)
40ada5:	ff 37                	push   (%edi)
40ada7:	50                   	push   %eax
40ada8:	e8 b9 00 00 00       	call   0x40ae66
40adad:	59                   	pop    %ecx
40adae:	59                   	pop    %ecx
40adaf:	84 c0                	test   %al,%al
40adb1:	74 37                	je     0x40adea
40adb3:	8b 57 08             	mov    0x8(%edi),%edx
40adb6:	8b 4f 04             	mov    0x4(%edi),%ecx
40adb9:	8b 07                	mov    (%edi),%eax
40adbb:	8d 7d e0             	lea    -0x20(%ebp),%edi
40adbe:	89 7d c4             	mov    %edi,-0x3c(%ebp)
40adc1:	89 45 c8             	mov    %eax,-0x38(%ebp)
40adc4:	89 4d cc             	mov    %ecx,-0x34(%ebp)
40adc7:	89 55 d0             	mov    %edx,-0x30(%ebp)
40adca:	8b 45 e0             	mov    -0x20(%ebp),%eax
40adcd:	89 45 dc             	mov    %eax,-0x24(%ebp)
40add0:	89 45 d8             	mov    %eax,-0x28(%ebp)
40add3:	8d 45 dc             	lea    -0x24(%ebp),%eax
40add6:	50                   	push   %eax
40add7:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40adda:	50                   	push   %eax
40addb:	8d 45 d8             	lea    -0x28(%ebp),%eax
40adde:	50                   	push   %eax
40addf:	8d 4d e7             	lea    -0x19(%ebp),%ecx
40ade2:	e8 fa fe ff ff       	call   0x40ace1
40ade7:	8b 7d 0c             	mov    0xc(%ebp),%edi
40adea:	83 c6 04             	add    $0x4,%esi
40aded:	eb aa                	jmp    0x40ad99
40adef:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40adf6:	e8 12 00 00 00       	call   0x40ae0d
40adfb:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40adfe:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ae05:	59                   	pop    %ecx
40ae06:	5f                   	pop    %edi
40ae07:	5e                   	pop    %esi
40ae08:	5b                   	pop    %ebx
40ae09:	c9                   	leave
40ae0a:	c2 0c 00             	ret    $0xc
40ae0d:	8b 45 10             	mov    0x10(%ebp),%eax
40ae10:	ff 30                	push   (%eax)
40ae12:	e8 bd 31 00 00       	call   0x40dfd4
40ae17:	59                   	pop    %ecx
40ae18:	c3                   	ret
40ae19:	8b ff                	mov    %edi,%edi
40ae1b:	55                   	push   %ebp
40ae1c:	8b ec                	mov    %esp,%ebp
40ae1e:	83 ec 20             	sub    $0x20,%esp
40ae21:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40ae25:	8d 45 f8             	lea    -0x8(%ebp),%eax
40ae28:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40ae2c:	8d 4d ff             	lea    -0x1(%ebp),%ecx
40ae2f:	89 45 e0             	mov    %eax,-0x20(%ebp)
40ae32:	8d 45 08             	lea    0x8(%ebp),%eax
40ae35:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40ae38:	8d 45 f4             	lea    -0xc(%ebp),%eax
40ae3b:	6a 08                	push   $0x8
40ae3d:	89 45 e8             	mov    %eax,-0x18(%ebp)
40ae40:	58                   	pop    %eax
40ae41:	89 45 f0             	mov    %eax,-0x10(%ebp)
40ae44:	89 45 ec             	mov    %eax,-0x14(%ebp)
40ae47:	8d 45 f0             	lea    -0x10(%ebp),%eax
40ae4a:	50                   	push   %eax
40ae4b:	8d 45 e0             	lea    -0x20(%ebp),%eax
40ae4e:	50                   	push   %eax
40ae4f:	8d 45 ec             	lea    -0x14(%ebp),%eax
40ae52:	50                   	push   %eax
40ae53:	e8 15 ff ff ff       	call   0x40ad6d
40ae58:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
40ae5c:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ae5f:	75 03                	jne    0x40ae64
40ae61:	8b 45 f4             	mov    -0xc(%ebp),%eax
40ae64:	c9                   	leave
40ae65:	c3                   	ret
40ae66:	8b ff                	mov    %edi,%edi
40ae68:	55                   	push   %ebp
40ae69:	8b ec                	mov    %esp,%ebp
40ae6b:	8b 45 08             	mov    0x8(%ebp),%eax
40ae6e:	85 c0                	test   %eax,%eax
40ae70:	74 1d                	je     0x40ae8f
40ae72:	8b 48 0c             	mov    0xc(%eax),%ecx
40ae75:	90                   	nop
40ae76:	8b c1                	mov    %ecx,%eax
40ae78:	c1 e8 0d             	shr    $0xd,%eax
40ae7b:	a8 01                	test   $0x1,%al
40ae7d:	74 10                	je     0x40ae8f
40ae7f:	51                   	push   %ecx
40ae80:	e8 12 00 00 00       	call   0x40ae97
40ae85:	59                   	pop    %ecx
40ae86:	84 c0                	test   %al,%al