40ca88:	8b e5                	mov    %ebp,%esp
40ca8a:	5d                   	pop    %ebp
40ca8b:	c3                   	ret
40ca8c:	53                   	push   %ebx
40ca8d:	8b d8                	mov    %eax,%ebx
40ca8f:	85 db                	test   %ebx,%ebx
40ca91:	75 05                	jne    0x40ca98
40ca93:	e8 58 ff ff ff       	call   0x40c9f0
40ca98:	8b c3                	mov    %ebx,%eax
40ca9a:	5b                   	pop    %ebx
40ca9b:	c3                   	ret
40ca9c:	53                   	push   %ebx
40ca9d:	b0 01                	mov    $0x1,%al
40ca9f:	8b 1d 0c 33 46 00    	mov    0x46330c,%ebx
40caa5:	eb 05                	jmp    0x40caac
40caa7:	ff 53 04             	call   *0x4(%ebx)
40caaa:	8b 1b                	mov    (%ebx),%ebx
40caac:	84 c0                	test   %al,%al
40caae:	74 04                	je     0x40cab4
40cab0:	85 db                	test   %ebx,%ebx
40cab2:	75 f3                	jne    0x40caa7
40cab4:	5b                   	pop    %ebx
40cab5:	c3                   	ret
40cab6:	8b c0                	mov    %eax,%eax
40cab8:	53                   	push   %ebx
40cab9:	bb 0c 33 46 00       	mov    $0x46330c,%ebx
40cabe:	eb 10                	jmp    0x40cad0
40cac0:	8b 03                	mov    (%ebx),%eax
40cac2:	8b 10                	mov    (%eax),%edx
40cac4:	89 13                	mov    %edx,(%ebx)
40cac6:	ba 08 00 00 00       	mov    $0x8,%edx
40cacb:	e8 0c 5c ff ff       	call   0x4026dc
40cad0:	83 3b 00             	cmpl   $0x0,(%ebx)
40cad3:	75 eb                	jne    0x40cac0
40cad5:	5b                   	pop    %ebx
40cad6:	c3                   	ret
40cad7:	90                   	nop
40cad8:	53                   	push   %ebx
40cad9:	68 10 cb 40 00       	push   $0x40cb10
40cade:	e8 99 95 ff ff       	call   0x40607c
40cae3:	8b d8                	mov    %eax,%ebx
40cae5:	85 db                	test   %ebx,%ebx
40cae7:	74 10                	je     0x40caf9
40cae9:	68 20 cb 40 00       	push   $0x40cb20
40caee:	53                   	push   %ebx
40caef:	e8 90 95 ff ff       	call   0x406084
40caf4:	a3 30 31 46 00       	mov    %eax,0x463130
40caf9:	83 3d 30 31 46 00 00 	cmpl   $0x0,0x463130
40cb00:	75 0a                	jne    0x40cb0c
40cb02:	b8 98 85 40 00       	mov    $0x408598,%eax
40cb07:	a3 30 31 46 00       	mov    %eax,0x463130
40cb0c:	5b                   	pop    %ebx
40cb0d:	c3                   	ret
40cb0e:	00 00                	add    %al,(%eax)
40cb10:	6b 65 72 6e          	imul   $0x6e,0x72(%ebp),%esp
40cb14:	65 6c                	gs insb (%dx),%es:(%edi)
40cb16:	33 32                	xor    (%edx),%esi
40cb18:	2e 64 6c             	cs fs insb (%dx),%es:(%edi)
40cb1b:	6c                   	insb   (%dx),%es:(%edi)
40cb1c:	00 00                	add    %al,(%eax)
40cb1e:	00 00                	add    %al,(%eax)
40cb20:	47                   	inc    %edi
40cb21:	65 74 44             	gs je  0x40cb68
40cb24:	69 73 6b 46 72 65 65 	imul   $0x65657246,0x6b(%ebx),%esi
40cb2b:	53                   	push   %ebx
40cb2c:	70 61                	jo     0x40cb8f
40cb2e:	63 65 45             	arpl   %esp,0x45(%ebp)
40cb31:	78 41                	js     0x40cb74
40cb33:	00 ba 01 00 00 00    	add    %bh,0x1(%edx)
40cb39:	92                   	xchg   %eax,%edx
40cb3a:	f0 0f c1 02          	lock xadd %eax,(%edx)
40cb3e:	40                   	inc    %eax
40cb3f:	c3                   	ret
40cb40:	ba ff ff ff ff       	mov    $0xffffffff,%edx
40cb45:	92                   	xchg   %eax,%edx
40cb46:	f0 0f c1 02          	lock xadd %eax,(%edx)
40cb4a:	48                   	dec    %eax
40cb4b:	c3                   	ret
40cb4c:	87 10                	xchg   %edx,(%eax)
40cb4e:	89 d0                	mov    %edx,%eax
40cb50:	c3                   	ret
40cb51:	8d 40 00             	lea    0x0(%eax),%eax
40cb54:	92                   	xchg   %eax,%edx
40cb55:	f0 0f c1 02          	lock xadd %eax,(%edx)
40cb59:	c3                   	ret
40cb5a:	8b c0                	mov    %eax,%eax
40cb5c:	53                   	push   %ebx
40cb5d:	56                   	push   %esi
40cb5e:	57                   	push   %edi
40cb5f:	55                   	push   %ebp
40cb60:	e8 6f 6a ff ff       	call   0x4035d4
40cb65:	8b da                	mov    %edx,%ebx
40cb67:	8b f8                	mov    %eax,%edi
40cb69:	33 f6                	xor    %esi,%esi
40cb6b:	8b 6c b7 04          	mov    0x4(%edi,%esi,4),%ebp
40cb6f:	33 c0                	xor    %eax,%eax
40cb71:	89 44 b7 04          	mov    %eax,0x4(%edi,%esi,4)
40cb75:	85 ed                	test   %ebp,%ebp
40cb77:	74 0e                	je     0x40cb87
40cb79:	8b c5                	mov    %ebp,%eax
40cb7b:	8b 6d 00             	mov    0x0(%ebp),%ebp
40cb7e:	e8 59 5b ff ff       	call   0x4026dc
40cb83:	85 ed                	test   %ebp,%ebp
40cb85:	75 f2                	jne    0x40cb79
40cb87:	46                   	inc    %esi
40cb88:	83 fe 10             	cmp    $0x10,%esi
40cb8b:	75 de                	jne    0x40cb6b
40cb8d:	8b d3                	mov    %ebx,%edx
40cb8f:	80 e2 fc             	and    $0xfc,%dl
40cb92:	8b c7                	mov    %edi,%eax
40cb94:	e8 9f 66 ff ff       	call   0x403238
40cb99:	84 db                	test   %bl,%bl
40cb9b:	7e 07                	jle    0x40cba4
40cb9d:	8b c7                	mov    %edi,%eax
40cb9f:	e8 18 6a ff ff       	call   0x4035bc
40cba4:	5d                   	pop    %ebp
40cba5:	5f                   	pop    %edi
40cba6:	5e                   	pop    %esi
40cba7:	5b                   	pop    %ebx
40cba8:	c3                   	ret
40cba9:	8d 40 00             	lea    0x0(%eax),%eax
40cbac:	55                   	push   %ebp
40cbad:	8b ec                	mov    %esp,%ebp
40cbaf:	51                   	push   %ecx
40cbb0:	e8 7f 94 ff ff       	call   0x406034
40cbb5:	66 89 45 fe          	mov    %ax,-0x2(%ebp)
40cbb9:	8a 45 fe             	mov    -0x2(%ebp),%al
40cbbc:	32 45 ff             	xor    -0x1(%ebp),%al
40cbbf:	24 0f                	and    $0xf,%al
40cbc1:	59                   	pop    %ecx
40cbc2:	5d                   	pop    %ebp
40cbc3:	c3                   	ret
40cbc4:	53                   	push   %ebx
40cbc5:	56                   	push   %esi
40cbc6:	57                   	push   %edi
40cbc7:	55                   	push   %ebp
40cbc8:	51                   	push   %ecx
40cbc9:	89 14 24             	mov    %edx,(%esp)
40cbcc:	8b f8                	mov    %eax,%edi
40cbce:	8b c7                	mov    %edi,%eax
40cbd0:	e8 d7 ff ff ff       	call   0x40cbac
40cbd5:	8b d8                	mov    %eax,%ebx
40cbd7:	e8 58 94 ff ff       	call   0x406034
40cbdc:	8b f0                	mov    %eax,%esi
40cbde:	33 c0                	xor    %eax,%eax
40cbe0:	8a c3                	mov    %bl,%al
40cbe2:	8b 6c 87 04          	mov    0x4(%edi,%eax,4),%ebp
40cbe6:	eb 03                	jmp    0x40cbeb
40cbe8:	8b 6d 00             	mov    0x0(%ebp),%ebp
40cbeb:	85 ed                	test   %ebp,%ebp
40cbed:	74 05                	je     0x40cbf4
40cbef:	3b 75 04             	cmp    0x4(%ebp),%esi
40cbf2:	75 f4                	jne    0x40cbe8
40cbf4:	85 ed                	test   %ebp,%ebp
40cbf6:	75 38                	jne    0x40cc30
40cbf8:	8b c7                	mov    %edi,%eax
40cbfa:	e8 4d 00 00 00       	call   0x40cc4c
40cbff:	8b e8                	mov    %eax,%ebp
40cc01:	85 ed                	test   %ebp,%ebp
40cc03:	75 2b                	jne    0x40cc30
40cc05:	b8 10 00 00 00       	mov    $0x10,%eax
40cc0a:	e8 d1 ae ff ff       	call   0x407ae0
40cc0f:	8b e8                	mov    %eax,%ebp
40cc11:	89 75 04             	mov    %esi,0x4(%ebp)
40cc14:	c7 45 08 ff ff ff 7f 	movl   $0x7fffffff,0x8(%ebp)
40cc1b:	89 6d 00             	mov    %ebp,0x0(%ebp)
40cc1e:	33 c0                	xor    %eax,%eax
40cc20:	8a c3                	mov    %bl,%al
40cc22:	8d 44 87 04          	lea    0x4(%edi,%eax,4),%eax
40cc26:	8b d5                	mov    %ebp,%edx
40cc28:	e8 1f ff ff ff       	call   0x40cb4c
40cc2d:	89 45 00             	mov    %eax,0x0(%ebp)
40cc30:	8b 04 24             	mov    (%esp),%eax
40cc33:	89 28                	mov    %ebp,(%eax)
40cc35:	5a                   	pop    %edx
40cc36:	5d                   	pop    %ebp
40cc37:	5f                   	pop    %edi
40cc38:	5e                   	pop    %esi
40cc39:	5b                   	pop    %ebx
40cc3a:	c3                   	ret
40cc3b:	90                   	nop
40cc3c:	8b 02                	mov    (%edx),%eax
40cc3e:	33 c9                	xor    %ecx,%ecx
40cc40:	89 48 04             	mov    %ecx,0x4(%eax)
40cc43:	8b 02                	mov    (%edx),%eax
40cc45:	33 d2                	xor    %edx,%edx
40cc47:	89 50 08             	mov    %edx,0x8(%eax)
40cc4a:	c3                   	ret
40cc4b:	90                   	nop
40cc4c:	53                   	push   %ebx
40cc4d:	8b d8                	mov    %eax,%ebx
40cc4f:	8b c3                	mov    %ebx,%eax
40cc51:	e8 56 ff ff ff       	call   0x40cbac
40cc56:	25 ff 00 00 00       	and    $0xff,%eax
40cc5b:	8b 5c 83 04          	mov    0x4(%ebx,%eax,4),%ebx
40cc5f:	85 db                	test   %ebx,%ebx
40cc61:	74 24                	je     0x40cc87
40cc63:	8d 43 08             	lea    0x8(%ebx),%eax
40cc66:	ba ff ff ff 7f       	mov    $0x7fffffff,%edx
40cc6b:	e8 dc fe ff ff       	call   0x40cb4c
40cc70:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
40cc75:	74 0a                	je     0x40cc81
40cc77:	e8 b8 93 ff ff       	call   0x406034
40cc7c:	89 43 04             	mov    %eax,0x4(%ebx)
40cc7f:	eb 06                	jmp    0x40cc87
40cc81:	8b 1b                	mov    (%ebx),%ebx
40cc83:	85 db                	test   %ebx,%ebx
40cc85:	75 dc                	jne    0x40cc63
40cc87:	8b c3                	mov    %ebx,%eax
40cc89:	5b                   	pop    %ebx
40cc8a:	c3                   	ret
40cc8b:	90                   	nop
40cc8c:	53                   	push   %ebx
40cc8d:	56                   	push   %esi
40cc8e:	84 d2                	test   %dl,%dl
40cc90:	74 08                	je     0x40cc9a
40cc92:	83 c4 f0             	add    $0xfffffff0,%esp
40cc95:	e8 d2 68 ff ff       	call   0x40356c
40cc9a:	8b da                	mov    %edx,%ebx
40cc9c:	8b f0                	mov    %eax,%esi
40cc9e:	33 d2                	xor    %edx,%edx
40cca0:	8b c6                	mov    %esi,%eax
40cca2:	e8 71 65 ff ff       	call   0x403218
40cca7:	c7 46 0c ff ff 00 00 	movl   $0xffff,0xc(%esi)
40ccae:	6a 00                	push   $0x0
40ccb0:	6a ff                	push   $0xffffffff
40ccb2:	6a ff                	push   $0xffffffff
40ccb4:	6a 00                	push   $0x0
40ccb6:	e8 e1 92 ff ff       	call   0x405f9c
40ccbb:	89 46 10             	mov    %eax,0x10(%esi)
40ccbe:	6a 00                	push   $0x0
40ccc0:	6a 00                	push   $0x0
40ccc2:	6a 00                	push   $0x0
40ccc4:	6a 00                	push   $0x0
40ccc6:	e8 d1 92 ff ff       	call   0x405f9c
40cccb:	89 46 14             	mov    %eax,0x14(%esi)
40ccce:	c7 46 18 ff ff ff ff 	movl   $0xffffffff,0x18(%esi)
40ccd5:	b2 01                	mov    $0x1,%dl
40ccd7:	a1 50 79 40 00       	mov    0x407950,%eax
40ccdc:	e8 37 65 ff ff       	call   0x403218
40cce1:	89 46 20             	mov    %eax,0x20(%esi)
40cce4:	8b c6                	mov    %esi,%eax
40cce6:	84 db                	test   %bl,%bl
40cce8:	74 0f                	je     0x40ccf9
40ccea:	e8 d5 68 ff ff       	call   0x4035c4
40ccef:	64 8f 05 00 00 00 00 	pop    %fs:0x0
40ccf6:	83 c4 0c             	add    $0xc,%esp
40ccf9:	8b c6                	mov    %esi,%eax
40ccfb:	5e                   	pop    %esi
40ccfc:	5b                   	pop    %ebx
40ccfd:	c3                   	ret
40ccfe:	8b c0                	mov    %eax,%eax
40cd00:	53                   	push   %ebx
40cd01:	56                   	push   %esi
40cd02:	e8 cd 68 ff ff       	call   0x4035d4
40cd07:	8b da                	mov    %edx,%ebx
40cd09:	8b f0                	mov    %eax,%esi
40cd0b:	8b c6                	mov    %esi,%eax
40cd0d:	e8 7a 00 00 00       	call   0x40cd8c
40cd12:	8b d3                	mov    %ebx,%edx
40cd14:	80 e2 fc             	and    $0xfc,%dl
40cd17:	8b c6                	mov    %esi,%eax
40cd19:	e8 1a 65 ff ff       	call   0x403238
40cd1e:	8b 46 10             	mov    0x10(%esi),%eax
40cd21:	50                   	push   %eax
40cd22:	e8 65 92 ff ff       	call   0x405f8c
40cd27:	8b 46 14             	mov    0x14(%esi),%eax
40cd2a:	50                   	push   %eax
40cd2b:	e8 5c 92 ff ff       	call   0x405f8c
40cd30:	8b 46 20             	mov    0x20(%esi),%eax
40cd33:	e8 10 65 ff ff       	call   0x403248
40cd38:	84 db                	test   %bl,%bl
40cd3a:	7e 07                	jle    0x40cd43
40cd3c:	8b c6                	mov    %esi,%eax
40cd3e:	e8 79 68 ff ff       	call   0x4035bc
40cd43:	5e                   	pop    %esi
40cd44:	5b                   	pop    %ebx
40cd45:	c3                   	ret
40cd46:	8b c0                	mov    %eax,%eax
40cd48:	8b 40 10             	mov    0x10(%eax),%eax
40cd4b:	50                   	push   %eax
40cd4c:	e8 03 94 ff ff       	call   0x406154
40cd51:	c3                   	ret
40cd52:	8b c0                	mov    %eax,%eax
40cd54:	8b 40 10             	mov    0x10(%eax),%eax
40cd57:	50                   	push   %eax
40cd58:	e8 0f 94 ff ff       	call   0x40616c
40cd5d:	c3                   	ret
40cd5e:	8b c0                	mov    %eax,%eax
40cd60:	8b 40 14             	mov    0x14(%eax),%eax
40cd63:	50                   	push   %eax
40cd64:	e8 03 94 ff ff       	call   0x40616c
40cd69:	c3                   	ret
40cd6a:	8b c0                	mov    %eax,%eax
40cd6c:	8b 50 18             	mov    0x18(%eax),%edx
40cd6f:	52                   	push   %edx
40cd70:	8b 40 10             	mov    0x10(%eax),%eax
40cd73:	50                   	push   %eax
40cd74:	e8 2b 94 ff ff       	call   0x4061a4
40cd79:	c3                   	ret
40cd7a:	8b c0                	mov    %eax,%eax
40cd7c:	8b 50 18             	mov    0x18(%eax),%edx
40cd7f:	52                   	push   %edx
40cd80:	8b 40 14             	mov    0x14(%eax),%eax
40cd83:	50                   	push   %eax
40cd84:	e8 1b 94 ff ff       	call   0x4061a4
40cd89:	c3                   	ret
40cd8a:	8b c0                	mov    %eax,%eax
40cd8c:	53                   	push   %ebx
40cd8d:	56                   	push   %esi
40cd8e:	57                   	push   %edi
40cd8f:	55                   	push   %ebp
40cd90:	51                   	push   %ecx
40cd91:	8b f8                	mov    %eax,%edi
40cd93:	b3 01                	mov    $0x1,%bl
40cd95:	e8 9a 92 ff ff       	call   0x406034
40cd9a:	8b f0                	mov    %eax,%esi
40cd9c:	3b 77 24             	cmp    0x24(%edi),%esi
40cd9f:	74 7c                	je     0x40ce1d
40cda1:	8b c7                	mov    %edi,%eax
40cda3:	e8 a0 ff ff ff       	call   0x40cd48
40cda8:	8b 6f 28             	mov    0x28(%edi),%ebp
40cdab:	8b d4                	mov    %esp,%edx
40cdad:	8b 47 20             	mov    0x20(%edi),%eax
40cdb0:	e8 0f fe ff ff       	call   0x40cbc4
40cdb5:	8b 04 24             	mov    (%esp),%eax
40cdb8:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40cdbc:	0f 97 c3             	seta   %bl
40cdbf:	84 db                	test   %bl,%bl
40cdc1:	74 22                	je     0x40cde5
40cdc3:	8d 47 0c             	lea    0xc(%edi),%eax
40cdc6:	e8 69 fd ff ff       	call   0x40cb34
40cdcb:	eb 18                	jmp    0x40cde5
40cdcd:	8d 47 0c             	lea    0xc(%edi),%eax
40cdd0:	ba ff ff 00 00       	mov    $0xffff,%edx
40cdd5:	e8 7a fd ff ff       	call   0x40cb54
40cdda:	85 c0                	test   %eax,%eax
40cddc:	74 07                	je     0x40cde5
40cdde:	8b c7                	mov    %edi,%eax
40cde0:	e8 97 ff ff ff       	call   0x40cd7c
40cde5:	8d 47 0c             	lea    0xc(%edi),%eax
40cde8:	ba 01 00 ff ff       	mov    $0xffff0001,%edx
40cded:	e8 62 fd ff ff       	call   0x40cb54
40cdf2:	3d ff ff 00 00       	cmp    $0xffff,%eax
40cdf7:	75 d4                	jne    0x40cdcd
40cdf9:	8b c7                	mov    %edi,%eax
40cdfb:	e8 48 ff ff ff       	call   0x40cd48
40ce00:	84 db                	test   %bl,%bl
40ce02:	74 08                	je     0x40ce0c
40ce04:	8d 47 0c             	lea    0xc(%edi),%eax