4177c9:	8b 45 98             	mov    -0x68(%ebp),%eax
4177cc:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
4177cf:	83 fb fe             	cmp    $0xfffffffe,%ebx
4177d2:	0f 84 c3 07 00 00    	je     0x417f9b
4177d8:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
4177db:	89 5d 94             	mov    %ebx,-0x6c(%ebp)
4177de:	8b 5d a4             	mov    -0x5c(%ebp),%ebx
4177e1:	89 5d d8             	mov    %ebx,-0x28(%ebp)
4177e4:	8b 5d ac             	mov    -0x54(%ebp),%ebx
4177e7:	89 4d 84             	mov    %ecx,-0x7c(%ebp)
4177ea:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4177ed:	89 5d a8             	mov    %ebx,-0x58(%ebp)
4177f0:	85 c0                	test   %eax,%eax
4177f2:	0f 85 a2 cc 03 00    	jne    0x45449a
4177f8:	8b 5d 2c             	mov    0x2c(%ebp),%ebx
4177fb:	85 db                	test   %ebx,%ebx
4177fd:	74 06                	je     0x417805
4177ff:	2b fe                	sub    %esi,%edi
417801:	d1 ff                	sar    $1,%edi
417803:	01 3b                	add    %edi,(%ebx)
417805:	8b 4d dc             	mov    -0x24(%ebp),%ecx
417808:	33 c0                	xor    %eax,%eax
41780a:	8b 7d f8             	mov    -0x8(%ebp),%edi
41780d:	3b ca                	cmp    %edx,%ecx
41780f:	6a 6e                	push   $0x6e
417811:	5a                   	pop    %edx
417812:	0f 95 c0             	setne  %al
417815:	03 c2                	add    %edx,%eax
417817:	6a 02                	push   $0x2
417819:	5a                   	pop    %edx
41781a:	66 89 07             	mov    %ax,(%edi)
41781d:	03 fa                	add    %edx,%edi
41781f:	85 db                	test   %ebx,%ebx
417821:	0f 84 10 04 00 00    	je     0x417c37
417827:	6a 20                	push   $0x20
417829:	58                   	pop    %eax
41782a:	03 f8                	add    %eax,%edi
41782c:	89 7d f8             	mov    %edi,-0x8(%ebp)
41782f:	e9 e1 fc ff ff       	jmp    0x417515
417834:	40                   	inc    %eax
417835:	89 45 a8             	mov    %eax,-0x58(%ebp)
417838:	e9 1f ff ff ff       	jmp    0x41775c
41783d:	8b 55 a4             	mov    -0x5c(%ebp),%edx
417840:	83 4d 94 ff          	orl    $0xffffffff,-0x6c(%ebp)
417844:	89 55 d8             	mov    %edx,-0x28(%ebp)
417847:	8b 55 ac             	mov    -0x54(%ebp),%edx
41784a:	89 55 a8             	mov    %edx,-0x58(%ebp)
41784d:	8b 55 f4             	mov    -0xc(%ebp),%edx
417850:	3b da                	cmp    %edx,%ebx
417852:	0f 85 01 cc 03 00    	jne    0x454459
417858:	0f b7 c0             	movzwl %ax,%eax
41785b:	3b da                	cmp    %edx,%ebx
41785d:	8b 55 f8             	mov    -0x8(%ebp),%edx
417860:	89 45 9c             	mov    %eax,-0x64(%ebp)
417863:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax
417869:	89 45 d4             	mov    %eax,-0x2c(%ebp)
41786c:	0f 85 01 cc 03 00    	jne    0x454473
417872:	8b 75 fc             	mov    -0x4(%ebp),%esi
417875:	8b 5d f0             	mov    -0x10(%ebp),%ebx
417878:	e9 a1 fc ff ff       	jmp    0x41751e
41787d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
417880:	8b 45 a0             	mov    -0x60(%ebp),%eax
417883:	e9 17 fb ff ff       	jmp    0x41739f
417888:	33 db                	xor    %ebx,%ebx
41788a:	89 75 90             	mov    %esi,-0x70(%ebp)
41788d:	8b 75 28             	mov    0x28(%ebp),%esi
417890:	8d 95 6c ff ff ff    	lea    -0x94(%ebp),%edx
417896:	53                   	push   %ebx
417897:	ff 75 cc             	push   -0x34(%ebp)
41789a:	8d 4d fc             	lea    -0x4(%ebp),%ecx
41789d:	ff 76 40             	push   0x40(%esi)
4178a0:	ff 75 0c             	push   0xc(%ebp)
4178a3:	e8 1c 0b 00 00       	call   0x4183c4
4178a8:	8b 55 0c             	mov    0xc(%ebp),%edx
4178ab:	83 c4 10             	add    $0x10,%esp
4178ae:	8b f8                	mov    %eax,%edi
4178b0:	39 1a                	cmp    %ebx,(%edx)
4178b2:	0f 85 45 0a 00 00    	jne    0x4182fd
4178b8:	85 ff                	test   %edi,%edi
4178ba:	0f 85 74 07 00 00    	jne    0x418034
4178c0:	81 bd 6c ff ff ff ff 	cmpl   $0xffff,-0x94(%ebp)
4178c7:	ff 00 00
4178ca:	0f 87 36 bb 03 00    	ja     0x453406
4178d0:	66 8b bd 6c ff ff ff 	mov    -0x94(%ebp),%di
4178d7:	8b 55 f4             	mov    -0xc(%ebp),%edx
4178da:	66 89 bd 08 ff ff ff 	mov    %di,-0xf8(%ebp)
4178e1:	8b da                	mov    %edx,%ebx
4178e3:	89 7d e8             	mov    %edi,-0x18(%ebp)
4178e6:	e9 36 fb ff ff       	jmp    0x417421
4178eb:	6a 02                	push   $0x2
4178ed:	5b                   	pop    %ebx
4178ee:	03 f3                	add    %ebx,%esi
4178f0:	6a 3f                	push   $0x3f
4178f2:	89 75 fc             	mov    %esi,-0x4(%ebp)
4178f5:	58                   	pop    %eax
4178f6:	0f b7 16             	movzwl (%esi),%edx
4178f9:	66 3b d0             	cmp    %ax,%dx
4178fc:	0f 84 60 03 00 00    	je     0x417c62
417902:	6a 2a                	push   $0x2a
417904:	58                   	pop    %eax
417905:	66 3b d0             	cmp    %ax,%dx
417908:	0f 84 74 a5 03 00    	je     0x451e82
41790e:	8b 5d 28             	mov    0x28(%ebp),%ebx
417911:	8b 45 cc             	mov    -0x34(%ebp),%eax
417914:	89 4d e0             	mov    %ecx,-0x20(%ebp)
417917:	6a 3f                	push   $0x3f
417919:	8b 4b 20             	mov    0x20(%ebx),%ecx
41791c:	2b 4b 10             	sub    0x10(%ebx),%ecx
41791f:	d1 f9                	sar    $1,%ecx
417921:	89 8d 78 ff ff ff    	mov    %ecx,-0x88(%ebp)
417927:	33 c9                	xor    %ecx,%ecx
417929:	5f                   	pop    %edi
41792a:	89 45 b4             	mov    %eax,-0x4c(%ebp)
41792d:	c7 45 e4 85 00 00 00 	movl   $0x85,-0x1c(%ebp)
417934:	89 4d c8             	mov    %ecx,-0x38(%ebp)
417937:	66 3b d7             	cmp    %di,%dx
41793a:	0f 84 34 03 00 00    	je     0x417c74
417940:	a9 00 10 00 00       	test   $0x1000,%eax
417945:	0f 85 25 09 00 00    	jne    0x418270
41794b:	8b 55 f8             	mov    -0x8(%ebp),%edx
41794e:	ff 43 40             	incl   0x40(%ebx)
417951:	66 8b 43 40          	mov    0x40(%ebx),%ax
417955:	66 89 42 04          	mov    %ax,0x4(%edx)
417959:	8b 45 f4             	mov    -0xc(%ebp),%eax
41795c:	89 45 e0             	mov    %eax,-0x20(%ebp)
41795f:	8b 75 fc             	mov    -0x4(%ebp),%esi
417962:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
417965:	6a 52                	push   $0x52
417967:	5f                   	pop    %edi
417968:	8b 45 28             	mov    0x28(%ebp),%eax
41796b:	ff 40 58             	incl   0x58(%eax)
41796e:	81 78 58 fa 00 00 00 	cmpl   $0xfa,0x58(%eax)
417975:	0f 8f 78 09 00 00    	jg     0x4182f3
41797b:	8d 43 83             	lea    -0x7d(%ebx),%eax
41797e:	33 c9                	xor    %ecx,%ecx
417980:	83 f8 03             	cmp    $0x3,%eax
417983:	8b 45 28             	mov    0x28(%ebp),%eax
417986:	0f 86 ec bc 03 00    	jbe    0x453678
41798c:	89 55 f0             	mov    %edx,-0x10(%ebp)
41798f:	66 89 1a             	mov    %bx,(%edx)
417992:	8b 78 68             	mov    0x68(%eax),%edi
417995:	8b 70 40             	mov    0x40(%eax),%esi
417998:	8b 45 2c             	mov    0x2c(%ebp),%eax
41799b:	f7 d8                	neg    %eax
41799d:	89 8d 7c ff ff ff    	mov    %ecx,-0x84(%ebp)
4179a3:	8d 8d 7c ff ff ff    	lea    -0x84(%ebp),%ecx
4179a9:	89 55 bc             	mov    %edx,-0x44(%ebp)
4179ac:	1b c0                	sbb    %eax,%eax
4179ae:	89 7d 8c             	mov    %edi,-0x74(%ebp)
4179b1:	23 c1                	and    %ecx,%eax
4179b3:	b9 87 00 00 00       	mov    $0x87,%ecx
4179b8:	3b d9                	cmp    %ecx,%ebx
4179ba:	0f 84 d4 08 00 00    	je     0x418294
4179c0:	33 c9                	xor    %ecx,%ecx
4179c2:	8b d1                	mov    %ecx,%edx
4179c4:	83 fb 7f             	cmp    $0x7f,%ebx
4179c7:	0f 84 d1 08 00 00    	je     0x41829e
4179cd:	81 fb 80 00 00 00    	cmp    $0x80,%ebx
4179d3:	0f 84 c5 08 00 00    	je     0x41829e
4179d9:	50                   	push   %eax
4179da:	ff 75 28             	push   0x28(%ebp)
4179dd:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
4179e3:	ff 75 20             	push   0x20(%ebp)
4179e6:	50                   	push   %eax
4179e7:	8d 85 54 ff ff ff    	lea    -0xac(%ebp),%eax
4179ed:	50                   	push   %eax
4179ee:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
4179f4:	50                   	push   %eax
4179f5:	8d 85 28 ff ff ff    	lea    -0xd8(%ebp),%eax
4179fb:	50                   	push   %eax
4179fc:	8b 45 24             	mov    0x24(%ebp),%eax
4179ff:	03 c2                	add    %edx,%eax
417a01:	8d 55 bc             	lea    -0x44(%ebp),%edx
417a04:	50                   	push   %eax
417a05:	ff 75 e0             	push   -0x20(%ebp)
417a08:	8d 45 fc             	lea    -0x4(%ebp),%eax
417a0b:	ff 75 c8             	push   -0x38(%ebp)
417a0e:	51                   	push   %ecx
417a0f:	ff 75 0c             	push   0xc(%ebp)
417a12:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
417a15:	50                   	push   %eax
417a16:	e8 9d f3 ff ff       	call   0x416db8
417a1b:	83 c4 34             	add    $0x34,%esp
417a1e:	85 c0                	test   %eax,%eax
417a20:	0f 84 d7 08 00 00    	je     0x4182fd
417a26:	8b 45 28             	mov    0x28(%ebp),%eax
417a29:	b9 81 00 00 00       	mov    $0x81,%ecx
417a2e:	ff 48 58             	decl   0x58(%eax)
417a31:	3b d9                	cmp    %ecx,%ebx
417a33:	0f 84 53 bc 03 00    	je     0x45368c
417a39:	8b 75 f8             	mov    -0x8(%ebp),%esi
417a3c:	6a 7d                	push   $0x7d
417a3e:	59                   	pop    %ecx
417a3f:	3b d9                	cmp    %ecx,%ebx
417a41:	7c 0b                	jl     0x417a4e
417a43:	83 c1 03             	add    $0x3,%ecx
417a46:	3b d9                	cmp    %ecx,%ebx
417a48:	0f 8e 58 08 00 00    	jle    0x4182a6
417a4e:	b8 87 00 00 00       	mov    $0x87,%eax
417a53:	3b d8                	cmp    %eax,%ebx
417a55:	0f 84 4a bc 03 00    	je     0x4536a5
417a5b:	8b 85 60 ff ff ff    	mov    -0xa0(%ebp),%eax
417a61:	8b 75 fc             	mov    -0x4(%ebp),%esi
417a64:	6a 29                	push   $0x29
417a66:	5a                   	pop    %edx
417a67:	66 39 16             	cmp    %dx,(%esi)
417a6a:	0f 85 cb cb 03 00    	jne    0x45463b
417a70:	8b 55 2c             	mov    0x2c(%ebp),%edx
417a73:	85 d2                	test   %edx,%edx
417a75:	0f 85 2b 05 00 00    	jne    0x417fa6
417a7b:	8b 55 bc             	mov    -0x44(%ebp),%edx
417a7e:	89 55 f8             	mov    %edx,-0x8(%ebp)
417a81:	81 fb 91 00 00 00    	cmp    $0x91,%ebx
417a87:	0f 84 e8 fd ff ff    	je     0x417875
417a8d:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
417a90:	89 4d d8             	mov    %ecx,-0x28(%ebp)
417a93:	8b 4d ac             	mov    -0x54(%ebp),%ecx
417a96:	89 4d a8             	mov    %ecx,-0x58(%ebp)
417a99:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
417a9c:	89 4d 84             	mov    %ecx,-0x7c(%ebp)
417a9f:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
417aa2:	89 4d 94             	mov    %ecx,-0x6c(%ebp)
417aa5:	33 c9                	xor    %ecx,%ecx
417aa7:	89 8d 68 ff ff ff    	mov    %ecx,-0x98(%ebp)
417aad:	b9 81 00 00 00       	mov    $0x81,%ecx
417ab2:	3b d9                	cmp    %ecx,%ebx
417ab4:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
417aba:	0f 8c 75 bc 03 00    	jl     0x453735
417ac0:	83 7d d4 fe          	cmpl   $0xfffffffe,-0x2c(%ebp)
417ac4:	0f 84 43 bc 03 00    	je     0x45370d
417aca:	85 c9                	test   %ecx,%ecx
417acc:	0f 89 55 07 00 00    	jns    0x418227
417ad2:	85 c0                	test   %eax,%eax
417ad4:	0f 88 9b fd ff ff    	js     0x417875
417ada:	8b bd 54 ff ff ff    	mov    -0xac(%ebp),%edi
417ae0:	89 7d a4             	mov    %edi,-0x5c(%ebp)
417ae3:	89 45 ac             	mov    %eax,-0x54(%ebp)
417ae6:	e9 8a fd ff ff       	jmp    0x417875
417aeb:	6a 5d                	push   $0x5d
417aed:	58                   	pop    %eax
417aee:	66 39 46 02          	cmp    %ax,0x2(%esi)
417af2:	0f 85 75 fc ff ff    	jne    0x41776d
417af8:	e9 3a c8 03 00       	jmp    0x454337
417afd:	8b 55 f4             	mov    -0xc(%ebp),%edx
417b00:	33 c0                	xor    %eax,%eax
417b02:	8b f8                	mov    %eax,%edi
417b04:	8b 45 0c             	mov    0xc(%ebp),%eax
417b07:	89 7d b0             	mov    %edi,-0x50(%ebp)
417b0a:	89 55 c0             	mov    %edx,-0x40(%ebp)
417b0d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
417b10:	85 c9                	test   %ecx,%ecx
417b12:	0f 84 d4 07 00 00    	je     0x4182ec
417b18:	85 ff                	test   %edi,%edi
417b1a:	75 18                	jne    0x417b34
417b1c:	8b 45 84             	mov    -0x7c(%ebp),%eax
417b1f:	89 45 9c             	mov    %eax,-0x64(%ebp)
417b22:	8b 45 94             	mov    -0x6c(%ebp),%eax
417b25:	89 45 d4             	mov    %eax,-0x2c(%ebp)
417b28:	8b 45 d8             	mov    -0x28(%ebp),%eax
417b2b:	89 45 a4             	mov    %eax,-0x5c(%ebp)
417b2e:	8b 45 a8             	mov    -0x58(%ebp),%eax
417b31:	89 45 ac             	mov    %eax,-0x54(%ebp)
417b34:	8b c7                	mov    %edi,%eax
417b36:	89 4d bc             	mov    %ecx,-0x44(%ebp)
417b39:	2b c2                	sub    %edx,%eax
417b3b:	f7 d8                	neg    %eax
417b3d:	1b c0                	sbb    %eax,%eax
417b3f:	83 e0 02             	and    $0x2,%eax
417b42:	89 45 8c             	mov    %eax,-0x74(%ebp)
417b45:	33 c0                	xor    %eax,%eax
417b47:	89 45 e0             	mov    %eax,-0x20(%ebp)
417b4a:	85 db                	test   %ebx,%ebx
417b4c:	0f 85 28 07 00 00    	jne    0x41827a
417b52:	8d 4e 02             	lea    0x2(%esi),%ecx
417b55:	0f b7 01             	movzwl (%ecx),%eax
417b58:	6a 2b                	push   $0x2b
417b5a:	5b                   	pop    %ebx
417b5b:	66 3b c3             	cmp    %bx,%ax
417b5e:	0f 84 a7 ae 03 00    	je     0x452a0b
417b64:	6a 3f                	push   $0x3f
417b66:	5b                   	pop    %ebx
417b67:	66 3b c3             	cmp    %bx,%ax
417b6a:	0f 84 90 05 00 00    	je     0x418100
417b70:	8b 9d 24 ff ff ff    	mov    -0xdc(%ebp),%ebx
417b76:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
417b79:	8b 45 f0             	mov    -0x10(%ebp),%eax
417b7c:	6a 75                	push   $0x75
417b7e:	59                   	pop    %ecx
417b7f:	66 39 08             	cmp    %cx,(%eax)
417b82:	0f 84 9a ae 03 00    	je     0x452a22
417b88:	0f b7 08             	movzwl (%eax),%ecx
417b8b:	66 3b 8d fc fe ff ff 	cmp    -0x104(%ebp),%cx
417b92:	0f 84 43 b4 03 00    	je     0x452fdb
417b98:	66 3b 8d cc fe ff ff 	cmp    -0x134(%ebp),%cx
417b9f:	0f 84 36 b4 03 00    	je     0x452fdb
417ba5:	66 3b 8d f4 fe ff ff 	cmp    -0x10c(%ebp),%cx
417bac:	0f 84 29 b4 03 00    	je     0x452fdb
417bb2:	66 3b 8d b4 fe ff ff 	cmp    -0x14c(%ebp),%cx
417bb9:	0f 84 1c b4 03 00    	je     0x452fdb
417bbf:	66 3b 8d ec fe ff ff 	cmp    -0x114(%ebp),%cx
417bc6:	0f 82 44 05 00 00    	jb     0x418110
417bcc:	66 3b 8d c4 fe ff ff 	cmp    -0x13c(%ebp),%cx
417bd3:	0f 85 9a 01 00 00    	jne    0x417d73
417bd9:	85 d2                	test   %edx,%edx
417bdb:	0f 84 a1 06 00 00    	je     0x418282
417be1:	85 ff                	test   %edi,%edi
417be3:	0f 85 a3 b3 03 00    	jne    0x452f8c
417be9:	83 fa ff             	cmp    $0xffffffff,%edx
417bec:	0f 85 ca 02 00 00    	jne    0x417ebc
417bf2:	8d 43 62             	lea    0x62(%ebx),%eax
417bf5:	8b 7d f8             	mov    -0x8(%ebp),%edi
417bf8:	6a 02                	push   $0x2
417bfa:	5b                   	pop    %ebx
417bfb:	66 89 07             	mov    %ax,(%edi)
417bfe:	03 fb                	add    %ebx,%edi
417c00:	8b 75 fc             	mov    -0x4(%ebp),%esi
417c03:	33 d2                	xor    %edx,%edx
417c05:	89 7d f8             	mov    %edi,-0x8(%ebp)
417c08:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
417c0c:	0f 85 22 b6 03 00    	jne    0x453234
417c12:	8b 4d 28             	mov    0x28(%ebp),%ecx
417c15:	33 c0                	xor    %eax,%eax
417c17:	8b d8                	mov    %eax,%ebx
417c19:	8b 45 8c             	mov    -0x74(%ebp),%eax
417c1c:	89 5d f0             	mov    %ebx,-0x10(%ebp)
417c1f:	09 41 68             	or     %eax,0x68(%ecx)
417c22:	e9 f4 f8 ff ff       	jmp    0x41751b
417c27:	8b 45 a0             	mov    -0x60(%ebp),%eax
417c2a:	85 c0                	test   %eax,%eax
417c2c:	0f 84 90 f6 ff ff    	je     0x4172c2
417c32:	e9 cd 9f 03 00       	jmp    0x451c04
417c37:	85 c9                	test   %ecx,%ecx
417c39:	0f 85 a3 06 00 00    	jne    0x4182e2
417c3f:	6a 20                	push   $0x20
417c41:	58                   	pop    %eax
417c42:	50                   	push   %eax
417c43:	8d 85 2c ff ff ff    	lea    -0xd4(%ebp),%eax
417c49:	50                   	push   %eax
417c4a:	57                   	push   %edi
417c4b:	e8 30 94 00 00       	call   0x421080
417c50:	83 c4 0c             	add    $0xc,%esp
417c53:	e9 cf fb ff ff       	jmp    0x417827
417c58:	8b f9                	mov    %ecx,%edi
417c5a:	83 ca ff             	or     $0xffffffff,%edx
417c5d:	e9 a2 fe ff ff       	jmp    0x417b04
417c62:	6a 23                	push   $0x23
417c64:	58                   	pop    %eax
417c65:	66 39 46 02          	cmp    %ax,0x2(%esi)
417c69:	0f 85 93 fc ff ff    	jne    0x417902
417c6f:	e9 b9 a1 03 00       	jmp    0x451e2d