40ba33:	53                   	push   %ebx
40ba34:	56                   	push   %esi
40ba35:	57                   	push   %edi
40ba36:	fc                   	cld
40ba37:	8b 45 08             	mov    0x8(%ebp),%eax
40ba3a:	8b 48 04             	mov    0x4(%eax),%ecx
40ba3d:	83 e1 66             	and    $0x66,%ecx
40ba40:	85 c9                	test   %ecx,%ecx
40ba42:	74 11                	je     0x40ba55
40ba44:	8b 55 0c             	mov    0xc(%ebp),%edx
40ba47:	c7 42 24 01 00 00 00 	movl   $0x1,0x24(%edx)
40ba4e:	b8 01 00 00 00       	mov    $0x1,%eax
40ba53:	eb 57                	jmp    0x40baac
40ba55:	6a 01                	push   $0x1
40ba57:	8b 45 0c             	mov    0xc(%ebp),%eax
40ba5a:	8b 48 14             	mov    0x14(%eax),%ecx
40ba5d:	51                   	push   %ecx
40ba5e:	8b 55 0c             	mov    0xc(%ebp),%edx
40ba61:	8b 42 10             	mov    0x10(%edx),%eax
40ba64:	50                   	push   %eax
40ba65:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40ba68:	8b 51 08             	mov    0x8(%ecx),%edx
40ba6b:	52                   	push   %edx
40ba6c:	6a 00                	push   $0x0
40ba6e:	8b 45 10             	mov    0x10(%ebp),%eax
40ba71:	50                   	push   %eax
40ba72:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40ba75:	8b 51 0c             	mov    0xc(%ecx),%edx
40ba78:	52                   	push   %edx
40ba79:	8b 45 08             	mov    0x8(%ebp),%eax
40ba7c:	50                   	push   %eax
40ba7d:	e8 be 1c 00 00       	call   0x40d740
40ba82:	83 c4 20             	add    $0x20,%esp
40ba85:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40ba88:	83 79 24 00          	cmpl   $0x0,0x24(%ecx)
40ba8c:	75 0d                	jne    0x40ba9b
40ba8e:	8b 55 08             	mov    0x8(%ebp),%edx
40ba91:	52                   	push   %edx
40ba92:	8b 45 0c             	mov    0xc(%ebp),%eax
40ba95:	50                   	push   %eax
40ba96:	e8 95 fd ff ff       	call   0x40b830
40ba9b:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40ba9e:	8b 63 1c             	mov    0x1c(%ebx),%esp
40baa1:	8b 6b 20             	mov    0x20(%ebx),%ebp
40baa4:	ff 63 18             	jmp    *0x18(%ebx)
40baa7:	b8 01 00 00 00       	mov    $0x1,%eax
40baac:	5f                   	pop    %edi
40baad:	5e                   	pop    %esi
40baae:	5b                   	pop    %ebx
40baaf:	5d                   	pop    %ebp
40bab0:	c3                   	ret
40bab1:	cc                   	int3
40bab2:	cc                   	int3
40bab3:	cc                   	int3
40bab4:	cc                   	int3
40bab5:	cc                   	int3
40bab6:	cc                   	int3
40bab7:	cc                   	int3
40bab8:	cc                   	int3
40bab9:	cc                   	int3
40baba:	cc                   	int3
40babb:	cc                   	int3
40babc:	cc                   	int3
40babd:	cc                   	int3
40babe:	cc                   	int3
40babf:	cc                   	int3
40bac0:	51                   	push   %ecx
40bac1:	8b 44 24 08          	mov    0x8(%esp),%eax
40bac5:	53                   	push   %ebx
40bac6:	8b 5c 24 10          	mov    0x10(%esp),%ebx
40baca:	55                   	push   %ebp
40bacb:	8b 48 10             	mov    0x10(%eax),%ecx
40bace:	56                   	push   %esi
40bacf:	8b 70 0c             	mov    0xc(%eax),%esi
40bad2:	57                   	push   %edi
40bad3:	85 db                	test   %ebx,%ebx
40bad5:	89 4c 24 10          	mov    %ecx,0x10(%esp)
40bad9:	8b ee                	mov    %esi,%ebp
40badb:	8b fe                	mov    %esi,%edi
40badd:	7c 35                	jl     0x40bb14
40badf:	83 fe ff             	cmp    $0xffffffff,%esi
40bae2:	75 05                	jne    0x40bae9
40bae4:	e8 07 29 00 00       	call   0x40e3f0
40bae9:	8b 44 24 10          	mov    0x10(%esp),%eax
40baed:	4e                   	dec    %esi
40baee:	8b 4c 24 20          	mov    0x20(%esp),%ecx
40baf2:	8d 14 b6             	lea    (%esi,%esi,4),%edx
40baf5:	8d 04 90             	lea    (%eax,%edx,4),%eax
40baf8:	39 48 04             	cmp    %ecx,0x4(%eax)
40bafb:	7d 05                	jge    0x40bb02
40bafd:	3b 48 08             	cmp    0x8(%eax),%ecx
40bb00:	7e 05                	jle    0x40bb07
40bb02:	83 fe ff             	cmp    $0xffffffff,%esi
40bb05:	75 05                	jne    0x40bb0c
40bb07:	8b ef                	mov    %edi,%ebp
40bb09:	4b                   	dec    %ebx
40bb0a:	8b fe                	mov    %esi,%edi
40bb0c:	85 db                	test   %ebx,%ebx
40bb0e:	7d cf                	jge    0x40badf
40bb10:	8b 44 24 18          	mov    0x18(%esp),%eax
40bb14:	8b 4c 24 24          	mov    0x24(%esp),%ecx
40bb18:	8b 54 24 28          	mov    0x28(%esp),%edx
40bb1c:	46                   	inc    %esi
40bb1d:	89 31                	mov    %esi,(%ecx)
40bb1f:	89 2a                	mov    %ebp,(%edx)
40bb21:	3b 68 0c             	cmp    0xc(%eax),%ebp
40bb24:	77 04                	ja     0x40bb2a
40bb26:	3b f5                	cmp    %ebp,%esi
40bb28:	76 05                	jbe    0x40bb2f
40bb2a:	e8 c1 28 00 00       	call   0x40e3f0
40bb2f:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40bb33:	8d 04 b6             	lea    (%esi,%esi,4),%eax
40bb36:	5f                   	pop    %edi
40bb37:	5e                   	pop    %esi
40bb38:	5d                   	pop    %ebp
40bb39:	8d 04 81             	lea    (%ecx,%eax,4),%eax
40bb3c:	5b                   	pop    %ebx
40bb3d:	59                   	pop    %ecx
40bb3e:	c3                   	ret
40bb3f:	90                   	nop
40bb40:	55                   	push   %ebp
40bb41:	8b ec                	mov    %esp,%ebp
40bb43:	53                   	push   %ebx
40bb44:	56                   	push   %esi
40bb45:	57                   	push   %edi
40bb46:	55                   	push   %ebp
40bb47:	6a 00                	push   $0x0
40bb49:	6a 00                	push   $0x0
40bb4b:	68 58 bb 40 00       	push   $0x40bb58
40bb50:	ff 75 08             	push   0x8(%ebp)
40bb53:	e8 28 75 00 00       	call   0x413080
40bb58:	5d                   	pop    %ebp
40bb59:	5f                   	pop    %edi
40bb5a:	5e                   	pop    %esi
40bb5b:	5b                   	pop    %ebx
40bb5c:	8b e5                	mov    %ebp,%esp
40bb5e:	5d                   	pop    %ebp
40bb5f:	c3                   	ret
40bb60:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40bb64:	f7 41 04 06 00 00 00 	testl  $0x6,0x4(%ecx)
40bb6b:	b8 01 00 00 00       	mov    $0x1,%eax
40bb70:	74 0f                	je     0x40bb81
40bb72:	8b 44 24 08          	mov    0x8(%esp),%eax
40bb76:	8b 54 24 10          	mov    0x10(%esp),%edx
40bb7a:	89 02                	mov    %eax,(%edx)
40bb7c:	b8 03 00 00 00       	mov    $0x3,%eax
40bb81:	c3                   	ret
40bb82:	53                   	push   %ebx
40bb83:	56                   	push   %esi
40bb84:	57                   	push   %edi
40bb85:	8b 44 24 10          	mov    0x10(%esp),%eax
40bb89:	50                   	push   %eax
40bb8a:	6a fe                	push   $0xfffffffe
40bb8c:	68 60 bb 40 00       	push   $0x40bb60
40bb91:	64 ff 35 00 00 00 00 	push   %fs:0x0
40bb98:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40bb9f:	8b 44 24 20          	mov    0x20(%esp),%eax
40bba3:	8b 58 08             	mov    0x8(%eax),%ebx
40bba6:	8b 70 0c             	mov    0xc(%eax),%esi
40bba9:	83 fe ff             	cmp    $0xffffffff,%esi
40bbac:	74 2e                	je     0x40bbdc
40bbae:	3b 74 24 24          	cmp    0x24(%esp),%esi
40bbb2:	74 28                	je     0x40bbdc
40bbb4:	8d 34 76             	lea    (%esi,%esi,2),%esi
40bbb7:	8b 0c b3             	mov    (%ebx,%esi,4),%ecx
40bbba:	89 4c 24 08          	mov    %ecx,0x8(%esp)
40bbbe:	89 48 0c             	mov    %ecx,0xc(%eax)
40bbc1:	83 7c b3 04 00       	cmpl   $0x0,0x4(%ebx,%esi,4)
40bbc6:	75 12                	jne    0x40bbda
40bbc8:	68 01 01 00 00       	push   $0x101
40bbcd:	8b 44 b3 08          	mov    0x8(%ebx,%esi,4),%eax
40bbd1:	e8 40 00 00 00       	call   0x40bc16
40bbd6:	ff 54 b3 08          	call   *0x8(%ebx,%esi,4)
40bbda:	eb c3                	jmp    0x40bb9f
40bbdc:	64 8f 05 00 00 00 00 	pop    %fs:0x0
40bbe3:	83 c4 0c             	add    $0xc,%esp
40bbe6:	5f                   	pop    %edi
40bbe7:	5e                   	pop    %esi
40bbe8:	5b                   	pop    %ebx
40bbe9:	c3                   	ret
40bbea:	33 c0                	xor    %eax,%eax
40bbec:	64 8b 0d 00 00 00 00 	mov    %fs:0x0,%ecx
40bbf3:	81 79 04 60 bb 40 00 	cmpl   $0x40bb60,0x4(%ecx)
40bbfa:	75 10                	jne    0x40bc0c
40bbfc:	8b 51 0c             	mov    0xc(%ecx),%edx
40bbff:	8b 52 0c             	mov    0xc(%edx),%edx
40bc02:	39 51 08             	cmp    %edx,0x8(%ecx)
40bc05:	75 05                	jne    0x40bc0c
40bc07:	b8 01 00 00 00       	mov    $0x1,%eax
40bc0c:	c3                   	ret
40bc0d:	53                   	push   %ebx
40bc0e:	51                   	push   %ecx
40bc0f:	bb dc 17 43 00       	mov    $0x4317dc,%ebx
40bc14:	eb 0a                	jmp    0x40bc20
40bc16:	53                   	push   %ebx
40bc17:	51                   	push   %ecx
40bc18:	bb dc 17 43 00       	mov    $0x4317dc,%ebx
40bc1d:	8b 4d 08             	mov    0x8(%ebp),%ecx
40bc20:	89 4b 08             	mov    %ecx,0x8(%ebx)
40bc23:	89 43 04             	mov    %eax,0x4(%ebx)
40bc26:	89 6b 0c             	mov    %ebp,0xc(%ebx)
40bc29:	59                   	pop    %ecx
40bc2a:	5b                   	pop    %ebx
40bc2b:	c2 04 00             	ret    $0x4
40bc2e:	cc                   	int3
40bc2f:	cc                   	int3
40bc30:	6a ff                	push   $0xffffffff
40bc32:	50                   	push   %eax
40bc33:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40bc39:	50                   	push   %eax
40bc3a:	8b 44 24 0c          	mov    0xc(%esp),%eax
40bc3e:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40bc45:	89 6c 24 0c          	mov    %ebp,0xc(%esp)
40bc49:	8d 6c 24 0c          	lea    0xc(%esp),%ebp
40bc4d:	50                   	push   %eax
40bc4e:	c3                   	ret
40bc4f:	cc                   	int3
40bc50:	56                   	push   %esi
40bc51:	e8 1a 0f 00 00       	call   0x40cb70
40bc56:	a1 a8 8a 43 00       	mov    0x438aa8,%eax
40bc5b:	50                   	push   %eax
40bc5c:	e8 6f 0f 00 00       	call   0x40cbd0
40bc61:	8b 0d a4 8a 43 00    	mov    0x438aa4,%ecx
40bc67:	8b 15 a8 8a 43 00    	mov    0x438aa8,%edx
40bc6d:	8b f1                	mov    %ecx,%esi
40bc6f:	83 c4 04             	add    $0x4,%esp
40bc72:	2b f2                	sub    %edx,%esi
40bc74:	83 c6 04             	add    $0x4,%esi
40bc77:	3b c6                	cmp    %esi,%eax
40bc79:	73 48                	jae    0x40bcc3
40bc7b:	52                   	push   %edx
40bc7c:	e8 4f 0f 00 00       	call   0x40cbd0
40bc81:	8b 0d a8 8a 43 00    	mov    0x438aa8,%ecx
40bc87:	83 c4 04             	add    $0x4,%esp
40bc8a:	83 c0 10             	add    $0x10,%eax
40bc8d:	50                   	push   %eax
40bc8e:	51                   	push   %ecx
40bc8f:	e8 ec 27 00 00       	call   0x40e480
40bc94:	83 c4 08             	add    $0x8,%esp
40bc97:	85 c0                	test   %eax,%eax
40bc99:	75 09                	jne    0x40bca4
40bc9b:	e8 e0 0e 00 00       	call   0x40cb80
40bca0:	33 c0                	xor    %eax,%eax
40bca2:	5e                   	pop    %esi
40bca3:	c3                   	ret
40bca4:	8b 15 a4 8a 43 00    	mov    0x438aa4,%edx
40bcaa:	8b 35 a8 8a 43 00    	mov    0x438aa8,%esi
40bcb0:	2b d6                	sub    %esi,%edx
40bcb2:	a3 a8 8a 43 00       	mov    %eax,0x438aa8
40bcb7:	c1 fa 02             	sar    $0x2,%edx
40bcba:	8d 0c 90             	lea    (%eax,%edx,4),%ecx
40bcbd:	89 0d a4 8a 43 00    	mov    %ecx,0x438aa4
40bcc3:	8b 74 24 08          	mov    0x8(%esp),%esi
40bcc7:	89 31                	mov    %esi,(%ecx)
40bcc9:	a1 a4 8a 43 00       	mov    0x438aa4,%eax
40bcce:	83 c0 04             	add    $0x4,%eax
40bcd1:	a3 a4 8a 43 00       	mov    %eax,0x438aa4
40bcd6:	e8 a5 0e 00 00       	call   0x40cb80
40bcdb:	8b c6                	mov    %esi,%eax
40bcdd:	5e                   	pop    %esi
40bcde:	c3                   	ret
40bcdf:	90                   	nop
40bce0:	8b 44 24 04          	mov    0x4(%esp),%eax
40bce4:	50                   	push   %eax
40bce5:	e8 66 ff ff ff       	call   0x40bc50
40bcea:	83 c4 04             	add    $0x4,%esp
40bced:	f7 d8                	neg    %eax
40bcef:	1b c0                	sbb    %eax,%eax
40bcf1:	f7 d8                	neg    %eax
40bcf3:	48                   	dec    %eax
40bcf4:	c3                   	ret
40bcf5:	90                   	nop
40bcf6:	90                   	nop
40bcf7:	90                   	nop
40bcf8:	90                   	nop
40bcf9:	90                   	nop
40bcfa:	90                   	nop
40bcfb:	90                   	nop
40bcfc:	90                   	nop
40bcfd:	90                   	nop
40bcfe:	90                   	nop
40bcff:	90                   	nop
40bd00:	68 80 00 00 00       	push   $0x80
40bd05:	e8 b6 07 00 00       	call   0x40c4c0
40bd0a:	83 c4 04             	add    $0x4,%esp
40bd0d:	a3 a8 8a 43 00       	mov    %eax,0x438aa8
40bd12:	85 c0                	test   %eax,%eax
40bd14:	75 0f                	jne    0x40bd25
40bd16:	6a 18                	push   $0x18
40bd18:	e8 73 06 00 00       	call   0x40c390
40bd1d:	a1 a8 8a 43 00       	mov    0x438aa8,%eax
40bd22:	83 c4 04             	add    $0x4,%esp
40bd25:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
40bd2b:	a1 a8 8a 43 00       	mov    0x438aa8,%eax
40bd30:	a3 a4 8a 43 00       	mov    %eax,0x438aa4
40bd35:	c3                   	ret
40bd36:	90                   	nop
40bd37:	90                   	nop
40bd38:	90                   	nop
40bd39:	90                   	nop
40bd3a:	90                   	nop
40bd3b:	90                   	nop
40bd3c:	90                   	nop
40bd3d:	90                   	nop
40bd3e:	90                   	nop
40bd3f:	90                   	nop
40bd40:	51                   	push   %ecx
40bd41:	3d 00 10 00 00       	cmp    $0x1000,%eax
40bd46:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40bd4a:	72 14                	jb     0x40bd60
40bd4c:	81 e9 00 10 00 00    	sub    $0x1000,%ecx
40bd52:	2d 00 10 00 00       	sub    $0x1000,%eax
40bd57:	85 01                	test   %eax,(%ecx)
40bd59:	3d 00 10 00 00       	cmp    $0x1000,%eax
40bd5e:	73 ec                	jae    0x40bd4c
40bd60:	2b c8                	sub    %eax,%ecx
40bd62:	8b c4                	mov    %esp,%eax
40bd64:	85 01                	test   %eax,(%ecx)
40bd66:	8b e1                	mov    %ecx,%esp
40bd68:	8b 08                	mov    (%eax),%ecx
40bd6a:	8b 40 04             	mov    0x4(%eax),%eax
40bd6d:	50                   	push   %eax
40bd6e:	c3                   	ret
40bd6f:	cc                   	int3
40bd70:	55                   	push   %ebp
40bd71:	8b ec                	mov    %esp,%ebp
40bd73:	57                   	push   %edi
40bd74:	56                   	push   %esi
40bd75:	8b 75 0c             	mov    0xc(%ebp),%esi
40bd78:	8b 4d 10             	mov    0x10(%ebp),%ecx
40bd7b:	8b 7d 08             	mov    0x8(%ebp),%edi
40bd7e:	8b c1                	mov    %ecx,%eax
40bd80:	8b d1                	mov    %ecx,%edx
40bd82:	03 c6                	add    %esi,%eax
40bd84:	3b fe                	cmp    %esi,%edi
40bd86:	76 08                	jbe    0x40bd90
40bd88:	3b f8                	cmp    %eax,%edi
40bd8a:	0f 82 78 01 00 00    	jb     0x40bf08
40bd90:	f7 c7 03 00 00 00    	test   $0x3,%edi
40bd96:	75 14                	jne    0x40bdac
40bd98:	c1 e9 02             	shr    $0x2,%ecx
40bd9b:	83 e2 03             	and    $0x3,%edx
40bd9e:	83 f9 08             	cmp    $0x8,%ecx
40bda1:	72 29                	jb     0x40bdcc
40bda3:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40bda5:	ff 24 95 b8 be 40 00 	jmp    *0x40beb8(,%edx,4)
40bdac:	8b c7                	mov    %edi,%eax
40bdae:	ba 03 00 00 00       	mov    $0x3,%edx
40bdb3:	83 e9 04             	sub    $0x4,%ecx
40bdb6:	72 0c                	jb     0x40bdc4