4366b0:	8b 45 c0             	mov    -0x40(%ebp),%eax
4366b3:	80 38 00             	cmpb   $0x0,(%eax)
4366b6:	7e 4e                	jle    0x436706
4366b8:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
4366bb:	e8 9c 4e 00 00       	call   0x43b55c
4366c0:	83 7d d4 10          	cmpl   $0x10,-0x2c(%ebp)
4366c4:	8d 7d c0             	lea    -0x40(%ebp),%edi
4366c7:	0f b7 d8             	movzwl %ax,%ebx
4366ca:	72 03                	jb     0x4366cf
4366cc:	8b 7d c0             	mov    -0x40(%ebp),%edi
4366cf:	8b 75 34             	mov    0x34(%ebp),%esi
4366d2:	2b 75 84             	sub    -0x7c(%ebp),%esi
4366d5:	8a 07                	mov    (%edi),%al
4366d7:	3c 7f                	cmp    $0x7f,%al
4366d9:	74 25                	je     0x436700
4366db:	84 c0                	test   %al,%al
4366dd:	7e 21                	jle    0x436700
4366df:	0f be c0             	movsbl %al,%eax
4366e2:	3b c6                	cmp    %esi,%eax
4366e4:	73 1a                	jae    0x436700
4366e6:	53                   	push   %ebx
4366e7:	2b f0                	sub    %eax,%esi
4366e9:	8d 4d 24             	lea    0x24(%ebp),%ecx
4366ec:	6a 01                	push   $0x1
4366ee:	56                   	push   %esi
4366ef:	e8 63 4a 00 00       	call   0x43b157
4366f4:	8d 47 01             	lea    0x1(%edi),%eax
4366f7:	80 38 00             	cmpb   $0x0,(%eax)
4366fa:	7e d9                	jle    0x4366d5
4366fc:	8b f8                	mov    %eax,%edi
4366fe:	eb d5                	jmp    0x4366d5
436700:	8b 7d 80             	mov    -0x80(%ebp),%edi
436703:	8b 5d 84             	mov    -0x7c(%ebp),%ebx
436706:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
43670a:	33 c0                	xor    %eax,%eax
43670c:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
436713:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
436717:	80 7d 20 00          	cmpb   $0x0,0x20(%ebp)
43671b:	8b 45 8c             	mov    -0x74(%ebp),%eax
43671e:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
436722:	8b 00                	mov    (%eax),%eax
436724:	74 2a                	je     0x436750
436726:	8b 70 2c             	mov    0x2c(%eax),%esi
436729:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
43672f:	50                   	push   %eax
436730:	8b ce                	mov    %esi,%ecx
436732:	ff 15 54 43 49 00    	call   *0x494354
436738:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
43673b:	ff d6                	call   *%esi
43673d:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
436743:	89 45 84             	mov    %eax,-0x7c(%ebp)
436746:	8b 45 8c             	mov    -0x74(%ebp),%eax
436749:	8b 00                	mov    (%eax),%eax
43674b:	8b 70 20             	mov    0x20(%eax),%esi
43674e:	eb 28                	jmp    0x436778
436750:	8b 70 28             	mov    0x28(%eax),%esi
436753:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
436759:	50                   	push   %eax
43675a:	8b ce                	mov    %esi,%ecx
43675c:	ff 15 54 43 49 00    	call   *0x494354
436762:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
436765:	ff d6                	call   *%esi
436767:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
43676d:	89 45 84             	mov    %eax,-0x7c(%ebp)
436770:	8b 45 8c             	mov    -0x74(%ebp),%eax
436773:	8b 00                	mov    (%eax),%eax
436775:	8b 70 1c             	mov    0x1c(%eax),%esi
436778:	8d 45 90             	lea    -0x70(%ebp),%eax
43677b:	8b ce                	mov    %esi,%ecx
43677d:	50                   	push   %eax
43677e:	ff 15 54 43 49 00    	call   *0x494354
436784:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
436787:	ff d6                	call   *%esi
436789:	8d 45 90             	lea    -0x70(%ebp),%eax
43678c:	50                   	push   %eax
43678d:	8d 4d d8             	lea    -0x28(%ebp),%ecx
436790:	e8 b3 8f fd ff       	call   0x40f748
436795:	8d 4d 90             	lea    -0x70(%ebp),%ecx
436798:	e8 5d 6b fe ff       	call   0x41d2fa
43679d:	83 65 b8 00          	andl   $0x0,-0x48(%ebp)
4367a1:	33 c0                	xor    %eax,%eax
4367a3:	c7 45 bc 07 00 00 00 	movl   $0x7,-0x44(%ebp)
4367aa:	66 89 45 a8          	mov    %ax,-0x58(%ebp)
4367ae:	f6 47 14 08          	testb  $0x8,0x14(%edi)
4367b2:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
4367b6:	74 2d                	je     0x4367e5
4367b8:	8b 45 8c             	mov    -0x74(%ebp),%eax
4367bb:	8d 4d 90             	lea    -0x70(%ebp),%ecx
4367be:	51                   	push   %ecx
4367bf:	8b 00                	mov    (%eax),%eax
4367c1:	8b 70 18             	mov    0x18(%eax),%esi
4367c4:	8b ce                	mov    %esi,%ecx
4367c6:	ff 15 54 43 49 00    	call   *0x494354
4367cc:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
4367cf:	ff d6                	call   *%esi
4367d1:	8d 45 90             	lea    -0x70(%ebp),%eax
4367d4:	50                   	push   %eax
4367d5:	8d 4d a8             	lea    -0x58(%ebp),%ecx
4367d8:	e8 6b 8f fd ff       	call   0x40f748
4367dd:	8d 4d 90             	lea    -0x70(%ebp),%ecx
4367e0:	e8 15 6b fe ff       	call   0x41d2fa
4367e5:	32 d2                	xor    %dl,%dl
4367e7:	33 c9                	xor    %ecx,%ecx
4367e9:	88 55 8b             	mov    %dl,-0x75(%ebp)
4367ec:	33 f6                	xor    %esi,%esi
4367ee:	0f be 44 35 84       	movsbl -0x7c(%ebp,%esi,1),%eax
4367f3:	83 e8 20             	sub    $0x20,%eax
4367f6:	74 44                	je     0x43683c
4367f8:	83 e8 04             	sub    $0x4,%eax
4367fb:	74 3a                	je     0x436837
4367fd:	83 e8 07             	sub    $0x7,%eax
436800:	74 30                	je     0x436832
436802:	83 e8 4b             	sub    $0x4b,%eax
436805:	74 08                	je     0x43680f
436807:	48                   	dec    %eax
436808:	83 e8 01             	sub    $0x1,%eax
43680b:	74 30                	je     0x43683d
43680d:	eb 38                	jmp    0x436847
43680f:	39 5d 34             	cmp    %ebx,0x34(%ebp)
436812:	77 08                	ja     0x43681c
436814:	8b d3                	mov    %ebx,%edx
436816:	2b 55 34             	sub    0x34(%ebp),%edx
436819:	42                   	inc    %edx
43681a:	eb 02                	jmp    0x43681e
43681c:	33 d2                	xor    %edx,%edx
43681e:	33 c0                	xor    %eax,%eax
436820:	3b c3                	cmp    %ebx,%eax
436822:	1b c0                	sbb    %eax,%eax
436824:	f7 d8                	neg    %eax
436826:	03 45 34             	add    0x34(%ebp),%eax
436829:	03 c2                	add    %edx,%eax
43682b:	8a 55 8b             	mov    -0x75(%ebp),%dl
43682e:	03 c8                	add    %eax,%ecx
436830:	eb 15                	jmp    0x436847
436832:	03 4d e8             	add    -0x18(%ebp),%ecx
436835:	eb 10                	jmp    0x436847
436837:	03 4d b8             	add    -0x48(%ebp),%ecx
43683a:	eb 0b                	jmp    0x436847
43683c:	41                   	inc    %ecx
43683d:	83 fe 03             	cmp    $0x3,%esi
436840:	74 05                	je     0x436847
436842:	b2 01                	mov    $0x1,%dl
436844:	88 55 8b             	mov    %dl,-0x75(%ebp)
436847:	46                   	inc    %esi
436848:	83 fe 04             	cmp    $0x4,%esi
43684b:	72 a1                	jb     0x4367ee
43684d:	83 7f 24 00          	cmpl   $0x0,0x24(%edi)
436851:	7c 13                	jl     0x436866
436853:	7f 06                	jg     0x43685b
436855:	83 7f 20 00          	cmpl   $0x0,0x20(%edi)
436859:	76 0b                	jbe    0x436866
43685b:	8b 7f 20             	mov    0x20(%edi),%edi
43685e:	3b f9                	cmp    %ecx,%edi
436860:	76 04                	jbe    0x436866
436862:	2b f9                	sub    %ecx,%edi
436864:	eb 02                	jmp    0x436868
436866:	33 ff                	xor    %edi,%edi
436868:	8b 45 80             	mov    -0x80(%ebp),%eax
43686b:	8b 40 14             	mov    0x14(%eax),%eax
43686e:	25 c0 01 00 00       	and    $0x1c0,%eax
436873:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
436879:	83 f8 40             	cmp    $0x40,%eax
43687c:	74 36                	je     0x4368b4
43687e:	3d 00 01 00 00       	cmp    $0x100,%eax
436883:	75 04                	jne    0x436889
436885:	84 d2                	test   %dl,%dl
436887:	75 2b                	jne    0x4368b4
436889:	57                   	push   %edi
43688a:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
436890:	8d 85 74 ff ff ff    	lea    -0x8c(%ebp),%eax
436896:	ff 75 10             	push   0x10(%ebp)
436899:	ff 75 0c             	push   0xc(%ebp)
43689c:	50                   	push   %eax
43689d:	e8 b5 02 00 00       	call   0x436b57
4368a2:	83 c4 14             	add    $0x14,%esp
4368a5:	33 ff                	xor    %edi,%edi
4368a7:	8b 10                	mov    (%eax),%edx
4368a9:	89 55 0c             	mov    %edx,0xc(%ebp)
4368ac:	8b 70 04             	mov    0x4(%eax),%esi
4368af:	89 75 10             	mov    %esi,0x10(%ebp)
4368b2:	eb 06                	jmp    0x4368ba
4368b4:	8b 75 10             	mov    0x10(%ebp),%esi
4368b7:	8b 55 0c             	mov    0xc(%ebp),%edx
4368ba:	33 c0                	xor    %eax,%eax
4368bc:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
4368c2:	0f be 44 05 84       	movsbl -0x7c(%ebp,%eax,1),%eax
4368c7:	83 e8 20             	sub    $0x20,%eax
4368ca:	0f 84 6c 01 00 00    	je     0x436a3c
4368d0:	83 e8 04             	sub    $0x4,%eax
4368d3:	0f 84 48 01 00 00    	je     0x436a21
4368d9:	83 e8 07             	sub    $0x7,%eax
4368dc:	0f 84 1b 01 00 00    	je     0x4369fd
4368e2:	83 e8 4b             	sub    $0x4b,%eax
4368e5:	74 0f                	je     0x4368f6
4368e7:	48                   	dec    %eax
4368e8:	83 e8 01             	sub    $0x1,%eax
4368eb:	0f 84 6f 01 00 00    	je     0x436a60
4368f1:	e9 9b 01 00 00       	jmp    0x436a91
4368f6:	85 db                	test   %ebx,%ebx
4368f8:	75 26                	jne    0x436920
4368fa:	83 7d 38 08          	cmpl   $0x8,0x38(%ebp)
4368fe:	8d 45 24             	lea    0x24(%ebp),%eax
436901:	72 03                	jb     0x436906
436903:	8b 45 24             	mov    0x24(%ebp),%eax
436906:	ff 75 34             	push   0x34(%ebp)
436909:	50                   	push   %eax
43690a:	8d 85 54 ff ff ff    	lea    -0xac(%ebp),%eax
436910:	56                   	push   %esi
436911:	52                   	push   %edx
436912:	50                   	push   %eax
436913:	e8 aa f6 ff ff       	call   0x435fc2
436918:	83 c4 14             	add    $0x14,%esp
43691b:	e9 66 01 00 00       	jmp    0x436a86
436920:	39 5d 34             	cmp    %ebx,0x34(%ebp)
436923:	77 69                	ja     0x43698e
436925:	8b b5 68 ff ff ff    	mov    -0x98(%ebp),%esi
43692b:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43692e:	56                   	push   %esi
43692f:	e8 f7 95 ff ff       	call   0x42ff2b
436934:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
436937:	e8 35 07 00 00       	call   0x437071
43693c:	0f b7 c0             	movzwl %ax,%eax
43693f:	8d 4d 0c             	lea    0xc(%ebp),%ecx
436942:	50                   	push   %eax
436943:	e8 e3 95 ff ff       	call   0x42ff2b
436948:	8b c3                	mov    %ebx,%eax
43694a:	2b 45 34             	sub    0x34(%ebp),%eax
43694d:	50                   	push   %eax
43694e:	56                   	push   %esi
43694f:	ff 75 10             	push   0x10(%ebp)
436952:	8d 85 4c ff ff ff    	lea    -0xb4(%ebp),%eax
436958:	ff 75 0c             	push   0xc(%ebp)
43695b:	50                   	push   %eax
43695c:	e8 f6 01 00 00       	call   0x436b57
436961:	8b c8                	mov    %eax,%ecx
436963:	83 c4 14             	add    $0x14,%esp
436966:	83 7d 38 08          	cmpl   $0x8,0x38(%ebp)
43696a:	8b 01                	mov    (%ecx),%eax
43696c:	89 45 0c             	mov    %eax,0xc(%ebp)
43696f:	8b 41 04             	mov    0x4(%ecx),%eax
436972:	89 45 10             	mov    %eax,0x10(%ebp)
436975:	8d 45 24             	lea    0x24(%ebp),%eax
436978:	72 03                	jb     0x43697d
43697a:	8b 45 24             	mov    0x24(%ebp),%eax
43697d:	ff 75 34             	push   0x34(%ebp)
436980:	50                   	push   %eax
436981:	ff 71 04             	push   0x4(%ecx)
436984:	8d 85 44 ff ff ff    	lea    -0xbc(%ebp),%eax
43698a:	ff 31                	push   (%ecx)
43698c:	eb 84                	jmp    0x436912
43698e:	83 7d 38 08          	cmpl   $0x8,0x38(%ebp)
436992:	8d 4d 24             	lea    0x24(%ebp),%ecx
436995:	72 03                	jb     0x43699a
436997:	8b 4d 24             	mov    0x24(%ebp),%ecx
43699a:	8b 45 34             	mov    0x34(%ebp),%eax
43699d:	2b c3                	sub    %ebx,%eax
43699f:	50                   	push   %eax
4369a0:	51                   	push   %ecx
4369a1:	56                   	push   %esi
4369a2:	52                   	push   %edx
4369a3:	8d 85 3c ff ff ff    	lea    -0xc4(%ebp),%eax
4369a9:	50                   	push   %eax
4369aa:	e8 13 f6 ff ff       	call   0x435fc2
4369af:	8b c8                	mov    %eax,%ecx
4369b1:	83 c4 14             	add    $0x14,%esp
4369b4:	8b 01                	mov    (%ecx),%eax
4369b6:	89 45 0c             	mov    %eax,0xc(%ebp)
4369b9:	8b 41 04             	mov    0x4(%ecx),%eax
4369bc:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
4369bf:	89 45 10             	mov    %eax,0x10(%ebp)
4369c2:	e8 aa 06 00 00       	call   0x437071
4369c7:	0f b7 c0             	movzwl %ax,%eax
4369ca:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4369cd:	50                   	push   %eax
4369ce:	e8 58 95 ff ff       	call   0x42ff2b
4369d3:	83 7d 38 08          	cmpl   $0x8,0x38(%ebp)
4369d7:	8d 4d 24             	lea    0x24(%ebp),%ecx
4369da:	72 03                	jb     0x4369df
4369dc:	8b 4d 24             	mov    0x24(%ebp),%ecx
4369df:	8b 45 34             	mov    0x34(%ebp),%eax
4369e2:	53                   	push   %ebx
4369e3:	8d 04 41             	lea    (%ecx,%eax,2),%eax
4369e6:	8d 0c 1b             	lea    (%ebx,%ebx,1),%ecx
4369e9:	2b c1                	sub    %ecx,%eax
4369eb:	50                   	push   %eax
4369ec:	ff 75 10             	push   0x10(%ebp)
4369ef:	8d 85 34 ff ff ff    	lea    -0xcc(%ebp),%eax
4369f5:	ff 75 0c             	push   0xc(%ebp)
4369f8:	e9 15 ff ff ff       	jmp    0x436912
4369fd:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
436a01:	0f 86 8a 00 00 00    	jbe    0x436a91
436a07:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
436a0b:	8d 45 d8             	lea    -0x28(%ebp),%eax
436a0e:	72 03                	jb     0x436a13
436a10:	8b 45 d8             	mov    -0x28(%ebp),%eax
436a13:	6a 01                	push   $0x1
436a15:	50                   	push   %eax
436a16:	8d 85 2c ff ff ff    	lea    -0xd4(%ebp),%eax
436a1c:	e9 ef fe ff ff       	jmp    0x436910
436a21:	83 7d bc 08          	cmpl   $0x8,-0x44(%ebp)
436a25:	8d 45 a8             	lea    -0x58(%ebp),%eax
436a28:	72 03                	jb     0x436a2d
436a2a:	8b 45 a8             	mov    -0x58(%ebp),%eax
436a2d:	ff 75 b8             	push   -0x48(%ebp)
436a30:	50                   	push   %eax
436a31:	8d 85 24 ff ff ff    	lea    -0xdc(%ebp),%eax
436a37:	e9 d4 fe ff ff       	jmp    0x436910
436a3c:	6a 01                	push   $0x1
436a3e:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
436a44:	8d 85 1c ff ff ff    	lea    -0xe4(%ebp),%eax
436a4a:	56                   	push   %esi
436a4b:	52                   	push   %edx
436a4c:	50                   	push   %eax
436a4d:	e8 05 01 00 00       	call   0x436b57
436a52:	83 c4 14             	add    $0x14,%esp
436a55:	8b 10                	mov    (%eax),%edx
436a57:	89 55 0c             	mov    %edx,0xc(%ebp)
436a5a:	8b 70 04             	mov    0x4(%eax),%esi
436a5d:	89 75 10             	mov    %esi,0x10(%ebp)
436a60:	81 bd 70 ff ff ff 00 	cmpl   $0x100,-0x90(%ebp)
436a67:	01 00 00
436a6a:	75 25                	jne    0x436a91
436a6c:	57                   	push   %edi
436a6d:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
436a73:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
436a79:	56                   	push   %esi
436a7a:	52                   	push   %edx
436a7b:	50                   	push   %eax
436a7c:	e8 d6 00 00 00       	call   0x436b57
436a81:	83 c4 14             	add    $0x14,%esp
436a84:	33 ff                	xor    %edi,%edi
436a86:	8b 10                	mov    (%eax),%edx
436a88:	89 55 0c             	mov    %edx,0xc(%ebp)
436a8b:	8b 70 04             	mov    0x4(%eax),%esi
436a8e:	89 75 10             	mov    %esi,0x10(%ebp)
436a91:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
436a97:	40                   	inc    %eax
436a98:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
436a9e:	83 f8 04             	cmp    $0x4,%eax
436aa1:	0f 82 1b fe ff ff    	jb     0x4368c2
436aa7:	83 7d e8 01          	cmpl   $0x1,-0x18(%ebp)
436aab:	76 31                	jbe    0x436ade
436aad:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
436ab1:	8d 4d d8             	lea    -0x28(%ebp),%ecx
436ab4:	72 03                	jb     0x436ab9
436ab6:	8b 4d d8             	mov    -0x28(%ebp),%ecx
436ab9:	8b 45 e8             	mov    -0x18(%ebp),%eax
436abc:	83 c1 02             	add    $0x2,%ecx
436abf:	48                   	dec    %eax
436ac0:	50                   	push   %eax