5a967c:	3b fb                	cmp    %ebx,%edi
5a967e:	75 23                	jne    0x5a96a3
5a9680:	68 12 01 00 00       	push   $0x112
5a9685:	68 70 d4 6c 00       	push   $0x6cd470
5a968a:	6a 70                	push   $0x70
5a968c:	68 d0 00 00 00       	push   $0xd0
5a9691:	6a 10                	push   $0x10
5a9693:	e8 08 7e ef ff       	call   0x4a14a0
5a9698:	83 c4 14             	add    $0x14,%esp
5a969b:	33 c0                	xor    %eax,%eax
5a969d:	5f                   	pop    %edi
5a969e:	5b                   	pop    %ebx
5a969f:	83 c4 10             	add    $0x10,%esp
5a96a2:	c3                   	ret
5a96a3:	8b 44 24 24          	mov    0x24(%esp),%eax
5a96a7:	55                   	push   %ebp
5a96a8:	85 c0                	test   %eax,%eax
5a96aa:	0f 84 1d 03 00 00    	je     0x5a99cd
5a96b0:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
5a96b4:	0f 84 13 03 00 00    	je     0x5a99cd
5a96ba:	85 db                	test   %ebx,%ebx
5a96bc:	0f 84 0b 03 00 00    	je     0x5a99cd
5a96c2:	8b 6c 24 20          	mov    0x20(%esp),%ebp
5a96c6:	53                   	push   %ebx
5a96c7:	55                   	push   %ebp
5a96c8:	e8 83 2a fd ff       	call   0x57c150
5a96cd:	83 c4 08             	add    $0x8,%esp
5a96d0:	85 c0                	test   %eax,%eax
5a96d2:	0f 85 f5 02 00 00    	jne    0x5a99cd
5a96d8:	39 43 40             	cmp    %eax,0x40(%ebx)
5a96db:	75 07                	jne    0x5a96e4
5a96dd:	5d                   	pop    %ebp
5a96de:	5f                   	pop    %edi
5a96df:	5b                   	pop    %ebx
5a96e0:	83 c4 10             	add    $0x10,%esp
5a96e3:	c3                   	ret
5a96e4:	8b 5c 24 30          	mov    0x30(%esp),%ebx
5a96e8:	56                   	push   %esi
5a96e9:	53                   	push   %ebx
5a96ea:	e8 b1 e7 f2 ff       	call   0x4d7ea0
5a96ef:	53                   	push   %ebx
5a96f0:	e8 cb e6 f2 ff       	call   0x4d7dc0
5a96f5:	8b f0                	mov    %eax,%esi
5a96f7:	53                   	push   %ebx
5a96f8:	89 74 24 1c          	mov    %esi,0x1c(%esp)
5a96fc:	e8 bf e6 f2 ff       	call   0x4d7dc0
5a9701:	8b d8                	mov    %eax,%ebx
5a9703:	83 c4 0c             	add    $0xc,%esp
5a9706:	85 db                	test   %ebx,%ebx
5a9708:	0f 84 a7 02 00 00    	je     0x5a99b5
5a970e:	8b 6d 4c             	mov    0x4c(%ebp),%ebp
5a9711:	83 c7 04             	add    $0x4,%edi
5a9714:	3b 6e 08             	cmp    0x8(%esi),%ebp
5a9717:	7f 04                	jg     0x5a971d
5a9719:	8b c6                	mov    %esi,%eax
5a971b:	eb 0a                	jmp    0x5a9727
5a971d:	55                   	push   %ebp
5a971e:	56                   	push   %esi
5a971f:	e8 7c 9f f0 ff       	call   0x4b36a0
5a9724:	83 c4 08             	add    $0x8,%esp
5a9727:	85 c0                	test   %eax,%eax
5a9729:	0f 84 86 02 00 00    	je     0x5a99b5
5a972f:	3b 6b 08             	cmp    0x8(%ebx),%ebp
5a9732:	7f 04                	jg     0x5a9738
5a9734:	8b c3                	mov    %ebx,%eax
5a9736:	eb 0a                	jmp    0x5a9742
5a9738:	55                   	push   %ebp
5a9739:	53                   	push   %ebx
5a973a:	e8 61 9f f0 ff       	call   0x4b36a0
5a973f:	83 c4 08             	add    $0x8,%esp
5a9742:	85 c0                	test   %eax,%eax
5a9744:	0f 84 6b 02 00 00    	je     0x5a99b5
5a974a:	3b 6f 08             	cmp    0x8(%edi),%ebp
5a974d:	7f 04                	jg     0x5a9753
5a974f:	8b c7                	mov    %edi,%eax
5a9751:	eb 0a                	jmp    0x5a975d
5a9753:	55                   	push   %ebp
5a9754:	57                   	push   %edi
5a9755:	e8 46 9f f0 ff       	call   0x4b36a0
5a975a:	83 c4 08             	add    $0x8,%esp
5a975d:	85 c0                	test   %eax,%eax
5a975f:	0f 84 50 02 00 00    	je     0x5a99b5
5a9765:	8b 44 24 28          	mov    0x28(%esp),%eax
5a9769:	83 c0 18             	add    $0x18,%eax
5a976c:	3b 68 08             	cmp    0x8(%eax),%ebp
5a976f:	7e 0a                	jle    0x5a977b
5a9771:	55                   	push   %ebp
5a9772:	50                   	push   %eax
5a9773:	e8 28 9f f0 ff       	call   0x4b36a0
5a9778:	83 c4 08             	add    $0x8,%esp
5a977b:	85 c0                	test   %eax,%eax
5a977d:	0f 84 32 02 00 00    	je     0x5a99b5
5a9783:	8b 44 24 24          	mov    0x24(%esp),%eax
5a9787:	8b 4c 24 30          	mov    0x30(%esp),%ecx
5a978b:	83 c0 5c             	add    $0x5c,%eax
5a978e:	50                   	push   %eax
5a978f:	83 c1 04             	add    $0x4,%ecx
5a9792:	51                   	push   %ecx
5a9793:	56                   	push   %esi
5a9794:	e8 a7 0a 00 00       	call   0x5aa240
5a9799:	83 c4 0c             	add    $0xc,%esp
5a979c:	85 c0                	test   %eax,%eax
5a979e:	0f 84 11 02 00 00    	je     0x5a99b5
5a97a4:	6a 01                	push   $0x1
5a97a6:	53                   	push   %ebx
5a97a7:	e8 44 9d f0 ff       	call   0x4b34f0
5a97ac:	83 c4 08             	add    $0x8,%esp
5a97af:	85 c0                	test   %eax,%eax
5a97b1:	0f 84 fe 01 00 00    	je     0x5a99b5
5a97b7:	8b 54 24 24          	mov    0x24(%esp),%edx
5a97bb:	ff 74 24 34          	push   0x34(%esp)
5a97bf:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
5a97c3:	56                   	push   %esi
5a97c4:	8b 02                	mov    (%edx),%eax
5a97c6:	83 c1 18             	add    $0x18,%ecx
5a97c9:	51                   	push   %ecx
5a97ca:	52                   	push   %edx
5a97cb:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
5a97d1:	ff d0                	call   *%eax
5a97d3:	83 c4 10             	add    $0x10,%esp
5a97d6:	85 c0                	test   %eax,%eax
5a97d8:	0f 84 d7 01 00 00    	je     0x5a99b5
5a97de:	8b 54 24 24          	mov    0x24(%esp),%edx
5a97e2:	ff 74 24 34          	push   0x34(%esp)
5a97e6:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
5a97ea:	83 c1 18             	add    $0x18,%ecx
5a97ed:	8b 02                	mov    (%edx),%eax
5a97ef:	51                   	push   %ecx
5a97f0:	57                   	push   %edi
5a97f1:	52                   	push   %edx
5a97f2:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
5a97f8:	ff d0                	call   *%eax
5a97fa:	83 c4 10             	add    $0x10,%esp
5a97fd:	85 c0                	test   %eax,%eax
5a97ff:	0f 84 b0 01 00 00    	je     0x5a99b5
5a9805:	8b 44 24 24          	mov    0x24(%esp),%eax
5a9809:	05 88 00 00 00       	add    $0x88,%eax
5a980e:	50                   	push   %eax
5a980f:	57                   	push   %edi
5a9810:	57                   	push   %edi
5a9811:	e8 ea 08 00 00       	call   0x5aa100
5a9816:	83 c4 0c             	add    $0xc,%esp
5a9819:	85 c0                	test   %eax,%eax
5a981b:	0f 84 94 01 00 00    	je     0x5a99b5
5a9821:	8b 54 24 2c          	mov    0x2c(%esp),%edx
5a9825:	bf 00 00 00 80       	mov    $0x80000000,%edi
5a982a:	8b 4a 04             	mov    0x4(%edx),%ecx
5a982d:	8b 02                	mov    (%edx),%eax
5a982f:	49                   	dec    %ecx
5a9830:	89 4c 24 14          	mov    %ecx,0x14(%esp)
5a9834:	8b 04 88             	mov    (%eax,%ecx,4),%eax
5a9837:	85 c0                	test   %eax,%eax
5a9839:	78 0b                	js     0x5a9846
5a983b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
5a9840:	d1 ef                	shr    $1,%edi
5a9842:	85 c7                	test   %eax,%edi
5a9844:	74 fa                	je     0x5a9840
5a9846:	d1 ef                	shr    $1,%edi
5a9848:	75 0a                	jne    0x5a9854
5a984a:	49                   	dec    %ecx
5a984b:	bf 00 00 00 80       	mov    $0x80000000,%edi
5a9850:	89 4c 24 14          	mov    %ecx,0x14(%esp)
5a9854:	85 c9                	test   %ecx,%ecx
5a9856:	0f 88 da 00 00 00    	js     0x5a9936
5a985c:	0f 1f 40 00          	nopl   0x0(%eax)
5a9860:	8b 02                	mov    (%edx),%eax
5a9862:	8b 04 88             	mov    (%eax,%ecx,4),%eax
5a9865:	89 44 24 1c          	mov    %eax,0x1c(%esp)
5a9869:	85 ff                	test   %edi,%edi
5a986b:	0f 84 af 00 00 00    	je     0x5a9920
5a9871:	8b f0                	mov    %eax,%esi
5a9873:	8b 44 24 28          	mov    0x28(%esp),%eax
5a9877:	55                   	push   %ebp
5a9878:	83 c0 04             	add    $0x4,%eax
5a987b:	23 f7                	and    %edi,%esi
5a987d:	50                   	push   %eax
5a987e:	ff 74 24 18          	push   0x18(%esp)
5a9882:	56                   	push   %esi
5a9883:	e8 d8 95 f0 ff       	call   0x4b2e60
5a9888:	8b 44 24 38          	mov    0x38(%esp),%eax
5a988c:	55                   	push   %ebp
5a988d:	83 c0 18             	add    $0x18,%eax
5a9890:	50                   	push   %eax
5a9891:	53                   	push   %ebx
5a9892:	56                   	push   %esi
5a9893:	e8 c8 95 f0 ff       	call   0x4b2e60
5a9898:	ff 74 24 54          	push   0x54(%esp)
5a989c:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx
5a98a0:	53                   	push   %ebx
5a98a1:	ff 74 24 38          	push   0x38(%esp)
5a98a5:	8d 41 18             	lea    0x18(%ecx),%eax
5a98a8:	50                   	push   %eax
5a98a9:	8d 41 04             	lea    0x4(%ecx),%eax
5a98ac:	50                   	push   %eax
5a98ad:	8b 44 24 64          	mov    0x64(%esp),%eax
5a98b1:	83 c0 04             	add    $0x4,%eax
5a98b4:	50                   	push   %eax
5a98b5:	ff 74 24 5c          	push   0x5c(%esp)
5a98b9:	e8 42 03 00 00       	call   0x5a9c00
5a98be:	83 c4 3c             	add    $0x3c,%esp
5a98c1:	85 c0                	test   %eax,%eax
5a98c3:	0f 84 ec 00 00 00    	je     0x5a99b5
5a98c9:	ff 74 24 34          	push   0x34(%esp)
5a98cd:	53                   	push   %ebx
5a98ce:	ff 74 24 18          	push   0x18(%esp)
5a98d2:	ff 74 24 30          	push   0x30(%esp)
5a98d6:	e8 55 04 00 00       	call   0x5a9d30
5a98db:	83 c4 10             	add    $0x10,%esp
5a98de:	85 c0                	test   %eax,%eax
5a98e0:	0f 84 cf 00 00 00    	je     0x5a99b5
5a98e6:	8b 44 24 28          	mov    0x28(%esp),%eax
5a98ea:	55                   	push   %ebp
5a98eb:	83 c0 04             	add    $0x4,%eax
5a98ee:	50                   	push   %eax
5a98ef:	ff 74 24 18          	push   0x18(%esp)
5a98f3:	56                   	push   %esi
5a98f4:	e8 67 95 f0 ff       	call   0x4b2e60
5a98f9:	8b 44 24 38          	mov    0x38(%esp),%eax
5a98fd:	55                   	push   %ebp
5a98fe:	83 c0 18             	add    $0x18,%eax
5a9901:	50                   	push   %eax
5a9902:	53                   	push   %ebx
5a9903:	56                   	push   %esi
5a9904:	e8 57 95 f0 ff       	call   0x4b2e60
5a9909:	8b 44 24 3c          	mov    0x3c(%esp),%eax
5a990d:	83 c4 20             	add    $0x20,%esp
5a9910:	d1 ef                	shr    $1,%edi
5a9912:	0f 85 59 ff ff ff    	jne    0x5a9871
5a9918:	8b 4c 24 14          	mov    0x14(%esp),%ecx
5a991c:	8b 54 24 2c          	mov    0x2c(%esp),%edx
5a9920:	83 e9 01             	sub    $0x1,%ecx
5a9923:	bf 00 00 00 80       	mov    $0x80000000,%edi
5a9928:	89 4c 24 14          	mov    %ecx,0x14(%esp)
5a992c:	0f 89 2e ff ff ff    	jns    0x5a9860
5a9932:	8b 74 24 10          	mov    0x10(%esp),%esi
5a9936:	ff 74 24 34          	push   0x34(%esp)
5a993a:	8b 44 24 2c          	mov    0x2c(%esp),%eax
5a993e:	8b 4c 24 34          	mov    0x34(%esp),%ecx
5a9942:	8d 78 18             	lea    0x18(%eax),%edi
5a9945:	57                   	push   %edi
5a9946:	8d 68 04             	lea    0x4(%eax),%ebp
5a9949:	55                   	push   %ebp
5a994a:	53                   	push   %ebx
5a994b:	8b 5c 24 34          	mov    0x34(%esp),%ebx
5a994f:	8d 41 18             	lea    0x18(%ecx),%eax
5a9952:	56                   	push   %esi
5a9953:	50                   	push   %eax
5a9954:	8d 41 04             	lea    0x4(%ecx),%eax
5a9957:	50                   	push   %eax
5a9958:	53                   	push   %ebx
5a9959:	e8 d2 04 00 00       	call   0x5a9e30
5a995e:	83 c4 20             	add    $0x20,%esp
5a9961:	85 c0                	test   %eax,%eax
5a9963:	74 50                	je     0x5a99b5
5a9965:	83 f8 01             	cmp    $0x1,%eax
5a9968:	75 13                	jne    0x5a997d
5a996a:	ff 74 24 28          	push   0x28(%esp)
5a996e:	53                   	push   %ebx
5a996f:	e8 7c 2b fd ff       	call   0x57c4f0
5a9974:	83 c4 08             	add    $0x8,%esp
5a9977:	85 c0                	test   %eax,%eax
5a9979:	74 3a                	je     0x5a99b5
5a997b:	eb 1d                	jmp    0x5a999a
5a997d:	8b 5c 24 28          	mov    0x28(%esp),%ebx
5a9981:	6a 01                	push   $0x1
5a9983:	8d 43 2c             	lea    0x2c(%ebx),%eax
5a9986:	50                   	push   %eax
5a9987:	e8 64 9b f0 ff       	call   0x4b34f0
5a998c:	83 c4 08             	add    $0x8,%esp
5a998f:	85 c0                	test   %eax,%eax
5a9991:	74 22                	je     0x5a99b5
5a9993:	c7 43 40 01 00 00 00 	movl   $0x1,0x40(%ebx)
5a999a:	6a 00                	push   $0x0
5a999c:	55                   	push   %ebp
5a999d:	e8 1e 9b f0 ff       	call   0x4b34c0
5a99a2:	6a 00                	push   $0x0
5a99a4:	57                   	push   %edi
5a99a5:	e8 16 9b f0 ff       	call   0x4b34c0
5a99aa:	83 c4 10             	add    $0x10,%esp
5a99ad:	c7 44 24 18 01 00 00 	movl   $0x1,0x18(%esp)
5a99b4:	00
5a99b5:	ff 74 24 34          	push   0x34(%esp)
5a99b9:	e8 92 e3 f2 ff       	call   0x4d7d50
5a99be:	8b 44 24 1c          	mov    0x1c(%esp),%eax
5a99c2:	83 c4 04             	add    $0x4,%esp
5a99c5:	5e                   	pop    %esi
5a99c6:	5d                   	pop    %ebp
5a99c7:	5f                   	pop    %edi
5a99c8:	5b                   	pop    %ebx
5a99c9:	83 c4 10             	add    $0x10,%esp
5a99cc:	c3                   	ret
5a99cd:	57                   	push   %edi
5a99ce:	ff 74 24 24          	push   0x24(%esp)
5a99d2:	e8 19 2b fd ff       	call   0x57c4f0
5a99d7:	83 c4 08             	add    $0x8,%esp
5a99da:	5d                   	pop    %ebp
5a99db:	5f                   	pop    %edi
5a99dc:	5b                   	pop    %ebx
5a99dd:	83 c4 10             	add    $0x10,%esp
5a99e0:	c3                   	ret
5a99e1:	cc                   	int3
5a99e2:	cc                   	int3
5a99e3:	cc                   	int3
5a99e4:	cc                   	int3
5a99e5:	cc                   	int3
5a99e6:	cc                   	int3
5a99e7:	cc                   	int3
5a99e8:	cc                   	int3
5a99e9:	cc                   	int3
5a99ea:	cc                   	int3
5a99eb:	cc                   	int3
5a99ec:	cc                   	int3
5a99ed:	cc                   	int3
5a99ee:	cc                   	int3
5a99ef:	cc                   	int3
5a99f0:	e9 2b 5c fe ff       	jmp    0x58f620
5a99f5:	cc                   	int3
5a99f6:	cc                   	int3
5a99f7:	cc                   	int3
5a99f8:	cc                   	int3
5a99f9:	cc                   	int3
5a99fa:	cc                   	int3
5a99fb:	cc                   	int3
5a99fc:	cc                   	int3
5a99fd:	cc                   	int3
5a99fe:	cc                   	int3
5a99ff:	cc                   	int3
5a9a00:	b8 10 00 00 00       	mov    $0x10,%eax
5a9a05:	e8 e6 7a 03 00       	call   0x5e14f0
5a9a0a:	53                   	push   %ebx
5a9a0b:	8b 5c 24 30          	mov    0x30(%esp),%ebx
5a9a0f:	33 c0                	xor    %eax,%eax
5a9a11:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
5a9a18:	00
5a9a19:	89 44 24 04          	mov    %eax,0x4(%esp)
5a9a1d:	85 db                	test   %ebx,%ebx
5a9a1f:	75 14                	jne    0x5a9a35
5a9a21:	e8 fa e3 f2 ff       	call   0x4d7e20
5a9a26:	89 44 24 0c          	mov    %eax,0xc(%esp)
5a9a2a:	8b d8                	mov    %eax,%ebx
5a9a2c:	85 c0                	test   %eax,%eax
5a9a2e:	75 05                	jne    0x5a9a35
5a9a30:	5b                   	pop    %ebx
5a9a31:	83 c4 10             	add    $0x10,%esp
5a9a34:	c3                   	ret
5a9a35:	55                   	push   %ebp
5a9a36:	8b 6c 24 28          	mov    0x28(%esp),%ebp
5a9a3a:	56                   	push   %esi
5a9a3b:	8b 74 24 20          	mov    0x20(%esp),%esi
5a9a3f:	57                   	push   %edi