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
56eade:	cc                   	int3
56eadf:	cc                   	int3
56eae0:	56                   	push   %esi
56eae1:	ff 74 24 0c          	push   0xc(%esp)
56eae5:	8b 74 24 0c          	mov    0xc(%esp),%esi
56eae9:	56                   	push   %esi
56eaea:	e8 91 5b f4 ff       	call   0x4b4680
56eaef:	83 c4 08             	add    $0x8,%esp
56eaf2:	85 c0                	test   %eax,%eax
56eaf4:	75 02                	jne    0x56eaf8
56eaf6:	5e                   	pop    %esi
56eaf7:	c3                   	ret
56eaf8:	ff 74 24 10          	push   0x10(%esp)
56eafc:	56                   	push   %esi
56eafd:	e8 be 42 f4 ff       	call   0x4b2dc0
56eb02:	83 c4 08             	add    $0x8,%esp
56eb05:	85 c0                	test   %eax,%eax
56eb07:	78 10                	js     0x56eb19
56eb09:	ff 74 24 10          	push   0x10(%esp)
56eb0d:	56                   	push   %esi
56eb0e:	56                   	push   %esi
56eb0f:	e8 4c 96 f6 ff       	call   0x4d8160
56eb14:	83 c4 0c             	add    $0xc,%esp
56eb17:	5e                   	pop    %esi
56eb18:	c3                   	ret
56eb19:	b8 01 00 00 00       	mov    $0x1,%eax
56eb1e:	5e                   	pop    %esi
56eb1f:	c3                   	ret
56eb20:	8b 44 24 08          	mov    0x8(%esp),%eax
56eb24:	57                   	push   %edi
56eb25:	8b 7c 24 08          	mov    0x8(%esp),%edi
56eb29:	3b f8                	cmp    %eax,%edi
56eb2b:	74 10                	je     0x56eb3d
56eb2d:	50                   	push   %eax
56eb2e:	57                   	push   %edi
56eb2f:	e8 9c 45 f4 ff       	call   0x4b30d0
56eb34:	83 c4 08             	add    $0x8,%esp
56eb37:	85 c0                	test   %eax,%eax
56eb39:	75 02                	jne    0x56eb3d
56eb3b:	5f                   	pop    %edi
56eb3c:	c3                   	ret
56eb3d:	53                   	push   %ebx
56eb3e:	8b 5c 24 14          	mov    0x14(%esp),%ebx
56eb42:	55                   	push   %ebp
56eb43:	56                   	push   %esi
56eb44:	85 db                	test   %ebx,%ebx
56eb46:	7e 6f                	jle    0x56ebb7
56eb48:	8b 6c 24 20          	mov    0x20(%esp),%ebp
56eb4c:	0f 1f 40 00          	nopl   0x0(%eax)
56eb50:	57                   	push   %edi
56eb51:	e8 1a 48 f4 ff       	call   0x4b3370
56eb56:	55                   	push   %ebp
56eb57:	8b f0                	mov    %eax,%esi
56eb59:	e8 12 48 f4 ff       	call   0x4b3370
56eb5e:	8b e8                	mov    %eax,%ebp
56eb60:	83 c4 08             	add    $0x8,%esp
56eb63:	2b ee                	sub    %esi,%ebp
56eb65:	78 5a                	js     0x56ebc1
56eb67:	3b eb                	cmp    %ebx,%ebp
56eb69:	0f 4f eb             	cmovg  %ebx,%ebp
56eb6c:	85 ed                	test   %ebp,%ebp
56eb6e:	74 13                	je     0x56eb83
56eb70:	55                   	push   %ebp
56eb71:	57                   	push   %edi
56eb72:	57                   	push   %edi
56eb73:	e8 88 59 f4 ff       	call   0x4b4500
56eb78:	83 c4 0c             	add    $0xc,%esp
56eb7b:	85 c0                	test   %eax,%eax
56eb7d:	74 5a                	je     0x56ebd9
56eb7f:	2b dd                	sub    %ebp,%ebx
56eb81:	eb 0f                	jmp    0x56eb92
56eb83:	57                   	push   %edi
56eb84:	57                   	push   %edi
56eb85:	e8 f6 5a f4 ff       	call   0x4b4680
56eb8a:	83 c4 08             	add    $0x8,%esp
56eb8d:	85 c0                	test   %eax,%eax
56eb8f:	74 48                	je     0x56ebd9
56eb91:	4b                   	dec    %ebx
56eb92:	8b 6c 24 20          	mov    0x20(%esp),%ebp
56eb96:	55                   	push   %ebp
56eb97:	57                   	push   %edi
56eb98:	e8 23 42 f4 ff       	call   0x4b2dc0
56eb9d:	83 c4 08             	add    $0x8,%esp
56eba0:	85 c0                	test   %eax,%eax
56eba2:	78 0f                	js     0x56ebb3
56eba4:	55                   	push   %ebp
56eba5:	57                   	push   %edi
56eba6:	57                   	push   %edi
56eba7:	e8 b4 95 f6 ff       	call   0x4d8160
56ebac:	83 c4 0c             	add    $0xc,%esp
56ebaf:	85 c0                	test   %eax,%eax
56ebb1:	74 26                	je     0x56ebd9
56ebb3:	85 db                	test   %ebx,%ebx
56ebb5:	7f 99                	jg     0x56eb50
56ebb7:	5e                   	pop    %esi
56ebb8:	5d                   	pop    %ebp
56ebb9:	5b                   	pop    %ebx
56ebba:	b8 01 00 00 00       	mov    $0x1,%eax
56ebbf:	5f                   	pop    %edi
56ebc0:	c3                   	ret
56ebc1:	68 21 01 00 00       	push   $0x121
56ebc6:	68 70 c9 6b 00       	push   $0x6bc970
56ebcb:	6a 6e                	push   $0x6e
56ebcd:	6a 77                	push   $0x77
56ebcf:	6a 03                	push   $0x3
56ebd1:	e8 ca 28 f3 ff       	call   0x4a14a0
56ebd6:	83 c4 14             	add    $0x14,%esp
56ebd9:	5e                   	pop    %esi
56ebda:	5d                   	pop    %ebp
56ebdb:	5b                   	pop    %ebx
56ebdc:	33 c0                	xor    %eax,%eax
56ebde:	5f                   	pop    %edi
56ebdf:	c3                   	ret
56ebe0:	53                   	push   %ebx
56ebe1:	56                   	push   %esi
56ebe2:	8b 74 24 1c          	mov    0x1c(%esp),%esi
56ebe6:	33 db                	xor    %ebx,%ebx
56ebe8:	57                   	push   %edi
56ebe9:	56                   	push   %esi
56ebea:	e8 b1 92 f6 ff       	call   0x4d7ea0
56ebef:	56                   	push   %esi
56ebf0:	e8 cb 91 f6 ff       	call   0x4d7dc0
56ebf5:	8b f8                	mov    %eax,%edi
56ebf7:	83 c4 08             	add    $0x8,%esp
56ebfa:	85 ff                	test   %edi,%edi
56ebfc:	74 44                	je     0x56ec42
56ebfe:	8b 44 24 14          	mov    0x14(%esp),%eax
56ec02:	8b 4c 24 18          	mov    0x18(%esp),%ecx
56ec06:	56                   	push   %esi
56ec07:	3b c1                	cmp    %ecx,%eax
56ec09:	75 0c                	jne    0x56ec17
56ec0b:	50                   	push   %eax
56ec0c:	57                   	push   %edi
56ec0d:	e8 4e 81 01 00       	call   0x586d60
56ec12:	83 c4 0c             	add    $0xc,%esp
56ec15:	eb 0b                	jmp    0x56ec22
56ec17:	51                   	push   %ecx
56ec18:	50                   	push   %eax
56ec19:	57                   	push   %edi
56ec1a:	e8 61 98 f6 ff       	call   0x4d8480
56ec1f:	83 c4 10             	add    $0x10,%esp
56ec22:	85 c0                	test   %eax,%eax
56ec24:	74 1c                	je     0x56ec42
56ec26:	56                   	push   %esi
56ec27:	ff 74 24 20          	push   0x20(%esp)
56ec2b:	57                   	push   %edi
56ec2c:	ff 74 24 1c          	push   0x1c(%esp)
56ec30:	e8 1b 01 00 00       	call   0x56ed50
56ec35:	83 c4 10             	add    $0x10,%esp
56ec38:	b9 01 00 00 00       	mov    $0x1,%ecx
56ec3d:	85 c0                	test   %eax,%eax
56ec3f:	0f 45 d9             	cmovne %ecx,%ebx
56ec42:	56                   	push   %esi
56ec43:	e8 08 91 f6 ff       	call   0x4d7d50
56ec48:	83 c4 04             	add    $0x4,%esp
56ec4b:	8b c3                	mov    %ebx,%eax
56ec4d:	5f                   	pop    %edi
56ec4e:	5e                   	pop    %esi
56ec4f:	5b                   	pop    %ebx
56ec50:	c3                   	ret
56ec51:	cc                   	int3
56ec52:	cc                   	int3
56ec53:	cc                   	int3
56ec54:	cc                   	int3
56ec55:	cc                   	int3
56ec56:	cc                   	int3
56ec57:	cc                   	int3
56ec58:	cc                   	int3
56ec59:	cc                   	int3
56ec5a:	cc                   	int3
56ec5b:	cc                   	int3
56ec5c:	cc                   	int3
56ec5d:	cc                   	int3
56ec5e:	cc                   	int3
56ec5f:	cc                   	int3