40b999:	5e                   	pop    %esi
40b99a:	5f                   	pop    %edi
40b99b:	5b                   	pop    %ebx
40b99c:	c3                   	ret
40b99d:	8d 42 fd             	lea    -0x3(%edx),%eax
40b9a0:	5e                   	pop    %esi
40b9a1:	5f                   	pop    %edi
40b9a2:	5b                   	pop    %ebx
40b9a3:	c3                   	ret
40b9a4:	8d 42 fc             	lea    -0x4(%edx),%eax
40b9a7:	5e                   	pop    %esi
40b9a8:	5f                   	pop    %edi
40b9a9:	5b                   	pop    %ebx
40b9aa:	c3                   	ret
40b9ab:	cc                   	int3
40b9ac:	cc                   	int3
40b9ad:	cc                   	int3
40b9ae:	cc                   	int3
40b9af:	cc                   	int3
40b9b0:	55                   	push   %ebp
40b9b1:	8b ec                	mov    %esp,%ebp
40b9b3:	56                   	push   %esi
40b9b4:	8b 75 08             	mov    0x8(%ebp),%esi
40b9b7:	57                   	push   %edi
40b9b8:	8b 7d 0c             	mov    0xc(%ebp),%edi
40b9bb:	8b 06                	mov    (%esi),%eax
40b9bd:	83 f8 fe             	cmp    $0xfffffffe,%eax
40b9c0:	74 0d                	je     0x40b9cf
40b9c2:	8b 4e 04             	mov    0x4(%esi),%ecx
40b9c5:	03 cf                	add    %edi,%ecx
40b9c7:	33 0c 38             	xor    (%eax,%edi,1),%ecx
40b9ca:	e8 d8 e2 ff ff       	call   0x409ca7
40b9cf:	8b 46 08             	mov    0x8(%esi),%eax
40b9d2:	8b 4e 0c             	mov    0xc(%esi),%ecx
40b9d5:	03 cf                	add    %edi,%ecx
40b9d7:	33 0c 38             	xor    (%eax,%edi,1),%ecx
40b9da:	5f                   	pop    %edi
40b9db:	5e                   	pop    %esi
40b9dc:	5d                   	pop    %ebp
40b9dd:	e9 c5 e2 ff ff       	jmp    0x409ca7
40b9e2:	cc                   	int3
40b9e3:	cc                   	int3
40b9e4:	cc                   	int3
40b9e5:	cc                   	int3
40b9e6:	cc                   	int3
40b9e7:	cc                   	int3
40b9e8:	cc                   	int3
40b9e9:	cc                   	int3
40b9ea:	cc                   	int3
40b9eb:	cc                   	int3
40b9ec:	cc                   	int3
40b9ed:	cc                   	int3
40b9ee:	cc                   	int3
40b9ef:	cc                   	int3
40b9f0:	55                   	push   %ebp
40b9f1:	8b ec                	mov    %esp,%ebp
40b9f3:	83 ec 1c             	sub    $0x1c,%esp
40b9f6:	53                   	push   %ebx
40b9f7:	8b 5d 08             	mov    0x8(%ebp),%ebx
40b9fa:	56                   	push   %esi
40b9fb:	57                   	push   %edi
40b9fc:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
40ba00:	ff 33                	push   (%ebx)
40ba02:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
40ba09:	e8 8b 45 02 00       	call   0x42ff99
40ba0e:	89 03                	mov    %eax,(%ebx)
40ba10:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40ba13:	8b 43 08             	mov    0x8(%ebx),%eax
40ba16:	8d 73 10             	lea    0x10(%ebx),%esi
40ba19:	33 05 c0 d0 43 00    	xor    0x43d0c0,%eax
40ba1f:	56                   	push   %esi
40ba20:	50                   	push   %eax
40ba21:	89 75 f0             	mov    %esi,-0x10(%ebp)
40ba24:	89 45 f8             	mov    %eax,-0x8(%ebp)
40ba27:	e8 84 ff ff ff       	call   0x40b9b0
40ba2c:	ff 75 10             	push   0x10(%ebp)
40ba2f:	e8 e8 11 00 00       	call   0x40cc1c
40ba34:	8b 45 08             	mov    0x8(%ebp),%eax
40ba37:	83 c4 10             	add    $0x10,%esp
40ba3a:	8b 7b 0c             	mov    0xc(%ebx),%edi
40ba3d:	f6 40 04 66          	testb  $0x66,0x4(%eax)
40ba41:	75 5a                	jne    0x40ba9d
40ba43:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40ba46:	8b 45 10             	mov    0x10(%ebp),%eax
40ba49:	89 45 e8             	mov    %eax,-0x18(%ebp)
40ba4c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40ba4f:	89 43 fc             	mov    %eax,-0x4(%ebx)
40ba52:	83 ff fe             	cmp    $0xfffffffe,%edi
40ba55:	74 69                	je     0x40bac0
40ba57:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40ba5a:	8d 47 02             	lea    0x2(%edi),%eax
40ba5d:	8d 04 47             	lea    (%edi,%eax,2),%eax
40ba60:	8b 1c 81             	mov    (%ecx,%eax,4),%ebx
40ba63:	8d 04 81             	lea    (%ecx,%eax,4),%eax
40ba66:	8b 48 04             	mov    0x4(%eax),%ecx
40ba69:	89 45 ec             	mov    %eax,-0x14(%ebp)
40ba6c:	85 c9                	test   %ecx,%ecx
40ba6e:	74 14                	je     0x40ba84
40ba70:	8b d6                	mov    %esi,%edx
40ba72:	e8 c9 12 00 00       	call   0x40cd40
40ba77:	b1 01                	mov    $0x1,%cl
40ba79:	88 4d ff             	mov    %cl,-0x1(%ebp)
40ba7c:	85 c0                	test   %eax,%eax
40ba7e:	78 14                	js     0x40ba94
40ba80:	7f 48                	jg     0x40baca
40ba82:	eb 03                	jmp    0x40ba87
40ba84:	8a 4d ff             	mov    -0x1(%ebp),%cl
40ba87:	8b fb                	mov    %ebx,%edi
40ba89:	83 fb fe             	cmp    $0xfffffffe,%ebx
40ba8c:	75 c9                	jne    0x40ba57
40ba8e:	84 c9                	test   %cl,%cl
40ba90:	74 2e                	je     0x40bac0
40ba92:	eb 20                	jmp    0x40bab4
40ba94:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
40ba9b:	eb 17                	jmp    0x40bab4
40ba9d:	83 ff fe             	cmp    $0xfffffffe,%edi
40baa0:	74 1e                	je     0x40bac0
40baa2:	68 c0 d0 43 00       	push   $0x43d0c0
40baa7:	56                   	push   %esi
40baa8:	ba fe ff ff ff       	mov    $0xfffffffe,%edx
40baad:	8b cb                	mov    %ebx,%ecx
40baaf:	e8 ec 12 00 00       	call   0x40cda0
40bab4:	56                   	push   %esi
40bab5:	ff 75 f8             	push   -0x8(%ebp)
40bab8:	e8 f3 fe ff ff       	call   0x40b9b0
40babd:	83 c4 08             	add    $0x8,%esp
40bac0:	8b 45 f4             	mov    -0xc(%ebp),%eax
40bac3:	5f                   	pop    %edi
40bac4:	5e                   	pop    %esi
40bac5:	5b                   	pop    %ebx
40bac6:	8b e5                	mov    %ebp,%esp
40bac8:	5d                   	pop    %ebp
40bac9:	c3                   	ret
40baca:	8b 45 08             	mov    0x8(%ebp),%eax
40bacd:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
40bad3:	75 38                	jne    0x40bb0d
40bad5:	83 3d 14 18 43 00 00 	cmpl   $0x0,0x431814
40badc:	74 2f                	je     0x40bb0d
40bade:	68 14 18 43 00       	push   $0x431814
40bae3:	e8 c8 20 02 00       	call   0x42dbb0
40bae8:	83 c4 04             	add    $0x4,%esp
40baeb:	85 c0                	test   %eax,%eax
40baed:	74 1b                	je     0x40bb0a
40baef:	8b 35 14 18 43 00    	mov    0x431814,%esi
40baf5:	8b ce                	mov    %esi,%ecx
40baf7:	6a 01                	push   $0x1
40baf9:	ff 75 08             	push   0x8(%ebp)
40bafc:	ff 15 68 12 43 00    	call   *0x431268
40bb02:	ff d6                	call   *%esi
40bb04:	8b 75 f0             	mov    -0x10(%ebp),%esi
40bb07:	83 c4 08             	add    $0x8,%esp
40bb0a:	8b 45 08             	mov    0x8(%ebp),%eax
40bb0d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40bb10:	8b d0                	mov    %eax,%edx
40bb12:	e8 69 12 00 00       	call   0x40cd80
40bb17:	8b 45 0c             	mov    0xc(%ebp),%eax
40bb1a:	39 78 0c             	cmp    %edi,0xc(%eax)
40bb1d:	74 12                	je     0x40bb31
40bb1f:	68 c0 d0 43 00       	push   $0x43d0c0
40bb24:	56                   	push   %esi
40bb25:	8b d7                	mov    %edi,%edx
40bb27:	8b c8                	mov    %eax,%ecx
40bb29:	e8 72 12 00 00       	call   0x40cda0
40bb2e:	8b 45 0c             	mov    0xc(%ebp),%eax
40bb31:	56                   	push   %esi
40bb32:	ff 75 f8             	push   -0x8(%ebp)
40bb35:	89 58 0c             	mov    %ebx,0xc(%eax)
40bb38:	e8 73 fe ff ff       	call   0x40b9b0
40bb3d:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40bb40:	83 c4 08             	add    $0x8,%esp
40bb43:	8b d6                	mov    %esi,%edx
40bb45:	8b 49 08             	mov    0x8(%ecx),%ecx
40bb48:	e8 13 12 00 00       	call   0x40cd60
40bb4d:	cc                   	int3
40bb4e:	e8 64 12 00 00       	call   0x40cdb7
40bb53:	84 c0                	test   %al,%al
40bb55:	75 03                	jne    0x40bb5a
40bb57:	32 c0                	xor    %al,%al
40bb59:	c3                   	ret
40bb5a:	e8 db 02 00 00       	call   0x40be3a
40bb5f:	84 c0                	test   %al,%al
40bb61:	75 07                	jne    0x40bb6a
40bb63:	e8 8b 12 00 00       	call   0x40cdf3
40bb68:	eb ed                	jmp    0x40bb57
40bb6a:	b0 01                	mov    $0x1,%al
40bb6c:	c3                   	ret
40bb6d:	55                   	push   %ebp
40bb6e:	8b ec                	mov    %esp,%ebp
40bb70:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
40bb74:	75 0a                	jne    0x40bb80
40bb76:	e8 f2 02 00 00       	call   0x40be6d
40bb7b:	e8 73 12 00 00       	call   0x40cdf3
40bb80:	b0 01                	mov    $0x1,%al
40bb82:	5d                   	pop    %ebp
40bb83:	c3                   	ret
40bb84:	55                   	push   %ebp
40bb85:	8b ec                	mov    %esp,%ebp
40bb87:	8b 45 08             	mov    0x8(%ebp),%eax
40bb8a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40bb8d:	3b c1                	cmp    %ecx,%eax
40bb8f:	75 04                	jne    0x40bb95
40bb91:	33 c0                	xor    %eax,%eax
40bb93:	5d                   	pop    %ebp
40bb94:	c3                   	ret
40bb95:	83 c1 05             	add    $0x5,%ecx
40bb98:	83 c0 05             	add    $0x5,%eax
40bb9b:	8a 10                	mov    (%eax),%dl
40bb9d:	3a 11                	cmp    (%ecx),%dl
40bb9f:	75 18                	jne    0x40bbb9
40bba1:	84 d2                	test   %dl,%dl
40bba3:	74 ec                	je     0x40bb91
40bba5:	8a 50 01             	mov    0x1(%eax),%dl
40bba8:	3a 51 01             	cmp    0x1(%ecx),%dl
40bbab:	75 0c                	jne    0x40bbb9
40bbad:	83 c0 02             	add    $0x2,%eax
40bbb0:	83 c1 02             	add    $0x2,%ecx
40bbb3:	84 d2                	test   %dl,%dl
40bbb5:	75 e4                	jne    0x40bb9b
40bbb7:	eb d8                	jmp    0x40bb91
40bbb9:	1b c0                	sbb    %eax,%eax
40bbbb:	83 c8 01             	or     $0x1,%eax
40bbbe:	5d                   	pop    %ebp
40bbbf:	c3                   	ret
40bbc0:	6a 08                	push   $0x8
40bbc2:	68 d8 a9 43 00       	push   $0x43a9d8
40bbc7:	e8 04 e9 ff ff       	call   0x40a4d0
40bbcc:	8b 45 08             	mov    0x8(%ebp),%eax
40bbcf:	85 c0                	test   %eax,%eax
40bbd1:	74 7e                	je     0x40bc51
40bbd3:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
40bbd9:	75 76                	jne    0x40bc51
40bbdb:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
40bbdf:	75 70                	jne    0x40bc51
40bbe1:	81 78 14 20 05 93 19 	cmpl   $0x19930520,0x14(%eax)
40bbe8:	74 12                	je     0x40bbfc
40bbea:	81 78 14 21 05 93 19 	cmpl   $0x19930521,0x14(%eax)
40bbf1:	74 09                	je     0x40bbfc
40bbf3:	81 78 14 22 05 93 19 	cmpl   $0x19930522,0x14(%eax)
40bbfa:	75 55                	jne    0x40bc51
40bbfc:	8b 48 1c             	mov    0x1c(%eax),%ecx
40bbff:	85 c9                	test   %ecx,%ecx
40bc01:	74 4e                	je     0x40bc51
40bc03:	8b 51 04             	mov    0x4(%ecx),%edx
40bc06:	85 d2                	test   %edx,%edx
40bc08:	74 29                	je     0x40bc33
40bc0a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40bc0e:	52                   	push   %edx
40bc0f:	ff 70 18             	push   0x18(%eax)
40bc12:	e8 4a 00 00 00       	call   0x40bc61
40bc17:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40bc1e:	eb 31                	jmp    0x40bc51
40bc20:	ff 75 0c             	push   0xc(%ebp)
40bc23:	ff 75 ec             	push   -0x14(%ebp)
40bc26:	e8 43 00 00 00       	call   0x40bc6e
40bc2b:	59                   	pop    %ecx
40bc2c:	59                   	pop    %ecx
40bc2d:	c3                   	ret
40bc2e:	8b 65 e8             	mov    -0x18(%ebp),%esp
40bc31:	eb e4                	jmp    0x40bc17
40bc33:	f6 01 10             	testb  $0x10,(%ecx)
40bc36:	74 19                	je     0x40bc51
40bc38:	8b 40 18             	mov    0x18(%eax),%eax
40bc3b:	8b 08                	mov    (%eax),%ecx
40bc3d:	85 c9                	test   %ecx,%ecx
40bc3f:	74 10                	je     0x40bc51
40bc41:	8b 01                	mov    (%ecx),%eax
40bc43:	51                   	push   %ecx
40bc44:	8b 70 08             	mov    0x8(%eax),%esi
40bc47:	8b ce                	mov    %esi,%ecx
40bc49:	ff 15 68 12 43 00    	call   *0x431268
40bc4f:	ff d6                	call   *%esi
40bc51:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40bc54:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40bc5b:	59                   	pop    %ecx
40bc5c:	5f                   	pop    %edi
40bc5d:	5e                   	pop    %esi
40bc5e:	5b                   	pop    %ebx
40bc5f:	c9                   	leave
40bc60:	c3                   	ret
40bc61:	55                   	push   %ebp
40bc62:	8b ec                	mov    %esp,%ebp
40bc64:	8b 4d 08             	mov    0x8(%ebp),%ecx
40bc67:	ff 55 0c             	call   *0xc(%ebp)
40bc6a:	5d                   	pop    %ebp
40bc6b:	c2 08 00             	ret    $0x8
40bc6e:	55                   	push   %ebp
40bc6f:	8b ec                	mov    %esp,%ebp
40bc71:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
40bc75:	74 32                	je     0x40bca9
40bc77:	56                   	push   %esi
40bc78:	57                   	push   %edi
40bc79:	8b 7d 08             	mov    0x8(%ebp),%edi
40bc7c:	8b 37                	mov    (%edi),%esi
40bc7e:	81 3e 63 73 6d e0    	cmpl   $0xe06d7363,(%esi)
40bc84:	75 21                	jne    0x40bca7
40bc86:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
40bc8a:	75 1b                	jne    0x40bca7
40bc8c:	81 7e 14 20 05 93 19 	cmpl   $0x19930520,0x14(%esi)
40bc93:	74 18                	je     0x40bcad
40bc95:	81 7e 14 21 05 93 19 	cmpl   $0x19930521,0x14(%esi)
40bc9c:	74 0f                	je     0x40bcad
40bc9e:	81 7e 14 22 05 93 19 	cmpl   $0x19930522,0x14(%esi)
40bca5:	74 06                	je     0x40bcad
40bca7:	5f                   	pop    %edi
40bca8:	5e                   	pop    %esi
40bca9:	33 c0                	xor    %eax,%eax
40bcab:	5d                   	pop    %ebp
40bcac:	c3                   	ret
40bcad:	e8 e8 00 00 00       	call   0x40bd9a
40bcb2:	89 70 10             	mov    %esi,0x10(%eax)
40bcb5:	8b 77 04             	mov    0x4(%edi),%esi
40bcb8:	e8 dd 00 00 00       	call   0x40bd9a
40bcbd:	89 70 14             	mov    %esi,0x14(%eax)
40bcc0:	e8 90 01 01 00       	call   0x41be55
40bcc5:	cc                   	int3
40bcc6:	55                   	push   %ebp
40bcc7:	8b ec                	mov    %esp,%ebp
40bcc9:	e8 cc 00 00 00       	call   0x40bd9a
40bcce:	8b 40 24             	mov    0x24(%eax),%eax
40bcd1:	85 c0                	test   %eax,%eax
40bcd3:	74 0e                	je     0x40bce3
40bcd5:	8b 4d 08             	mov    0x8(%ebp),%ecx
40bcd8:	39 08                	cmp    %ecx,(%eax)
40bcda:	74 0c                	je     0x40bce8
40bcdc:	8b 40 04             	mov    0x4(%eax),%eax
40bcdf:	85 c0                	test   %eax,%eax
40bce1:	75 f5                	jne    0x40bcd8
40bce3:	33 c0                	xor    %eax,%eax
40bce5:	40                   	inc    %eax
40bce6:	5d                   	pop    %ebp
40bce7:	c3                   	ret
40bce8:	33 c0                	xor    %eax,%eax
40bcea:	5d                   	pop    %ebp
40bceb:	c3                   	ret
40bcec:	55                   	push   %ebp
40bced:	8b ec                	mov    %esp,%ebp
40bcef:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40bcf2:	8b 55 08             	mov    0x8(%ebp),%edx
40bcf5:	56                   	push   %esi
40bcf6:	8b 01                	mov    (%ecx),%eax
40bcf8:	8b 71 04             	mov    0x4(%ecx),%esi
40bcfb:	03 c2                	add    %edx,%eax
40bcfd:	85 f6                	test   %esi,%esi
40bcff:	78 0d                	js     0x40bd0e
40bd01:	8b 49 08             	mov    0x8(%ecx),%ecx
40bd04:	8b 14 16             	mov    (%esi,%edx,1),%edx
40bd07:	8b 0c 0a             	mov    (%edx,%ecx,1),%ecx
40bd0a:	03 ce                	add    %esi,%ecx
40bd0c:	03 c1                	add    %ecx,%eax
40bd0e:	5e                   	pop    %esi