646e88:	89 46 08             	mov    %eax,0x8(%esi)
646e8b:	33 c0                	xor    %eax,%eax
646e8d:	50                   	push   %eax
646e8e:	c7 41 14 07 00 00 00 	movl   $0x7,0x14(%ecx)
646e95:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
646e9c:	52                   	push   %edx
646e9d:	66 89 01             	mov    %ax,(%ecx)
646ea0:	e8 4b 1a df ff       	call   0x4388f0
646ea5:	8b 4f 5c             	mov    0x5c(%edi),%ecx
646ea8:	8b c6                	mov    %esi,%eax
646eaa:	89 4e 24             	mov    %ecx,0x24(%esi)
646ead:	8b 4f 60             	mov    0x60(%edi),%ecx
646eb0:	5f                   	pop    %edi
646eb1:	89 4e 28             	mov    %ecx,0x28(%esi)
646eb4:	5e                   	pop    %esi
646eb5:	8b e5                	mov    %ebp,%esp
646eb7:	5d                   	pop    %ebp
646eb8:	c2 04 00             	ret    $0x4
646ebb:	cc                   	int3
646ebc:	cc                   	int3
646ebd:	cc                   	int3
646ebe:	cc                   	int3
646ebf:	cc                   	int3
646ec0:	55                   	push   %ebp
646ec1:	8b ec                	mov    %esp,%ebp
646ec3:	6a ff                	push   $0xffffffff
646ec5:	68 30 c2 65 00       	push   $0x65c230
646eca:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
646ed0:	50                   	push   %eax
646ed1:	83 ec 34             	sub    $0x34,%esp
646ed4:	a1 d4 89 72 00       	mov    0x7289d4,%eax
646ed9:	33 c5                	xor    %ebp,%eax
646edb:	89 45 f0             	mov    %eax,-0x10(%ebp)
646ede:	53                   	push   %ebx
646edf:	56                   	push   %esi
646ee0:	57                   	push   %edi
646ee1:	50                   	push   %eax
646ee2:	8d 45 f4             	lea    -0xc(%ebp),%eax
646ee5:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
646eeb:	8b f1                	mov    %ecx,%esi
646eed:	8b 7d 08             	mov    0x8(%ebp),%edi
646ef0:	e8 eb f4 fe ff       	call   0x6363e0
646ef5:	8b 56 24             	mov    0x24(%esi),%edx
646ef8:	8b d8                	mov    %eax,%ebx
646efa:	81 c2 08 01 00 00    	add    $0x108,%edx
646f00:	83 7a 14 08          	cmpl   $0x8,0x14(%edx)
646f04:	72 02                	jb     0x646f08
646f06:	8b 12                	mov    (%edx),%edx
646f08:	83 7e 78 08          	cmpl   $0x8,0x78(%esi)
646f0c:	8d 4e 64             	lea    0x64(%esi),%ecx
646f0f:	72 02                	jb     0x646f13
646f11:	8b 09                	mov    (%ecx),%ecx
646f13:	8b 03                	mov    (%ebx),%eax
646f15:	52                   	push   %edx
646f16:	51                   	push   %ecx
646f17:	68 80 36 6e 00       	push   $0x6e3680
646f1c:	53                   	push   %ebx
646f1d:	ff 50 04             	call   *0x4(%eax)
646f20:	83 c4 10             	add    $0x10,%esp
646f23:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
646f2a:	33 c0                	xor    %eax,%eax
646f2c:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
646f33:	8d 4d d8             	lea    -0x28(%ebp),%ecx
646f36:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
646f3a:	6a 04                	push   $0x4
646f3c:	68 e8 e7 6d 00       	push   $0x6de7e8
646f41:	e8 aa 18 df ff       	call   0x4387f0
646f46:	8b 4e 24             	mov    0x24(%esi),%ecx
646f49:	8d 45 c0             	lea    -0x40(%ebp),%eax
646f4c:	50                   	push   %eax
646f4d:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
646f54:	e8 a7 1f 00 00       	call   0x648f00
646f59:	6a 00                	push   $0x0
646f5b:	50                   	push   %eax
646f5c:	8d 45 d8             	lea    -0x28(%ebp),%eax
646f5f:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
646f63:	50                   	push   %eax
646f64:	8b 46 24             	mov    0x24(%esi),%eax
646f67:	8b ce                	mov    %esi,%ecx
646f69:	05 08 01 00 00       	add    $0x108,%eax
646f6e:	50                   	push   %eax
646f6f:	e8 6c f9 ff ff       	call   0x6468e0
646f74:	84 c0                	test   %al,%al
646f76:	8b 45 d4             	mov    -0x2c(%ebp),%eax
646f79:	0f 94 c3             	sete   %bl
646f7c:	83 f8 08             	cmp    $0x8,%eax
646f7f:	72 0d                	jb     0x646f8e
646f81:	40                   	inc    %eax
646f82:	8d 4d c0             	lea    -0x40(%ebp),%ecx
646f85:	50                   	push   %eax
646f86:	ff 75 c0             	push   -0x40(%ebp)
646f89:	e8 52 1e df ff       	call   0x438de0
646f8e:	33 c0                	xor    %eax,%eax
646f90:	c7 45 d4 07 00 00 00 	movl   $0x7,-0x2c(%ebp)
646f97:	66 89 45 c0          	mov    %ax,-0x40(%ebp)
646f9b:	8b 45 ec             	mov    -0x14(%ebp),%eax
646f9e:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
646fa5:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
646fac:	83 f8 08             	cmp    $0x8,%eax
646faf:	72 0d                	jb     0x646fbe
646fb1:	40                   	inc    %eax
646fb2:	8d 4d d8             	lea    -0x28(%ebp),%ecx
646fb5:	50                   	push   %eax
646fb6:	ff 75 d8             	push   -0x28(%ebp)
646fb9:	e8 22 1e df ff       	call   0x438de0
646fbe:	33 c0                	xor    %eax,%eax
646fc0:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
646fc7:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
646fce:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
646fd2:	84 db                	test   %bl,%bl
646fd4:	75 27                	jne    0x646ffd
646fd6:	57                   	push   %edi
646fd7:	8b ce                	mov    %esi,%ecx
646fd9:	e8 32 fd ff ff       	call   0x646d10
646fde:	84 c0                	test   %al,%al
646fe0:	75 1f                	jne    0x647001
646fe2:	e8 f9 f3 fe ff       	call   0x6363e0
646fe7:	ff 76 3c             	push   0x3c(%esi)
646fea:	68 c0 36 6e 00       	push   $0x6e36c0
646fef:	8b 08                	mov    (%eax),%ecx
646ff1:	68 fc 56 6e 00       	push   $0x6e56fc
646ff6:	50                   	push   %eax
646ff7:	ff 51 24             	call   *0x24(%ecx)
646ffa:	83 c4 10             	add    $0x10,%esp
646ffd:	32 c0                	xor    %al,%al
646fff:	eb 02                	jmp    0x647003
647001:	b0 01                	mov    $0x1,%al
647003:	8b 4d f4             	mov    -0xc(%ebp),%ecx
647006:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
64700d:	59                   	pop    %ecx
64700e:	5f                   	pop    %edi
64700f:	5e                   	pop    %esi
647010:	5b                   	pop    %ebx
647011:	8b 4d f0             	mov    -0x10(%ebp),%ecx
647014:	33 cd                	xor    %ebp,%ecx
647016:	e8 bf a4 f9 ff       	call   0x5e14da
64701b:	8b e5                	mov    %ebp,%esp
64701d:	5d                   	pop    %ebp
64701e:	c2 04 00             	ret    $0x4
647021:	cc                   	int3
647022:	cc                   	int3
647023:	cc                   	int3
647024:	cc                   	int3
647025:	cc                   	int3
647026:	cc                   	int3
647027:	cc                   	int3
647028:	cc                   	int3
647029:	cc                   	int3
64702a:	cc                   	int3
64702b:	cc                   	int3
64702c:	cc                   	int3
64702d:	cc                   	int3
64702e:	cc                   	int3
64702f:	cc                   	int3
647030:	55                   	push   %ebp
647031:	8b ec                	mov    %esp,%ebp
647033:	51                   	push   %ecx
647034:	53                   	push   %ebx
647035:	8b 5d 08             	mov    0x8(%ebp),%ebx
647038:	8d 45 fc             	lea    -0x4(%ebp),%eax
64703b:	56                   	push   %esi
64703c:	57                   	push   %edi
64703d:	6a 00                	push   $0x0
64703f:	50                   	push   %eax
647040:	6a 00                	push   $0x0
647042:	8b f9                	mov    %ecx,%edi
647044:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
64704b:	6a 00                	push   $0x0
64704d:	53                   	push   %ebx
64704e:	ff b7 b0 00 00 00    	push   0xb0(%edi)
647054:	ff 15 a8 24 68 00    	call   *0x6824a8
64705a:	ff 15 e0 21 68 00    	call   *0x6821e0
647060:	83 fb 24             	cmp    $0x24,%ebx
647063:	75 07                	jne    0x64706c
647065:	3d 76 2f 00 00       	cmp    $0x2f76,%eax
64706a:	74 0d                	je     0x647079
64706c:	83 f8 7a             	cmp    $0x7a,%eax
64706f:	74 13                	je     0x647084
647071:	50                   	push   %eax
647072:	8b cf                	mov    %edi,%ecx
647074:	e8 57 04 00 00       	call   0x6474d0
647079:	32 c0                	xor    %al,%al
64707b:	5f                   	pop    %edi
64707c:	5e                   	pop    %esi
64707d:	5b                   	pop    %ebx
64707e:	8b e5                	mov    %ebp,%esp
647080:	5d                   	pop    %ebp
647081:	c2 08 00             	ret    $0x8
647084:	8b 45 fc             	mov    -0x4(%ebp),%eax
647087:	85 c0                	test   %eax,%eax
647089:	75 23                	jne    0x6470ae
64708b:	e8 50 f3 fe ff       	call   0x6363e0
647090:	68 c0 33 6e 00       	push   $0x6e33c0
647095:	68 fc 56 6e 00       	push   $0x6e56fc
64709a:	50                   	push   %eax
64709b:	8b 08                	mov    (%eax),%ecx
64709d:	ff 51 24             	call   *0x24(%ecx)
6470a0:	83 c4 0c             	add    $0xc,%esp
6470a3:	32 c0                	xor    %al,%al
6470a5:	5f                   	pop    %edi
6470a6:	5e                   	pop    %esi
6470a7:	5b                   	pop    %ebx
6470a8:	8b e5                	mov    %ebp,%esp
6470aa:	5d                   	pop    %ebp
6470ab:	c2 08 00             	ret    $0x8
6470ae:	33 c9                	xor    %ecx,%ecx
6470b0:	d1 e8                	shr    $1,%eax
6470b2:	ba 02 00 00 00       	mov    $0x2,%edx
6470b7:	f7 e2                	mul    %edx
6470b9:	68 38 26 73 00       	push   $0x732638
6470be:	0f 90 c1             	seto   %cl
6470c1:	f7 d9                	neg    %ecx
6470c3:	0b c8                	or     %eax,%ecx
6470c5:	51                   	push   %ecx
6470c6:	e8 10 40 00 00       	call   0x64b0db
6470cb:	8b f0                	mov    %eax,%esi
6470cd:	83 c4 08             	add    $0x8,%esp
6470d0:	85 f6                	test   %esi,%esi
6470d2:	75 39                	jne    0x64710d
6470d4:	e8 07 f3 fe ff       	call   0x6363e0
6470d9:	68 34 34 6e 00       	push   $0x6e3434
6470de:	68 fc 56 6e 00       	push   $0x6e56fc
6470e3:	50                   	push   %eax
6470e4:	8b 08                	mov    (%eax),%ecx
6470e6:	ff 51 24             	call   *0x24(%ecx)
6470e9:	83 ec 0c             	sub    $0xc,%esp
6470ec:	8b cc                	mov    %esp,%ecx
6470ee:	68 68 34 6e 00       	push   $0x6e3468
6470f3:	e8 28 15 df ff       	call   0x438620
6470f8:	56                   	push   %esi
6470f9:	6a 14                	push   $0x14
6470fb:	8b cf                	mov    %edi,%ecx
6470fd:	e8 0e 0c 00 00       	call   0x647d10
647102:	32 c0                	xor    %al,%al
647104:	5f                   	pop    %edi
647105:	5e                   	pop    %esi
647106:	5b                   	pop    %ebx
647107:	8b e5                	mov    %ebp,%esp
647109:	5d                   	pop    %ebp
64710a:	c2 08 00             	ret    $0x8
64710d:	6a 00                	push   $0x0
64710f:	8d 45 fc             	lea    -0x4(%ebp),%eax
647112:	50                   	push   %eax
647113:	56                   	push   %esi
647114:	6a 00                	push   $0x0
647116:	53                   	push   %ebx
647117:	ff b7 b0 00 00 00    	push   0xb0(%edi)
64711d:	ff 15 a8 24 68 00    	call   *0x6824a8
647123:	85 c0                	test   %eax,%eax
647125:	75 22                	jne    0x647149
647127:	ff 15 e0 21 68 00    	call   *0x6821e0
64712d:	50                   	push   %eax
64712e:	8b cf                	mov    %edi,%ecx
647130:	e8 9b 03 00 00       	call   0x6474d0
647135:	56                   	push   %esi
647136:	e8 4e 9f f9 ff       	call   0x5e1089
64713b:	83 c4 04             	add    $0x4,%esp
64713e:	32 c0                	xor    %al,%al
647140:	5f                   	pop    %edi
647141:	5e                   	pop    %esi
647142:	5b                   	pop    %ebx
647143:	8b e5                	mov    %ebp,%esp
647145:	5d                   	pop    %ebp
647146:	c2 08 00             	ret    $0x8
647149:	8b 4d 0c             	mov    0xc(%ebp),%ecx
64714c:	56                   	push   %esi
64714d:	e8 1e 14 df ff       	call   0x438570
647152:	56                   	push   %esi
647153:	e8 31 9f f9 ff       	call   0x5e1089
647158:	83 c4 04             	add    $0x4,%esp
64715b:	b0 01                	mov    $0x1,%al
64715d:	5f                   	pop    %edi
64715e:	5e                   	pop    %esi
64715f:	5b                   	pop    %ebx
647160:	8b e5                	mov    %ebp,%esp
647162:	5d                   	pop    %ebp
647163:	c2 08 00             	ret    $0x8
647166:	cc                   	int3
647167:	cc                   	int3
647168:	cc                   	int3
647169:	cc                   	int3
64716a:	cc                   	int3
64716b:	cc                   	int3
64716c:	cc                   	int3
64716d:	cc                   	int3
64716e:	cc                   	int3
64716f:	cc                   	int3
647170:	55                   	push   %ebp
647171:	8b ec                	mov    %esp,%ebp
647173:	53                   	push   %ebx
647174:	56                   	push   %esi
647175:	8b f1                	mov    %ecx,%esi
647177:	80 7e 20 00          	cmpb   $0x0,0x20(%esi)
64717b:	74 08                	je     0x647185
64717d:	b0 01                	mov    $0x1,%al
64717f:	5e                   	pop    %esi
647180:	5b                   	pop    %ebx
647181:	5d                   	pop    %ebp
647182:	c2 08 00             	ret    $0x8
647185:	8b 45 08             	mov    0x8(%ebp),%eax
647188:	85 c0                	test   %eax,%eax
64718a:	74 46                	je     0x6471d2
64718c:	83 38 00             	cmpl   $0x0,(%eax)
64718f:	74 41                	je     0x6471d2
647191:	8b 4d 0c             	mov    0xc(%ebp),%ecx
647194:	85 c9                	test   %ecx,%ecx
647196:	74 3a                	je     0x6471d2
647198:	89 46 1c             	mov    %eax,0x1c(%esi)
64719b:	8d 81 f0 00 00 00    	lea    0xf0(%ecx),%eax
6471a1:	89 4e 24             	mov    %ecx,0x24(%esi)
6471a4:	8b ce                	mov    %esi,%ecx
6471a6:	50                   	push   %eax
6471a7:	e8 54 05 00 00       	call   0x647700
6471ac:	8a d8                	mov    %al,%bl
6471ae:	8d 4e 7c             	lea    0x7c(%esi),%ecx
6471b1:	8b 46 24             	mov    0x24(%esi),%eax
6471b4:	05 08 01 00 00       	add    $0x108,%eax
6471b9:	3b c8                	cmp    %eax,%ecx
6471bb:	74 0a                	je     0x6471c7
6471bd:	6a ff                	push   $0xffffffff
6471bf:	6a 00                	push   $0x0
6471c1:	50                   	push   %eax
6471c2:	e8 29 17 df ff       	call   0x4388f0
6471c7:	88 5e 20             	mov    %bl,0x20(%esi)
6471ca:	8a c3                	mov    %bl,%al
6471cc:	5e                   	pop    %esi
6471cd:	5b                   	pop    %ebx
6471ce:	5d                   	pop    %ebp
6471cf:	c2 08 00             	ret    $0x8
6471d2:	83 ec 18             	sub    $0x18,%esp
6471d5:	8b cc                	mov    %esp,%ecx
6471d7:	68 fc 56 6e 00       	push   $0x6e56fc
6471dc:	e8 3f 14 df ff       	call   0x438620
6471e1:	6a 00                	push   $0x0
6471e3:	6a 13                	push   $0x13
6471e5:	8b ce                	mov    %esi,%ecx
6471e7:	e8 24 0b 00 00       	call   0x647d10
6471ec:	5e                   	pop    %esi
6471ed:	32 c0                	xor    %al,%al
6471ef:	5b                   	pop    %ebx
6471f0:	5d                   	pop    %ebp
6471f1:	c2 08 00             	ret    $0x8
6471f4:	cc                   	int3
6471f5:	cc                   	int3
6471f6:	cc                   	int3
6471f7:	cc                   	int3
6471f8:	cc                   	int3
6471f9:	cc                   	int3
6471fa:	cc                   	int3
6471fb:	cc                   	int3