58350b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
583510:	8b 06                	mov    (%esi),%eax
583512:	83 f8 06             	cmp    $0x6,%eax
583515:	77 f9                	ja     0x583510
583517:	ff 24 85 84 36 58 00 	jmp    *0x583684(,%eax,4)
58351e:	8b 4e 20             	mov    0x20(%esi),%ecx
583521:	85 c9                	test   %ecx,%ecx
583523:	74 1e                	je     0x583543
583525:	8d 46 3c             	lea    0x3c(%esi),%eax
583528:	50                   	push   %eax
583529:	8d 46 34             	lea    0x34(%esi),%eax
58352c:	50                   	push   %eax
58352d:	8d 46 30             	lea    0x30(%esi),%eax
583530:	50                   	push   %eax
583531:	55                   	push   %ebp
583532:	ff d1                	call   *%ecx
583534:	83 c4 10             	add    $0x10,%esp
583537:	85 c0                	test   %eax,%eax
583539:	0f 84 2f 01 00 00    	je     0x58366e
58353f:	8b 54 24 10          	mov    0x10(%esp),%edx
583543:	8b 4c 24 24          	mov    0x24(%esp),%ecx
583547:	33 c0                	xor    %eax,%eax
583549:	39 46 34             	cmp    %eax,0x34(%esi)
58354c:	0f 9e c0             	setle  %al
58354f:	40                   	inc    %eax
583550:	89 06                	mov    %eax,(%esi)
583552:	eb bc                	jmp    0x583510
583554:	6a 02                	push   $0x2
583556:	ff 76 24             	push   0x24(%esi)
583559:	56                   	push   %esi
58355a:	55                   	push   %ebp
58355b:	e8 90 04 00 00       	call   0x5839f0
583560:	8b f8                	mov    %eax,%edi
583562:	83 c4 10             	add    $0x10,%esp
583565:	85 ff                	test   %edi,%edi
583567:	0f 8e dd 00 00 00    	jle    0x58364a
58356d:	8b 4c 24 24          	mov    0x24(%esp),%ecx
583571:	8b 54 24 10          	mov    0x10(%esp),%edx
583575:	eb 99                	jmp    0x583510
583577:	ff 76 1c             	push   0x1c(%esi)
58357a:	53                   	push   %ebx
58357b:	6a 00                	push   $0x0
58357d:	e8 6e 6f f8 ff       	call   0x50a4f0
583582:	2b c3                	sub    %ebx,%eax
583584:	83 c4 0c             	add    $0xc,%esp
583587:	89 46 10             	mov    %eax,0x10(%esi)
58358a:	3b 46 08             	cmp    0x8(%esi),%eax
58358d:	0f 8f e6 00 00 00    	jg     0x583679
583593:	8b 46 04             	mov    0x4(%esi),%eax
583596:	89 44 24 18          	mov    %eax,0x18(%esp)
58359a:	8d 44 24 18          	lea    0x18(%esp),%eax
58359e:	ff 76 18             	push   0x18(%esi)
5835a1:	ff 76 1c             	push   0x1c(%esi)
5835a4:	53                   	push   %ebx
5835a5:	6a 00                	push   $0x0
5835a7:	50                   	push   %eax
5835a8:	e8 b3 6f f8 ff       	call   0x50a560
5835ad:	8b 4c 24 38          	mov    0x38(%esp),%ecx
5835b1:	83 c4 14             	add    $0x14,%esp
5835b4:	8b 54 24 10          	mov    0x10(%esp),%edx
5835b8:	89 5e 14             	mov    %ebx,0x14(%esi)
5835bb:	c7 06 03 00 00 00    	movl   $0x3,(%esi)
5835c1:	e9 4a ff ff ff       	jmp    0x583510
5835c6:	ff 76 10             	push   0x10(%esi)
5835c9:	8b 46 04             	mov    0x4(%esi),%eax
5835cc:	03 46 0c             	add    0xc(%esi),%eax
5835cf:	50                   	push   %eax
5835d0:	52                   	push   %edx
5835d1:	e8 ea 5e f7 ff       	call   0x4f94c0
5835d6:	8b f8                	mov    %eax,%edi
5835d8:	83 c4 0c             	add    $0xc,%esp
5835db:	85 ff                	test   %edi,%edi
5835dd:	7e 6b                	jle    0x58364a
5835df:	29 7e 10             	sub    %edi,0x10(%esi)
5835e2:	8b 4c 24 24          	mov    0x24(%esp),%ecx
5835e6:	8b 54 24 10          	mov    0x10(%esp),%edx
5835ea:	74 08                	je     0x5835f4
5835ec:	01 7e 0c             	add    %edi,0xc(%esi)
5835ef:	e9 1c ff ff ff       	jmp    0x583510
5835f4:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
5835fb:	c7 06 04 00 00 00    	movl   $0x4,(%esi)
583601:	e9 0a ff ff ff       	jmp    0x583510
583606:	8b 46 14             	mov    0x14(%esi),%eax
583609:	3b d8                	cmp    %eax,%ebx
58360b:	0f 4e c3             	cmovle %ebx,%eax
58360e:	50                   	push   %eax
58360f:	51                   	push   %ecx
583610:	52                   	push   %edx
583611:	e8 aa 5e f7 ff       	call   0x4f94c0
583616:	8b f8                	mov    %eax,%edi
583618:	83 c4 0c             	add    $0xc,%esp
58361b:	85 ff                	test   %edi,%edi
58361d:	7e 2b                	jle    0x58364a
58361f:	8b 4c 24 24          	mov    0x24(%esp),%ecx
583623:	2b df                	sub    %edi,%ebx
583625:	01 7c 24 14          	add    %edi,0x14(%esp)
583629:	03 cf                	add    %edi,%ecx
58362b:	29 7e 14             	sub    %edi,0x14(%esi)
58362e:	83 7e 14 00          	cmpl   $0x0,0x14(%esi)
583632:	89 4c 24 24          	mov    %ecx,0x24(%esp)
583636:	75 06                	jne    0x58363e
583638:	c7 06 02 00 00 00    	movl   $0x2,(%esi)
58363e:	8b 54 24 10          	mov    0x10(%esp),%edx
583642:	85 db                	test   %ebx,%ebx
583644:	0f 85 c6 fe ff ff    	jne    0x583510
58364a:	6a 0f                	push   $0xf
58364c:	55                   	push   %ebp
58364d:	e8 ae 54 f7 ff       	call   0x4f8b00
583652:	55                   	push   %ebp
583653:	e8 b8 54 f7 ff       	call   0x4f8b10
583658:	8b 44 24 20          	mov    0x20(%esp),%eax
58365c:	83 c4 0c             	add    $0xc,%esp
58365f:	85 c0                	test   %eax,%eax
583661:	0f 4f f8             	cmovg  %eax,%edi
583664:	8b c7                	mov    %edi,%eax
583666:	5f                   	pop    %edi
583667:	5e                   	pop    %esi
583668:	5d                   	pop    %ebp
583669:	5b                   	pop    %ebx
58366a:	83 c4 0c             	add    $0xc,%esp
58366d:	c3                   	ret
58366e:	6a 0f                	push   $0xf
583670:	55                   	push   %ebp
583671:	e8 8a 54 f7 ff       	call   0x4f8b00
583676:	83 c4 08             	add    $0x8,%esp
583679:	5f                   	pop    %edi
58367a:	5e                   	pop    %esi
58367b:	5d                   	pop    %ebp
58367c:	33 c0                	xor    %eax,%eax
58367e:	5b                   	pop    %ebx
58367f:	83 c4 0c             	add    $0xc,%esp
583682:	c3                   	ret
583683:	90                   	nop
583684:	1e                   	push   %ds
583685:	35 58 00 54 35       	xor    $0x35540058,%eax
58368a:	58                   	pop    %eax
58368b:	00 77 35             	add    %dh,0x35(%edi)
58368e:	58                   	pop    %eax
58368f:	00 c6                	add    %al,%dh
583691:	35 58 00 06 36       	xor    $0x36060058,%eax
583696:	58                   	pop    %eax
583697:	00 6e 36             	add    %ch,0x36(%esi)
58369a:	58                   	pop    %eax
58369b:	00 6e 36             	add    %ch,0x36(%esi)
58369e:	58                   	pop    %eax
58369f:	00 ff                	add    %bh,%bh
5836a1:	74 24                	je     0x5836c7
5836a3:	04 e8                	add    $0xe8,%al
5836a5:	77 5b                	ja     0x583702
5836a7:	f7 ff                	idiv   %edi
5836a9:	83 c4 04             	add    $0x4,%esp
5836ac:	85 c0                	test   %eax,%eax
5836ae:	75 01                	jne    0x5836b1
5836b0:	c3                   	ret
5836b1:	89 44 24 04          	mov    %eax,0x4(%esp)
5836b5:	e9 86 5d f7 ff       	jmp    0x4f9440
5836ba:	cc                   	int3
5836bb:	cc                   	int3
5836bc:	cc                   	int3
5836bd:	cc                   	int3
5836be:	cc                   	int3
5836bf:	cc                   	int3
5836c0:	8b 54 24 08          	mov    0x8(%esp),%edx
5836c4:	8b c2                	mov    %edx,%eax
5836c6:	56                   	push   %esi
5836c7:	8d 70 01             	lea    0x1(%eax),%esi
5836ca:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
5836d0:	8a 08                	mov    (%eax),%cl
5836d2:	40                   	inc    %eax
5836d3:	84 c9                	test   %cl,%cl
5836d5:	75 f9                	jne    0x5836d0
5836d7:	2b c6                	sub    %esi,%eax
5836d9:	50                   	push   %eax
5836da:	52                   	push   %edx
5836db:	ff 74 24 10          	push   0x10(%esp)
5836df:	e8 cc fd ff ff       	call   0x5834b0
5836e4:	83 c4 0c             	add    $0xc,%esp
5836e7:	5e                   	pop    %esi
5836e8:	c3                   	ret
5836e9:	cc                   	int3
5836ea:	cc                   	int3
5836eb:	cc                   	int3
5836ec:	cc                   	int3
5836ed:	cc                   	int3
5836ee:	cc                   	int3
5836ef:	cc                   	int3
5836f0:	ff 74 24 04          	push   0x4(%esp)
5836f4:	e8 27 5b f7 ff       	call   0x4f9220
5836f9:	83 c4 04             	add    $0x4,%esp
5836fc:	85 c0                	test   %eax,%eax
5836fe:	75 01                	jne    0x583701
583700:	c3                   	ret
583701:	89 44 24 04          	mov    %eax,0x4(%esp)
583705:	e9 96 56 f7 ff       	jmp    0x4f8da0
58370a:	cc                   	int3
58370b:	cc                   	int3
58370c:	cc                   	int3
58370d:	cc                   	int3
58370e:	cc                   	int3
58370f:	cc                   	int3
583710:	53                   	push   %ebx
583711:	55                   	push   %ebp
583712:	56                   	push   %esi
583713:	57                   	push   %edi
583714:	8b 7c 24 14          	mov    0x14(%esp),%edi
583718:	57                   	push   %edi
583719:	e8 82 d0 f6 ff       	call   0x4f07a0
58371e:	8b f0                	mov    %eax,%esi
583720:	83 c4 04             	add    $0x4,%esp
583723:	85 f6                	test   %esi,%esi
583725:	0f 84 1b 01 00 00    	je     0x583846
58372b:	57                   	push   %edi
58372c:	e8 ef 5a f7 ff       	call   0x4f9220
583731:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
583735:	8b d8                	mov    %eax,%ebx
583737:	83 c4 04             	add    $0x4,%esp
58373a:	8d 45 f5             	lea    -0xb(%ebp),%eax
58373d:	3d 8f 00 00 00       	cmp    $0x8f,%eax
583742:	0f 87 fa 00 00 00    	ja     0x583842
583748:	0f b6 88 70 38 58 00 	movzbl 0x583870(%eax),%ecx
58374f:	ff 24 8d 50 38 58 00 	jmp    *0x583850(,%ecx,4)
583756:	8b 4c 24 20          	mov    0x20(%esp),%ecx
58375a:	5f                   	pop    %edi
58375b:	8b 01                	mov    (%ecx),%eax
58375d:	89 46 20             	mov    %eax,0x20(%esi)
583760:	8b 41 04             	mov    0x4(%ecx),%eax
583763:	89 46 24             	mov    %eax,0x24(%esi)
583766:	b8 01 00 00 00       	mov    $0x1,%eax
58376b:	5e                   	pop    %esi
58376c:	5d                   	pop    %ebp
58376d:	5b                   	pop    %ebx
58376e:	c3                   	ret
58376f:	8b 4c 24 20          	mov    0x20(%esp),%ecx
583773:	8b 46 20             	mov    0x20(%esi),%eax
583776:	5f                   	pop    %edi
583777:	89 01                	mov    %eax,(%ecx)
583779:	8b 46 24             	mov    0x24(%esi),%eax
58377c:	5e                   	pop    %esi
58377d:	5d                   	pop    %ebp
58377e:	89 41 04             	mov    %eax,0x4(%ecx)
583781:	b8 01 00 00 00       	mov    $0x1,%eax
583786:	5b                   	pop    %ebx
583787:	c3                   	ret
583788:	8b 4c 24 20          	mov    0x20(%esp),%ecx
58378c:	5f                   	pop    %edi
58378d:	8b 01                	mov    (%ecx),%eax
58378f:	89 46 28             	mov    %eax,0x28(%esi)
583792:	8b 41 04             	mov    0x4(%ecx),%eax
583795:	89 46 2c             	mov    %eax,0x2c(%esi)
583798:	b8 01 00 00 00       	mov    $0x1,%eax
58379d:	5e                   	pop    %esi
58379e:	5d                   	pop    %ebp
58379f:	5b                   	pop    %ebx
5837a0:	c3                   	ret
5837a1:	8b 4c 24 20          	mov    0x20(%esp),%ecx
5837a5:	8b 46 28             	mov    0x28(%esi),%eax
5837a8:	5f                   	pop    %edi
5837a9:	89 01                	mov    %eax,(%ecx)
5837ab:	8b 46 2c             	mov    0x2c(%esi),%eax
5837ae:	5e                   	pop    %esi
5837af:	5d                   	pop    %ebp
5837b0:	89 41 04             	mov    %eax,0x4(%ecx)
5837b3:	b8 01 00 00 00       	mov    $0x1,%eax
5837b8:	5b                   	pop    %ebx
5837b9:	c3                   	ret
5837ba:	8b 44 24 20          	mov    0x20(%esp),%eax
5837be:	5f                   	pop    %edi
5837bf:	89 46 3c             	mov    %eax,0x3c(%esi)
5837c2:	b8 01 00 00 00       	mov    $0x1,%eax
5837c7:	5e                   	pop    %esi
5837c8:	5d                   	pop    %ebp
5837c9:	5b                   	pop    %ebx
5837ca:	c3                   	ret
5837cb:	8b 44 24 20          	mov    0x20(%esp),%eax
5837cf:	8b 4e 3c             	mov    0x3c(%esi),%ecx
5837d2:	5f                   	pop    %edi
5837d3:	5e                   	pop    %esi
5837d4:	5d                   	pop    %ebp
5837d5:	89 08                	mov    %ecx,(%eax)
5837d7:	b8 01 00 00 00       	mov    $0x1,%eax
5837dc:	5b                   	pop    %ebx
5837dd:	c3                   	ret
5837de:	85 db                	test   %ebx,%ebx
5837e0:	74 64                	je     0x583846
5837e2:	83 3e 02             	cmpl   $0x2,(%esi)
5837e5:	75 15                	jne    0x5837fc
5837e7:	6a 06                	push   $0x6
5837e9:	6a 05                	push   $0x5
5837eb:	ff 76 28             	push   0x28(%esi)
5837ee:	56                   	push   %esi
5837ef:	57                   	push   %edi
5837f0:	e8 9b 02 00 00       	call   0x583a90
5837f5:	83 c4 14             	add    $0x14,%esp
5837f8:	85 c0                	test   %eax,%eax
5837fa:	74 4a                	je     0x583846
5837fc:	83 3e 05             	cmpl   $0x5,(%esi)
5837ff:	75 13                	jne    0x583814
583801:	6a 06                	push   $0x6
583803:	ff 76 2c             	push   0x2c(%esi)
583806:	56                   	push   %esi
583807:	57                   	push   %edi
583808:	e8 e3 01 00 00       	call   0x5839f0
58380d:	83 c4 10             	add    $0x10,%esp
583810:	85 c0                	test   %eax,%eax
583812:	7e 34                	jle    0x583848
583814:	83 3e 06             	cmpl   $0x6,(%esi)
583817:	75 17                	jne    0x583830
583819:	ff 74 24 20          	push   0x20(%esp)
58381d:	ff 74 24 20          	push   0x20(%esp)
583821:	55                   	push   %ebp
583822:	53                   	push   %ebx
583823:	e8 08 53 f7 ff       	call   0x4f8b30
583828:	83 c4 10             	add    $0x10,%esp
58382b:	5f                   	pop    %edi
58382c:	5e                   	pop    %esi
58382d:	5d                   	pop    %ebp
58382e:	5b                   	pop    %ebx
58382f:	c3                   	ret
583830:	6a 0f                	push   $0xf
583832:	57                   	push   %edi
583833:	e8 c8 52 f7 ff       	call   0x4f8b00
583838:	83 c4 08             	add    $0x8,%esp
58383b:	33 c0                	xor    %eax,%eax
58383d:	5f                   	pop    %edi
58383e:	5e                   	pop    %esi
58383f:	5d                   	pop    %ebp
583840:	5b                   	pop    %ebx
583841:	c3                   	ret
583842:	85 db                	test   %ebx,%ebx
583844:	75 d3                	jne    0x583819
583846:	33 c0                	xor    %eax,%eax
583848:	5f                   	pop    %edi
583849:	5e                   	pop    %esi
58384a:	5d                   	pop    %ebp
58384b:	5b                   	pop    %ebx
58384c:	c3                   	ret
58384d:	0f 1f 00             	nopl   (%eax)
583850:	de 37                	fidivs (%edi)
583852:	58                   	pop    %eax
583853:	00 56 37             	add    %dl,0x37(%esi)
583856:	58                   	pop    %eax
583857:	00 6f 37             	add    %ch,0x37(%edi)
58385a:	58                   	pop    %eax
58385b:	00 88 37 58 00 a1    	add    %cl,-0x5effa7c9(%eax)
583861:	37                   	aaa
583862:	58                   	pop    %eax
583863:	00 ba 37 58 00 cb    	add    %bh,-0x34ffa7c9(%edx)
583869:	37                   	aaa
58386a:	58                   	pop    %eax
58386b:	00 42 38             	add    %al,0x38(%edx)