43662e:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
436631:	33 c0                	xor    %eax,%eax
436633:	40                   	inc    %eax
436634:	d3 e0                	shl    %cl,%eax
436636:	89 45 c8             	mov    %eax,-0x38(%ebp)
436639:	8b 44 95 f0          	mov    -0x10(%ebp,%edx,4),%eax
43663d:	8b 4d c8             	mov    -0x38(%ebp),%ecx
436640:	03 c8                	add    %eax,%ecx
436642:	89 4d d8             	mov    %ecx,-0x28(%ebp)
436645:	3b c8                	cmp    %eax,%ecx
436647:	8b 45 d8             	mov    -0x28(%ebp),%eax
43664a:	8b cb                	mov    %ebx,%ecx
43664c:	6a ff                	push   $0xffffffff
43664e:	5f                   	pop    %edi
43664f:	72 05                	jb     0x436656
436651:	3b 45 c8             	cmp    -0x38(%ebp),%eax
436654:	73 06                	jae    0x43665c
436656:	33 c9                	xor    %ecx,%ecx
436658:	41                   	inc    %ecx
436659:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
43665c:	89 44 95 f0          	mov    %eax,-0x10(%ebp,%edx,4)
436660:	4a                   	dec    %edx
436661:	78 2e                	js     0x436691
436663:	85 c9                	test   %ecx,%ecx
436665:	74 27                	je     0x43668e
436667:	8b 44 95 f0          	mov    -0x10(%ebp,%edx,4),%eax
43666b:	8b cb                	mov    %ebx,%ecx
43666d:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
436670:	8d 78 01             	lea    0x1(%eax),%edi
436673:	3b f8                	cmp    %eax,%edi
436675:	89 7d d8             	mov    %edi,-0x28(%ebp)
436678:	8b c7                	mov    %edi,%eax
43667a:	72 05                	jb     0x436681
43667c:	83 f8 01             	cmp    $0x1,%eax
43667f:	73 06                	jae    0x436687
436681:	33 c9                	xor    %ecx,%ecx
436683:	41                   	inc    %ecx
436684:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
436687:	89 44 95 f0          	mov    %eax,-0x10(%ebp,%edx,4)
43668b:	4a                   	dec    %edx
43668c:	79 d5                	jns    0x436663
43668e:	83 cf ff             	or     $0xffffffff,%edi
436691:	8b 4d d0             	mov    -0x30(%ebp),%ecx
436694:	8b 55 c4             	mov    -0x3c(%ebp),%edx
436697:	8b c7                	mov    %edi,%eax
436699:	d3 e0                	shl    %cl,%eax
43669b:	21 44 95 f0          	and    %eax,-0x10(%ebp,%edx,4)
43669f:	8d 42 01             	lea    0x1(%edx),%eax
4366a2:	3b c6                	cmp    %esi,%eax
4366a4:	7d 11                	jge    0x4366b7
4366a6:	8d 7d f0             	lea    -0x10(%ebp),%edi
4366a9:	8b ce                	mov    %esi,%ecx
4366ab:	8d 3c 87             	lea    (%edi,%eax,4),%edi
4366ae:	2b c8                	sub    %eax,%ecx
4366b0:	33 c0                	xor    %eax,%eax
4366b2:	f3 ab                	rep stos %eax,%es:(%edi)
4366b4:	83 cf ff             	or     $0xffffffff,%edi
4366b7:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4366ba:	39 5d d4             	cmp    %ebx,-0x2c(%ebp)
4366bd:	74 01                	je     0x4366c0
4366bf:	41                   	inc    %ecx
4366c0:	8b 15 14 01 4c 00    	mov    0x4c0114,%edx
4366c6:	8b c2                	mov    %edx,%eax
4366c8:	2b 05 18 01 4c 00    	sub    0x4c0118,%eax
4366ce:	3b c8                	cmp    %eax,%ecx
4366d0:	7d 0f                	jge    0x4366e1
4366d2:	33 c0                	xor    %eax,%eax
4366d4:	8d 7d f0             	lea    -0x10(%ebp),%edi
4366d7:	ab                   	stos   %eax,%es:(%edi)
4366d8:	ab                   	stos   %eax,%es:(%edi)
4366d9:	ab                   	stos   %eax,%es:(%edi)
4366da:	8b f3                	mov    %ebx,%esi
4366dc:	e9 b6 fe ff ff       	jmp    0x436597
4366e1:	3b ca                	cmp    %edx,%ecx
4366e3:	0f 8f 19 02 00 00    	jg     0x436902
4366e9:	2b 55 dc             	sub    -0x24(%ebp),%edx
4366ec:	8d 75 e4             	lea    -0x1c(%ebp),%esi
4366ef:	89 55 d0             	mov    %edx,-0x30(%ebp)
4366f2:	8d 7d f0             	lea    -0x10(%ebp),%edi
4366f5:	8b c2                	mov    %edx,%eax
4366f7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4366f8:	99                   	cltd
4366f9:	83 e2 1f             	and    $0x1f,%edx
4366fc:	03 c2                	add    %edx,%eax
4366fe:	c1 f8 05             	sar    $0x5,%eax
436701:	a5                   	movsl  %ds:(%esi),%es:(%edi)
436702:	89 45 c4             	mov    %eax,-0x3c(%ebp)
436705:	8b 45 d0             	mov    -0x30(%ebp),%eax
436708:	a5                   	movsl  %ds:(%esi),%es:(%edi)
436709:	25 1f 00 00 80       	and    $0x8000001f,%eax
43670e:	79 05                	jns    0x436715
436710:	48                   	dec    %eax
436711:	83 c8 e0             	or     $0xffffffe0,%eax
436714:	40                   	inc    %eax
436715:	89 45 d0             	mov    %eax,-0x30(%ebp)
436718:	83 cf ff             	or     $0xffffffff,%edi
43671b:	8b c7                	mov    %edi,%eax
43671d:	89 5d e0             	mov    %ebx,-0x20(%ebp)
436720:	8b 7d d0             	mov    -0x30(%ebp),%edi
436723:	8b cf                	mov    %edi,%ecx
436725:	d3 e0                	shl    %cl,%eax
436727:	f7 d0                	not    %eax
436729:	6a 20                	push   $0x20
43672b:	89 45 d8             	mov    %eax,-0x28(%ebp)
43672e:	58                   	pop    %eax
43672f:	2b c7                	sub    %edi,%eax
436731:	6a 03                	push   $0x3
436733:	89 45 c8             	mov    %eax,-0x38(%ebp)
436736:	5e                   	pop    %esi
436737:	8b 54 9d f0          	mov    -0x10(%ebp,%ebx,4),%edx
43673b:	8b cf                	mov    %edi,%ecx
43673d:	8b c2                	mov    %edx,%eax
43673f:	d3 ea                	shr    %cl,%edx
436741:	0b 55 e0             	or     -0x20(%ebp),%edx
436744:	23 45 d8             	and    -0x28(%ebp),%eax
436747:	8b 4d c8             	mov    -0x38(%ebp),%ecx
43674a:	d3 e0                	shl    %cl,%eax
43674c:	89 54 9d f0          	mov    %edx,-0x10(%ebp,%ebx,4)
436750:	43                   	inc    %ebx
436751:	89 45 e0             	mov    %eax,-0x20(%ebp)
436754:	3b de                	cmp    %esi,%ebx
436756:	7c df                	jl     0x436737
436758:	8b 45 c4             	mov    -0x3c(%ebp),%eax
43675b:	8d 55 f8             	lea    -0x8(%ebp),%edx
43675e:	c1 e0 02             	shl    $0x2,%eax
436761:	33 db                	xor    %ebx,%ebx
436763:	6a 02                	push   $0x2
436765:	2b d0                	sub    %eax,%edx
436767:	83 cf ff             	or     $0xffffffff,%edi
43676a:	8b 45 c4             	mov    -0x3c(%ebp),%eax
43676d:	59                   	pop    %ecx
43676e:	3b c8                	cmp    %eax,%ecx
436770:	7c 0b                	jl     0x43677d
436772:	8b 02                	mov    (%edx),%eax
436774:	89 44 8d f0          	mov    %eax,-0x10(%ebp,%ecx,4)
436778:	8b 45 c4             	mov    -0x3c(%ebp),%eax
43677b:	eb 04                	jmp    0x436781
43677d:	89 5c 8d f0          	mov    %ebx,-0x10(%ebp,%ecx,4)
436781:	83 ea 04             	sub    $0x4,%edx
436784:	49                   	dec    %ecx
436785:	79 e7                	jns    0x43676e
436787:	8b 4d cc             	mov    -0x34(%ebp),%ecx
43678a:	41                   	inc    %ecx
43678b:	8b c1                	mov    %ecx,%eax
43678d:	99                   	cltd
43678e:	83 e2 1f             	and    $0x1f,%edx
436791:	03 d0                	add    %eax,%edx
436793:	c1 fa 05             	sar    $0x5,%edx
436796:	89 55 d4             	mov    %edx,-0x2c(%ebp)
436799:	81 e1 1f 00 00 80    	and    $0x8000001f,%ecx
43679f:	79 05                	jns    0x4367a6
4367a1:	49                   	dec    %ecx
4367a2:	83 c9 e0             	or     $0xffffffe0,%ecx
4367a5:	41                   	inc    %ecx
4367a6:	6a 1f                	push   $0x1f
4367a8:	58                   	pop    %eax
4367a9:	2b c1                	sub    %ecx,%eax
4367ab:	89 45 d0             	mov    %eax,-0x30(%ebp)
4367ae:	33 c0                	xor    %eax,%eax
4367b0:	8b 4d d0             	mov    -0x30(%ebp),%ecx
4367b3:	40                   	inc    %eax
4367b4:	d3 e0                	shl    %cl,%eax
4367b6:	85 44 95 f0          	test   %eax,-0x10(%ebp,%edx,4)
4367ba:	0f 84 92 00 00 00    	je     0x436852
4367c0:	8b c7                	mov    %edi,%eax
4367c2:	d3 e0                	shl    %cl,%eax
4367c4:	f7 d0                	not    %eax
4367c6:	85 44 95 f0          	test   %eax,-0x10(%ebp,%edx,4)
4367ca:	eb 04                	jmp    0x4367d0
4367cc:	39 5c 95 f0          	cmp    %ebx,-0x10(%ebp,%edx,4)
4367d0:	75 07                	jne    0x4367d9
4367d2:	42                   	inc    %edx
4367d3:	3b d6                	cmp    %esi,%edx
4367d5:	7c f5                	jl     0x4367cc
4367d7:	eb 76                	jmp    0x43684f
4367d9:	8b 7d cc             	mov    -0x34(%ebp),%edi
4367dc:	8b c7                	mov    %edi,%eax
4367de:	6a 1f                	push   $0x1f
4367e0:	99                   	cltd
4367e1:	59                   	pop    %ecx
4367e2:	23 d1                	and    %ecx,%edx
4367e4:	03 d0                	add    %eax,%edx
4367e6:	c1 fa 05             	sar    $0x5,%edx
4367e9:	81 e7 1f 00 00 80    	and    $0x8000001f,%edi
4367ef:	79 05                	jns    0x4367f6
4367f1:	4f                   	dec    %edi
4367f2:	83 cf e0             	or     $0xffffffe0,%edi
4367f5:	47                   	inc    %edi
4367f6:	8b 44 95 f0          	mov    -0x10(%ebp,%edx,4),%eax
4367fa:	2b cf                	sub    %edi,%ecx
4367fc:	33 ff                	xor    %edi,%edi
4367fe:	47                   	inc    %edi
4367ff:	d3 e7                	shl    %cl,%edi
436801:	8b cb                	mov    %ebx,%ecx
436803:	89 7d dc             	mov    %edi,-0x24(%ebp)
436806:	03 f8                	add    %eax,%edi
436808:	89 7d e0             	mov    %edi,-0x20(%ebp)
43680b:	3b f8                	cmp    %eax,%edi
43680d:	8b 45 e0             	mov    -0x20(%ebp),%eax
436810:	6a ff                	push   $0xffffffff
436812:	5f                   	pop    %edi
436813:	72 05                	jb     0x43681a
436815:	3b 45 dc             	cmp    -0x24(%ebp),%eax
436818:	73 03                	jae    0x43681d
43681a:	33 c9                	xor    %ecx,%ecx
43681c:	41                   	inc    %ecx
43681d:	89 44 95 f0          	mov    %eax,-0x10(%ebp,%edx,4)
436821:	4a                   	dec    %edx
436822:	78 28                	js     0x43684c
436824:	85 c9                	test   %ecx,%ecx
436826:	74 21                	je     0x436849
436828:	8b 44 95 f0          	mov    -0x10(%ebp,%edx,4),%eax
43682c:	8b cb                	mov    %ebx,%ecx
43682e:	8d 78 01             	lea    0x1(%eax),%edi
436831:	3b f8                	cmp    %eax,%edi
436833:	89 7d e0             	mov    %edi,-0x20(%ebp)
436836:	8b c7                	mov    %edi,%eax
436838:	72 05                	jb     0x43683f
43683a:	83 f8 01             	cmp    $0x1,%eax
43683d:	73 03                	jae    0x436842
43683f:	33 c9                	xor    %ecx,%ecx
436841:	41                   	inc    %ecx
436842:	89 44 95 f0          	mov    %eax,-0x10(%ebp,%edx,4)
436846:	4a                   	dec    %edx
436847:	79 db                	jns    0x436824
436849:	83 cf ff             	or     $0xffffffff,%edi
43684c:	8b 4d d0             	mov    -0x30(%ebp),%ecx
43684f:	8b 55 d4             	mov    -0x2c(%ebp),%edx
436852:	8b c7                	mov    %edi,%eax
436854:	d3 e0                	shl    %cl,%eax
436856:	21 44 95 f0          	and    %eax,-0x10(%ebp,%edx,4)
43685a:	42                   	inc    %edx
43685b:	3b d6                	cmp    %esi,%edx
43685d:	7d 11                	jge    0x436870
43685f:	8d 7d f0             	lea    -0x10(%ebp),%edi
436862:	8b ce                	mov    %esi,%ecx
436864:	8d 3c 97             	lea    (%edi,%edx,4),%edi
436867:	2b ca                	sub    %edx,%ecx
436869:	33 c0                	xor    %eax,%eax
43686b:	f3 ab                	rep stos %eax,%es:(%edi)
43686d:	83 cf ff             	or     $0xffffffff,%edi
436870:	8b 0d 1c 01 4c 00    	mov    0x4c011c,%ecx
436876:	41                   	inc    %ecx
436877:	8b c1                	mov    %ecx,%eax
436879:	99                   	cltd
43687a:	83 e2 1f             	and    $0x1f,%edx
43687d:	03 c2                	add    %edx,%eax
43687f:	c1 f8 05             	sar    $0x5,%eax
436882:	89 45 d8             	mov    %eax,-0x28(%ebp)
436885:	81 e1 1f 00 00 80    	and    $0x8000001f,%ecx
43688b:	79 05                	jns    0x436892
43688d:	49                   	dec    %ecx
43688e:	83 c9 e0             	or     $0xffffffe0,%ecx
436891:	41                   	inc    %ecx
436892:	89 4d dc             	mov    %ecx,-0x24(%ebp)
436895:	8b c3                	mov    %ebx,%eax
436897:	d3 e7                	shl    %cl,%edi
436899:	6a 20                	push   $0x20
43689b:	89 5d e0             	mov    %ebx,-0x20(%ebp)
43689e:	f7 d7                	not    %edi
4368a0:	8b 5d dc             	mov    -0x24(%ebp),%ebx
4368a3:	59                   	pop    %ecx
4368a4:	2b cb                	sub    %ebx,%ecx
4368a6:	89 45 cc             	mov    %eax,-0x34(%ebp)
4368a9:	89 4d dc             	mov    %ecx,-0x24(%ebp)
4368ac:	8b 54 85 f0          	mov    -0x10(%ebp,%eax,4),%edx
4368b0:	8b cb                	mov    %ebx,%ecx
4368b2:	8b c2                	mov    %edx,%eax
4368b4:	d3 ea                	shr    %cl,%edx
4368b6:	8b 4d cc             	mov    -0x34(%ebp),%ecx
4368b9:	23 c7                	and    %edi,%eax
4368bb:	0b 55 e0             	or     -0x20(%ebp),%edx
4368be:	89 54 8d f0          	mov    %edx,-0x10(%ebp,%ecx,4)
4368c2:	8b 4d dc             	mov    -0x24(%ebp),%ecx
4368c5:	d3 e0                	shl    %cl,%eax
4368c7:	89 45 e0             	mov    %eax,-0x20(%ebp)
4368ca:	8b 45 cc             	mov    -0x34(%ebp),%eax
4368cd:	40                   	inc    %eax
4368ce:	89 45 cc             	mov    %eax,-0x34(%ebp)
4368d1:	3b c6                	cmp    %esi,%eax
4368d3:	7c d7                	jl     0x4368ac
4368d5:	8b 75 d8             	mov    -0x28(%ebp),%esi
4368d8:	8d 55 f8             	lea    -0x8(%ebp),%edx
4368db:	8b c6                	mov    %esi,%eax
4368dd:	c1 e0 02             	shl    $0x2,%eax
4368e0:	6a 02                	push   $0x2
4368e2:	2b d0                	sub    %eax,%edx
4368e4:	33 db                	xor    %ebx,%ebx
4368e6:	59                   	pop    %ecx
4368e7:	3b ce                	cmp    %esi,%ecx
4368e9:	7c 08                	jl     0x4368f3
4368eb:	8b 02                	mov    (%edx),%eax
4368ed:	89 44 8d f0          	mov    %eax,-0x10(%ebp,%ecx,4)
4368f1:	eb 04                	jmp    0x4368f7
4368f3:	89 5c 8d f0          	mov    %ebx,-0x10(%ebp,%ecx,4)
4368f7:	83 ea 04             	sub    $0x4,%edx
4368fa:	49                   	dec    %ecx
4368fb:	79 ea                	jns    0x4368e7
4368fd:	e9 d8 fd ff ff       	jmp    0x4366da
436902:	3b 0d 10 01 4c 00    	cmp    0x4c0110,%ecx
436908:	0f 8c a2 00 00 00    	jl     0x4369b0
43690e:	8b 0d 1c 01 4c 00    	mov    0x4c011c,%ecx
436914:	8d 7d f0             	lea    -0x10(%ebp),%edi
436917:	33 c0                	xor    %eax,%eax
436919:	ab                   	stos   %eax,%es:(%edi)
43691a:	ab                   	stos   %eax,%es:(%edi)
43691b:	ab                   	stos   %eax,%es:(%edi)
43691c:	8b c1                	mov    %ecx,%eax
43691e:	81 4d f0 00 00 00 80 	orl    $0x80000000,-0x10(%ebp)
436925:	99                   	cltd
436926:	83 e2 1f             	and    $0x1f,%edx
436929:	03 c2                	add    %edx,%eax
43692b:	c1 f8 05             	sar    $0x5,%eax
43692e:	89 45 cc             	mov    %eax,-0x34(%ebp)
436931:	81 e1 1f 00 00 80    	and    $0x8000001f,%ecx
436937:	79 05                	jns    0x43693e
436939:	49                   	dec    %ecx
43693a:	83 c9 e0             	or     $0xffffffe0,%ecx
43693d:	41                   	inc    %ecx
43693e:	83 cf ff             	or     $0xffffffff,%edi
436941:	89 4d c8             	mov    %ecx,-0x38(%ebp)
436944:	6a 20                	push   $0x20
436946:	d3 e7                	shl    %cl,%edi
436948:	58                   	pop    %eax
436949:	2b c1                	sub    %ecx,%eax
43694b:	89 5d e0             	mov    %ebx,-0x20(%ebp)
43694e:	f7 d7                	not    %edi
436950:	89 45 d8             	mov    %eax,-0x28(%ebp)
436953:	8b 54 9d f0          	mov    -0x10(%ebp,%ebx,4),%edx
436957:	8b c2                	mov    %edx,%eax
436959:	d3 ea                	shr    %cl,%edx
43695b:	23 c7                	and    %edi,%eax
43695d:	0b 55 e0             	or     -0x20(%ebp),%edx
436960:	8b 4d d8             	mov    -0x28(%ebp),%ecx
436963:	d3 e0                	shl    %cl,%eax
436965:	8b 4d c8             	mov    -0x38(%ebp),%ecx
436968:	89 54 9d f0          	mov    %edx,-0x10(%ebp,%ebx,4)
43696c:	43                   	inc    %ebx
43696d:	89 45 e0             	mov    %eax,-0x20(%ebp)
436970:	3b de                	cmp    %esi,%ebx
436972:	7c df                	jl     0x436953
436974:	8b 75 cc             	mov    -0x34(%ebp),%esi
436977:	8d 55 f8             	lea    -0x8(%ebp),%edx
43697a:	8b c6                	mov    %esi,%eax
43697c:	c1 e0 02             	shl    $0x2,%eax
43697f:	6a 02                	push   $0x2
436981:	2b d0                	sub    %eax,%edx
436983:	33 db                	xor    %ebx,%ebx
436985:	59                   	pop    %ecx
436986:	3b ce                	cmp    %esi,%ecx