40aa1d:	55                   	push   %ebp
40aa1e:	8b ec                	mov    %esp,%ebp
40aa20:	8b 55 08             	mov    0x8(%ebp),%edx
40aa23:	56                   	push   %esi
40aa24:	8b f1                	mov    %ecx,%esi
40aa26:	3b 56 0c             	cmp    0xc(%esi),%edx
40aa29:	73 1f                	jae    0x40aa4a
40aa2b:	8b 46 04             	mov    0x4(%esi),%eax
40aa2e:	8d 04 50             	lea    (%eax,%edx,2),%eax
40aa31:	0f b7 08             	movzwl (%eax),%ecx
40aa34:	83 f9 2f             	cmp    $0x2f,%ecx
40aa37:	74 0e                	je     0x40aa47
40aa39:	83 f9 5c             	cmp    $0x5c,%ecx
40aa3c:	74 09                	je     0x40aa47
40aa3e:	42                   	inc    %edx
40aa3f:	83 c0 02             	add    $0x2,%eax
40aa42:	3b 56 0c             	cmp    0xc(%esi),%edx
40aa45:	72 ea                	jb     0x40aa31
40aa47:	3b 56 0c             	cmp    0xc(%esi),%edx
40aa4a:	5e                   	pop    %esi
40aa4b:	73 06                	jae    0x40aa53
40aa4d:	8b c2                	mov    %edx,%eax
40aa4f:	5d                   	pop    %ebp
40aa50:	c2 04 00             	ret    $0x4
40aa53:	83 ca ff             	or     $0xffffffff,%edx
40aa56:	eb f5                	jmp    0x40aa4d
40aa58:	8b ff                	mov    %edi,%edi
40aa5a:	55                   	push   %ebp
40aa5b:	8b ec                	mov    %esp,%ebp
40aa5d:	51                   	push   %ecx
40aa5e:	53                   	push   %ebx
40aa5f:	56                   	push   %esi
40aa60:	8b f1                	mov    %ecx,%esi
40aa62:	57                   	push   %edi
40aa63:	ff 76 30             	push   0x30(%esi)
40aa66:	e8 87 a4 00 00       	call   0x414ef2
40aa6b:	83 7e 48 ff          	cmpl   $0xffffffff,0x48(%esi)
40aa6f:	8b c8                	mov    %eax,%ecx
40aa71:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40aa74:	bf 10 27 00 00       	mov    $0x2710,%edi
40aa79:	0f 85 cd 8c 01 00    	jne    0x42374c
40aa7f:	33 db                	xor    %ebx,%ebx
40aa81:	8d 46 14             	lea    0x14(%esi),%eax
40aa84:	57                   	push   %edi
40aa85:	8b d0                	mov    %eax,%edx
40aa87:	e8 f4 a0 00 00       	call   0x414b80
40aa8c:	8b 4e 28             	mov    0x28(%esi),%ecx
40aa8f:	83 b9 80 00 00 00 00 	cmpl   $0x0,0x80(%ecx)
40aa96:	7d 17                	jge    0x40aaaf
40aa98:	3d 02 01 00 00       	cmp    $0x102,%eax
40aa9d:	0f 84 ba 8c 01 00    	je     0x42375d
40aaa3:	8b c8                	mov    %eax,%ecx
40aaa5:	e8 9c a4 00 00       	call   0x414f46
40aaaa:	5f                   	pop    %edi
40aaab:	5e                   	pop    %esi
40aaac:	5b                   	pop    %ebx
40aaad:	c9                   	leave
40aaae:	c3                   	ret
40aaaf:	b8 b4 0d 04 80       	mov    $0x80040db4,%eax
40aab4:	eb f4                	jmp    0x40aaaa
40aab6:	8b ff                	mov    %edi,%edi
40aab8:	55                   	push   %ebp
40aab9:	8b ec                	mov    %esp,%ebp
40aabb:	51                   	push   %ecx
40aabc:	56                   	push   %esi
40aabd:	57                   	push   %edi
40aabe:	8b f9                	mov    %ecx,%edi
40aac0:	e8 3b 00 00 00       	call   0x40ab00
40aac5:	8b f0                	mov    %eax,%esi
40aac7:	83 ee 01             	sub    $0x1,%esi
40aaca:	78 2e                	js     0x40aafa
40aacc:	8d 45 fc             	lea    -0x4(%ebp),%eax
40aacf:	50                   	push   %eax
40aad0:	56                   	push   %esi
40aad1:	ff 37                	push   (%edi)
40aad3:	ff 15 dc a3 43 00    	call   *0x43a3dc
40aad9:	85 c0                	test   %eax,%eax
40aadb:	0f 84 ab 8c 01 00    	je     0x42378c
40aae1:	8b 45 fc             	mov    -0x4(%ebp),%eax
40aae4:	ff 75 08             	push   0x8(%ebp)
40aae7:	83 c0 08             	add    $0x8,%eax
40aaea:	50                   	push   %eax
40aaeb:	ff 15 7c a3 43 00    	call   *0x43a37c
40aaf1:	85 c0                	test   %eax,%eax
40aaf3:	74 d2                	je     0x40aac7
40aaf5:	e9 84 8c 01 00       	jmp    0x42377e
40aafa:	5f                   	pop    %edi
40aafb:	5e                   	pop    %esi
40aafc:	c9                   	leave
40aafd:	c2 04 00             	ret    $0x4
40ab00:	8b ff                	mov    %edi,%edi
40ab02:	55                   	push   %ebp
40ab03:	8b ec                	mov    %esp,%ebp
40ab05:	83 ec 10             	sub    $0x10,%esp
40ab08:	a1 08 85 43 00       	mov    0x438508,%eax
40ab0d:	33 c5                	xor    %ebp,%eax
40ab0f:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ab12:	83 39 00             	cmpl   $0x0,(%ecx)
40ab15:	74 27                	je     0x40ab3e
40ab17:	6a 02                	push   $0x2
40ab19:	6a 0c                	push   $0xc
40ab1b:	8d 45 f0             	lea    -0x10(%ebp),%eax
40ab1e:	50                   	push   %eax
40ab1f:	ff 31                	push   (%ecx)
40ab21:	ff 15 b4 a3 43 00    	call   *0x43a3b4
40ab27:	85 c0                	test   %eax,%eax
40ab29:	0f 84 70 8c 01 00    	je     0x42379f
40ab2f:	8b 45 f0             	mov    -0x10(%ebp),%eax
40ab32:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ab35:	33 cd                	xor    %ebp,%ecx
40ab37:	e8 84 fc 00 00       	call   0x41a7c0
40ab3c:	c9                   	leave
40ab3d:	c3                   	ret
40ab3e:	33 c0                	xor    %eax,%eax
40ab40:	eb f0                	jmp    0x40ab32
40ab42:	8b ff                	mov    %edi,%edi
40ab44:	55                   	push   %ebp
40ab45:	8b ec                	mov    %esp,%ebp
40ab47:	83 ec 0c             	sub    $0xc,%esp
40ab4a:	53                   	push   %ebx
40ab4b:	8b da                	mov    %edx,%ebx
40ab4d:	85 db                	test   %ebx,%ebx
40ab4f:	74 79                	je     0x40abca
40ab51:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40ab55:	74 73                	je     0x40abca
40ab57:	8b cb                	mov    %ebx,%ecx
40ab59:	8d 51 01             	lea    0x1(%ecx),%edx
40ab5c:	8a 01                	mov    (%ecx),%al
40ab5e:	41                   	inc    %ecx
40ab5f:	84 c0                	test   %al,%al
40ab61:	75 f9                	jne    0x40ab5c
40ab63:	2b ca                	sub    %edx,%ecx
40ab65:	33 d2                	xor    %edx,%edx
40ab67:	56                   	push   %esi
40ab68:	57                   	push   %edi
40ab69:	6a 0a                	push   $0xa
40ab6b:	8d 79 01             	lea    0x1(%ecx),%edi
40ab6e:	59                   	pop    %ecx
40ab6f:	8b c7                	mov    %edi,%eax
40ab71:	89 7d f8             	mov    %edi,-0x8(%ebp)
40ab74:	f7 f1                	div    %ecx
40ab76:	03 c7                	add    %edi,%eax
40ab78:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ab7b:	03 c0                	add    %eax,%eax
40ab7d:	50                   	push   %eax
40ab7e:	89 45 f4             	mov    %eax,-0xc(%ebp)
40ab81:	ff 15 5c a0 43 00    	call   *0x43a05c
40ab87:	8b f0                	mov    %eax,%esi
40ab89:	85 f6                	test   %esi,%esi
40ab8b:	0f 84 21 8c 01 00    	je     0x4237b2
40ab91:	ff 75 fc             	push   -0x4(%ebp)
40ab94:	56                   	push   %esi
40ab95:	57                   	push   %edi
40ab96:	53                   	push   %ebx
40ab97:	6a 00                	push   $0x0
40ab99:	6a 00                	push   $0x0
40ab9b:	ff 15 60 a2 43 00    	call   *0x43a260
40aba1:	85 c0                	test   %eax,%eax
40aba3:	0f 84 26 8c 01 00    	je     0x4237cf
40aba9:	33 ff                	xor    %edi,%edi
40abab:	8b 4d 08             	mov    0x8(%ebp),%ecx
40abae:	8b c6                	mov    %esi,%eax
40abb0:	33 f6                	xor    %esi,%esi
40abb2:	89 01                	mov    %eax,(%ecx)
40abb4:	85 f6                	test   %esi,%esi
40abb6:	75 09                	jne    0x40abc1
40abb8:	8b c7                	mov    %edi,%eax
40abba:	5f                   	pop    %edi
40abbb:	5e                   	pop    %esi
40abbc:	5b                   	pop    %ebx
40abbd:	c9                   	leave
40abbe:	c2 04 00             	ret    $0x4
40abc1:	56                   	push   %esi
40abc2:	ff 15 64 a0 43 00    	call   *0x43a064
40abc8:	eb ee                	jmp    0x40abb8
40abca:	b8 03 40 00 80       	mov    $0x80004003,%eax
40abcf:	eb eb                	jmp    0x40abbc
40abd1:	6a 30                	push   $0x30
40abd3:	b8 37 ee 41 00       	mov    $0x41ee37,%eax
40abd8:	e8 31 02 01 00       	call   0x41ae0e
40abdd:	33 db                	xor    %ebx,%ebx
40abdf:	21 5d e8             	and    %ebx,-0x18(%ebp)
40abe2:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40abe5:	21 5d fc             	and    %ebx,-0x4(%ebp)
40abe8:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40abeb:	e8 5f 13 01 00       	call   0x41bf4f
40abf0:	50                   	push   %eax
40abf1:	6a 08                	push   $0x8
40abf3:	ff 15 e8 a1 43 00    	call   *0x43a1e8
40abf9:	50                   	push   %eax
40abfa:	ff 15 ec a1 43 00    	call   *0x43a1ec
40ac00:	85 c0                	test   %eax,%eax
40ac02:	75 1e                	jne    0x40ac22
40ac04:	ff 15 a8 a0 43 00    	call   *0x43a0a8
40ac0a:	8b d8                	mov    %eax,%ebx
40ac0c:	85 db                	test   %ebx,%ebx
40ac0e:	0f 8e db 02 00 00    	jle    0x40aeef
40ac14:	0f b7 db             	movzwl %bx,%ebx
40ac17:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
40ac1d:	e9 cd 02 00 00       	jmp    0x40aeef
40ac22:	33 ff                	xor    %edi,%edi
40ac24:	89 7d e0             	mov    %edi,-0x20(%ebp)
40ac27:	33 f6                	xor    %esi,%esi
40ac29:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40ac2c:	8d 45 ec             	lea    -0x14(%ebp),%eax
40ac2f:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40ac33:	50                   	push   %eax
40ac34:	56                   	push   %esi
40ac35:	56                   	push   %esi
40ac36:	6a 01                	push   $0x1
40ac38:	ff 75 e8             	push   -0x18(%ebp)
40ac3b:	ff 15 e0 a3 43 00    	call   *0x43a3e0
40ac41:	ff 15 a8 a0 43 00    	call   *0x43a0a8
40ac47:	83 f8 7a             	cmp    $0x7a,%eax
40ac4a:	74 13                	je     0x40ac5f
40ac4c:	85 c0                	test   %eax,%eax
40ac4e:	7f 04                	jg     0x40ac54
40ac50:	8b d8                	mov    %eax,%ebx
40ac52:	eb 2c                	jmp    0x40ac80
40ac54:	0f b7 d8             	movzwl %ax,%ebx
40ac57:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
40ac5d:	eb 21                	jmp    0x40ac80
40ac5f:	ff 75 ec             	push   -0x14(%ebp)
40ac62:	8b 3d 3c 1a 40 00    	mov    0x401a3c,%edi
40ac68:	8b cf                	mov    %edi,%ecx
40ac6a:	ff 15 20 a5 43 00    	call   *0x43a520
40ac70:	ff d7                	call   *%edi
40ac72:	8b f8                	mov    %eax,%edi
40ac74:	89 7d e0             	mov    %edi,-0x20(%ebp)
40ac77:	85 ff                	test   %edi,%edi
40ac79:	75 10                	jne    0x40ac8b
40ac7b:	bb 0e 00 07 80       	mov    $0x8007000e,%ebx
40ac80:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40ac83:	85 db                	test   %ebx,%ebx
40ac85:	0f 88 c5 00 00 00    	js     0x40ad50
40ac8b:	8d 45 ec             	lea    -0x14(%ebp),%eax
40ac8e:	50                   	push   %eax
40ac8f:	ff 75 ec             	push   -0x14(%ebp)
40ac92:	57                   	push   %edi
40ac93:	6a 01                	push   $0x1
40ac95:	ff 75 e8             	push   -0x18(%ebp)
40ac98:	ff 15 e0 a3 43 00    	call   *0x43a3e0
40ac9e:	85 c0                	test   %eax,%eax
40aca0:	75 1b                	jne    0x40acbd
40aca2:	ff 15 a8 a0 43 00    	call   *0x43a0a8
40aca8:	8b d8                	mov    %eax,%ebx
40acaa:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40acad:	85 db                	test   %ebx,%ebx
40acaf:	7e 0e                	jle    0x40acbf
40acb1:	0f b7 db             	movzwl %bx,%ebx
40acb4:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
40acba:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40acbd:	85 db                	test   %ebx,%ebx
40acbf:	0f 88 8b 00 00 00    	js     0x40ad50
40acc5:	8d 45 ec             	lea    -0x14(%ebp),%eax
40acc8:	50                   	push   %eax
40acc9:	6a 00                	push   $0x0
40accb:	6a 00                	push   $0x0
40accd:	6a 05                	push   $0x5
40accf:	ff 75 e8             	push   -0x18(%ebp)
40acd2:	ff 15 e0 a3 43 00    	call   *0x43a3e0
40acd8:	ff 15 a8 a0 43 00    	call   *0x43a0a8
40acde:	83 f8 7a             	cmp    $0x7a,%eax
40ace1:	74 13                	je     0x40acf6
40ace3:	85 c0                	test   %eax,%eax
40ace5:	7f 04                	jg     0x40aceb
40ace7:	8b d8                	mov    %eax,%ebx
40ace9:	eb 2c                	jmp    0x40ad17
40aceb:	0f b7 d8             	movzwl %ax,%ebx
40acee:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
40acf4:	eb 21                	jmp    0x40ad17
40acf6:	ff 75 ec             	push   -0x14(%ebp)
40acf9:	8b 35 3c 1a 40 00    	mov    0x401a3c,%esi
40acff:	8b ce                	mov    %esi,%ecx
40ad01:	ff 15 20 a5 43 00    	call   *0x43a520
40ad07:	ff d6                	call   *%esi
40ad09:	8b f0                	mov    %eax,%esi
40ad0b:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40ad0e:	85 f6                	test   %esi,%esi
40ad10:	75 08                	jne    0x40ad1a
40ad12:	bb 0e 00 07 80       	mov    $0x8007000e,%ebx
40ad17:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40ad1a:	85 db                	test   %ebx,%ebx
40ad1c:	78 32                	js     0x40ad50
40ad1e:	8d 45 ec             	lea    -0x14(%ebp),%eax
40ad21:	50                   	push   %eax
40ad22:	ff 75 ec             	push   -0x14(%ebp)
40ad25:	56                   	push   %esi
40ad26:	6a 05                	push   $0x5
40ad28:	ff 75 e8             	push   -0x18(%ebp)
40ad2b:	ff 15 e0 a3 43 00    	call   *0x43a3e0
40ad31:	85 c0                	test   %eax,%eax
40ad33:	75 1b                	jne    0x40ad50
40ad35:	ff 15 a8 a0 43 00    	call   *0x43a0a8
40ad3b:	8b d8                	mov    %eax,%ebx
40ad3d:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40ad40:	85 db                	test   %ebx,%ebx
40ad42:	7e 0c                	jle    0x40ad50
40ad44:	0f b7 db             	movzwl %bx,%ebx
40ad47:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
40ad4d:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40ad50:	33 f6                	xor    %esi,%esi
40ad52:	89 75 dc             	mov    %esi,-0x24(%ebp)
40ad55:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40ad59:	85 db                	test   %ebx,%ebx
40ad5b:	0f 88 40 01 00 00    	js     0x40aea1
40ad61:	ff 37                	push   (%edi)
40ad63:	ff 15 d8 a3 43 00    	call   *0x43a3d8
40ad69:	8b 35 3c 1a 40 00    	mov    0x401a3c,%esi
40ad6f:	83 c0 10             	add    $0x10,%eax
40ad72:	50                   	push   %eax
40ad73:	8b ce                	mov    %esi,%ecx
40ad75:	89 45 d8             	mov    %eax,-0x28(%ebp)
40ad78:	ff 15 20 a5 43 00    	call   *0x43a520
40ad7e:	ff d6                	call   *%esi
40ad80:	8b f0                	mov    %eax,%esi
40ad82:	89 75 dc             	mov    %esi,-0x24(%ebp)
40ad85:	85 f6                	test   %esi,%esi
40ad87:	75 08                	jne    0x40ad91
40ad89:	bb 0e 00 07 80       	mov    $0x8007000e,%ebx
40ad8e:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40ad91:	85 db                	test   %ebx,%ebx
40ad93:	0f 88 08 01 00 00    	js     0x40aea1
40ad99:	6a 01                	push   $0x1
40ad9b:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40ad9e:	50                   	push   %eax
40ad9f:	ff 15 b8 a3 43 00    	call   *0x43a3b8
40ada5:	85 c0                	test   %eax,%eax
40ada7:	74 5e                	je     0x40ae07
40ada9:	6a 00                	push   $0x0
40adab:	ff 37                	push   (%edi)
40adad:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40adb0:	50                   	push   %eax
40adb1:	ff 15 a8 a3 43 00    	call   *0x43a3a8
40adb7:	85 c0                	test   %eax,%eax
40adb9:	74 4c                	je     0x40ae07
40adbb:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40adbe:	6a 00                	push   $0x0
40adc0:	ff 30                	push   (%eax)
40adc2:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40adc5:	50                   	push   %eax
40adc6:	ff 15 94 a3 43 00    	call   *0x43a394
40adcc:	85 c0                	test   %eax,%eax
40adce:	74 37                	je     0x40ae07
40add0:	6a 02                	push   $0x2
40add2:	ff 75 d8             	push   -0x28(%ebp)
40add5:	56                   	push   %esi
40add6:	ff 15 c4 a3 43 00    	call   *0x43a3c4
40addc:	85 c0                	test   %eax,%eax
40adde:	74 27                	je     0x40ae07