58869b:	68 00 01 00 00       	push   $0x100
5886a0:	6a ff                	push   $0xffffffff
5886a2:	57                   	push   %edi
5886a3:	e8 88 ed f3 ff       	call   0x4c7430
5886a8:	83 c4 18             	add    $0x18,%esp
5886ab:	85 c0                	test   %eax,%eax
5886ad:	7f 42                	jg     0x5886f1
5886af:	68 7e 01 00 00       	push   $0x17e
5886b4:	68 08 3c 6c 00       	push   $0x6c3c08
5886b9:	6a 6e                	push   $0x6e
5886bb:	68 8d 00 00 00       	push   $0x8d
5886c0:	6a 2e                	push   $0x2e
5886c2:	e8 d9 8d f1 ff       	call   0x4a14a0
5886c7:	83 c4 14             	add    $0x14,%esp
5886ca:	33 db                	xor    %ebx,%ebx
5886cc:	57                   	push   %edi
5886cd:	e8 4e ef f3 ff       	call   0x4c7620
5886d2:	83 c4 04             	add    $0x4,%esp
5886d5:	c7 45 18 00 00 00 00 	movl   $0x0,0x18(%ebp)
5886dc:	85 f6                	test   %esi,%esi
5886de:	74 09                	je     0x5886e9
5886e0:	56                   	push   %esi
5886e1:	e8 4a 7a f1 ff       	call   0x4a0130
5886e6:	83 c4 04             	add    $0x4,%esp
5886e9:	5f                   	pop    %edi
5886ea:	5d                   	pop    %ebp
5886eb:	5e                   	pop    %esi
5886ec:	8b c3                	mov    %ebx,%eax
5886ee:	5b                   	pop    %ebx
5886ef:	59                   	pop    %ecx
5886f0:	c3                   	ret
5886f1:	8b 5c 24 10          	mov    0x10(%esp),%ebx
5886f5:	8d 44 24 1c          	lea    0x1c(%esp),%eax
5886f9:	ff 73 14             	push   0x14(%ebx)
5886fc:	ff 73 10             	push   0x10(%ebx)
5886ff:	50                   	push   %eax
588700:	6a 00                	push   $0x0
588702:	57                   	push   %edi
588703:	e8 b8 58 fe ff       	call   0x56dfc0
588708:	83 c4 14             	add    $0x14,%esp
58870b:	85 c0                	test   %eax,%eax
58870d:	7e bb                	jle    0x5886ca
58870f:	68 85 01 00 00       	push   $0x185
588714:	68 08 3c 6c 00       	push   $0x6c3c08
588719:	ff 74 24 24          	push   0x24(%esp)
58871d:	e8 8e 7a f1 ff       	call   0x4a01b0
588722:	8b f0                	mov    %eax,%esi
588724:	83 c4 0c             	add    $0xc,%esp
588727:	85 f6                	test   %esi,%esi
588729:	75 0e                	jne    0x588739
58872b:	68 88 01 00 00       	push   $0x188
588730:	68 08 3c 6c 00       	push   $0x6c3c08
588735:	6a 41                	push   $0x41
588737:	eb 82                	jmp    0x5886bb
588739:	ff 73 14             	push   0x14(%ebx)
58873c:	8d 44 24 20          	lea    0x20(%esp),%eax
588740:	ff 73 10             	push   0x10(%ebx)
588743:	50                   	push   %eax
588744:	56                   	push   %esi
588745:	57                   	push   %edi
588746:	e8 75 58 fe ff       	call   0x56dfc0
58874b:	83 c4 14             	add    $0x14,%esp
58874e:	85 c0                	test   %eax,%eax
588750:	0f 8e 74 ff ff ff    	jle    0x5886ca
588756:	ff 74 24 1c          	push   0x1c(%esp)
58875a:	56                   	push   %esi
58875b:	ff 75 0c             	push   0xc(%ebp)
58875e:	e8 6d 93 f2 ff       	call   0x4b1ad0
588763:	83 c4 0c             	add    $0xc,%esp
588766:	33 f6                	xor    %esi,%esi
588768:	8d 5e 01             	lea    0x1(%esi),%ebx
58876b:	e9 5c ff ff ff       	jmp    0x5886cc
588770:	56                   	push   %esi
588771:	8b 74 24 08          	mov    0x8(%esp),%esi
588775:	8b 06                	mov    (%esi),%eax
588777:	85 c0                	test   %eax,%eax
588779:	75 08                	jne    0x588783
58877b:	8b 46 04             	mov    0x4(%esi),%eax
58877e:	8b 40 14             	mov    0x14(%eax),%eax
588781:	eb 1c                	jmp    0x58879f
588783:	83 f8 01             	cmp    $0x1,%eax
588786:	75 4f                	jne    0x5887d7
588788:	8b 46 04             	mov    0x4(%esi),%eax
58878b:	8b 40 14             	mov    0x14(%eax),%eax
58878e:	85 c0                	test   %eax,%eax
588790:	74 45                	je     0x5887d7
588792:	50                   	push   %eax
588793:	e8 c8 89 f0 ff       	call   0x491160
588798:	83 c4 04             	add    $0x4,%esp
58879b:	85 c0                	test   %eax,%eax
58879d:	74 38                	je     0x5887d7
58879f:	8b 48 0c             	mov    0xc(%eax),%ecx
5887a2:	85 c9                	test   %ecx,%ecx
5887a4:	74 55                	je     0x5887fb
5887a6:	8b 49 58             	mov    0x58(%ecx),%ecx
5887a9:	85 c9                	test   %ecx,%ecx
5887ab:	74 4e                	je     0x5887fb
5887ad:	56                   	push   %esi
5887ae:	ff 74 24 10          	push   0x10(%esp)
5887b2:	6a 07                	push   $0x7
5887b4:	50                   	push   %eax
5887b5:	ff d1                	call   *%ecx
5887b7:	83 c4 10             	add    $0x10,%esp
5887ba:	83 f8 fe             	cmp    $0xfffffffe,%eax
5887bd:	75 1c                	jne    0x5887db
5887bf:	6a 7b                	push   $0x7b
5887c1:	68 08 3c 6c 00       	push   $0x6c3c08
5887c6:	6a 7d                	push   $0x7d
5887c8:	68 ab 00 00 00       	push   $0xab
5887cd:	6a 2e                	push   $0x2e
5887cf:	e8 cc 8c f1 ff       	call   0x4a14a0
5887d4:	83 c4 14             	add    $0x14,%esp
5887d7:	33 c0                	xor    %eax,%eax
5887d9:	5e                   	pop    %esi
5887da:	c3                   	ret
5887db:	85 c0                	test   %eax,%eax
5887dd:	7f 1c                	jg     0x5887fb
5887df:	6a 7f                	push   $0x7f
5887e1:	68 08 3c 6c 00       	push   $0x6c3c08
5887e6:	6a 6f                	push   $0x6f
5887e8:	68 ab 00 00 00       	push   $0xab
5887ed:	6a 2e                	push   $0x2e
5887ef:	e8 ac 8c f1 ff       	call   0x4a14a0
5887f4:	83 c4 14             	add    $0x14,%esp
5887f7:	33 c0                	xor    %eax,%eax
5887f9:	5e                   	pop    %esi
5887fa:	c3                   	ret
5887fb:	b8 01 00 00 00       	mov    $0x1,%eax
588800:	5e                   	pop    %esi
588801:	c3                   	ret
588802:	cc                   	int3
588803:	cc                   	int3
588804:	cc                   	int3
588805:	cc                   	int3
588806:	cc                   	int3
588807:	cc                   	int3
588808:	cc                   	int3
588809:	cc                   	int3
58880a:	cc                   	int3
58880b:	cc                   	int3
58880c:	cc                   	int3
58880d:	cc                   	int3
58880e:	cc                   	int3
58880f:	cc                   	int3
588810:	53                   	push   %ebx
588811:	8b 5c 24 08          	mov    0x8(%esp),%ebx
588815:	56                   	push   %esi
588816:	8b 73 04             	mov    0x4(%ebx),%esi
588819:	85 f6                	test   %esi,%esi
58881b:	74 7f                	je     0x58889c
58881d:	57                   	push   %edi
58881e:	ff 36                	push   (%esi)
588820:	33 ff                	xor    %edi,%edi
588822:	e8 e9 5d f2 ff       	call   0x4ae610
588827:	83 c4 04             	add    $0x4,%esp
58882a:	85 c0                	test   %eax,%eax
58882c:	7e 2e                	jle    0x58885c
58882e:	66 90                	xchg   %ax,%ax
588830:	57                   	push   %edi
588831:	ff 36                	push   (%esi)
588833:	e8 f8 5e f2 ff       	call   0x4ae730
588838:	83 c4 08             	add    $0x8,%esp
58883b:	8b 00                	mov    (%eax),%eax
58883d:	83 f8 04             	cmp    $0x4,%eax
588840:	74 53                	je     0x588895
588842:	83 f8 03             	cmp    $0x3,%eax
588845:	75 06                	jne    0x58884d
588847:	39 03                	cmp    %eax,(%ebx)
588849:	7d 02                	jge    0x58884d
58884b:	89 03                	mov    %eax,(%ebx)
58884d:	ff 36                	push   (%esi)
58884f:	47                   	inc    %edi
588850:	e8 bb 5d f2 ff       	call   0x4ae610
588855:	83 c4 04             	add    $0x4,%esp
588858:	3b f8                	cmp    %eax,%edi
58885a:	7c d4                	jl     0x588830
58885c:	ff 76 04             	push   0x4(%esi)
58885f:	33 ff                	xor    %edi,%edi
588861:	e8 aa 5d f2 ff       	call   0x4ae610
588866:	83 c4 04             	add    $0x4,%esp
588869:	85 c0                	test   %eax,%eax
58886b:	7e 2e                	jle    0x58889b
58886d:	0f 1f 00             	nopl   (%eax)
588870:	57                   	push   %edi
588871:	ff 76 04             	push   0x4(%esi)
588874:	e8 b7 5e f2 ff       	call   0x4ae730
588879:	83 c4 08             	add    $0x8,%esp
58887c:	83 38 01             	cmpl   $0x1,(%eax)
58887f:	74 14                	je     0x588895
588881:	ff 76 04             	push   0x4(%esi)
588884:	47                   	inc    %edi
588885:	e8 86 5d f2 ff       	call   0x4ae610
58888a:	83 c4 04             	add    $0x4,%esp
58888d:	3b f8                	cmp    %eax,%edi
58888f:	7c df                	jl     0x588870
588891:	5f                   	pop    %edi
588892:	5e                   	pop    %esi
588893:	5b                   	pop    %ebx
588894:	c3                   	ret
588895:	c7 03 04 00 00 00    	movl   $0x4,(%ebx)
58889b:	5f                   	pop    %edi
58889c:	5e                   	pop    %esi
58889d:	5b                   	pop    %ebx
58889e:	c3                   	ret
58889f:	cc                   	int3
5888a0:	56                   	push   %esi
5888a1:	8b 74 24 08          	mov    0x8(%esp),%esi
5888a5:	83 3e 04             	cmpl   $0x4,(%esi)
5888a8:	7d 7d                	jge    0x588927
5888aa:	56                   	push   %esi
5888ab:	e8 60 ff ff ff       	call   0x588810
5888b0:	83 c4 04             	add    $0x4,%esp
5888b3:	83 3e 03             	cmpl   $0x3,(%esi)
5888b6:	7d 6f                	jge    0x588927
5888b8:	57                   	push   %edi
5888b9:	ff 76 08             	push   0x8(%esi)
5888bc:	33 ff                	xor    %edi,%edi
5888be:	e8 4d 5d f2 ff       	call   0x4ae610
5888c3:	83 c4 04             	add    $0x4,%esp
5888c6:	85 c0                	test   %eax,%eax
5888c8:	7e 3f                	jle    0x588909
5888ca:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
5888d0:	57                   	push   %edi
5888d1:	ff 76 08             	push   0x8(%esi)
5888d4:	e8 57 5e f2 ff       	call   0x4ae730
5888d9:	83 c4 08             	add    $0x8,%esp
5888dc:	8b 08                	mov    (%eax),%ecx
5888de:	83 f9 03             	cmp    $0x3,%ecx
5888e1:	74 46                	je     0x588929
5888e3:	83 f9 04             	cmp    $0x4,%ecx
5888e6:	74 41                	je     0x588929
5888e8:	85 c9                	test   %ecx,%ecx
5888ea:	75 07                	jne    0x5888f3
5888ec:	8b 40 04             	mov    0x4(%eax),%eax
5888ef:	39 08                	cmp    %ecx,(%eax)
5888f1:	74 06                	je     0x5888f9
5888f3:	c7 06 02 00 00 00    	movl   $0x2,(%esi)
5888f9:	ff 76 08             	push   0x8(%esi)
5888fc:	47                   	inc    %edi
5888fd:	e8 0e 5d f2 ff       	call   0x4ae610
588902:	83 c4 04             	add    $0x4,%esp
588905:	3b f8                	cmp    %eax,%edi
588907:	7c c7                	jl     0x5888d0
588909:	83 3e 02             	cmpl   $0x2,(%esi)
58890c:	74 18                	je     0x588926
58890e:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
588912:	75 06                	jne    0x58891a
588914:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
588918:	74 06                	je     0x588920
58891a:	c7 06 02 00 00 00    	movl   $0x2,(%esi)
588920:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
588926:	5f                   	pop    %edi
588927:	5e                   	pop    %esi
588928:	c3                   	ret
588929:	5f                   	pop    %edi
58892a:	c7 06 03 00 00 00    	movl   $0x3,(%esi)
588930:	5e                   	pop    %esi
588931:	c3                   	ret
588932:	cc                   	int3
588933:	cc                   	int3
588934:	cc                   	int3
588935:	cc                   	int3
588936:	cc                   	int3
588937:	cc                   	int3
588938:	cc                   	int3
588939:	cc                   	int3
58893a:	cc                   	int3
58893b:	cc                   	int3
58893c:	cc                   	int3
58893d:	cc                   	int3
58893e:	cc                   	int3
58893f:	cc                   	int3
588940:	8b 54 24 08          	mov    0x8(%esp),%edx
588944:	8b 4c 24 04          	mov    0x4(%esp),%ecx
588948:	85 d2                	test   %edx,%edx
58894a:	74 05                	je     0x588951
58894c:	8b 41 20             	mov    0x20(%ecx),%eax
58894f:	89 02                	mov    %eax,(%edx)
588951:	8b 54 24 0c          	mov    0xc(%esp),%edx
588955:	85 d2                	test   %edx,%edx
588957:	74 05                	je     0x58895e
588959:	8b 41 1c             	mov    0x1c(%ecx),%eax
58895c:	89 02                	mov    %eax,(%edx)
58895e:	8b 54 24 10          	mov    0x10(%esp),%edx
588962:	85 d2                	test   %edx,%edx
588964:	74 05                	je     0x58896b
588966:	8b 41 08             	mov    0x8(%ecx),%eax
588969:	89 02                	mov    %eax,(%edx)
58896b:	8b 54 24 14          	mov    0x14(%esp),%edx
58896f:	85 d2                	test   %edx,%edx
588971:	74 05                	je     0x588978
588973:	8b 41 10             	mov    0x10(%ecx),%eax
588976:	89 02                	mov    %eax,(%edx)
588978:	c3                   	ret
588979:	cc                   	int3
58897a:	cc                   	int3
58897b:	cc                   	int3
58897c:	cc                   	int3
58897d:	cc                   	int3
58897e:	cc                   	int3
58897f:	cc                   	int3
588980:	b8 0c 00 00 00       	mov    $0xc,%eax
588985:	e8 66 8b 05 00       	call   0x5e14f0
58898a:	53                   	push   %ebx
58898b:	56                   	push   %esi
58898c:	8b 74 24 18          	mov    0x18(%esp),%esi
588990:	57                   	push   %edi
588991:	c7 44 24 1c 00 00 00 	movl   $0x0,0x1c(%esp)
588998:	00
588999:	8b 46 08             	mov    0x8(%esi),%eax
58899c:	8d 7e 24             	lea    0x24(%esi),%edi
58899f:	ff 30                	push   (%eax)
5889a1:	e8 3a f0 f1 ff       	call   0x4a79e0
5889a6:	50                   	push   %eax
5889a7:	e8 a4 ef f1 ff       	call   0x4a7950
5889ac:	50                   	push   %eax
5889ad:	e8 1e 45 f5 ff       	call   0x4dced0
5889b2:	8b d8                	mov    %eax,%ebx
5889b4:	83 c4 0c             	add    $0xc,%esp
5889b7:	89 5c 24 14          	mov    %ebx,0x14(%esp)
5889bb:	85 db                	test   %ebx,%ebx
5889bd:	75 07                	jne    0x5889c6
5889bf:	5f                   	pop    %edi
5889c0:	5e                   	pop    %esi
5889c1:	5b                   	pop    %ebx
5889c2:	83 c4 0c             	add    $0xc,%esp
5889c5:	c3                   	ret
5889c6:	55                   	push   %ebp
5889c7:	6a ff                	push   $0xffffffff
5889c9:	6a 34                	push   $0x34
5889cb:	56                   	push   %esi
5889cc:	e8 8f c2 00 00       	call   0x594c60
5889d1:	83 c4 0c             	add    $0xc,%esp
5889d4:	bd 01 00 00 00       	mov    $0x1,%ebp
5889d9:	85 c0                	test   %eax,%eax
5889db:	79 7f                	jns    0x588a5c
5889dd:	33 db                	xor    %ebx,%ebx
5889df:	53                   	push   %ebx
5889e0:	53                   	push   %ebx
5889e1:	e8 ea b7 00 00       	call   0x5941d0
5889e6:	8b e8                	mov    %eax,%ebp
5889e8:	83 c4 08             	add    $0x8,%esp
5889eb:	85 ed                	test   %ebp,%ebp
5889ed:	74 1b                	je     0x588a0a
5889ef:	6a ff                	push   $0xffffffff
5889f1:	55                   	push   %ebp
5889f2:	ff 75 04             	push   0x4(%ebp)
5889f5:	6a 34                	push   $0x34
5889f7:	56                   	push   %esi
5889f8:	e8 33 c2 00 00       	call   0x594c30