59658e:	cc                   	int3
59658f:	cc                   	int3
596590:	8b 44 24 04          	mov    0x4(%esp),%eax
596594:	ff 70 0c             	push   0xc(%eax)
596597:	e8 c4 e5 00 00       	call   0x5a4b60
59659c:	83 c4 04             	add    $0x4,%esp
59659f:	c3                   	ret
5965a0:	ff 74 24 0c          	push   0xc(%esp)
5965a4:	8b 44 24 08          	mov    0x8(%esp),%eax
5965a8:	ff 74 24 0c          	push   0xc(%esp)
5965ac:	ff 70 0c             	push   0xc(%eax)
5965af:	e8 ec e5 00 00       	call   0x5a4ba0
5965b4:	83 c4 0c             	add    $0xc,%esp
5965b7:	c3                   	ret
5965b8:	cc                   	int3
5965b9:	cc                   	int3
5965ba:	cc                   	int3
5965bb:	cc                   	int3
5965bc:	cc                   	int3
5965bd:	cc                   	int3
5965be:	cc                   	int3
5965bf:	cc                   	int3
5965c0:	8b 44 24 04          	mov    0x4(%esp),%eax
5965c4:	ff 70 0c             	push   0xc(%eax)
5965c7:	ff 74 24 0c          	push   0xc(%esp)
5965cb:	e8 70 e4 00 00       	call   0x5a4a40
5965d0:	83 c4 08             	add    $0x8,%esp
5965d3:	c3                   	ret
5965d4:	cc                   	int3
5965d5:	cc                   	int3
5965d6:	cc                   	int3
5965d7:	cc                   	int3
5965d8:	cc                   	int3
5965d9:	cc                   	int3
5965da:	cc                   	int3
5965db:	cc                   	int3
5965dc:	cc                   	int3
5965dd:	cc                   	int3
5965de:	cc                   	int3
5965df:	cc                   	int3
5965e0:	ff 74 24 10          	push   0x10(%esp)
5965e4:	ff 74 24 10          	push   0x10(%esp)
5965e8:	ff 74 24 0c          	push   0xc(%esp)
5965ec:	ff 74 24 14          	push   0x14(%esp)
5965f0:	e8 3b c5 ff ff       	call   0x592b30
5965f5:	50                   	push   %eax
5965f6:	e8 b5 ef 00 00       	call   0x5a55b0
5965fb:	83 c4 14             	add    $0x14,%esp
5965fe:	c3                   	ret
5965ff:	cc                   	int3
596600:	ff 74 24 10          	push   0x10(%esp)
596604:	ff 74 24 10          	push   0x10(%esp)
596608:	ff 74 24 0c          	push   0xc(%esp)
59660c:	ff 74 24 14          	push   0x14(%esp)
596610:	e8 3b c1 ff ff       	call   0x592750
596615:	50                   	push   %eax
596616:	e8 95 ef 00 00       	call   0x5a55b0
59661b:	83 c4 14             	add    $0x14,%esp
59661e:	c3                   	ret
59661f:	cc                   	int3
596620:	83 7c 24 04 01       	cmpl   $0x1,0x4(%esp)
596625:	8b 44 24 08          	mov    0x8(%esp),%eax
596629:	56                   	push   %esi
59662a:	8b 30                	mov    (%eax),%esi
59662c:	75 0e                	jne    0x59663c
59662e:	e8 cd 7f f1 ff       	call   0x4ae600
596633:	89 46 18             	mov    %eax,0x18(%esi)
596636:	85 c0                	test   %eax,%eax
596638:	75 02                	jne    0x59663c
59663a:	5e                   	pop    %esi
59663b:	c3                   	ret
59663c:	b8 01 00 00 00       	mov    $0x1,%eax
596641:	5e                   	pop    %esi
596642:	c3                   	ret
596643:	cc                   	int3
596644:	cc                   	int3
596645:	cc                   	int3
596646:	cc                   	int3
596647:	cc                   	int3
596648:	cc                   	int3
596649:	cc                   	int3
59664a:	cc                   	int3
59664b:	cc                   	int3
59664c:	cc                   	int3
59664d:	cc                   	int3
59664e:	cc                   	int3
59664f:	cc                   	int3
596650:	b8 98 88 6c 00       	mov    $0x6c8898,%eax
596655:	c3                   	ret
596656:	cc                   	int3
596657:	cc                   	int3
596658:	cc                   	int3
596659:	cc                   	int3
59665a:	cc                   	int3
59665b:	cc                   	int3
59665c:	cc                   	int3
59665d:	cc                   	int3
59665e:	cc                   	int3
59665f:	cc                   	int3
596660:	8b 54 24 08          	mov    0x8(%esp),%edx
596664:	83 c8 ff             	or     $0xffffffff,%eax
596667:	53                   	push   %ebx
596668:	56                   	push   %esi
596669:	33 f6                	xor    %esi,%esi
59666b:	33 db                	xor    %ebx,%ebx
59666d:	85 d2                	test   %edx,%edx
59666f:	57                   	push   %edi
596670:	8b 7c 24 10          	mov    0x10(%esp),%edi
596674:	0f 4e d0             	cmovle %eax,%edx
596677:	85 ff                	test   %edi,%edi
596679:	0f 84 99 00 00 00    	je     0x596718
59667f:	8a 0f                	mov    (%edi),%cl
596681:	84 c9                	test   %cl,%cl
596683:	0f 84 8f 00 00 00    	je     0x596718
596689:	55                   	push   %ebp
59668a:	8d 6e 01             	lea    0x1(%esi),%ebp
59668d:	0f 1f 00             	nopl   (%eax)
596690:	8b c2                	mov    %edx,%eax
596692:	4a                   	dec    %edx
596693:	85 c0                	test   %eax,%eax
596695:	74 6a                	je     0x596701
596697:	0f b6 c1             	movzbl %cl,%eax
59669a:	47                   	inc    %edi
59669b:	83 f8 61             	cmp    $0x61,%eax
59669e:	7c 05                	jl     0x5966a5
5966a0:	83 f8 7a             	cmp    $0x7a,%eax
5966a3:	7e 51                	jle    0x5966f6
5966a5:	83 f8 41             	cmp    $0x41,%eax
5966a8:	7c 05                	jl     0x5966af
5966aa:	83 f8 5a             	cmp    $0x5a,%eax
5966ad:	7e 47                	jle    0x5966f6
5966af:	83 f8 20             	cmp    $0x20,%eax
5966b2:	74 42                	je     0x5966f6
5966b4:	83 f8 30             	cmp    $0x30,%eax
5966b7:	7c 05                	jl     0x5966be
5966b9:	83 f8 39             	cmp    $0x39,%eax
5966bc:	7e 38                	jle    0x5966f6
5966be:	83 f8 27             	cmp    $0x27,%eax
5966c1:	74 33                	je     0x5966f6
5966c3:	83 f8 28             	cmp    $0x28,%eax
5966c6:	74 2e                	je     0x5966f6
5966c8:	83 f8 29             	cmp    $0x29,%eax
5966cb:	74 29                	je     0x5966f6
5966cd:	83 f8 2b             	cmp    $0x2b,%eax
5966d0:	74 24                	je     0x5966f6
5966d2:	83 f8 2c             	cmp    $0x2c,%eax
5966d5:	74 1f                	je     0x5966f6
5966d7:	83 f8 2d             	cmp    $0x2d,%eax
5966da:	74 1a                	je     0x5966f6
5966dc:	83 f8 2e             	cmp    $0x2e,%eax
5966df:	74 15                	je     0x5966f6
5966e1:	83 f8 2f             	cmp    $0x2f,%eax
5966e4:	74 10                	je     0x5966f6
5966e6:	83 f8 3a             	cmp    $0x3a,%eax
5966e9:	74 0b                	je     0x5966f6
5966eb:	83 f8 3d             	cmp    $0x3d,%eax
5966ee:	74 06                	je     0x5966f6
5966f0:	83 f8 3f             	cmp    $0x3f,%eax
5966f3:	0f 45 f5             	cmovne %ebp,%esi
5966f6:	8a 0f                	mov    (%edi),%cl
5966f8:	a8 80                	test   $0x80,%al
5966fa:	0f 45 dd             	cmovne %ebp,%ebx
5966fd:	84 c9                	test   %cl,%cl
5966ff:	75 8f                	jne    0x596690
596701:	5d                   	pop    %ebp
596702:	85 db                	test   %ebx,%ebx
596704:	74 09                	je     0x59670f
596706:	5f                   	pop    %edi
596707:	5e                   	pop    %esi
596708:	b8 14 00 00 00       	mov    $0x14,%eax
59670d:	5b                   	pop    %ebx
59670e:	c3                   	ret
59670f:	b8 16 00 00 00       	mov    $0x16,%eax
596714:	85 f6                	test   %esi,%esi
596716:	75 05                	jne    0x59671d
596718:	b8 13 00 00 00       	mov    $0x13,%eax
59671d:	5f                   	pop    %edi
59671e:	5e                   	pop    %esi
59671f:	5b                   	pop    %ebx
596720:	c3                   	ret
596721:	cc                   	int3
596722:	cc                   	int3
596723:	cc                   	int3
596724:	cc                   	int3
596725:	cc                   	int3
596726:	cc                   	int3
596727:	cc                   	int3
596728:	cc                   	int3
596729:	cc                   	int3
59672a:	cc                   	int3
59672b:	cc                   	int3
59672c:	cc                   	int3
59672d:	cc                   	int3
59672e:	cc                   	int3
59672f:	cc                   	int3
596730:	8b 4c 24 04          	mov    0x4(%esp),%ecx
596734:	33 c0                	xor    %eax,%eax
596736:	85 c9                	test   %ecx,%ecx
596738:	74 06                	je     0x596740
59673a:	39 41 04             	cmp    %eax,0x4(%ecx)
59673d:	0f 9f c0             	setg   %al
596740:	c3                   	ret
596741:	cc                   	int3
596742:	cc                   	int3
596743:	cc                   	int3
596744:	cc                   	int3
596745:	cc                   	int3
596746:	cc                   	int3
596747:	cc                   	int3
596748:	cc                   	int3
596749:	cc                   	int3
59674a:	cc                   	int3
59674b:	cc                   	int3
59674c:	cc                   	int3
59674d:	cc                   	int3
59674e:	cc                   	int3
59674f:	cc                   	int3
596750:	56                   	push   %esi
596751:	8b 74 24 08          	mov    0x8(%esp),%esi
596755:	85 f6                	test   %esi,%esi
596757:	74 21                	je     0x59677a
596759:	56                   	push   %esi
59675a:	e8 b1 7e f1 ff       	call   0x4ae610
59675f:	8b 4c 24 10          	mov    0x10(%esp),%ecx
596763:	83 c4 04             	add    $0x4,%esp
596766:	3b c1                	cmp    %ecx,%eax
596768:	7e 10                	jle    0x59677a
59676a:	85 c9                	test   %ecx,%ecx
59676c:	78 0c                	js     0x59677a
59676e:	51                   	push   %ecx
59676f:	56                   	push   %esi
596770:	e8 bb 7f f1 ff       	call   0x4ae730
596775:	83 c4 08             	add    $0x8,%esp
596778:	5e                   	pop    %esi
596779:	c3                   	ret
59677a:	33 c0                	xor    %eax,%eax
59677c:	5e                   	pop    %esi
59677d:	c3                   	ret
59677e:	cc                   	int3
59677f:	cc                   	int3
596780:	8b 44 24 04          	mov    0x4(%esp),%eax
596784:	85 c0                	test   %eax,%eax
596786:	75 01                	jne    0x596789
596788:	c3                   	ret
596789:	89 44 24 04          	mov    %eax,0x4(%esp)
59678d:	e9 7e 7e f1 ff       	jmp    0x4ae610
596792:	cc                   	int3
596793:	cc                   	int3
596794:	cc                   	int3
596795:	cc                   	int3
596796:	cc                   	int3
596797:	cc                   	int3
596798:	cc                   	int3
596799:	cc                   	int3
59679a:	cc                   	int3
59679b:	cc                   	int3
59679c:	cc                   	int3
59679d:	cc                   	int3
59679e:	cc                   	int3
59679f:	cc                   	int3
5967a0:	57                   	push   %edi
5967a1:	e8 5a 7e f1 ff       	call   0x4ae600
5967a6:	8b f8                	mov    %eax,%edi
5967a8:	85 ff                	test   %edi,%edi
5967aa:	75 1f                	jne    0x5967cb
5967ac:	68 46 01 00 00       	push   $0x146
5967b1:	68 24 8b 6c 00       	push   $0x6c8b24
5967b6:	6a 41                	push   $0x41
5967b8:	68 9a 00 00 00       	push   $0x9a
5967bd:	6a 22                	push   $0x22
5967bf:	e8 dc ac f0 ff       	call   0x4a14a0
5967c4:	83 c4 14             	add    $0x14,%esp
5967c7:	33 c0                	xor    %eax,%eax
5967c9:	5f                   	pop    %edi
5967ca:	c3                   	ret
5967cb:	53                   	push   %ebx
5967cc:	55                   	push   %ebp
5967cd:	56                   	push   %esi
5967ce:	8b 74 24 1c          	mov    0x1c(%esp),%esi
5967d2:	33 db                	xor    %ebx,%ebx
5967d4:	56                   	push   %esi
5967d5:	e8 36 7e f1 ff       	call   0x4ae610
5967da:	83 c4 04             	add    $0x4,%esp
5967dd:	85 c0                	test   %eax,%eax
5967df:	0f 8e 0f 01 00 00    	jle    0x5968f4
5967e5:	8b 6c 24 18          	mov    0x18(%esp),%ebp
5967e9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
5967f0:	53                   	push   %ebx
5967f1:	56                   	push   %esi
5967f2:	e8 39 7f f1 ff       	call   0x4ae730
5967f7:	8b f0                	mov    %eax,%esi
5967f9:	68 38 8a 6c 00       	push   $0x6c8a38
5967fe:	ff 76 04             	push   0x4(%esi)
596801:	e8 ea 25 fe ff       	call   0x578df0
596806:	83 c4 10             	add    $0x10,%esp
596809:	85 c0                	test   %eax,%eax
59680b:	75 3f                	jne    0x59684c
59680d:	8b 46 08             	mov    0x8(%esi),%eax
596810:	85 c0                	test   %eax,%eax
596812:	74 38                	je     0x59684c
596814:	b9 40 8b 6c 00       	mov    $0x6c8b40,%ecx
596819:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
596820:	8a 10                	mov    (%eax),%dl
596822:	3a 11                	cmp    (%ecx),%dl
596824:	75 1a                	jne    0x596840
596826:	84 d2                	test   %dl,%dl
596828:	74 12                	je     0x59683c
59682a:	8a 50 01             	mov    0x1(%eax),%dl
59682d:	3a 51 01             	cmp    0x1(%ecx),%dl
596830:	75 0e                	jne    0x596840
596832:	83 c0 02             	add    $0x2,%eax
596835:	83 c1 02             	add    $0x2,%ecx
596838:	84 d2                	test   %dl,%dl
59683a:	75 e4                	jne    0x596820
59683c:	33 c0                	xor    %eax,%eax
59683e:	eb 05                	jmp    0x596845
596840:	1b c0                	sbb    %eax,%eax
596842:	83 c8 01             	or     $0x1,%eax
596845:	85 c0                	test   %eax,%eax
596847:	75 03                	jne    0x59684c
596849:	50                   	push   %eax
59684a:	eb 4f                	jmp    0x59689b
59684c:	68 38 8a 6c 00       	push   $0x6c8a38
596851:	ff 76 04             	push   0x4(%esi)
596854:	e8 97 25 fe ff       	call   0x578df0
596859:	83 c4 08             	add    $0x8,%esp
59685c:	85 c0                	test   %eax,%eax
59685e:	75 5e                	jne    0x5968be
596860:	8b 46 08             	mov    0x8(%esi),%eax
596863:	85 c0                	test   %eax,%eax
596865:	74 57                	je     0x5968be
596867:	b9 48 8b 6c 00       	mov    $0x6c8b48,%ecx
59686c:	0f 1f 40 00          	nopl   0x0(%eax)
596870:	8a 10                	mov    (%eax),%dl
596872:	3a 11                	cmp    (%ecx),%dl
596874:	75 1a                	jne    0x596890
596876:	84 d2                	test   %dl,%dl
596878:	74 12                	je     0x59688c
59687a:	8a 50 01             	mov    0x1(%eax),%dl
59687d:	3a 51 01             	cmp    0x1(%ecx),%dl
596880:	75 0e                	jne    0x596890
596882:	83 c0 02             	add    $0x2,%eax
596885:	83 c1 02             	add    $0x2,%ecx
596888:	84 d2                	test   %dl,%dl
59688a:	75 e4                	jne    0x596870
59688c:	33 c0                	xor    %eax,%eax
59688e:	eb 05                	jmp    0x596895
596890:	1b c0                	sbb    %eax,%eax
596892:	83 c8 01             	or     $0x1,%eax
596895:	85 c0                	test   %eax,%eax