56e780:	83 c4 08             	add    $0x8,%esp
56e783:	85 c0                	test   %eax,%eax
56e785:	78 0f                	js     0x56e796
56e787:	57                   	push   %edi
56e788:	56                   	push   %esi
56e789:	56                   	push   %esi
56e78a:	e8 d1 99 f6 ff       	call   0x4d8160
56e78f:	83 c4 0c             	add    $0xc,%esp
56e792:	85 c0                	test   %eax,%eax
56e794:	74 70                	je     0x56e806
56e796:	83 eb 01             	sub    $0x1,%ebx
56e799:	74 14                	je     0x56e7af
56e79b:	57                   	push   %edi
56e79c:	56                   	push   %esi
56e79d:	e8 1e 46 f4 ff       	call   0x4b2dc0
56e7a2:	83 c4 08             	add    $0x8,%esp
56e7a5:	85 c0                	test   %eax,%eax
56e7a7:	78 3b                	js     0x56e7e4
56e7a9:	8b 44 24 1c          	mov    0x1c(%esp),%eax
56e7ad:	eb 96                	jmp    0x56e745
56e7af:	68 06 01 00 00       	push   $0x106
56e7b4:	eb 3d                	jmp    0x56e7f3
56e7b6:	8b 74 24 18          	mov    0x18(%esp),%esi
56e7ba:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
56e7c0:	6a 00                	push   $0x0
56e7c2:	6a ff                	push   $0xffffffff
56e7c4:	55                   	push   %ebp
56e7c5:	56                   	push   %esi
56e7c6:	ff 54 24 24          	call   *0x24(%esp)
56e7ca:	83 c4 10             	add    $0x10,%esp
56e7cd:	85 c0                	test   %eax,%eax
56e7cf:	74 35                	je     0x56e806
56e7d1:	83 eb 01             	sub    $0x1,%ebx
56e7d4:	74 18                	je     0x56e7ee
56e7d6:	57                   	push   %edi
56e7d7:	56                   	push   %esi
56e7d8:	e8 e3 45 f4 ff       	call   0x4b2dc0
56e7dd:	83 c4 08             	add    $0x8,%esp
56e7e0:	85 c0                	test   %eax,%eax
56e7e2:	79 dc                	jns    0x56e7c0
56e7e4:	5e                   	pop    %esi
56e7e5:	5d                   	pop    %ebp
56e7e6:	5f                   	pop    %edi
56e7e7:	b8 01 00 00 00       	mov    $0x1,%eax
56e7ec:	5b                   	pop    %ebx
56e7ed:	c3                   	ret
56e7ee:	68 13 01 00 00       	push   $0x113
56e7f3:	68 58 c9 6b 00       	push   $0x6bc958
56e7f8:	6a 71                	push   $0x71
56e7fa:	6a 7a                	push   $0x7a
56e7fc:	6a 03                	push   $0x3
56e7fe:	e8 9d 2c f3 ff       	call   0x4a14a0
56e803:	83 c4 14             	add    $0x14,%esp
56e806:	5e                   	pop    %esi
56e807:	5d                   	pop    %ebp
56e808:	5f                   	pop    %edi
56e809:	33 c0                	xor    %eax,%eax
56e80b:	5b                   	pop    %ebx
56e80c:	c3                   	ret
56e80d:	68 e5 00 00 00       	push   $0xe5
56e812:	68 58 c9 6b 00       	push   $0x6bc958
56e817:	6a 73                	push   $0x73
56e819:	6a 7a                	push   $0x7a
56e81b:	6a 03                	push   $0x3
56e81d:	e8 7e 2c f3 ff       	call   0x4a14a0
56e822:	83 c4 14             	add    $0x14,%esp
56e825:	33 c0                	xor    %eax,%eax
56e827:	5f                   	pop    %edi
56e828:	5b                   	pop    %ebx
56e829:	c3                   	ret
56e82a:	cc                   	int3
56e82b:	cc                   	int3
56e82c:	cc                   	int3
56e82d:	cc                   	int3
56e82e:	cc                   	int3
56e82f:	cc                   	int3
56e830:	b8 10 00 00 00       	mov    $0x10,%eax
56e835:	e8 b6 2c 07 00       	call   0x5e14f0
56e83a:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
56e83e:	55                   	push   %ebp
56e83f:	33 ed                	xor    %ebp,%ebp
56e841:	85 c9                	test   %ecx,%ecx
56e843:	75 2a                	jne    0x56e86f
56e845:	83 7c 24 24 ff       	cmpl   $0xffffffff,0x24(%esp)
56e84a:	0f 85 a6 01 00 00    	jne    0x56e9f6
56e850:	39 6c 24 28          	cmp    %ebp,0x28(%esp)
56e854:	0f 85 9c 01 00 00    	jne    0x56e9f6
56e85a:	51                   	push   %ecx
56e85b:	ff 74 24 20          	push   0x20(%esp)
56e85f:	e8 8c 4c f4 ff       	call   0x4b34f0
56e864:	83 c4 08             	add    $0x8,%esp
56e867:	8d 45 01             	lea    0x1(%ebp),%eax
56e86a:	5d                   	pop    %ebp
56e86b:	83 c4 10             	add    $0x10,%esp
56e86e:	c3                   	ret
56e86f:	0f 88 81 01 00 00    	js     0x56e9f6
56e875:	83 f9 01             	cmp    $0x1,%ecx
56e878:	75 0a                	jne    0x56e884
56e87a:	39 6c 24 24          	cmp    %ebp,0x24(%esp)
56e87e:	0f 8f 72 01 00 00    	jg     0x56e9f6
56e884:	8d 41 07             	lea    0x7(%ecx),%eax
56e887:	99                   	cltd
56e888:	83 e2 07             	and    $0x7,%edx
56e88b:	53                   	push   %ebx
56e88c:	56                   	push   %esi
56e88d:	8d 71 ff             	lea    -0x1(%ecx),%esi
56e890:	8d 1c 02             	lea    (%edx,%eax,1),%ebx
56e893:	c1 fb 03             	sar    $0x3,%ebx
56e896:	57                   	push   %edi
56e897:	81 e6 07 00 00 80    	and    $0x80000007,%esi
56e89d:	79 05                	jns    0x56e8a4
56e89f:	4e                   	dec    %esi
56e8a0:	83 ce f8             	or     $0xfffffff8,%esi
56e8a3:	46                   	inc    %esi
56e8a4:	68 89 00 00 00       	push   $0x89
56e8a9:	8d 4e 01             	lea    0x1(%esi),%ecx
56e8ac:	89 74 24 14          	mov    %esi,0x14(%esp)
56e8b0:	b8 ff 00 00 00       	mov    $0xff,%eax
56e8b5:	d3 e0                	shl    %cl,%eax
56e8b7:	68 58 c9 6b 00       	push   $0x6bc958
56e8bc:	53                   	push   %ebx
56e8bd:	89 44 24 20          	mov    %eax,0x20(%esp)
56e8c1:	e8 ea 18 f3 ff       	call   0x4a01b0
56e8c6:	8b f8                	mov    %eax,%edi
56e8c8:	83 c4 0c             	add    $0xc,%esp
56e8cb:	85 ff                	test   %edi,%edi
56e8cd:	75 22                	jne    0x56e8f1
56e8cf:	68 8b 00 00 00       	push   $0x8b
56e8d4:	68 58 c9 6b 00       	push   $0x6bc958
56e8d9:	6a 41                	push   $0x41
56e8db:	6a 7f                	push   $0x7f
56e8dd:	6a 03                	push   $0x3
56e8df:	e8 bc 2b f3 ff       	call   0x4a14a0
56e8e4:	83 c4 14             	add    $0x14,%esp
56e8e7:	8b c5                	mov    %ebp,%eax
56e8e9:	5f                   	pop    %edi
56e8ea:	5e                   	pop    %esi
56e8eb:	5b                   	pop    %ebx
56e8ec:	5d                   	pop    %ebp
56e8ed:	83 c4 10             	add    $0x10,%esp
56e8f0:	c3                   	ret
56e8f1:	8d 44 24 18          	lea    0x18(%esp),%eax
56e8f5:	50                   	push   %eax
56e8f6:	e8 d0 9f 08 00       	call   0x5f88cb
56e8fb:	83 c4 04             	add    $0x4,%esp
56e8fe:	b8 08 00 00 00       	mov    $0x8,%eax
56e903:	e8 e8 2b 07 00       	call   0x5e14f0
56e908:	0f 57 c0             	xorps  %xmm0,%xmm0
56e90b:	8d 44 24 20          	lea    0x20(%esp),%eax
56e90f:	f2 0f 11 04 24       	movsd  %xmm0,(%esp)
56e914:	6a 08                	push   $0x8
56e916:	50                   	push   %eax
56e917:	e8 04 25 f2 ff       	call   0x490e20
56e91c:	53                   	push   %ebx
56e91d:	57                   	push   %edi
56e91e:	e8 7d 25 f2 ff       	call   0x490ea0
56e923:	83 c4 18             	add    $0x18,%esp
56e926:	85 c0                	test   %eax,%eax
56e928:	0f 8e ae 00 00 00    	jle    0x56e9dc
56e92e:	83 7c 24 24 02       	cmpl   $0x2,0x24(%esp)
56e933:	75 52                	jne    0x56e987
56e935:	33 f6                	xor    %esi,%esi
56e937:	85 db                	test   %ebx,%ebx
56e939:	7e 48                	jle    0x56e983
56e93b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
56e940:	8d 44 24 2c          	lea    0x2c(%esp),%eax
56e944:	6a 01                	push   $0x1
56e946:	50                   	push   %eax
56e947:	e8 b4 25 f2 ff       	call   0x490f00
56e94c:	83 c4 08             	add    $0x8,%esp
56e94f:	85 c0                	test   %eax,%eax
56e951:	0f 88 85 00 00 00    	js     0x56e9dc
56e957:	8a 44 24 2c          	mov    0x2c(%esp),%al
56e95b:	3c 80                	cmp    $0x80,%al
56e95d:	72 0d                	jb     0x56e96c
56e95f:	85 f6                	test   %esi,%esi
56e961:	7e 09                	jle    0x56e96c
56e963:	8a 44 3e ff          	mov    -0x1(%esi,%edi,1),%al
56e967:	88 04 3e             	mov    %al,(%esi,%edi,1)
56e96a:	eb 12                	jmp    0x56e97e
56e96c:	3c 2a                	cmp    $0x2a,%al
56e96e:	73 06                	jae    0x56e976
56e970:	c6 04 3e 00          	movb   $0x0,(%esi,%edi,1)
56e974:	eb 08                	jmp    0x56e97e
56e976:	3c 54                	cmp    $0x54,%al
56e978:	73 04                	jae    0x56e97e
56e97a:	c6 04 3e ff          	movb   $0xff,(%esi,%edi,1)
56e97e:	46                   	inc    %esi
56e97f:	3b f3                	cmp    %ebx,%esi
56e981:	7c bd                	jl     0x56e940
56e983:	8b 74 24 10          	mov    0x10(%esp),%esi
56e987:	8b 44 24 30          	mov    0x30(%esp),%eax
56e98b:	85 c0                	test   %eax,%eax
56e98d:	78 22                	js     0x56e9b1
56e98f:	74 18                	je     0x56e9a9
56e991:	85 f6                	test   %esi,%esi
56e993:	75 09                	jne    0x56e99e
56e995:	80 4f 01 80          	orb    $0x80,0x1(%edi)
56e999:	c6 07 01             	movb   $0x1,(%edi)
56e99c:	eb 13                	jmp    0x56e9b1
56e99e:	8d 4e ff             	lea    -0x1(%esi),%ecx
56e9a1:	b0 03                	mov    $0x3,%al
56e9a3:	d2 e0                	shl    %cl,%al
56e9a5:	08 07                	or     %al,(%edi)
56e9a7:	eb 08                	jmp    0x56e9b1
56e9a9:	0f b6 07             	movzbl (%edi),%eax
56e9ac:	0f ab f0             	bts    %esi,%eax
56e9af:	88 07                	mov    %al,(%edi)
56e9b1:	8b 44 24 14          	mov    0x14(%esp),%eax
56e9b5:	f6 d0                	not    %al
56e9b7:	20 07                	and    %al,(%edi)
56e9b9:	39 6c 24 34          	cmp    %ebp,0x34(%esp)
56e9bd:	74 05                	je     0x56e9c4
56e9bf:	80 4c 3b ff 01       	orb    $0x1,-0x1(%ebx,%edi,1)
56e9c4:	ff 74 24 28          	push   0x28(%esp)
56e9c8:	53                   	push   %ebx
56e9c9:	57                   	push   %edi
56e9ca:	e8 41 42 f4 ff       	call   0x4b2c10
56e9cf:	83 c4 0c             	add    $0xc,%esp
56e9d2:	b9 01 00 00 00       	mov    $0x1,%ecx
56e9d7:	85 c0                	test   %eax,%eax
56e9d9:	0f 45 e9             	cmovne %ecx,%ebp
56e9dc:	53                   	push   %ebx
56e9dd:	57                   	push   %edi
56e9de:	e8 6d 19 f3 ff       	call   0x4a0350
56e9e3:	57                   	push   %edi
56e9e4:	e8 47 17 f3 ff       	call   0x4a0130
56e9e9:	83 c4 0c             	add    $0xc,%esp
56e9ec:	8b c5                	mov    %ebp,%eax
56e9ee:	5f                   	pop    %edi
56e9ef:	5e                   	pop    %esi
56e9f0:	5b                   	pop    %ebx
56e9f1:	5d                   	pop    %ebp
56e9f2:	83 c4 10             	add    $0x10,%esp
56e9f5:	c3                   	ret
56e9f6:	68 c7 00 00 00       	push   $0xc7
56e9fb:	68 58 c9 6b 00       	push   $0x6bc958
56ea00:	6a 76                	push   $0x76
56ea02:	6a 7f                	push   $0x7f
56ea04:	6a 03                	push   $0x3
56ea06:	e8 95 2a f3 ff       	call   0x4a14a0
56ea0b:	83 c4 14             	add    $0x14,%esp
56ea0e:	33 c0                	xor    %eax,%eax
56ea10:	5d                   	pop    %ebp
56ea11:	83 c4 10             	add    $0x10,%esp
56ea14:	c3                   	ret
56ea15:	cc                   	int3
56ea16:	cc                   	int3
56ea17:	cc                   	int3
56ea18:	cc                   	int3
56ea19:	cc                   	int3
56ea1a:	cc                   	int3
56ea1b:	cc                   	int3
56ea1c:	cc                   	int3
56ea1d:	cc                   	int3
56ea1e:	cc                   	int3
56ea1f:	cc                   	int3
56ea20:	56                   	push   %esi
56ea21:	ff 74 24 10          	push   0x10(%esp)
56ea25:	8b 74 24 0c          	mov    0xc(%esp),%esi
56ea29:	ff 74 24 10          	push   0x10(%esp)
56ea2d:	56                   	push   %esi
56ea2e:	e8 9d 96 f6 ff       	call   0x4d80d0
56ea33:	83 c4 0c             	add    $0xc,%esp
56ea36:	85 c0                	test   %eax,%eax
56ea38:	75 02                	jne    0x56ea3c
56ea3a:	5e                   	pop    %esi
56ea3b:	c3                   	ret
56ea3c:	57                   	push   %edi
56ea3d:	ff 74 24 1c          	push   0x1c(%esp)
56ea41:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
56ea45:	57                   	push   %edi
56ea46:	56                   	push   %esi
56ea47:	56                   	push   %esi
56ea48:	6a 00                	push   $0x0
56ea4a:	e8 51 19 00 00       	call   0x5703a0
56ea4f:	83 c4 14             	add    $0x14,%esp
56ea52:	85 c0                	test   %eax,%eax
56ea54:	75 03                	jne    0x56ea59
56ea56:	5f                   	pop    %edi
56ea57:	5e                   	pop    %esi
56ea58:	c3                   	ret
56ea59:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
56ea5d:	75 08                	jne    0x56ea67
56ea5f:	5f                   	pop    %edi
56ea60:	b8 01 00 00 00       	mov    $0x1,%eax
56ea65:	5e                   	pop    %esi
56ea66:	c3                   	ret
56ea67:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
56ea6b:	b9 60 81 4d 00       	mov    $0x4d8160,%ecx
56ea70:	57                   	push   %edi
56ea71:	56                   	push   %esi
56ea72:	b8 d0 80 4d 00       	mov    $0x4d80d0,%eax
56ea77:	56                   	push   %esi
56ea78:	0f 45 c1             	cmovne %ecx,%eax
56ea7b:	ff d0                	call   *%eax
56ea7d:	83 c4 0c             	add    $0xc,%esp
56ea80:	5f                   	pop    %edi
56ea81:	5e                   	pop    %esi
56ea82:	c3                   	ret
56ea83:	cc                   	int3
56ea84:	cc                   	int3
56ea85:	cc                   	int3
56ea86:	cc                   	int3
56ea87:	cc                   	int3
56ea88:	cc                   	int3
56ea89:	cc                   	int3
56ea8a:	cc                   	int3
56ea8b:	cc                   	int3
56ea8c:	cc                   	int3
56ea8d:	cc                   	int3
56ea8e:	cc                   	int3
56ea8f:	cc                   	int3
56ea90:	56                   	push   %esi
56ea91:	ff 74 24 10          	push   0x10(%esp)
56ea95:	8b 74 24 0c          	mov    0xc(%esp),%esi
56ea99:	ff 74 24 10          	push   0x10(%esp)
56ea9d:	56                   	push   %esi
56ea9e:	e8 8d 97 f6 ff       	call   0x4d8230
56eaa3:	83 c4 0c             	add    $0xc,%esp
56eaa6:	85 c0                	test   %eax,%eax
56eaa8:	75 02                	jne    0x56eaac
56eaaa:	5e                   	pop    %esi
56eaab:	c3                   	ret
56eaac:	ff 74 24 14          	push   0x14(%esp)
56eab0:	56                   	push   %esi
56eab1:	e8 9a 4a f4 ff       	call   0x4b3550
56eab6:	83 c4 08             	add    $0x8,%esp
56eab9:	85 c0                	test   %eax,%eax
56eabb:	78 10                	js     0x56eacd
56eabd:	ff 74 24 14          	push   0x14(%esp)
56eac1:	56                   	push   %esi
56eac2:	56                   	push   %esi
56eac3:	e8 38 98 f6 ff       	call   0x4d8300
56eac8:	83 c4 0c             	add    $0xc,%esp
56eacb:	5e                   	pop    %esi
56eacc:	c3                   	ret
56eacd:	b8 01 00 00 00       	mov    $0x1,%eax
56ead2:	5e                   	pop    %esi
56ead3:	c3                   	ret
56ead4:	cc                   	int3
56ead5:	cc                   	int3
56ead6:	cc                   	int3
56ead7:	cc                   	int3
56ead8:	cc                   	int3
56ead9:	cc                   	int3
56eada:	cc                   	int3
56eadb:	cc                   	int3
56eadc:	cc                   	int3
56eadd:	cc                   	int3