57a45b:	89 44 24 74          	mov    %eax,0x74(%esp)
57a45f:	8b 84 24 00 01 00 00 	mov    0x100(%esp),%eax
57a466:	89 44 24 78          	mov    %eax,0x78(%esp)
57a46a:	33 db                	xor    %ebx,%ebx
57a46c:	8b 84 24 04 01 00 00 	mov    0x104(%esp),%eax
57a473:	8b ac 24 f0 00 00 00 	mov    0xf0(%esp),%ebp
57a47a:	89 44 24 24          	mov    %eax,0x24(%esp)
57a47e:	8b b4 24 e4 00 00 00 	mov    0xe4(%esp),%esi
57a485:	8b c6                	mov    %esi,%eax
57a487:	c1 e8 03             	shr    $0x3,%eax
57a48a:	89 44 24 64          	mov    %eax,0x64(%esp)
57a48e:	b8 02 00 00 00       	mov    $0x2,%eax
57a493:	89 44 24 30          	mov    %eax,0x30(%esp)
57a497:	8d 44 24 7c          	lea    0x7c(%esp),%eax
57a49b:	50                   	push   %eax
57a49c:	89 4c 24 54          	mov    %ecx,0x54(%esp)
57a4a0:	33 ff                	xor    %edi,%edi
57a4a2:	89 6c 24 1c          	mov    %ebp,0x1c(%esp)
57a4a6:	c7 44 24 3c ff ff ff 	movl   $0xffffffff,0x3c(%esp)
57a4ad:	ff
57a4ae:	89 5c 24 38          	mov    %ebx,0x38(%esp)
57a4b2:	89 5c 24 44          	mov    %ebx,0x44(%esp)
57a4b6:	89 5c 24 48          	mov    %ebx,0x48(%esp)
57a4ba:	89 5c 24 14          	mov    %ebx,0x14(%esp)
57a4be:	e8 fd 71 f3 ff       	call   0x4b16c0
57a4c3:	8b 44 24 20          	mov    0x20(%esp),%eax
57a4c7:	83 c4 04             	add    $0x4,%esp
57a4ca:	85 c0                	test   %eax,%eax
57a4cc:	75 27                	jne    0x57a4f5
57a4ce:	81 fe a0 00 00 00    	cmp    $0xa0,%esi
57a4d4:	75 07                	jne    0x57a4dd
57a4d6:	e8 05 73 f3 ff       	call   0x4b17e0
57a4db:	eb 14                	jmp    0x57a4f1
57a4dd:	81 fe e0 00 00 00    	cmp    $0xe0,%esi
57a4e3:	75 07                	jne    0x57a4ec
57a4e5:	e8 06 73 f3 ff       	call   0x4b17f0
57a4ea:	eb 05                	jmp    0x57a4f1
57a4ec:	e8 0f 73 f3 ff       	call   0x4b1800
57a4f1:	89 44 24 1c          	mov    %eax,0x1c(%esp)
57a4f5:	50                   	push   %eax
57a4f6:	e8 f5 6f f1 ff       	call   0x4914f0
57a4fb:	8b f0                	mov    %eax,%esi
57a4fd:	83 c4 04             	add    $0x4,%esp
57a500:	8b 44 24 50          	mov    0x50(%esp),%eax
57a504:	89 74 24 2c          	mov    %esi,0x2c(%esp)
57a508:	39 58 0c             	cmp    %ebx,0xc(%eax)
57a50b:	74 0e                	je     0x57a51b
57a50d:	39 58 10             	cmp    %ebx,0x10(%eax)
57a510:	74 09                	je     0x57a51b
57a512:	39 9c 24 f4 00 00 00 	cmp    %ebx,0xf4(%esp)
57a519:	7c 60                	jl     0x57a57b
57a51b:	85 ed                	test   %ebp,%ebp
57a51d:	68 be 01 00 00       	push   $0x1be
57a522:	0f 44 ee             	cmove  %esi,%ebp
57a525:	68 80 da 6b 00       	push   $0x6bda80
57a52a:	55                   	push   %ebp
57a52b:	89 6c 24 24          	mov    %ebp,0x24(%esp)
57a52f:	e8 7c 5c f2 ff       	call   0x4a01b0
57a534:	8b d8                	mov    %eax,%ebx
57a536:	83 c4 0c             	add    $0xc,%esp
57a539:	8b 44 24 58          	mov    0x58(%esp),%eax
57a53d:	85 c0                	test   %eax,%eax
57a53f:	75 13                	jne    0x57a554
57a541:	68 c3 01 00 00       	push   $0x1c3
57a546:	68 80 da 6b 00       	push   $0x6bda80
57a54b:	55                   	push   %ebp
57a54c:	e8 5f 5c f2 ff       	call   0x4a01b0
57a551:	83 c4 0c             	add    $0xc,%esp
57a554:	89 44 24 34          	mov    %eax,0x34(%esp)
57a558:	85 db                	test   %ebx,%ebx
57a55a:	0f 84 84 04 00 00    	je     0x57a9e4
57a560:	85 c0                	test   %eax,%eax
57a562:	0f 84 6f 04 00 00    	je     0x57a9d7
57a568:	8b 44 24 3c          	mov    0x3c(%esp),%eax
57a56c:	85 c0                	test   %eax,%eax
57a56e:	74 0b                	je     0x57a57b
57a570:	55                   	push   %ebp
57a571:	50                   	push   %eax
57a572:	53                   	push   %ebx
57a573:	e8 88 89 06 00       	call   0x5e2f00
57a578:	83 c4 0c             	add    $0xc,%esp
57a57b:	e8 a0 d8 f5 ff       	call   0x4d7e20
57a580:	8b e8                	mov    %eax,%ebp
57a582:	89 6c 24 10          	mov    %ebp,0x10(%esp)
57a586:	85 ed                	test   %ebp,%ebp
57a588:	0f 84 49 04 00 00    	je     0x57a9d7
57a58e:	e8 ed 63 ff ff       	call   0x570980
57a593:	89 44 24 40          	mov    %eax,0x40(%esp)
57a597:	85 c0                	test   %eax,%eax
57a599:	0f 84 38 04 00 00    	je     0x57a9d7
57a59f:	55                   	push   %ebp
57a5a0:	e8 fb d8 f5 ff       	call   0x4d7ea0
57a5a5:	55                   	push   %ebp
57a5a6:	e8 15 d8 f5 ff       	call   0x4d7dc0
57a5ab:	ff 74 24 18          	push   0x18(%esp)
57a5af:	8b e8                	mov    %eax,%ebp
57a5b1:	e8 0a d8 f5 ff       	call   0x4d7dc0
57a5b6:	ff 74 24 1c          	push   0x1c(%esp)
57a5ba:	89 44 24 64          	mov    %eax,0x64(%esp)
57a5be:	e8 fd d7 f5 ff       	call   0x4d7dc0
57a5c3:	ff 74 24 20          	push   0x20(%esp)
57a5c7:	89 44 24 5c          	mov    %eax,0x5c(%esp)
57a5cb:	e8 f0 d7 f5 ff       	call   0x4d7dc0
57a5d0:	ff 74 24 24          	push   0x24(%esp)
57a5d4:	89 84 24 88 00 00 00 	mov    %eax,0x88(%esp)
57a5db:	e8 e0 d7 f5 ff       	call   0x4d7dc0
57a5e0:	ff 74 24 28          	push   0x28(%esp)
57a5e4:	89 44 24 7c          	mov    %eax,0x7c(%esp)
57a5e8:	e8 d3 d7 f5 ff       	call   0x4d7dc0
57a5ed:	8b 4c 24 6c          	mov    0x6c(%esp),%ecx
57a5f1:	83 c4 1c             	add    $0x1c,%esp
57a5f4:	89 44 24 14          	mov    %eax,0x14(%esp)
57a5f8:	8b 41 0c             	mov    0xc(%ecx),%eax
57a5fb:	89 44 24 20          	mov    %eax,0x20(%esp)
57a5ff:	85 c0                	test   %eax,%eax
57a601:	74 2e                	je     0x57a631
57a603:	8b 41 10             	mov    0x10(%ecx),%eax
57a606:	89 44 24 28          	mov    %eax,0x28(%esp)
57a60a:	85 c0                	test   %eax,%eax
57a60c:	74 23                	je     0x57a631
57a60e:	39 bc 24 f4 00 00 00 	cmp    %edi,0xf4(%esp)
57a615:	0f 8c 4b 04 00 00    	jl     0x57aa66
57a61b:	ff 74 24 18          	push   0x18(%esp)
57a61f:	53                   	push   %ebx
57a620:	ff 74 24 3c          	push   0x3c(%esp)
57a624:	e8 d7 88 06 00       	call   0x5e2f00
57a629:	83 c4 0c             	add    $0xc,%esp
57a62c:	e9 35 04 00 00       	jmp    0x57aa66
57a631:	8b 74 24 10          	mov    0x10(%esp),%esi
57a635:	56                   	push   %esi
57a636:	e8 85 d7 f5 ff       	call   0x4d7dc0
57a63b:	56                   	push   %esi
57a63c:	89 44 24 28          	mov    %eax,0x28(%esp)
57a640:	e8 7b d7 f5 ff       	call   0x4d7dc0
57a645:	89 44 24 30          	mov    %eax,0x30(%esp)
57a649:	83 c4 08             	add    $0x8,%esp
57a64c:	8b 84 24 e0 00 00 00 	mov    0xe0(%esp),%eax
57a653:	48                   	dec    %eax
57a654:	89 44 24 6c          	mov    %eax,0x6c(%esp)
57a658:	50                   	push   %eax
57a659:	e8 42 8f f3 ff       	call   0x4b35a0
57a65e:	50                   	push   %eax
57a65f:	ff 74 24 1c          	push   0x1c(%esp)
57a663:	e8 98 9e f3 ff       	call   0x4b4500
57a668:	83 c4 0c             	add    $0xc,%esp
57a66b:	85 c0                	test   %eax,%eax
57a66d:	0f 84 64 03 00 00    	je     0x57a9d7
57a673:	8b 74 24 3c          	mov    0x3c(%esp),%esi
57a677:	66 0f 1f 84 00 00 00 	nopw   0x0(%eax,%eax,1)
57a67e:	00 00
57a680:	8b 7c 24 64          	mov    0x64(%esp),%edi
57a684:	ff 74 24 44          	push   0x44(%esp)
57a688:	6a 00                	push   $0x0
57a68a:	ff 74 24 2c          	push   0x2c(%esp)
57a68e:	e8 7d 18 01 00       	call   0x58bf10
57a693:	ff 44 24 50          	incl   0x50(%esp)
57a697:	83 c4 0c             	add    $0xc,%esp
57a69a:	85 c0                	test   %eax,%eax
57a69c:	0f 84 35 03 00 00    	je     0x57a9d7
57a6a2:	85 f6                	test   %esi,%esi
57a6a4:	75 15                	jne    0x57a6bb
57a6a6:	ff 74 24 18          	push   0x18(%esp)
57a6aa:	53                   	push   %ebx
57a6ab:	e8 f0 67 f1 ff       	call   0x490ea0
57a6b0:	83 c4 08             	add    $0x8,%esp
57a6b3:	85 c0                	test   %eax,%eax
57a6b5:	0f 8e 1c 03 00 00    	jle    0x57a9d7
57a6bb:	6a 00                	push   $0x0
57a6bd:	ff 74 24 20          	push   0x20(%esp)
57a6c1:	8d 84 24 9c 00 00 00 	lea    0x9c(%esp),%eax
57a6c8:	6a 00                	push   $0x0
57a6ca:	50                   	push   %eax
57a6cb:	ff 74 24 28          	push   0x28(%esp)
57a6cf:	53                   	push   %ebx
57a6d0:	e8 7b 6a f3 ff       	call   0x4b1150
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)