640ece:	5b                   	pop    %ebx
640ecf:	8b e5                	mov    %ebp,%esp
640ed1:	5d                   	pop    %ebp
640ed2:	c2 04 00             	ret    $0x4
640ed5:	e8 55 c0 fa ff       	call   0x5ecf2f
640eda:	cc                   	int3
640edb:	cc                   	int3
640edc:	cc                   	int3
640edd:	cc                   	int3
640ede:	cc                   	int3
640edf:	cc                   	int3
640ee0:	55                   	push   %ebp
640ee1:	8b ec                	mov    %esp,%ebp
640ee3:	6a ff                	push   $0xffffffff
640ee5:	68 80 47 66 00       	push   $0x664780
640eea:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
640ef0:	50                   	push   %eax
640ef1:	83 ec 10             	sub    $0x10,%esp
640ef4:	53                   	push   %ebx
640ef5:	56                   	push   %esi
640ef6:	57                   	push   %edi
640ef7:	a1 d4 89 72 00       	mov    0x7289d4,%eax
640efc:	33 c5                	xor    %ebp,%eax
640efe:	50                   	push   %eax
640eff:	8d 45 f4             	lea    -0xc(%ebp),%eax
640f02:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
640f08:	89 65 f0             	mov    %esp,-0x10(%ebp)
640f0b:	8b f9                	mov    %ecx,%edi
640f0d:	89 7d e4             	mov    %edi,-0x1c(%ebp)
640f10:	ff 75 08             	push   0x8(%ebp)
640f13:	e8 a8 01 00 00       	call   0x6410c0
640f18:	c6 45 ec 00          	movb   $0x0,-0x14(%ebp)
640f1c:	8b d8                	mov    %eax,%ebx
640f1e:	ff 75 ec             	push   -0x14(%ebp)
640f21:	89 5d e8             	mov    %ebx,-0x18(%ebp)
640f24:	57                   	push   %edi
640f25:	53                   	push   %ebx
640f26:	ff 77 04             	push   0x4(%edi)
640f29:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
640f30:	ff 37                	push   (%edi)
640f32:	e8 d9 f5 ff ff       	call   0x640510
640f37:	8b 37                	mov    (%edi),%esi
640f39:	b8 e9 a2 8b 2e       	mov    $0x2e8ba2e9,%eax
640f3e:	8b 4f 04             	mov    0x4(%edi),%ecx
640f41:	83 c4 14             	add    $0x14,%esp
640f44:	2b ce                	sub    %esi,%ecx
640f46:	f7 e9                	imul   %ecx
640f48:	c1 fa 03             	sar    $0x3,%edx
640f4b:	8b c2                	mov    %edx,%eax
640f4d:	c1 e8 1f             	shr    $0x1f,%eax
640f50:	03 c2                	add    %edx,%eax
640f52:	89 45 ec             	mov    %eax,-0x14(%ebp)
640f55:	85 f6                	test   %esi,%esi
640f57:	74 2e                	je     0x640f87
640f59:	57                   	push   %edi
640f5a:	ff 77 04             	push   0x4(%edi)
640f5d:	56                   	push   %esi
640f5e:	e8 5d e9 ff ff       	call   0x63f8c0
640f63:	8b 37                	mov    (%edi),%esi
640f65:	b8 e9 a2 8b 2e       	mov    $0x2e8ba2e9,%eax
640f6a:	8b 4f 08             	mov    0x8(%edi),%ecx
640f6d:	83 c4 0c             	add    $0xc,%esp
640f70:	2b ce                	sub    %esi,%ecx
640f72:	f7 e9                	imul   %ecx
640f74:	8b cf                	mov    %edi,%ecx
640f76:	c1 fa 03             	sar    $0x3,%edx
640f79:	8b c2                	mov    %edx,%eax
640f7b:	c1 e8 1f             	shr    $0x1f,%eax
640f7e:	03 c2                	add    %edx,%eax
640f80:	50                   	push   %eax
640f81:	56                   	push   %esi
640f82:	e8 89 09 00 00       	call   0x641910
640f87:	6b 45 08 2c          	imul   $0x2c,0x8(%ebp),%eax
640f8b:	03 c3                	add    %ebx,%eax
640f8d:	89 47 08             	mov    %eax,0x8(%edi)
640f90:	6b 45 ec 2c          	imul   $0x2c,-0x14(%ebp),%eax
640f94:	03 c3                	add    %ebx,%eax
640f96:	89 47 04             	mov    %eax,0x4(%edi)
640f99:	89 1f                	mov    %ebx,(%edi)
640f9b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
640f9e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
640fa5:	59                   	pop    %ecx
640fa6:	5f                   	pop    %edi
640fa7:	5e                   	pop    %esi
640fa8:	5b                   	pop    %ebx
640fa9:	8b e5                	mov    %ebp,%esp
640fab:	5d                   	pop    %ebp
640fac:	c2 04 00             	ret    $0x4
640faf:	ff 75 08             	push   0x8(%ebp)
640fb2:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
640fb5:	ff 75 e8             	push   -0x18(%ebp)
640fb8:	e8 53 09 00 00       	call   0x641910
640fbd:	6a 00                	push   $0x0
640fbf:	6a 00                	push   $0x0
640fc1:	e8 6c 1a fa ff       	call   0x5e2a32
640fc6:	cc                   	int3
640fc7:	cc                   	int3
640fc8:	cc                   	int3
640fc9:	cc                   	int3
640fca:	cc                   	int3
640fcb:	cc                   	int3
640fcc:	cc                   	int3
640fcd:	cc                   	int3
640fce:	cc                   	int3
640fcf:	cc                   	int3
640fd0:	55                   	push   %ebp
640fd1:	8b ec                	mov    %esp,%ebp
640fd3:	53                   	push   %ebx
640fd4:	8b d9                	mov    %ecx,%ebx
640fd6:	b8 e9 a2 8b 2e       	mov    $0x2e8ba2e9,%eax
640fdb:	56                   	push   %esi
640fdc:	57                   	push   %edi
640fdd:	8b 7d 08             	mov    0x8(%ebp),%edi
640fe0:	8b 53 08             	mov    0x8(%ebx),%edx
640fe3:	8b 73 04             	mov    0x4(%ebx),%esi
640fe6:	2b d6                	sub    %esi,%edx
640fe8:	f7 ea                	imul   %edx
640fea:	c1 fa 03             	sar    $0x3,%edx
640fed:	8b c2                	mov    %edx,%eax
640fef:	c1 e8 1f             	shr    $0x1f,%eax
640ff2:	03 c2                	add    %edx,%eax
640ff4:	3b c7                	cmp    %edi,%eax
640ff6:	73 61                	jae    0x641059
640ff8:	8b 03                	mov    (%ebx),%eax
640ffa:	2b f0                	sub    %eax,%esi
640ffc:	89 45 08             	mov    %eax,0x8(%ebp)
640fff:	b8 e9 a2 8b 2e       	mov    $0x2e8ba2e9,%eax
641004:	f7 ee                	imul   %esi
641006:	b8 5d 74 d1 05       	mov    $0x5d1745d,%eax
64100b:	c1 fa 03             	sar    $0x3,%edx
64100e:	8b ca                	mov    %edx,%ecx
641010:	c1 e9 1f             	shr    $0x1f,%ecx
641013:	03 ca                	add    %edx,%ecx
641015:	2b c1                	sub    %ecx,%eax
641017:	3b c7                	cmp    %edi,%eax
641019:	72 45                	jb     0x641060
64101b:	03 f9                	add    %ecx,%edi
64101d:	b8 e9 a2 8b 2e       	mov    $0x2e8ba2e9,%eax
641022:	8b 4b 08             	mov    0x8(%ebx),%ecx
641025:	2b 4d 08             	sub    0x8(%ebp),%ecx
641028:	f7 e9                	imul   %ecx
64102a:	c1 fa 03             	sar    $0x3,%edx
64102d:	8b f2                	mov    %edx,%esi
64102f:	c1 ee 1f             	shr    $0x1f,%esi
641032:	03 f2                	add    %edx,%esi
641034:	ba 5d 74 d1 05       	mov    $0x5d1745d,%edx
641039:	8b c6                	mov    %esi,%eax
64103b:	d1 e8                	shr    $1,%eax
64103d:	2b d0                	sub    %eax,%edx
64103f:	3b d6                	cmp    %esi,%edx
641041:	8d 0c 30             	lea    (%eax,%esi,1),%ecx
641044:	b8 00 00 00 00       	mov    $0x0,%eax
641049:	0f 42 c8             	cmovb  %eax,%ecx
64104c:	3b cf                	cmp    %edi,%ecx
64104e:	0f 42 cf             	cmovb  %edi,%ecx
641051:	51                   	push   %ecx
641052:	8b cb                	mov    %ebx,%ecx
641054:	e8 87 fe ff ff       	call   0x640ee0
641059:	5f                   	pop    %edi
64105a:	5e                   	pop    %esi
64105b:	5b                   	pop    %ebx
64105c:	5d                   	pop    %ebp
64105d:	c2 04 00             	ret    $0x4
641060:	68 50 59 6e 00       	push   $0x6e5950
641065:	e8 20 d3 f8 ff       	call   0x5ce38a
64106a:	cc                   	int3
64106b:	cc                   	int3
64106c:	cc                   	int3
64106d:	cc                   	int3
64106e:	cc                   	int3
64106f:	cc                   	int3
641070:	55                   	push   %ebp
641071:	8b ec                	mov    %esp,%ebp
641073:	83 ec 08             	sub    $0x8,%esp
641076:	53                   	push   %ebx
641077:	57                   	push   %edi
641078:	8b f9                	mov    %ecx,%edi
64107a:	8d 8f 78 04 00 00    	lea    0x478(%edi),%ecx
641080:	e8 fb a6 ff ff       	call   0x63b780
641085:	ff 75 08             	push   0x8(%ebp)
641088:	8d 45 f8             	lea    -0x8(%ebp),%eax
64108b:	50                   	push   %eax
64108c:	8d 8f 34 03 00 00    	lea    0x334(%edi),%ecx
641092:	e8 e9 f3 ff ff       	call   0x640480
641097:	8b 4d f8             	mov    -0x8(%ebp),%ecx
64109a:	ff 75 08             	push   0x8(%ebp)
64109d:	8d 49 14             	lea    0x14(%ecx),%ecx
6410a0:	e8 cb 1d 00 00       	call   0x642e70
6410a5:	8d 8f 78 04 00 00    	lea    0x478(%edi),%ecx
6410ab:	e8 f0 a6 ff ff       	call   0x63b7a0
6410b0:	5f                   	pop    %edi
6410b1:	5b                   	pop    %ebx
6410b2:	8b e5                	mov    %ebp,%esp
6410b4:	5d                   	pop    %ebp
6410b5:	c2 04 00             	ret    $0x4
6410b8:	cc                   	int3
6410b9:	cc                   	int3
6410ba:	cc                   	int3
6410bb:	cc                   	int3
6410bc:	cc                   	int3
6410bd:	cc                   	int3
6410be:	cc                   	int3
6410bf:	cc                   	int3
6410c0:	55                   	push   %ebp
6410c1:	8b ec                	mov    %esp,%ebp
6410c3:	8b 45 08             	mov    0x8(%ebp),%eax
6410c6:	85 c0                	test   %eax,%eax
6410c8:	75 04                	jne    0x6410ce
6410ca:	5d                   	pop    %ebp
6410cb:	c2 04 00             	ret    $0x4
6410ce:	3d 5d 74 d1 05       	cmp    $0x5d1745d,%eax
6410d3:	77 3c                	ja     0x641111
6410d5:	6b c0 2c             	imul   $0x2c,%eax,%eax
6410d8:	3d 00 10 00 00       	cmp    $0x1000,%eax
6410dd:	72 23                	jb     0x641102
6410df:	8d 48 23             	lea    0x23(%eax),%ecx
6410e2:	3b c8                	cmp    %eax,%ecx
6410e4:	76 30                	jbe    0x641116
6410e6:	51                   	push   %ecx
6410e7:	e8 56 ff f9 ff       	call   0x5e1042
6410ec:	8b c8                	mov    %eax,%ecx
6410ee:	83 c4 04             	add    $0x4,%esp
6410f1:	85 c9                	test   %ecx,%ecx
6410f3:	74 26                	je     0x64111b
6410f5:	8d 41 23             	lea    0x23(%ecx),%eax
6410f8:	83 e0 e0             	and    $0xffffffe0,%eax
6410fb:	89 48 fc             	mov    %ecx,-0x4(%eax)
6410fe:	5d                   	pop    %ebp
6410ff:	c2 04 00             	ret    $0x4
641102:	50                   	push   %eax
641103:	e8 3a ff f9 ff       	call   0x5e1042
641108:	83 c4 04             	add    $0x4,%esp
64110b:	85 c0                	test   %eax,%eax
64110d:	75 bb                	jne    0x6410ca
64110f:	eb 0f                	jmp    0x641120
641111:	e8 37 d2 f8 ff       	call   0x5ce34d
641116:	e8 32 d2 f8 ff       	call   0x5ce34d
64111b:	e8 0f be fa ff       	call   0x5ecf2f
641120:	e8 0a be fa ff       	call   0x5ecf2f
641125:	cc                   	int3
641126:	cc                   	int3
641127:	cc                   	int3
641128:	cc                   	int3
641129:	cc                   	int3
64112a:	cc                   	int3
64112b:	cc                   	int3
64112c:	cc                   	int3
64112d:	cc                   	int3
64112e:	cc                   	int3
64112f:	cc                   	int3
641130:	55                   	push   %ebp
641131:	8b ec                	mov    %esp,%ebp
641133:	83 ec 10             	sub    $0x10,%esp
641136:	53                   	push   %ebx
641137:	56                   	push   %esi
641138:	8b f1                	mov    %ecx,%esi
64113a:	57                   	push   %edi
64113b:	8d 86 94 04 00 00    	lea    0x494(%esi),%eax
641141:	8b c8                	mov    %eax,%ecx
641143:	89 45 f8             	mov    %eax,-0x8(%ebp)
641146:	e8 35 a6 ff ff       	call   0x63b780
64114b:	8d 4d 08             	lea    0x8(%ebp),%ecx
64114e:	33 ff                	xor    %edi,%edi
641150:	51                   	push   %ecx
641151:	8d 86 e0 01 00 00    	lea    0x1e0(%esi),%eax
641157:	8d 4d f0             	lea    -0x10(%ebp),%ecx
64115a:	89 45 fc             	mov    %eax,-0x4(%ebp)
64115d:	51                   	push   %ecx
64115e:	8b c8                	mov    %eax,%ecx
641160:	e8 8b f2 ff ff       	call   0x6403f0
641165:	8b 75 f0             	mov    -0x10(%ebp),%esi
641168:	8d 45 08             	lea    0x8(%ebp),%eax
64116b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
64116e:	b3 01                	mov    $0x1,%bl
641170:	50                   	push   %eax
641171:	8d 45 f0             	lea    -0x10(%ebp),%eax
641174:	8b 76 14             	mov    0x14(%esi),%esi
641177:	50                   	push   %eax
641178:	e8 73 f2 ff ff       	call   0x6403f0
64117d:	8b 45 f0             	mov    -0x10(%ebp),%eax
641180:	3b 70 18             	cmp    0x18(%eax),%esi
641183:	74 3b                	je     0x6411c0
641185:	84 db                	test   %bl,%bl
641187:	74 37                	je     0x6411c0
641189:	8b 0e                	mov    (%esi),%ecx
64118b:	ff 75 10             	push   0x10(%ebp)
64118e:	ff 75 0c             	push   0xc(%ebp)
641191:	8b 01                	mov    (%ecx),%eax
641193:	ff 75 08             	push   0x8(%ebp)
641196:	ff 10                	call   *(%eax)
641198:	8b 4d fc             	mov    -0x4(%ebp),%ecx
64119b:	8b f8                	mov    %eax,%edi
64119d:	33 c0                	xor    %eax,%eax
64119f:	0f b6 db             	movzbl %bl,%ebx
6411a2:	83 ff fb             	cmp    $0xfffffffb,%edi
6411a5:	0f 44 d8             	cmove  %eax,%ebx
6411a8:	8d 45 08             	lea    0x8(%ebp),%eax
6411ab:	50                   	push   %eax
6411ac:	8d 45 f0             	lea    -0x10(%ebp),%eax
6411af:	83 c6 04             	add    $0x4,%esi
6411b2:	50                   	push   %eax
6411b3:	e8 38 f2 ff ff       	call   0x6403f0
6411b8:	8b 45 f0             	mov    -0x10(%ebp),%eax
6411bb:	3b 70 18             	cmp    0x18(%eax),%esi
6411be:	75 c5                	jne    0x641185
6411c0:	8b 4d f8             	mov    -0x8(%ebp),%ecx
6411c3:	e8 d8 a5 ff ff       	call   0x63b7a0
6411c8:	8b c7                	mov    %edi,%eax
6411ca:	5f                   	pop    %edi
6411cb:	5e                   	pop    %esi
6411cc:	5b                   	pop    %ebx
6411cd:	8b e5                	mov    %ebp,%esp
6411cf:	5d                   	pop    %ebp
6411d0:	c2 0c 00             	ret    $0xc
6411d3:	cc                   	int3
6411d4:	cc                   	int3
6411d5:	cc                   	int3
6411d6:	cc                   	int3
6411d7:	cc                   	int3
6411d8:	cc                   	int3
6411d9:	cc                   	int3
6411da:	cc                   	int3
6411db:	cc                   	int3
6411dc:	cc                   	int3
6411dd:	cc                   	int3
6411de:	cc                   	int3
6411df:	cc                   	int3
6411e0:	55                   	push   %ebp
6411e1:	8b ec                	mov    %esp,%ebp
6411e3:	6a ff                	push   $0xffffffff
6411e5:	68 a8 47 66 00       	push   $0x6647a8
6411ea:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
6411f0:	50                   	push   %eax
6411f1:	83 ec 20             	sub    $0x20,%esp
6411f4:	a1 d4 89 72 00       	mov    0x7289d4,%eax
6411f9:	33 c5                	xor    %ebp,%eax
6411fb:	89 45 f0             	mov    %eax,-0x10(%ebp)
6411fe:	56                   	push   %esi
6411ff:	50                   	push   %eax
641200:	8d 45 f4             	lea    -0xc(%ebp),%eax
641203:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
641209:	8b f1                	mov    %ecx,%esi
64120b:	80 be a1 02 00 00 00 	cmpb   $0x0,0x2a1(%esi)
641212:	74 4f                	je     0x641263
641214:	81 c6 f0 00 00 00    	add    $0xf0,%esi
64121a:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
64121e:	72 04                	jb     0x641224
641220:	8b 06                	mov    (%esi),%eax
641222:	eb 02                	jmp    0x641226
641224:	8b c6                	mov    %esi,%eax