40296b:	50                   	push   %eax
40296c:	89 5d c8             	mov    %ebx,-0x38(%ebp)
40296f:	e8 c2 65 00 00       	call   0x408f36
402974:	53                   	push   %ebx
402975:	6a 14                	push   $0x14
402977:	56                   	push   %esi
402978:	6a 10                	push   $0x10
40297a:	ff 15 cc d7 40 00    	call   *0x40d7cc
402980:	3d 04 00 00 c0       	cmp    $0xc0000004,%eax
402985:	74 15                	je     0x40299c
402987:	3b c3                	cmp    %ebx,%eax
402989:	74 11                	je     0x40299c
40298b:	8d 45 c0             	lea    -0x40(%ebp),%eax
40298e:	68 d8 a5 40 00       	push   $0x40a5d8
402993:	50                   	push   %eax
402994:	89 5d c0             	mov    %ebx,-0x40(%ebp)
402997:	e8 9a 65 00 00       	call   0x408f36
40299c:	8b 06                	mov    (%esi),%eax
40299e:	56                   	push   %esi
40299f:	89 45 dc             	mov    %eax,-0x24(%ebp)
4029a2:	ff 15 48 a1 40 00    	call   *0x40a148
4029a8:	8b 45 dc             	mov    -0x24(%ebp),%eax
4029ab:	8d 04 80             	lea    (%eax,%eax,4),%eax
4029ae:	8d 04 85 04 00 00 00 	lea    0x4(,%eax,4),%eax
4029b5:	50                   	push   %eax
4029b6:	ff 15 44 a1 40 00    	call   *0x40a144
4029bc:	59                   	pop    %ecx
4029bd:	3b c3                	cmp    %ebx,%eax
4029bf:	59                   	pop    %ecx
4029c0:	89 45 e8             	mov    %eax,-0x18(%ebp)
4029c3:	75 11                	jne    0x4029d6
4029c5:	8d 45 cc             	lea    -0x34(%ebp),%eax
4029c8:	68 d8 a5 40 00       	push   $0x40a5d8
4029cd:	50                   	push   %eax
4029ce:	89 5d cc             	mov    %ebx,-0x34(%ebp)
4029d1:	e8 60 65 00 00       	call   0x408f36
4029d6:	8b 45 dc             	mov    -0x24(%ebp),%eax
4029d9:	53                   	push   %ebx
4029da:	c1 e0 04             	shl    $0x4,%eax
4029dd:	83 c0 04             	add    $0x4,%eax
4029e0:	50                   	push   %eax
4029e1:	ff 75 e8             	push   -0x18(%ebp)
4029e4:	6a 10                	push   $0x10
4029e6:	ff 15 cc d7 40 00    	call   *0x40d7cc
4029ec:	3b c3                	cmp    %ebx,%eax
4029ee:	74 11                	je     0x402a01
4029f0:	8d 45 c4             	lea    -0x3c(%ebp),%eax
4029f3:	68 d8 a5 40 00       	push   $0x40a5d8
4029f8:	50                   	push   %eax
4029f9:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
4029fc:	e8 35 65 00 00       	call   0x408f36
402a01:	ff 77 08             	push   0x8(%edi)
402a04:	6a 01                	push   $0x1
402a06:	6a 40                	push   $0x40
402a08:	ff 15 0c a1 40 00    	call   *0x40a10c
402a0e:	3b c3                	cmp    %ebx,%eax
402a10:	89 45 e0             	mov    %eax,-0x20(%ebp)
402a13:	75 11                	jne    0x402a26
402a15:	8d 45 d4             	lea    -0x2c(%ebp),%eax
402a18:	68 d8 a5 40 00       	push   $0x40a5d8
402a1d:	50                   	push   %eax
402a1e:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
402a21:	e8 10 65 00 00       	call   0x408f36
402a26:	ff 15 d8 a0 40 00    	call   *0x40a0d8
402a2c:	53                   	push   %ebx
402a2d:	53                   	push   %ebx
402a2e:	6a 0b                	push   $0xb
402a30:	89 5d ec             	mov    %ebx,-0x14(%ebp)
402a33:	ff 37                	push   (%edi)
402a35:	ff 15 dc a2 40 00    	call   *0x40a2dc
402a3b:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
402a3e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
402a41:	3b 45 dc             	cmp    -0x24(%ebp),%eax
402a44:	0f 8d 04 04 00 00    	jge    0x402e4e
402a4a:	39 5d 08             	cmp    %ebx,0x8(%ebp)
402a4d:	74 09                	je     0x402a58
402a4f:	ff 75 08             	push   0x8(%ebp)
402a52:	ff 15 dc a0 40 00    	call   *0x40a0dc
402a58:	8b 45 e4             	mov    -0x1c(%ebp),%eax
402a5b:	8b 4d e8             	mov    -0x18(%ebp),%ecx
402a5e:	c1 e0 04             	shl    $0x4,%eax
402a61:	8d 74 08 04          	lea    0x4(%eax,%ecx,1),%esi
402a65:	0f b7 44 08 04       	movzwl 0x4(%eax,%ecx,1),%eax
402a6a:	3b 47 08             	cmp    0x8(%edi),%eax
402a6d:	0f 85 d3 03 00 00    	jne    0x402e46
402a73:	6a 02                	push   $0x2
402a75:	53                   	push   %ebx
402a76:	8d 45 08             	lea    0x8(%ebp),%eax
402a79:	53                   	push   %ebx
402a7a:	50                   	push   %eax
402a7b:	ff 15 d8 a0 40 00    	call   *0x40a0d8
402a81:	50                   	push   %eax
402a82:	0f b7 46 06          	movzwl 0x6(%esi),%eax
402a86:	50                   	push   %eax
402a87:	ff 75 e0             	push   -0x20(%ebp)
402a8a:	ff 15 e0 a0 40 00    	call   *0x40a0e0
402a90:	85 c0                	test   %eax,%eax
402a92:	0f 84 ae 03 00 00    	je     0x402e46
402a98:	8d 45 ec             	lea    -0x14(%ebp),%eax
402a9b:	50                   	push   %eax
402a9c:	53                   	push   %ebx
402a9d:	53                   	push   %ebx
402a9e:	6a 02                	push   $0x2
402aa0:	ff 75 08             	push   0x8(%ebp)
402aa3:	ff 15 d0 d7 40 00    	call   *0x40d7d0
402aa9:	3d 04 00 00 c0       	cmp    $0xc0000004,%eax
402aae:	0f 85 92 03 00 00    	jne    0x402e46
402ab4:	83 7d ec 01          	cmpl   $0x1,-0x14(%ebp)
402ab8:	0f 82 88 03 00 00    	jb     0x402e46
402abe:	ff 75 ec             	push   -0x14(%ebp)
402ac1:	ff 15 44 a1 40 00    	call   *0x40a144
402ac7:	8b f0                	mov    %eax,%esi
402ac9:	59                   	pop    %ecx
402aca:	3b f3                	cmp    %ebx,%esi
402acc:	0f 84 74 03 00 00    	je     0x402e46
402ad2:	8d 45 ec             	lea    -0x14(%ebp),%eax
402ad5:	50                   	push   %eax
402ad6:	ff 75 ec             	push   -0x14(%ebp)
402ad9:	56                   	push   %esi
402ada:	6a 02                	push   $0x2
402adc:	ff 75 08             	push   0x8(%ebp)
402adf:	ff 15 d0 d7 40 00    	call   *0x40d7d0
402ae5:	3b c3                	cmp    %ebx,%eax
402ae7:	0f 85 59 03 00 00    	jne    0x402e46
402aed:	53                   	push   %ebx
402aee:	53                   	push   %ebx
402aef:	8d 85 50 fd ff ff    	lea    -0x2b0(%ebp),%eax
402af5:	68 04 01 00 00       	push   $0x104
402afa:	50                   	push   %eax
402afb:	0f b7 06             	movzwl (%esi),%eax
402afe:	50                   	push   %eax
402aff:	ff 76 04             	push   0x4(%esi)
402b02:	53                   	push   %ebx
402b03:	53                   	push   %ebx
402b04:	ff 15 e4 a0 40 00    	call   *0x40a0e4
402b0a:	85 c0                	test   %eax,%eax
402b0c:	56                   	push   %esi
402b0d:	75 0c                	jne    0x402b1b
402b0f:	ff 15 48 a1 40 00    	call   *0x40a148
402b15:	59                   	pop    %ecx
402b16:	e9 2b 03 00 00       	jmp    0x402e46
402b1b:	ff 15 48 a1 40 00    	call   *0x40a148
402b21:	ff 45 98             	incl   -0x68(%ebp)
402b24:	8d 85 50 fd ff ff    	lea    -0x2b0(%ebp),%eax
402b2a:	89 45 a8             	mov    %eax,-0x58(%ebp)
402b2d:	8b 45 98             	mov    -0x68(%ebp),%eax
402b30:	3b 47 04             	cmp    0x4(%edi),%eax
402b33:	59                   	pop    %ecx
402b34:	8d 45 94             	lea    -0x6c(%ebp),%eax
402b37:	89 5d 9c             	mov    %ebx,-0x64(%ebp)
402b3a:	50                   	push   %eax
402b3b:	53                   	push   %ebx
402b3c:	7c 07                	jl     0x402b45
402b3e:	68 07 10 00 00       	push   $0x1007
402b43:	eb 05                	jmp    0x402b4a
402b45:	68 06 10 00 00       	push   $0x1006
402b4a:	ff 37                	push   (%edi)
402b4c:	8b 8f 60 02 00 00    	mov    0x260(%edi),%ecx
402b52:	e8 9b 56 00 00       	call   0x4081f2
402b57:	8b 35 88 a1 40 00    	mov    0x40a188,%esi
402b5d:	8d 85 50 fd ff ff    	lea    -0x2b0(%ebp),%eax
402b63:	68 7c c3 40 00       	push   $0x40c37c
402b68:	50                   	push   %eax
402b69:	88 9d 54 fe ff ff    	mov    %bl,-0x1ac(%ebp)
402b6f:	ff d6                	call   *%esi
402b71:	59                   	pop    %ecx
402b72:	85 c0                	test   %eax,%eax
402b74:	59                   	pop    %ecx
402b75:	0f 85 a8 00 00 00    	jne    0x402c23
402b7b:	8b 45 08             	mov    0x8(%ebp),%eax
402b7e:	89 85 5c f8 ff ff    	mov    %eax,-0x7a4(%ebp)
402b84:	8d 45 8c             	lea    -0x74(%ebp),%eax
402b87:	50                   	push   %eax
402b88:	8d 85 5c f8 ff ff    	lea    -0x7a4(%ebp),%eax
402b8e:	53                   	push   %ebx
402b8f:	50                   	push   %eax
402b90:	68 7f 28 40 00       	push   $0x40287f
402b95:	6a 0a                	push   $0xa
402b97:	53                   	push   %ebx
402b98:	ff 15 e8 a0 40 00    	call   *0x40a0e8
402b9e:	8b f0                	mov    %eax,%esi
402ba0:	3b f3                	cmp    %ebx,%esi
402ba2:	0f 84 03 02 00 00    	je     0x402dab
402ba8:	6a 32                	push   $0x32
402baa:	56                   	push   %esi
402bab:	ff 15 14 a1 40 00    	call   *0x40a114
402bb1:	3d 02 01 00 00       	cmp    $0x102,%eax
402bb6:	75 0a                	jne    0x402bc2
402bb8:	53                   	push   %ebx
402bb9:	56                   	push   %esi
402bba:	ff 15 ec a0 40 00    	call   *0x40a0ec
402bc0:	eb 55                	jmp    0x402c17
402bc2:	39 9d 60 f8 ff ff    	cmp    %ebx,-0x7a0(%ebp)
402bc8:	75 4d                	jne    0x402c17
402bca:	81 bd 64 f8 ff ff e8 	cmpl   $0x3e8,-0x79c(%ebp)
402bd1:	03 00 00
402bd4:	7d 41                	jge    0x402c17
402bd6:	53                   	push   %ebx
402bd7:	53                   	push   %ebx
402bd8:	8d 85 54 fe ff ff    	lea    -0x1ac(%ebp),%eax
402bde:	68 04 01 00 00       	push   $0x104
402be3:	50                   	push   %eax
402be4:	8d 85 68 f8 ff ff    	lea    -0x798(%ebp),%eax
402bea:	ff b5 64 f8 ff ff    	push   -0x79c(%ebp)
402bf0:	50                   	push   %eax
402bf1:	53                   	push   %ebx
402bf2:	53                   	push   %ebx
402bf3:	ff 15 e4 a0 40 00    	call   *0x40a0e4
402bf9:	85 c0                	test   %eax,%eax
402bfb:	75 08                	jne    0x402c05
402bfd:	88 9d 54 fe ff ff    	mov    %bl,-0x1ac(%ebp)
402c03:	eb 12                	jmp    0x402c17
402c05:	8b 85 64 f8 ff ff    	mov    -0x79c(%ebp),%eax
402c0b:	99                   	cltd
402c0c:	2b c2                	sub    %edx,%eax
402c0e:	d1 f8                	sar    $1,%eax
402c10:	88 9c 05 54 fe ff ff 	mov    %bl,-0x1ac(%ebp,%eax,1)
402c17:	56                   	push   %esi
402c18:	ff 15 dc a0 40 00    	call   *0x40a0dc
402c1e:	e9 88 01 00 00       	jmp    0x402dab
402c23:	8d 85 50 fd ff ff    	lea    -0x2b0(%ebp),%eax
402c29:	68 74 c3 40 00       	push   $0x40c374
402c2e:	50                   	push   %eax
402c2f:	ff d6                	call   *%esi
402c31:	59                   	pop    %ecx
402c32:	85 c0                	test   %eax,%eax
402c34:	59                   	pop    %ecx
402c35:	0f 85 d6 00 00 00    	jne    0x402d11
402c3b:	8d 45 ec             	lea    -0x14(%ebp),%eax
402c3e:	50                   	push   %eax
402c3f:	8d 85 74 ff ff ff    	lea    -0x8c(%ebp),%eax
402c45:	6a 18                	push   $0x18
402c47:	50                   	push   %eax
402c48:	53                   	push   %ebx
402c49:	ff 75 08             	push   0x8(%ebp)
402c4c:	ff 15 d4 d7 40 00    	call   *0x40d7d4
402c52:	3b c3                	cmp    %ebx,%eax
402c54:	0f 85 51 01 00 00    	jne    0x402dab
402c5a:	ff 75 84             	push   -0x7c(%ebp)
402c5d:	53                   	push   %ebx
402c5e:	68 10 04 00 00       	push   $0x410
402c63:	ff 15 0c a1 40 00    	call   *0x40a10c
402c69:	8b f0                	mov    %eax,%esi
402c6b:	3b f3                	cmp    %ebx,%esi
402c6d:	0f 84 38 01 00 00    	je     0x402dab
402c73:	ff 75 84             	push   -0x7c(%ebp)
402c76:	8d 85 0c f6 ff ff    	lea    -0x9f4(%ebp),%eax
402c7c:	50                   	push   %eax
402c7d:	8b 87 60 02 00 00    	mov    0x260(%edi),%eax
402c83:	8b 88 e8 01 00 00    	mov    0x1e8(%eax),%ecx
402c89:	e8 4d 3e 00 00       	call   0x406adb
402c8e:	83 f8 01             	cmp    $0x1,%eax
402c91:	75 09                	jne    0x402c9c
402c93:	8d 85 14 f6 ff ff    	lea    -0x9ec(%ebp),%eax
402c99:	50                   	push   %eax
402c9a:	eb 05                	jmp    0x402ca1
402c9c:	68 6c c3 40 00       	push   $0x40c36c
402ca1:	8d 85 54 fe ff ff    	lea    -0x1ac(%ebp),%eax
402ca7:	50                   	push   %eax
402ca8:	e8 9b 63 00 00       	call   0x409048
402cad:	59                   	pop    %ecx
402cae:	59                   	pop    %ecx
402caf:	56                   	push   %esi
402cb0:	ff 15 dc a0 40 00    	call   *0x40a0dc
402cb6:	8d 85 54 fe ff ff    	lea    -0x1ac(%ebp),%eax
402cbc:	68 64 c3 40 00       	push   $0x40c364
402cc1:	50                   	push   %eax
402cc2:	e8 87 63 00 00       	call   0x40904e
402cc7:	59                   	pop    %ecx
402cc8:	8d 84 05 54 fe ff ff 	lea    -0x1ac(%ebp,%eax,1),%eax
402ccf:	50                   	push   %eax
402cd0:	e8 73 63 00 00       	call   0x409048
402cd5:	8d 85 54 fe ff ff    	lea    -0x1ac(%ebp),%eax
402cdb:	50                   	push   %eax
402cdc:	e8 6d 63 00 00       	call   0x40904e
402ce1:	b9 04 01 00 00       	mov    $0x104,%ecx
402ce6:	83 c4 0c             	add    $0xc,%esp
402ce9:	2b c8                	sub    %eax,%ecx
402ceb:	8d 85 54 fe ff ff    	lea    -0x1ac(%ebp),%eax
402cf1:	51                   	push   %ecx
402cf2:	ff 75 84             	push   -0x7c(%ebp)
402cf5:	50                   	push   %eax
402cf6:	e8 53 63 00 00       	call   0x40904e
402cfb:	59                   	pop    %ecx
402cfc:	8d 84 05 54 fe ff ff 	lea    -0x1ac(%ebp,%eax,1),%eax
402d03:	50                   	push   %eax
402d04:	e8 bd 5b 00 00       	call   0x4088c6
402d09:	83 c4 0c             	add    $0xc,%esp
402d0c:	e9 9a 00 00 00       	jmp    0x402dab
402d11:	8d 85 50 fd ff ff    	lea    -0x2b0(%ebp),%eax
402d17:	68 5c c3 40 00       	push   $0x40c35c
402d1c:	50                   	push   %eax
402d1d:	ff d6                	call   *%esi
402d1f:	59                   	pop    %ecx
402d20:	85 c0                	test   %eax,%eax
402d22:	59                   	pop    %ecx
402d23:	0f 85 82 00 00 00    	jne    0x402dab
402d29:	8d 45 ec             	lea    -0x14(%ebp),%eax
402d2c:	50                   	push   %eax
402d2d:	8d 85 58 ff ff ff    	lea    -0xa8(%ebp),%eax
402d33:	6a 1c                	push   $0x1c
402d35:	50                   	push   %eax
402d36:	53                   	push   %ebx
402d37:	ff 75 08             	push   0x8(%ebp)
402d3a:	ff 15 d8 d7 40 00    	call   *0x40d7d8
402d40:	3b c3                	cmp    %ebx,%eax
402d42:	75 67                	jne    0x402dab
402d44:	ff b5 60 ff ff ff    	push   -0xa0(%ebp)
402d4a:	8d 85 bc f3 ff ff    	lea    -0xc44(%ebp),%eax
402d50:	50                   	push   %eax
402d51:	8b 87 60 02 00 00    	mov    0x260(%edi),%eax
402d57:	8b 88 e8 01 00 00    	mov    0x1e8(%eax),%ecx
402d5d:	e8 79 3d 00 00       	call   0x406adb
402d62:	83 f8 01             	cmp    $0x1,%eax
402d65:	75 09                	jne    0x402d70
402d67:	8d 85 c4 f3 ff ff    	lea    -0xc3c(%ebp),%eax
402d6d:	50                   	push   %eax
402d6e:	eb 05                	jmp    0x402d75
402d70:	68 6c c3 40 00       	push   $0x40c36c
402d75:	8d 85 4c fc ff ff    	lea    -0x3b4(%ebp),%eax
402d7b:	50                   	push   %eax
402d7c:	e8 c7 62 00 00       	call   0x409048
402d81:	59                   	pop    %ecx
402d82:	8d 85 4c fc ff ff    	lea    -0x3b4(%ebp),%eax
402d88:	59                   	pop    %ecx
402d89:	ff b5 64 ff ff ff    	push   -0x9c(%ebp)
402d8f:	ff b5 60 ff ff ff    	push   -0xa0(%ebp)
402d95:	50                   	push   %eax
402d96:	8d 85 54 fe ff ff    	lea    -0x1ac(%ebp),%eax
402d9c:	68 3c c3 40 00       	push   $0x40c33c
402da1:	50                   	push   %eax
402da2:	ff 15 58 a1 40 00    	call   *0x40a158
402da8:	83 c4 14             	add    $0x14,%esp
402dab:	38 9d 54 fe ff ff    	cmp    %bl,-0x1ac(%ebp)
402db1:	75 6c                	jne    0x402e1f
402db3:	8d 45 ec             	lea    -0x14(%ebp),%eax
402db6:	50                   	push   %eax
402db7:	53                   	push   %ebx
402db8:	53                   	push   %ebx
402db9:	6a 01                	push   $0x1
402dbb:	ff 75 08             	push   0x8(%ebp)
402dbe:	ff 15 d0 d7 40 00    	call   *0x40d7d0
402dc4:	3d 04 00 00 c0       	cmp    $0xc0000004,%eax
402dc9:	75 4c                	jne    0x402e17
402dcb:	ff 75 ec             	push   -0x14(%ebp)
402dce:	ff 15 44 a1 40 00    	call   *0x40a144
402dd4:	8b f0                	mov    %eax,%esi
402dd6:	59                   	pop    %ecx
402dd7:	3b f3                	cmp    %ebx,%esi
402dd9:	74 3c                	je     0x402e17