40a9a3:	8b d9                	mov    %ecx,%ebx
40a9a5:	8d 73 18             	lea    0x18(%ebx),%esi
40a9a8:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40a9ac:	72 04                	jb     0x40a9b2
40a9ae:	8b 06                	mov    (%esi),%eax
40a9b0:	eb 02                	jmp    0x40a9b4
40a9b2:	8b c6                	mov    %esi,%eax
40a9b4:	6a 02                	push   $0x2
40a9b6:	6a 01                	push   $0x1
40a9b8:	50                   	push   %eax
40a9b9:	ff 15 28 20 41 00    	call   *0x412028
40a9bf:	8b f8                	mov    %eax,%edi
40a9c1:	85 ff                	test   %edi,%edi
40a9c3:	0f 84 14 01 00 00    	je     0x40aadd
40a9c9:	a1 30 20 41 00       	mov    0x412030,%eax
40a9ce:	33 c9                	xor    %ecx,%ecx
40a9d0:	88 4d d4             	mov    %cl,-0x2c(%ebp)
40a9d3:	89 45 d8             	mov    %eax,-0x28(%ebp)
40a9d6:	89 7d dc             	mov    %edi,-0x24(%ebp)
40a9d9:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40a9dc:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40a9df:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40a9e2:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40a9e5:	8d 45 f0             	lea    -0x10(%ebp),%eax
40a9e8:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40a9ec:	50                   	push   %eax
40a9ed:	8d 45 e0             	lea    -0x20(%ebp),%eax
40a9f0:	50                   	push   %eax
40a9f1:	51                   	push   %ecx
40a9f2:	6a 1b                	push   $0x1b
40a9f4:	5a                   	pop    %edx
40a9f5:	8b cf                	mov    %edi,%ecx
40a9f7:	e8 69 d6 ff ff       	call   0x408065
40a9fc:	85 c0                	test   %eax,%eax
40a9fe:	0f 85 e9 00 00 00    	jne    0x40aaed
40aa04:	8b 45 f0             	mov    -0x10(%ebp),%eax
40aa07:	83 78 0c 02          	cmpl   $0x2,0xc(%eax)
40aa0b:	75 36                	jne    0x40aa43
40aa0d:	83 38 00             	cmpl   $0x0,(%eax)
40aa10:	75 31                	jne    0x40aa43
40aa12:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40aa16:	72 02                	jb     0x40aa1a
40aa18:	8b 36                	mov    (%esi),%esi
40aa1a:	6a 00                	push   $0x0
40aa1c:	6a 00                	push   $0x0
40aa1e:	56                   	push   %esi
40aa1f:	ff 15 1c 20 41 00    	call   *0x41201c
40aa25:	85 c0                	test   %eax,%eax
40aa27:	0f 84 cd 00 00 00    	je     0x40aafa
40aa2d:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40aa30:	e8 e2 b4 ff ff       	call   0x405f17
40aa35:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40aa38:	e8 26 b4 ff ff       	call   0x405e63
40aa3d:	e8 da 3b 00 00       	call   0x40e61c
40aa42:	c3                   	ret
40aa43:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
40aa47:	8d 45 f0             	lea    -0x10(%ebp),%eax
40aa4a:	50                   	push   %eax
40aa4b:	8d 45 e0             	lea    -0x20(%ebp),%eax
40aa4e:	33 d2                	xor    %edx,%edx
40aa50:	50                   	push   %eax
40aa51:	51                   	push   %ecx
40aa52:	42                   	inc    %edx
40aa53:	8b cf                	mov    %edi,%ecx
40aa55:	e8 0b d6 ff ff       	call   0x408065
40aa5a:	85 c0                	test   %eax,%eax
40aa5c:	74 0a                	je     0x40aa68
40aa5e:	68 50 2e 40 00       	push   $0x402e50
40aa63:	e9 8a 00 00 00       	jmp    0x40aaf2
40aa68:	8b 45 f0             	mov    -0x10(%ebp),%eax
40aa6b:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40aa6f:	74 61                	je     0x40aad2
40aa71:	8b 38                	mov    (%eax),%edi
40aa73:	8d 45 ec             	lea    -0x14(%ebp),%eax
40aa76:	50                   	push   %eax
40aa77:	57                   	push   %edi
40aa78:	ff 15 24 20 41 00    	call   *0x412024
40aa7e:	85 c0                	test   %eax,%eax
40aa80:	75 0d                	jne    0x40aa8f
40aa82:	ff 15 70 20 41 00    	call   *0x412070
40aa88:	68 6c 2e 40 00       	push   $0x402e6c
40aa8d:	eb 63                	jmp    0x40aaf2
40aa8f:	33 f6                	xor    %esi,%esi
40aa91:	39 75 ec             	cmp    %esi,-0x14(%ebp)
40aa94:	76 97                	jbe    0x40aa2d
40aa96:	8d 45 f0             	lea    -0x10(%ebp),%eax
40aa99:	50                   	push   %eax
40aa9a:	8d 45 e0             	lea    -0x20(%ebp),%eax
40aa9d:	50                   	push   %eax
40aa9e:	51                   	push   %ecx
40aa9f:	56                   	push   %esi
40aaa0:	6a 02                	push   $0x2
40aaa2:	5a                   	pop    %edx
40aaa3:	8b cf                	mov    %edi,%ecx
40aaa5:	e8 51 d6 ff ff       	call   0x4080fb
40aaaa:	85 c0                	test   %eax,%eax
40aaac:	75 1d                	jne    0x40aacb
40aaae:	8b 45 f0             	mov    -0x10(%ebp),%eax
40aab1:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40aab5:	74 09                	je     0x40aac0
40aab7:	ff 30                	push   (%eax)
40aab9:	8b cb                	mov    %ebx,%ecx
40aabb:	e8 08 fe ff ff       	call   0x40a8c8
40aac0:	46                   	inc    %esi
40aac1:	3b 75 ec             	cmp    -0x14(%ebp),%esi
40aac4:	72 d0                	jb     0x40aa96
40aac6:	e9 62 ff ff ff       	jmp    0x40aa2d
40aacb:	68 c0 2e 40 00       	push   $0x402ec0
40aad0:	eb 20                	jmp    0x40aaf2
40aad2:	68 50 2e 40 00       	push   $0x402e50
40aad7:	6a 0e                	push   $0xe
40aad9:	6a 0d                	push   $0xd
40aadb:	eb 18                	jmp    0x40aaf5
40aadd:	ff 15 70 20 41 00    	call   *0x412070
40aae3:	6a 08                	push   $0x8
40aae5:	5a                   	pop    %edx
40aae6:	8b c8                	mov    %eax,%ecx
40aae8:	e8 f6 ca ff ff       	call   0x4075e3
40aaed:	68 f8 26 40 00       	push   $0x4026f8
40aaf2:	6a 0e                	push   $0xe
40aaf4:	50                   	push   %eax
40aaf5:	e8 1b cb ff ff       	call   0x407615
40aafa:	6a 11                	push   $0x11
40aafc:	ff 15 70 20 41 00    	call   *0x412070
40ab02:	50                   	push   %eax
40ab03:	e8 0d cb ff ff       	call   0x407615
40ab08:	cc                   	int3
40ab09:	cc                   	int3
40ab0a:	cc                   	int3
40ab0b:	cc                   	int3
40ab0c:	cc                   	int3
40ab0d:	cc                   	int3
40ab0e:	cc                   	int3
40ab0f:	cc                   	int3
40ab10:	8b ff                	mov    %edi,%edi
40ab12:	53                   	push   %ebx
40ab13:	56                   	push   %esi
40ab14:	8b f1                	mov    %ecx,%esi
40ab16:	6a 18                	push   $0x18
40ab18:	5b                   	pop    %ebx
40ab19:	8b 4e 08             	mov    0x8(%esi),%ecx
40ab1c:	8b 51 14             	mov    0x14(%ecx),%edx
40ab1f:	2b 51 10             	sub    0x10(%ecx),%edx
40ab22:	8d 42 d0             	lea    -0x30(%edx),%eax
40ab25:	3b c3                	cmp    %ebx,%eax
40ab27:	73 09                	jae    0x40ab32
40ab29:	8b ce                	mov    %esi,%ecx
40ab2b:	5e                   	pop    %esi
40ab2c:	5b                   	pop    %ebx
40ab2d:	e9 65 fe ff ff       	jmp    0x40a997
40ab32:	8b c2                	mov    %edx,%eax
40ab34:	99                   	cltd
40ab35:	f7 fb                	idiv   %ebx
40ab37:	57                   	push   %edi
40ab38:	6a 02                	push   $0x2
40ab3a:	5f                   	pop    %edi
40ab3b:	3b c7                	cmp    %edi,%eax
40ab3d:	7e 1f                	jle    0x40ab5e
40ab3f:	57                   	push   %edi
40ab40:	e8 0b bf ff ff       	call   0x406a50
40ab45:	50                   	push   %eax
40ab46:	8b ce                	mov    %esi,%ecx
40ab48:	e8 7b fd ff ff       	call   0x40a8c8
40ab4d:	8b 4e 08             	mov    0x8(%esi),%ecx
40ab50:	47                   	inc    %edi
40ab51:	8b 41 14             	mov    0x14(%ecx),%eax
40ab54:	2b 41 10             	sub    0x10(%ecx),%eax
40ab57:	99                   	cltd
40ab58:	f7 fb                	idiv   %ebx
40ab5a:	3b f8                	cmp    %eax,%edi
40ab5c:	7c e1                	jl     0x40ab3f
40ab5e:	5f                   	pop    %edi
40ab5f:	5e                   	pop    %esi
40ab60:	5b                   	pop    %ebx
40ab61:	c3                   	ret
40ab62:	cc                   	int3
40ab63:	cc                   	int3
40ab64:	cc                   	int3
40ab65:	cc                   	int3
40ab66:	cc                   	int3
40ab67:	cc                   	int3
40ab68:	cc                   	int3
40ab69:	cc                   	int3
40ab6a:	cc                   	int3
40ab6b:	cc                   	int3
40ab6c:	cc                   	int3
40ab6d:	cc                   	int3
40ab6e:	cc                   	int3
40ab6f:	cc                   	int3
40ab70:	8b ff                	mov    %edi,%edi
40ab72:	55                   	push   %ebp
40ab73:	8b ec                	mov    %esp,%ebp
40ab75:	8b 45 08             	mov    0x8(%ebp),%eax
40ab78:	8b 08                	mov    (%eax),%ecx
40ab7a:	8b 40 04             	mov    0x4(%eax),%eax
40ab7d:	2b c1                	sub    %ecx,%eax
40ab7f:	d1 f8                	sar    $1,%eax
40ab81:	74 0d                	je     0x40ab90
40ab83:	03 c0                	add    %eax,%eax
40ab85:	74 09                	je     0x40ab90
40ab87:	c6 01 00             	movb   $0x0,(%ecx)
40ab8a:	41                   	inc    %ecx
40ab8b:	83 e8 01             	sub    $0x1,%eax
40ab8e:	75 f7                	jne    0x40ab87
40ab90:	5d                   	pop    %ebp
40ab91:	c2 04 00             	ret    $0x4
40ab94:	8b ff                	mov    %edi,%edi
40ab96:	56                   	push   %esi
40ab97:	57                   	push   %edi
40ab98:	8b f9                	mov    %ecx,%edi
40ab9a:	8d 77 48             	lea    0x48(%edi),%esi
40ab9d:	c7 07 bc 15 40 00    	movl   $0x4015bc,(%edi)
40aba3:	56                   	push   %esi
40aba4:	e8 c7 ff ff ff       	call   0x40ab70
40aba9:	8b ce                	mov    %esi,%ecx
40abab:	e8 67 b3 ff ff       	call   0x405f17
40abb0:	6a 00                	push   $0x0
40abb2:	6a 01                	push   $0x1
40abb4:	8d 4f 30             	lea    0x30(%edi),%ecx
40abb7:	e8 34 b9 ff ff       	call   0x4064f0
40abbc:	6a 00                	push   $0x0
40abbe:	6a 01                	push   $0x1
40abc0:	8d 4f 18             	lea    0x18(%edi),%ecx
40abc3:	e8 28 b9 ff ff       	call   0x4064f0
40abc8:	8b cf                	mov    %edi,%ecx
40abca:	5f                   	pop    %edi
40abcb:	5e                   	pop    %esi
40abcc:	e9 c1 a9 ff ff       	jmp    0x405592
40abd1:	cc                   	int3
40abd2:	cc                   	int3
40abd3:	cc                   	int3
40abd4:	cc                   	int3
40abd5:	cc                   	int3
40abd6:	cc                   	int3
40abd7:	cc                   	int3
40abd8:	cc                   	int3
40abd9:	cc                   	int3
40abda:	cc                   	int3
40abdb:	cc                   	int3
40abdc:	cc                   	int3
40abdd:	cc                   	int3
40abde:	cc                   	int3
40abdf:	cc                   	int3
40abe0:	8b ff                	mov    %edi,%edi
40abe2:	56                   	push   %esi
40abe3:	6a 2f                	push   $0x2f
40abe5:	8b f1                	mov    %ecx,%esi
40abe7:	e8 50 b9 ff ff       	call   0x40653c
40abec:	6a 30                	push   $0x30
40abee:	8b ce                	mov    %esi,%ecx
40abf0:	e8 47 b9 ff ff       	call   0x40653c
40abf5:	5e                   	pop    %esi
40abf6:	c3                   	ret
40abf7:	cc                   	int3
40abf8:	cc                   	int3
40abf9:	cc                   	int3
40abfa:	cc                   	int3
40abfb:	cc                   	int3
40abfc:	cc                   	int3
40abfd:	cc                   	int3
40abfe:	cc                   	int3
40abff:	cc                   	int3
40ac00:	8b ff                	mov    %edi,%edi
40ac02:	55                   	push   %ebp
40ac03:	8b ec                	mov    %esp,%ebp
40ac05:	51                   	push   %ecx
40ac06:	51                   	push   %ecx
40ac07:	53                   	push   %ebx
40ac08:	56                   	push   %esi
40ac09:	57                   	push   %edi
40ac0a:	8b f9                	mov    %ecx,%edi
40ac0c:	68 30 10 41 00       	push   $0x411030
40ac11:	8b 4f 08             	mov    0x8(%edi),%ecx
40ac14:	e8 77 be ff ff       	call   0x406a90
40ac19:	8b 4f 08             	mov    0x8(%edi),%ecx
40ac1c:	8d 45 f8             	lea    -0x8(%ebp),%eax
40ac1f:	68 b0 41 40 00       	push   $0x4041b0
40ac24:	bb 30 40 40 00       	mov    $0x404030,%ebx
40ac29:	53                   	push   %ebx
40ac2a:	8b 71 08             	mov    0x8(%ecx),%esi
40ac2d:	50                   	push   %eax
40ac2e:	e8 54 a7 ff ff       	call   0x405387
40ac33:	8b 4f 08             	mov    0x8(%edi),%ecx
40ac36:	39 30                	cmp    %esi,(%eax)
40ac38:	74 31                	je     0x40ac6b
40ac3a:	68 10 10 41 00       	push   $0x411010
40ac3f:	e8 4c be ff ff       	call   0x406a90
40ac44:	8b 4f 08             	mov    0x8(%edi),%ecx
40ac47:	6a 01                	push   $0x1
40ac49:	6a 01                	push   $0x1
40ac4b:	e8 71 bf ff ff       	call   0x406bc1
40ac50:	8b 4f 08             	mov    0x8(%edi),%ecx
40ac53:	8d 45 ff             	lea    -0x1(%ebp),%eax
40ac56:	50                   	push   %eax
40ac57:	68 7c 24 40 00       	push   $0x40247c
40ac5c:	68 b0 41 40 00       	push   $0x4041b0
40ac61:	53                   	push   %ebx
40ac62:	e8 e3 bc ff ff       	call   0x40694a
40ac67:	6a 30                	push   $0x30
40ac69:	eb 15                	jmp    0x40ac80
40ac6b:	6a 02                	push   $0x2
40ac6d:	6a 02                	push   $0x2
40ac6f:	e8 4d bf ff ff       	call   0x406bc1
40ac74:	8b 4f 08             	mov    0x8(%edi),%ecx
40ac77:	6a 01                	push   $0x1
40ac79:	e8 d2 bd ff ff       	call   0x406a50
40ac7e:	6a 18                	push   $0x18
40ac80:	59                   	pop    %ecx
40ac81:	50                   	push   %eax
40ac82:	03 cf                	add    %edi,%ecx
40ac84:	e8 18 b8 ff ff       	call   0x4064a1
40ac89:	8b 4f 08             	mov    0x8(%edi),%ecx
40ac8c:	8d 45 f8             	lea    -0x8(%ebp),%eax
40ac8f:	68 cc 3f 40 00       	push   $0x403fcc
40ac94:	68 c0 2e 40 00       	push   $0x402ec0
40ac99:	50                   	push   %eax
40ac9a:	8b 71 08             	mov    0x8(%ecx),%esi
40ac9d:	e8 e5 a6 ff ff       	call   0x405387
40aca2:	39 30                	cmp    %esi,(%eax)
40aca4:	0f 85 ae 00 00 00    	jne    0x40ad58
40acaa:	8b 4f 08             	mov    0x8(%edi),%ecx
40acad:	8d 45 f8             	lea    -0x8(%ebp),%eax
40acb0:	68 40 40 40 00       	push   $0x404040
40acb5:	53                   	push   %ebx
40acb6:	50                   	push   %eax
40acb7:	8b 71 08             	mov    0x8(%ecx),%esi
40acba:	e8 c8 a6 ff ff       	call   0x405387
40acbf:	39 30                	cmp    %esi,(%eax)
40acc1:	0f 85 91 00 00 00    	jne    0x40ad58
40acc7:	8b 4f 08             	mov    0x8(%edi),%ecx
40acca:	8d 45 f8             	lea    -0x8(%ebp),%eax
40accd:	68 d4 3f 40 00       	push   $0x403fd4
40acd2:	68 08 2f 40 00       	push   $0x402f08
40acd7:	50                   	push   %eax
40acd8:	8b 71 08             	mov    0x8(%ecx),%esi
40acdb:	e8 a7 a6 ff ff       	call   0x405387
40ace0:	39 30                	cmp    %esi,(%eax)
40ace2:	75 79                	jne    0x40ad5d
40ace4:	8b 4f 08             	mov    0x8(%edi),%ecx
40ace7:	8d 45 f8             	lea    -0x8(%ebp),%eax
40acea:	68 fc 3f 40 00       	push   $0x403ffc
40acef:	68 dc 3f 40 00       	push   $0x403fdc
40acf4:	50                   	push   %eax
40acf5:	8b 71 08             	mov    0x8(%ecx),%esi
40acf8:	e8 8a a6 ff ff       	call   0x405387
40acfd:	39 30                	cmp    %esi,(%eax)
40acff:	75 5c                	jne    0x40ad5d
40ad01:	8b 4f 08             	mov    0x8(%edi),%ecx
40ad04:	8d 45 f8             	lea    -0x8(%ebp),%eax
40ad07:	68 28 40 40 00       	push   $0x404028