57a6d5:	83 c4 18             	add    $0x18,%esp
57a6d8:	85 c0                	test   %eax,%eax
57a6da:	0f 84 f7 02 00 00    	je     0x57a9d7
57a6e0:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
57a6e4:	8d b4 24 94 00 00 00 	lea    0x94(%esp),%esi
57a6eb:	3b cf                	cmp    %edi,%ecx
57a6ed:	7e 08                	jle    0x57a6f7
57a6ef:	8b c1                	mov    %ecx,%eax
57a6f1:	2b c7                	sub    %edi,%eax
57a6f3:	03 f0                	add    %eax,%esi
57a6f5:	3b cf                	cmp    %edi,%ecx
57a6f7:	7d 19                	jge    0x57a712
57a6f9:	8b c7                	mov    %edi,%eax
57a6fb:	2b c1                	sub    %ecx,%eax
57a6fd:	50                   	push   %eax
57a6fe:	8d 84 24 98 00 00 00 	lea    0x98(%esp),%eax
57a705:	03 c1                	add    %ecx,%eax
57a707:	6a 00                	push   $0x0
57a709:	50                   	push   %eax
57a70a:	e8 f1 92 06 00       	call   0x5e3a00
57a70f:	83 c4 0c             	add    $0xc,%esp
57a712:	ff 74 24 28          	push   0x28(%esp)
57a716:	80 0e 80             	orb    $0x80,(%esi)
57a719:	80 4c 3e ff 01       	orb    $0x1,-0x1(%esi,%edi,1)
57a71e:	57                   	push   %edi
57a71f:	56                   	push   %esi
57a720:	e8 eb 84 f3 ff       	call   0x4b2c10
57a725:	83 c4 0c             	add    $0xc,%esp
57a728:	85 c0                	test   %eax,%eax
57a72a:	0f 84 a7 02 00 00    	je     0x57a9d7
57a730:	ff 74 24 24          	push   0x24(%esp)
57a734:	8b 74 24 40          	mov    0x40(%esp),%esi
57a738:	33 c0                	xor    %eax,%eax
57a73a:	85 f6                	test   %esi,%esi
57a73c:	0f 95 c0             	setne  %al
57a73f:	50                   	push   %eax
57a740:	ff 74 24 18          	push   0x18(%esp)
57a744:	6a 32                	push   $0x32
57a746:	ff 74 24 38          	push   0x38(%esp)
57a74a:	e8 91 1a 01 00       	call   0x58c1e0
57a74f:	83 c4 14             	add    $0x14,%esp
57a752:	85 c0                	test   %eax,%eax
57a754:	7f 1f                	jg     0x57a775
57a756:	0f 85 7b 02 00 00    	jne    0x57a9d7
57a75c:	85 f6                	test   %esi,%esi
57a75e:	0f 84 20 ff ff ff    	je     0x57a684
57a764:	68 10 02 00 00       	push   $0x210
57a769:	68 80 da 6b 00       	push   $0x6bda80
57a76e:	6a 71                	push   $0x71
57a770:	e9 4e 02 00 00       	jmp    0x57a9c3
57a775:	8b 44 24 58          	mov    0x58(%esp),%eax
57a779:	85 c0                	test   %eax,%eax
57a77b:	74 0e                	je     0x57a78b
57a77d:	ff 74 24 18          	push   0x18(%esp)
57a781:	53                   	push   %ebx
57a782:	50                   	push   %eax
57a783:	e8 78 87 06 00       	call   0x5e2f00
57a788:	83 c4 0c             	add    $0xc,%esp
57a78b:	8b 74 24 24          	mov    0x24(%esp),%esi
57a78f:	6a 00                	push   $0x0
57a791:	6a 02                	push   $0x2
57a793:	56                   	push   %esi
57a794:	e8 77 17 01 00       	call   0x58bf10
57a799:	83 c4 0c             	add    $0xc,%esp
57a79c:	85 c0                	test   %eax,%eax
57a79e:	0f 84 33 02 00 00    	je     0x57a9d7
57a7a4:	6a 00                	push   $0x0
57a7a6:	6a 03                	push   $0x3
57a7a8:	56                   	push   %esi
57a7a9:	e8 62 17 01 00       	call   0x58bf10
57a7ae:	83 c4 0c             	add    $0xc,%esp
57a7b1:	85 c0                	test   %eax,%eax
57a7b3:	0f 84 1e 02 00 00    	je     0x57a9d7
57a7b9:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
57a7bd:	33 ff                	xor    %edi,%edi
57a7bf:	8b 84 24 e0 00 00 00 	mov    0xe0(%esp),%eax
57a7c6:	33 d2                	xor    %edx,%edx
57a7c8:	c1 e1 03             	shl    $0x3,%ecx
57a7cb:	48                   	dec    %eax
57a7cc:	f7 f1                	div    %ecx
57a7ce:	89 7c 24 4c          	mov    %edi,0x4c(%esp)
57a7d2:	8b f0                	mov    %eax,%esi
57a7d4:	89 74 24 5c          	mov    %esi,0x5c(%esp)
57a7d8:	85 ff                	test   %edi,%edi
57a7da:	74 17                	je     0x57a7f3
57a7dc:	57                   	push   %edi
57a7dd:	6a 00                	push   $0x0
57a7df:	ff 74 24 2c          	push   0x2c(%esp)
57a7e3:	e8 28 17 01 00       	call   0x58bf10
57a7e8:	83 c4 0c             	add    $0xc,%esp
57a7eb:	85 c0                	test   %eax,%eax
57a7ed:	0f 84 e4 01 00 00    	je     0x57a9d7
57a7f3:	6a 00                	push   $0x0
57a7f5:	ff 74 24 4c          	push   0x4c(%esp)
57a7f9:	e8 f2 8c f3 ff       	call   0x4b34f0
57a7fe:	83 c4 08             	add    $0x8,%esp
57a801:	33 ff                	xor    %edi,%edi
57a803:	85 f6                	test   %esi,%esi
57a805:	0f 88 ad 00 00 00    	js     0x57a8b8
57a80b:	8b 4c 24 18          	mov    0x18(%esp),%ecx
57a80f:	33 f6                	xor    %esi,%esi
57a811:	8d 41 ff             	lea    -0x1(%ecx),%eax
57a814:	89 44 24 68          	mov    %eax,0x68(%esp)
57a818:	85 c0                	test   %eax,%eax
57a81a:	78 0f                	js     0x57a82b
57a81c:	0f 1f 40 00          	nopl   0x0(%eax)
57a820:	80 04 18 01          	addb   $0x1,(%eax,%ebx,1)
57a824:	75 05                	jne    0x57a82b
57a826:	83 e8 01             	sub    $0x1,%eax
57a829:	79 f5                	jns    0x57a820
57a82b:	6a 00                	push   $0x0
57a82d:	ff 74 24 20          	push   0x20(%esp)
57a831:	8d 84 24 9c 00 00 00 	lea    0x9c(%esp),%eax
57a838:	6a 00                	push   $0x0
57a83a:	50                   	push   %eax
57a83b:	51                   	push   %ecx
57a83c:	53                   	push   %ebx
57a83d:	e8 0e 69 f3 ff       	call   0x4b1150
57a842:	83 c4 18             	add    $0x18,%esp
57a845:	85 c0                	test   %eax,%eax
57a847:	0f 84 8a 01 00 00    	je     0x57a9d7
57a84d:	55                   	push   %ebp
57a84e:	ff 74 24 30          	push   0x30(%esp)
57a852:	8d 84 24 9c 00 00 00 	lea    0x9c(%esp),%eax
57a859:	50                   	push   %eax
57a85a:	e8 b1 83 f3 ff       	call   0x4b2c10
57a85f:	83 c4 0c             	add    $0xc,%esp
57a862:	85 c0                	test   %eax,%eax
57a864:	0f 84 6d 01 00 00    	je     0x57a9d7
57a86a:	56                   	push   %esi
57a86b:	55                   	push   %ebp
57a86c:	55                   	push   %ebp
57a86d:	e8 8e 9c f3 ff       	call   0x4b4500
57a872:	83 c4 0c             	add    $0xc,%esp
57a875:	85 c0                	test   %eax,%eax
57a877:	0f 84 5a 01 00 00    	je     0x57a9d7
57a87d:	8b 44 24 48          	mov    0x48(%esp),%eax
57a881:	55                   	push   %ebp
57a882:	50                   	push   %eax
57a883:	50                   	push   %eax
57a884:	e8 47 d8 f5 ff       	call   0x4d80d0
57a889:	83 c4 0c             	add    $0xc,%esp
57a88c:	85 c0                	test   %eax,%eax
57a88e:	0f 84 43 01 00 00    	je     0x57a9d7
57a894:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
57a898:	47                   	inc    %edi
57a899:	8d 04 cd 00 00 00 00 	lea    0x0(,%ecx,8),%eax
57a8a0:	8b 4c 24 18          	mov    0x18(%esp),%ecx
57a8a4:	03 f0                	add    %eax,%esi
57a8a6:	8b 44 24 68          	mov    0x68(%esp),%eax
57a8aa:	3b 7c 24 5c          	cmp    0x5c(%esp),%edi
57a8ae:	0f 8e 64 ff ff ff    	jle    0x57a818
57a8b4:	8b 74 24 5c          	mov    0x5c(%esp),%esi
57a8b8:	ff 74 24 6c          	push   0x6c(%esp)
57a8bc:	8b 7c 24 4c          	mov    0x4c(%esp),%edi
57a8c0:	57                   	push   %edi
57a8c1:	e8 ba 89 f3 ff       	call   0x4b3280
57a8c6:	83 c4 08             	add    $0x8,%esp
57a8c9:	85 c0                	test   %eax,%eax
57a8cb:	0f 84 06 01 00 00    	je     0x57a9d7
57a8d1:	57                   	push   %edi
57a8d2:	8b 7c 24 74          	mov    0x74(%esp),%edi
57a8d6:	57                   	push   %edi
57a8d7:	e8 f4 87 f3 ff       	call   0x4b30d0
57a8dc:	83 c4 08             	add    $0x8,%esp
57a8df:	85 c0                	test   %eax,%eax
57a8e1:	0f 84 f0 00 00 00    	je     0x57a9d7
57a8e7:	ff 74 24 14          	push   0x14(%esp)
57a8eb:	57                   	push   %edi
57a8ec:	57                   	push   %edi
57a8ed:	e8 de d7 f5 ff       	call   0x4d80d0
57a8f2:	83 c4 0c             	add    $0xc,%esp
57a8f5:	85 c0                	test   %eax,%eax
57a8f7:	0f 84 da 00 00 00    	je     0x57a9d7
57a8fd:	ff 74 24 28          	push   0x28(%esp)
57a901:	55                   	push   %ebp
57a902:	e8 79 9d f3 ff       	call   0x4b4680
57a907:	83 c4 08             	add    $0x8,%esp
57a90a:	85 c0                	test   %eax,%eax
57a90c:	0f 84 c5 00 00 00    	je     0x57a9d7
57a912:	ff 74 24 10          	push   0x10(%esp)
57a916:	55                   	push   %ebp
57a917:	57                   	push   %edi
57a918:	ff 74 24 6c          	push   0x6c(%esp)
57a91c:	6a 00                	push   $0x0
57a91e:	e8 7d 5a ff ff       	call   0x5703a0
57a923:	83 c4 14             	add    $0x14,%esp
57a926:	85 c0                	test   %eax,%eax
57a928:	0f 84 a9 00 00 00    	je     0x57a9d7
57a92e:	e8 6d 8c f3 ff       	call   0x4b35a0
57a933:	50                   	push   %eax
57a934:	ff 74 24 64          	push   0x64(%esp)
57a938:	55                   	push   %ebp
57a939:	e8 22 d8 f5 ff       	call   0x4d8160
57a93e:	83 c4 0c             	add    $0xc,%esp
57a941:	85 c0                	test   %eax,%eax
57a943:	0f 84 8e 00 00 00    	je     0x57a9d7
57a949:	55                   	push   %ebp
57a94a:	57                   	push   %edi
57a94b:	8b 7c 24 28          	mov    0x28(%esp),%edi
57a94f:	57                   	push   %edi
57a950:	e8 0b d8 f5 ff       	call   0x4d8160
57a955:	83 c4 0c             	add    $0xc,%esp
57a958:	85 c0                	test   %eax,%eax
57a95a:	74 7b                	je     0x57a9d7
57a95c:	ff 74 24 14          	push   0x14(%esp)
57a960:	57                   	push   %edi
57a961:	e8 5a 84 f3 ff       	call   0x4b2dc0
57a966:	83 c4 08             	add    $0x8,%esp
57a969:	85 c0                	test   %eax,%eax
57a96b:	78 23                	js     0x57a990
57a96d:	8b 7c 24 24          	mov    0x24(%esp),%edi
57a971:	57                   	push   %edi
57a972:	6a 01                	push   $0x1
57a974:	ff 74 24 18          	push   0x18(%esp)
57a978:	6a 32                	push   $0x32
57a97a:	ff 74 24 30          	push   0x30(%esp)
57a97e:	e8 5d 18 01 00       	call   0x58c1e0
57a983:	83 c4 14             	add    $0x14,%esp
57a986:	85 c0                	test   %eax,%eax
57a988:	0f 8f bb 00 00 00    	jg     0x57aa49
57a98e:	75 47                	jne    0x57a9d7
57a990:	8b 7c 24 4c          	mov    0x4c(%esp),%edi
57a994:	8b 84 24 e0 00 00 00 	mov    0xe0(%esp),%eax
57a99b:	47                   	inc    %edi
57a99c:	c1 e0 02             	shl    $0x2,%eax
57a99f:	89 7c 24 4c          	mov    %edi,0x4c(%esp)
57a9a3:	3b f8                	cmp    %eax,%edi
57a9a5:	0f 8c 2d fe ff ff    	jl     0x57a7d8
57a9ab:	8b 74 24 3c          	mov    0x3c(%esp),%esi
57a9af:	85 f6                	test   %esi,%esi
57a9b1:	0f 84 c9 fc ff ff    	je     0x57a680
57a9b7:	68 69 02 00 00       	push   $0x269
57a9bc:	68 80 da 6b 00       	push   $0x6bda80
57a9c1:	6a 70                	push   $0x70
57a9c3:	6a 7e                	push   $0x7e
57a9c5:	6a 0a                	push   $0xa
57a9c7:	c7 44 24 4c 00 00 00 	movl   $0x0,0x4c(%esp)
57a9ce:	00
57a9cf:	e8 cc 6a f2 ff       	call   0x4a14a0
57a9d4:	83 c4 14             	add    $0x14,%esp
57a9d7:	85 db                	test   %ebx,%ebx
57a9d9:	74 09                	je     0x57a9e4
57a9db:	53                   	push   %ebx
57a9dc:	e8 4f 57 f2 ff       	call   0x4a0130
57a9e1:	83 c4 04             	add    $0x4,%esp
57a9e4:	8b 44 24 34          	mov    0x34(%esp),%eax
57a9e8:	39 44 24 58          	cmp    %eax,0x58(%esp)
57a9ec:	74 09                	je     0x57a9f7
57a9ee:	50                   	push   %eax
57a9ef:	e8 3c 57 f2 ff       	call   0x4a0130
57a9f4:	83 c4 04             	add    $0x4,%esp
57a9f7:	8b 5c 24 10          	mov    0x10(%esp),%ebx
57a9fb:	85 db                	test   %ebx,%ebx
57a9fd:	74 0f                	je     0x57aa0e
57a9ff:	53                   	push   %ebx
57aa00:	e8 4b d3 f5 ff       	call   0x4d7d50
57aa05:	53                   	push   %ebx
57aa06:	e8 85 d3 f5 ff       	call   0x4d7d90
57aa0b:	83 c4 08             	add    $0x8,%esp
57aa0e:	8b 44 24 40          	mov    0x40(%esp),%eax
57aa12:	5f                   	pop    %edi
57aa13:	5e                   	pop    %esi
57aa14:	5d                   	pop    %ebp
57aa15:	5b                   	pop    %ebx
57aa16:	85 c0                	test   %eax,%eax
57aa18:	74 09                	je     0x57aa23
57aa1a:	50                   	push   %eax
57aa1b:	e8 20 5f ff ff       	call   0x570940
57aa20:	83 c4 04             	add    $0x4,%esp
57aa23:	8d 44 24 6c          	lea    0x6c(%esp),%eax
57aa27:	50                   	push   %eax
57aa28:	e8 33 6a f3 ff       	call   0x4b1460
57aa2d:	8b 8c 24 c8 00 00 00 	mov    0xc8(%esp),%ecx
57aa34:	83 c4 04             	add    $0x4,%esp
57aa37:	8b 44 24 28          	mov    0x28(%esp),%eax
57aa3b:	33 cc                	xor    %esp,%ecx
57aa3d:	e8 98 6a 06 00       	call   0x5e14da
57aa42:	81 c4 c8 00 00 00    	add    $0xc8,%esp
57aa48:	c3                   	ret
57aa49:	6a 01                	push   $0x1
57aa4b:	6a 02                	push   $0x2
57aa4d:	57                   	push   %edi
57aa4e:	e8 bd 14 01 00       	call   0x58bf10
57aa53:	83 c4 0c             	add    $0xc,%esp
57aa56:	85 c0                	test   %eax,%eax
57aa58:	0f 84 79 ff ff ff    	je     0x57a9d7
57aa5e:	8b 7c 24 4c          	mov    0x4c(%esp),%edi
57aa62:	8b 74 24 2c          	mov    0x2c(%esp),%esi
57aa66:	e8 35 8b f3 ff       	call   0x4b35a0
57aa6b:	50                   	push   %eax
57aa6c:	ff 74 24 24          	push   0x24(%esp)
57aa70:	ff 74 24 1c          	push   0x1c(%esp)
57aa74:	e8 e7 d6 f5 ff       	call   0x4d8160
57aa79:	83 c4 0c             	add    $0xc,%esp
57aa7c:	85 c0                	test   %eax,%eax
57aa7e:	0f 84 53 ff ff ff    	je     0x57a9d7
57aa84:	ff 74 24 10          	push   0x10(%esp)
57aa88:	ff 74 24 2c          	push   0x2c(%esp)
57aa8c:	ff 74 24 1c          	push   0x1c(%esp)
57aa90:	6a 00                	push   $0x0
57aa92:	55                   	push   %ebp
57aa93:	e8 08 59 ff ff       	call   0x5703a0
57aa98:	83 c4 14             	add    $0x14,%esp
57aa9b:	85 c0                	test   %eax,%eax
57aa9d:	0f 84 34 ff ff ff    	je     0x57a9d7
57aaa3:	83 bc 24 f4 00 00 00 	cmpl   $0x0,0xf4(%esp)
57aaaa:	00
57aaab:	7d 18                	jge    0x57aac5
57aaad:	6a 02                	push   $0x2
57aaaf:	ff 74 24 18          	push   0x18(%esp)
57aab3:	e8 38 8a f3 ff       	call   0x4b34f0
57aab8:	83 c4 08             	add    $0x8,%esp
57aabb:	85 c0                	test   %eax,%eax
57aabd:	0f 84 14 ff ff ff    	je     0x57a9d7
57aac3:	eb 09                	jmp    0x57aace
57aac5:	b8 01 00 00 00       	mov    $0x1,%eax
57aaca:	89 44 24 30          	mov    %eax,0x30(%esp)
57aace:	ff 74 24 10          	push   0x10(%esp)
57aad2:	ff 74 24 24          	push   0x24(%esp)
57aad6:	ff 74 24 48          	push   0x48(%esp)
57aada:	e8 01 5f ff ff       	call   0x5709e0
57aadf:	83 c4 0c             	add    $0xc,%esp
57aae2:	85 c0                	test   %eax,%eax
57aae4:	0f 84 ed fe ff ff    	je     0x57a9d7
57aaea:	8b 84 24 f4 00 00 00 	mov    0xf4(%esp),%eax
57aaf1:	8b 4c 24 30          	mov    0x30(%esp),%ecx
57aaf5:	85 c0                	test   %eax,%eax
57aaf7:	0f 88 d8 00 00 00    	js     0x57abd5
57aafd:	88 84 24 94 00 00 00 	mov    %al,0x94(%esp)
57ab04:	8b c1                	mov    %ecx,%eax
57ab06:	c1 e8 08             	shr    $0x8,%eax
57ab09:	6a 00                	push   $0x0
57ab0b:	ff 74 24 20          	push   0x20(%esp)
57ab0f:	88 84 24 9d 00 00 00 	mov    %al,0x9d(%esp)
57ab16:	8d 84 24 84 00 00 00 	lea    0x84(%esp),%eax
57ab1d:	50                   	push   %eax
57ab1e:	88 8c 24 a2 00 00 00 	mov    %cl,0xa2(%esp)
57ab25:	e8 76 67 f3 ff       	call   0x4b12a0
57ab2a:	83 c4 0c             	add    $0xc,%esp
57ab2d:	85 c0                	test   %eax,%eax
57ab2f:	0f 84 a2 fe ff ff    	je     0x57a9d7
57ab35:	ff 74 24 18          	push   0x18(%esp)
57ab39:	8d 84 24 80 00 00 00 	lea    0x80(%esp),%eax
57ab40:	ff 74 24 38          	push   0x38(%esp)
57ab44:	50                   	push   %eax
57ab45:	e8 06 69 f3 ff       	call   0x4b1450
57ab4a:	83 c4 0c             	add    $0xc,%esp
57ab4d:	85 c0                	test   %eax,%eax
57ab4f:	0f 84 82 fe ff ff    	je     0x57a9d7