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
436ac1:	51                   	push   %ecx
436ac2:	56                   	push   %esi
436ac3:	52                   	push   %edx
436ac4:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
436aca:	50                   	push   %eax
436acb:	e8 f2 f4 ff ff       	call   0x435fc2
436ad0:	83 c4 14             	add    $0x14,%esp
436ad3:	8b 10                	mov    (%eax),%edx
436ad5:	89 55 0c             	mov    %edx,0xc(%ebp)
436ad8:	8b 70 04             	mov    0x4(%eax),%esi
436adb:	89 75 10             	mov    %esi,0x10(%ebp)
436ade:	8b 45 80             	mov    -0x80(%ebp),%eax
436ae1:	57                   	push   %edi
436ae2:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
436ae8:	83 60 20 00          	andl   $0x0,0x20(%eax)
436aec:	83 60 24 00          	andl   $0x0,0x24(%eax)
436af0:	56                   	push   %esi
436af1:	8b b5 64 ff ff ff    	mov    -0x9c(%ebp),%esi
436af7:	52                   	push   %edx
436af8:	56                   	push   %esi
436af9:	e8 59 00 00 00       	call   0x436b57
436afe:	83 c4 14             	add    $0x14,%esp
436b01:	8d 4d a8             	lea    -0x58(%ebp),%ecx
436b04:	e8 f1 67 fe ff       	call   0x41d2fa
436b09:	8d 4d d8             	lea    -0x28(%ebp),%ecx
436b0c:	e8 e9 67 fe ff       	call   0x41d2fa
436b11:	8d 4d c0             	lea    -0x40(%ebp),%ecx
436b14:	e8 bb 67 fe ff       	call   0x41d2d4
436b19:	8d 4d 24             	lea    0x24(%ebp),%ecx
436b1c:	e8 d9 67 fe ff       	call   0x41d2fa
436b21:	8b c6                	mov    %esi,%eax
436b23:	e8 00 8f 00 00       	call   0x43fa28
436b28:	c2 38 00             	ret    $0x38
436b2b:	55                   	push   %ebp
436b2c:	8b ec                	mov    %esp,%ebp
436b2e:	56                   	push   %esi
436b2f:	8b 75 18             	mov    0x18(%ebp),%esi
436b32:	85 f6                	test   %esi,%esi
436b34:	74 10                	je     0x436b46
436b36:	ff 75 14             	push   0x14(%ebp)
436b39:	8d 4d 0c             	lea    0xc(%ebp),%ecx
436b3c:	e8 c1 93 ff ff       	call   0x42ff02
436b41:	83 ee 01             	sub    $0x1,%esi
436b44:	75 f0                	jne    0x436b36
436b46:	8b 45 08             	mov    0x8(%ebp),%eax
436b49:	8b 4d 0c             	mov    0xc(%ebp),%ecx
436b4c:	5e                   	pop    %esi
436b4d:	89 08                	mov    %ecx,(%eax)
436b4f:	8b 4d 10             	mov    0x10(%ebp),%ecx
436b52:	89 48 04             	mov    %ecx,0x4(%eax)
436b55:	5d                   	pop    %ebp
436b56:	c3                   	ret
436b57:	55                   	push   %ebp
436b58:	8b ec                	mov    %esp,%ebp
436b5a:	56                   	push   %esi
436b5b:	8b 75 18             	mov    0x18(%ebp),%esi
436b5e:	85 f6                	test   %esi,%esi
436b60:	74 10                	je     0x436b72
436b62:	ff 75 14             	push   0x14(%ebp)
436b65:	8d 4d 0c             	lea    0xc(%ebp),%ecx
436b68:	e8 be 93 ff ff       	call   0x42ff2b
436b6d:	83 ee 01             	sub    $0x1,%esi
436b70:	75 f0                	jne    0x436b62
436b72:	8b 45 08             	mov    0x8(%ebp),%eax
436b75:	8b 4d 0c             	mov    0xc(%ebp),%ecx
436b78:	5e                   	pop    %esi
436b79:	89 08                	mov    %ecx,(%eax)
436b7b:	8b 4d 10             	mov    0x10(%ebp),%ecx
436b7e:	89 48 04             	mov    %ecx,0x4(%eax)
436b81:	5d                   	pop    %ebp
436b82:	c3                   	ret
436b83:	55                   	push   %ebp
436b84:	8b ec                	mov    %esp,%ebp
436b86:	56                   	push   %esi
436b87:	8b 75 1c             	mov    0x1c(%ebp),%esi
436b8a:	85 f6                	test   %esi,%esi
436b8c:	74 10                	je     0x436b9e
436b8e:	ff 75 18             	push   0x18(%ebp)
436b91:	8d 4d 10             	lea    0x10(%ebp),%ecx
436b94:	e8 69 93 ff ff       	call   0x42ff02
436b99:	83 ee 01             	sub    $0x1,%esi
436b9c:	75 f0                	jne    0x436b8e
436b9e:	8b 45 0c             	mov    0xc(%ebp),%eax
436ba1:	8b 4d 10             	mov    0x10(%ebp),%ecx
436ba4:	5e                   	pop    %esi
436ba5:	89 08                	mov    %ecx,(%eax)
436ba7:	8b 4d 14             	mov    0x14(%ebp),%ecx
436baa:	89 48 04             	mov    %ecx,0x4(%eax)
436bad:	5d                   	pop    %ebp
436bae:	c3                   	ret
436baf:	55                   	push   %ebp
436bb0:	8b ec                	mov    %esp,%ebp
436bb2:	56                   	push   %esi
436bb3:	8b 75 1c             	mov    0x1c(%ebp),%esi
436bb6:	85 f6                	test   %esi,%esi
436bb8:	74 10                	je     0x436bca
436bba:	ff 75 18             	push   0x18(%ebp)
436bbd:	8d 4d 10             	lea    0x10(%ebp),%ecx
436bc0:	e8 66 93 ff ff       	call   0x42ff2b
436bc5:	83 ee 01             	sub    $0x1,%esi
436bc8:	75 f0                	jne    0x436bba
436bca:	8b 45 0c             	mov    0xc(%ebp),%eax
436bcd:	8b 4d 10             	mov    0x10(%ebp),%ecx
436bd0:	5e                   	pop    %esi
436bd1:	89 08                	mov    %ecx,(%eax)
436bd3:	8b 4d 14             	mov    0x14(%ebp),%ecx
436bd6:	89 48 04             	mov    %ecx,0x4(%eax)
436bd9:	5d                   	pop    %ebp
436bda:	c3                   	ret
436bdb:	56                   	push   %esi
436bdc:	8b f1                	mov    %ecx,%esi
436bde:	ff 76 08             	push   0x8(%esi)
436be1:	e8 a8 61 01 00       	call   0x44cd8e
436be6:	ff 76 10             	push   0x10(%esi)
436be9:	e8 a0 61 01 00       	call   0x44cd8e
436bee:	ff 76 14             	push   0x14(%esi)
436bf1:	e8 98 61 01 00       	call   0x44cd8e
436bf6:	ff 76 18             	push   0x18(%esi)
436bf9:	e8 90 61 01 00       	call   0x44cd8e
436bfe:	83 c4 10             	add    $0x10,%esp
436c01:	5e                   	pop    %esi
436c02:	c3                   	ret
436c03:	56                   	push   %esi
436c04:	8b f1                	mov    %ecx,%esi
436c06:	ff 76 08             	push   0x8(%esi)
436c09:	e8 80 61 01 00       	call   0x44cd8e
436c0e:	ff 76 10             	push   0x10(%esi)
436c11:	e8 78 61 01 00       	call   0x44cd8e
436c16:	ff 76 14             	push   0x14(%esi)
436c19:	e8 70 61 01 00       	call   0x44cd8e
436c1e:	ff 76 18             	push   0x18(%esi)
436c21:	e8 68 61 01 00       	call   0x44cd8e
436c26:	83 c4 10             	add    $0x10,%esp
436c29:	5e                   	pop    %esi
436c2a:	c3                   	ret
436c2b:	56                   	push   %esi
436c2c:	8b f1                	mov    %ecx,%esi
436c2e:	ff 76 08             	push   0x8(%esi)
436c31:	e8 58 61 01 00       	call   0x44cd8e
436c36:	ff 76 10             	push   0x10(%esi)
436c39:	e8 50 61 01 00       	call   0x44cd8e
436c3e:	ff 76 14             	push   0x14(%esi)
436c41:	e8 48 61 01 00       	call   0x44cd8e
436c46:	83 c4 0c             	add    $0xc,%esp
436c49:	5e                   	pop    %esi
436c4a:	c3                   	ret
436c4b:	56                   	push   %esi
436c4c:	8b f1                	mov    %ecx,%esi
436c4e:	ff 76 08             	push   0x8(%esi)
436c51:	e8 38 61 01 00       	call   0x44cd8e
436c56:	ff 76 0c             	push   0xc(%esi)
436c59:	e8 30 61 01 00       	call   0x44cd8e
436c5e:	ff 76 10             	push   0x10(%esi)
436c61:	e8 28 61 01 00       	call   0x44cd8e
436c66:	83 c4 0c             	add    $0xc,%esp
436c69:	5e                   	pop    %esi
436c6a:	c3                   	ret
436c6b:	56                   	push   %esi
436c6c:	8b f1                	mov    %ecx,%esi
436c6e:	ff 76 08             	push   0x8(%esi)
436c71:	e8 18 61 01 00       	call   0x44cd8e
436c76:	ff 76 0c             	push   0xc(%esi)
436c79:	e8 10 61 01 00       	call   0x44cd8e
436c7e:	ff 76 10             	push   0x10(%esi)
436c81:	e8 08 61 01 00       	call   0x44cd8e
436c86:	83 c4 0c             	add    $0xc,%esp
436c89:	5e                   	pop    %esi
436c8a:	c3                   	ret
436c8b:	56                   	push   %esi
436c8c:	8b f1                	mov    %ecx,%esi
436c8e:	8b 46 14             	mov    0x14(%esi),%eax
436c91:	83 f8 08             	cmp    $0x8,%eax
436c94:	72 11                	jb     0x436ca7
436c96:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
436c9d:	50                   	push   %eax