422f51:	8b 65 e8             	mov    -0x18(%ebp),%esp
422f54:	e8 b6 34 ff ff       	call   0x41640f
422f59:	33 db                	xor    %ebx,%ebx
422f5b:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
422f5e:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
422f62:	8b 7d d4             	mov    -0x2c(%ebp),%edi
422f65:	8b 75 d0             	mov    -0x30(%ebp),%esi
422f68:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
422f6b:	75 1c                	jne    0x422f89
422f6d:	8d 04 36             	lea    (%esi,%esi,1),%eax
422f70:	50                   	push   %eax
422f71:	e8 16 34 ff ff       	call   0x41638c
422f76:	59                   	pop    %ecx
422f77:	89 45 e4             	mov    %eax,-0x1c(%ebp)
422f7a:	3b c3                	cmp    %ebx,%eax
422f7c:	0f 84 60 01 00 00    	je     0x4230e2
422f82:	c7 45 c8 01 00 00 00 	movl   $0x1,-0x38(%ebp)
422f89:	56                   	push   %esi
422f8a:	ff 75 e4             	push   -0x1c(%ebp)
422f8d:	ff 75 14             	push   0x14(%ebp)
422f90:	ff 75 10             	push   0x10(%ebp)
422f93:	6a 01                	push   $0x1
422f95:	ff 75 20             	push   0x20(%ebp)
422f98:	ff 15 a4 03 4b 00    	call   *0x4b03a4
422f9e:	85 c0                	test   %eax,%eax
422fa0:	0f 84 e6 00 00 00    	je     0x42308c
422fa6:	53                   	push   %ebx
422fa7:	53                   	push   %ebx
422fa8:	56                   	push   %esi
422fa9:	ff 75 e4             	push   -0x1c(%ebp)
422fac:	ff 75 0c             	push   0xc(%ebp)
422faf:	ff 75 08             	push   0x8(%ebp)
422fb2:	ff 15 a8 01 4b 00    	call   *0x4b01a8
422fb8:	8b f8                	mov    %eax,%edi
422fba:	89 7d d4             	mov    %edi,-0x2c(%ebp)
422fbd:	3b fb                	cmp    %ebx,%edi
422fbf:	0f 84 c7 00 00 00    	je     0x42308c
422fc5:	f6 45 0d 04          	testb  $0x4,0xd(%ebp)
422fc9:	74 2d                	je     0x422ff8
422fcb:	39 5d 1c             	cmp    %ebx,0x1c(%ebp)
422fce:	0f 84 b8 00 00 00    	je     0x42308c
422fd4:	3b 7d 1c             	cmp    0x1c(%ebp),%edi
422fd7:	0f 8f af 00 00 00    	jg     0x42308c
422fdd:	ff 75 1c             	push   0x1c(%ebp)
422fe0:	ff 75 18             	push   0x18(%ebp)
422fe3:	56                   	push   %esi
422fe4:	ff 75 e4             	push   -0x1c(%ebp)
422fe7:	ff 75 0c             	push   0xc(%ebp)
422fea:	ff 75 08             	push   0x8(%ebp)
422fed:	ff 15 a8 01 4b 00    	call   *0x4b01a8
422ff3:	e9 94 00 00 00       	jmp    0x42308c
422ff8:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
422fff:	8d 04 3f             	lea    (%edi,%edi,1),%eax
423002:	83 c0 03             	add    $0x3,%eax
423005:	83 e0 fc             	and    $0xfffffffc,%eax
423008:	e8 e3 36 ff ff       	call   0x4166f0
42300d:	89 65 e8             	mov    %esp,-0x18(%ebp)
423010:	8b c4                	mov    %esp,%eax
423012:	89 45 e0             	mov    %eax,-0x20(%ebp)
423015:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
423019:	eb 1b                	jmp    0x423036
42301b:	33 c0                	xor    %eax,%eax
42301d:	40                   	inc    %eax
42301e:	c3                   	ret
42301f:	8b 65 e8             	mov    -0x18(%ebp),%esp
423022:	e8 e8 33 ff ff       	call   0x41640f
423027:	33 db                	xor    %ebx,%ebx
423029:	89 5d e0             	mov    %ebx,-0x20(%ebp)
42302c:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
423030:	8b 7d d4             	mov    -0x2c(%ebp),%edi
423033:	8b 75 d0             	mov    -0x30(%ebp),%esi
423036:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
423039:	75 18                	jne    0x423053
42303b:	8d 04 3f             	lea    (%edi,%edi,1),%eax
42303e:	50                   	push   %eax
42303f:	e8 48 33 ff ff       	call   0x41638c
423044:	59                   	pop    %ecx
423045:	89 45 e0             	mov    %eax,-0x20(%ebp)
423048:	3b c3                	cmp    %ebx,%eax
42304a:	74 40                	je     0x42308c
42304c:	c7 45 cc 01 00 00 00 	movl   $0x1,-0x34(%ebp)
423053:	57                   	push   %edi
423054:	ff 75 e0             	push   -0x20(%ebp)
423057:	56                   	push   %esi
423058:	ff 75 e4             	push   -0x1c(%ebp)
42305b:	ff 75 0c             	push   0xc(%ebp)
42305e:	ff 75 08             	push   0x8(%ebp)
423061:	ff 15 a8 01 4b 00    	call   *0x4b01a8
423067:	85 c0                	test   %eax,%eax
423069:	74 21                	je     0x42308c
42306b:	53                   	push   %ebx
42306c:	53                   	push   %ebx
42306d:	39 5d 1c             	cmp    %ebx,0x1c(%ebp)
423070:	75 04                	jne    0x423076
423072:	53                   	push   %ebx
423073:	53                   	push   %ebx
423074:	eb 06                	jmp    0x42307c
423076:	ff 75 1c             	push   0x1c(%ebp)
423079:	ff 75 18             	push   0x18(%ebp)
42307c:	57                   	push   %edi
42307d:	ff 75 e0             	push   -0x20(%ebp)
423080:	53                   	push   %ebx
423081:	ff 75 20             	push   0x20(%ebp)
423084:	ff 15 a0 03 4b 00    	call   *0x4b03a0
42308a:	8b f8                	mov    %eax,%edi
42308c:	39 5d cc             	cmp    %ebx,-0x34(%ebp)
42308f:	74 09                	je     0x42309a
423091:	ff 75 e0             	push   -0x20(%ebp)
423094:	e8 05 33 ff ff       	call   0x41639e
423099:	59                   	pop    %ecx
42309a:	39 5d c8             	cmp    %ebx,-0x38(%ebp)
42309d:	74 09                	je     0x4230a8
42309f:	ff 75 e4             	push   -0x1c(%ebp)
4230a2:	e8 f7 32 ff ff       	call   0x41639e
4230a7:	59                   	pop    %ecx
4230a8:	8b c7                	mov    %edi,%eax
4230aa:	e9 5b 01 00 00       	jmp    0x42320a
4230af:	89 5d d8             	mov    %ebx,-0x28(%ebp)
4230b2:	33 ff                	xor    %edi,%edi
4230b4:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
4230b7:	39 5d 08             	cmp    %ebx,0x8(%ebp)
4230ba:	75 08                	jne    0x4230c4
4230bc:	a1 24 cb 4a 00       	mov    0x4acb24,%eax
4230c1:	89 45 08             	mov    %eax,0x8(%ebp)
4230c4:	39 5d 20             	cmp    %ebx,0x20(%ebp)
4230c7:	75 08                	jne    0x4230d1
4230c9:	a1 34 cb 4a 00       	mov    0x4acb34,%eax
4230ce:	89 45 20             	mov    %eax,0x20(%ebp)
4230d1:	ff 75 08             	push   0x8(%ebp)
4230d4:	e8 dd 46 00 00       	call   0x4277b6
4230d9:	59                   	pop    %ecx
4230da:	89 45 c0             	mov    %eax,-0x40(%ebp)
4230dd:	83 f8 ff             	cmp    $0xffffffff,%eax
4230e0:	75 07                	jne    0x4230e9
4230e2:	33 c0                	xor    %eax,%eax
4230e4:	e9 21 01 00 00       	jmp    0x42320a
4230e9:	3b 45 20             	cmp    0x20(%ebp),%eax
4230ec:	0f 84 ee 00 00 00    	je     0x4231e0
4230f2:	53                   	push   %ebx
4230f3:	53                   	push   %ebx
4230f4:	8d 4d 14             	lea    0x14(%ebp),%ecx
4230f7:	51                   	push   %ecx
4230f8:	ff 75 10             	push   0x10(%ebp)
4230fb:	50                   	push   %eax
4230fc:	ff 75 20             	push   0x20(%ebp)
4230ff:	e8 f5 46 00 00       	call   0x4277f9
423104:	83 c4 18             	add    $0x18,%esp
423107:	89 45 d8             	mov    %eax,-0x28(%ebp)
42310a:	3b c3                	cmp    %ebx,%eax
42310c:	74 d4                	je     0x4230e2
42310e:	53                   	push   %ebx
42310f:	53                   	push   %ebx
423110:	ff 75 14             	push   0x14(%ebp)
423113:	50                   	push   %eax
423114:	ff 75 0c             	push   0xc(%ebp)
423117:	ff 75 08             	push   0x8(%ebp)
42311a:	ff 15 a4 01 4b 00    	call   *0x4b01a4
423120:	8b f0                	mov    %eax,%esi
423122:	89 75 dc             	mov    %esi,-0x24(%ebp)
423125:	3b f3                	cmp    %ebx,%esi
423127:	0f 84 a2 00 00 00    	je     0x4231cf
42312d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
423130:	83 c0 03             	add    $0x3,%eax
423133:	83 e0 fc             	and    $0xfffffffc,%eax
423136:	e8 b5 35 ff ff       	call   0x4166f0
42313b:	89 65 e8             	mov    %esp,-0x18(%ebp)
42313e:	8b fc                	mov    %esp,%edi
423140:	89 7d bc             	mov    %edi,-0x44(%ebp)
423143:	56                   	push   %esi
423144:	53                   	push   %ebx
423145:	57                   	push   %edi
423146:	e8 f5 50 ff ff       	call   0x418240
42314b:	83 c4 0c             	add    $0xc,%esp
42314e:	eb 10                	jmp    0x423160
423150:	33 c0                	xor    %eax,%eax
423152:	40                   	inc    %eax
423153:	c3                   	ret
423154:	8b 65 e8             	mov    -0x18(%ebp),%esp
423157:	e8 b3 32 ff ff       	call   0x41640f
42315c:	33 db                	xor    %ebx,%ebx
42315e:	33 ff                	xor    %edi,%edi
423160:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
423164:	3b fb                	cmp    %ebx,%edi
423166:	75 23                	jne    0x42318b
423168:	ff 75 dc             	push   -0x24(%ebp)
42316b:	e8 1c 32 ff ff       	call   0x41638c
423170:	59                   	pop    %ecx
423171:	8b f8                	mov    %eax,%edi
423173:	3b fb                	cmp    %ebx,%edi
423175:	74 31                	je     0x4231a8
423177:	ff 75 dc             	push   -0x24(%ebp)
42317a:	53                   	push   %ebx
42317b:	57                   	push   %edi
42317c:	e8 bf 50 ff ff       	call   0x418240
423181:	83 c4 0c             	add    $0xc,%esp
423184:	c7 45 c4 01 00 00 00 	movl   $0x1,-0x3c(%ebp)
42318b:	ff 75 dc             	push   -0x24(%ebp)
42318e:	57                   	push   %edi
42318f:	ff 75 14             	push   0x14(%ebp)
423192:	ff 75 d8             	push   -0x28(%ebp)
423195:	ff 75 0c             	push   0xc(%ebp)
423198:	ff 75 08             	push   0x8(%ebp)
42319b:	ff 15 a4 01 4b 00    	call   *0x4b01a4
4231a1:	89 45 dc             	mov    %eax,-0x24(%ebp)
4231a4:	3b c3                	cmp    %ebx,%eax
4231a6:	75 04                	jne    0x4231ac
4231a8:	33 f6                	xor    %esi,%esi
4231aa:	eb 26                	jmp    0x4231d2
4231ac:	ff 75 1c             	push   0x1c(%ebp)
4231af:	ff 75 18             	push   0x18(%ebp)
4231b2:	8d 45 dc             	lea    -0x24(%ebp),%eax
4231b5:	50                   	push   %eax
4231b6:	57                   	push   %edi
4231b7:	ff 75 20             	push   0x20(%ebp)
4231ba:	ff 75 c0             	push   -0x40(%ebp)
4231bd:	e8 37 46 00 00       	call   0x4277f9
4231c2:	83 c4 18             	add    $0x18,%esp
4231c5:	8b f0                	mov    %eax,%esi
4231c7:	f7 de                	neg    %esi
4231c9:	1b f6                	sbb    %esi,%esi
4231cb:	f7 de                	neg    %esi
4231cd:	eb 03                	jmp    0x4231d2
4231cf:	8b 75 b8             	mov    -0x48(%ebp),%esi
4231d2:	39 5d c4             	cmp    %ebx,-0x3c(%ebp)
4231d5:	74 23                	je     0x4231fa
4231d7:	57                   	push   %edi
4231d8:	e8 c1 31 ff ff       	call   0x41639e
4231dd:	59                   	pop    %ecx
4231de:	eb 1a                	jmp    0x4231fa
4231e0:	ff 75 1c             	push   0x1c(%ebp)
4231e3:	ff 75 18             	push   0x18(%ebp)
4231e6:	ff 75 14             	push   0x14(%ebp)
4231e9:	ff 75 10             	push   0x10(%ebp)
4231ec:	ff 75 0c             	push   0xc(%ebp)
4231ef:	ff 75 08             	push   0x8(%ebp)
4231f2:	ff 15 a4 01 4b 00    	call   *0x4b01a4
4231f8:	8b f0                	mov    %eax,%esi
4231fa:	39 5d d8             	cmp    %ebx,-0x28(%ebp)
4231fd:	74 09                	je     0x423208
4231ff:	ff 75 d8             	push   -0x28(%ebp)
423202:	e8 97 31 ff ff       	call   0x41639e
423207:	59                   	pop    %ecx
423208:	8b c6                	mov    %esi,%eax
42320a:	8d 65 ac             	lea    -0x54(%ebp),%esp
42320d:	e8 11 50 ff ff       	call   0x418223
423212:	c3                   	ret
423213:	6a 1c                	push   $0x1c
423215:	68 f0 29 49 00       	push   $0x4929f0
42321a:	e8 c9 4f ff ff       	call   0x4181e8
42321f:	33 f6                	xor    %esi,%esi
423221:	39 35 40 cb 4a 00    	cmp    %esi,0x4acb40
423227:	75 35                	jne    0x42325e
423229:	8d 45 e4             	lea    -0x1c(%ebp),%eax
42322c:	50                   	push   %eax
42322d:	33 ff                	xor    %edi,%edi
42322f:	47                   	inc    %edi
423230:	57                   	push   %edi
423231:	68 c4 29 49 00       	push   $0x4929c4
423236:	57                   	push   %edi
423237:	ff 15 b0 01 4b 00    	call   *0x4b01b0
42323d:	85 c0                	test   %eax,%eax
42323f:	74 08                	je     0x423249
423241:	89 3d 40 cb 4a 00    	mov    %edi,0x4acb40
423247:	eb 15                	jmp    0x42325e
423249:	ff 15 9c 03 4b 00    	call   *0x4b039c
42324f:	83 f8 78             	cmp    $0x78,%eax
423252:	75 0a                	jne    0x42325e
423254:	c7 05 40 cb 4a 00 02 	movl   $0x2,0x4acb40
42325b:	00 00 00
42325e:	a1 40 cb 4a 00       	mov    0x4acb40,%eax
423263:	83 f8 02             	cmp    $0x2,%eax
423266:	0f 84 ea 00 00 00    	je     0x423356
42326c:	3b c6                	cmp    %esi,%eax
42326e:	0f 84 e2 00 00 00    	je     0x423356
423274:	83 f8 01             	cmp    $0x1,%eax
423277:	0f 85 ff 00 00 00    	jne    0x42337c
42327d:	89 75 dc             	mov    %esi,-0x24(%ebp)
423280:	89 75 e0             	mov    %esi,-0x20(%ebp)
423283:	39 75 18             	cmp    %esi,0x18(%ebp)
423286:	75 08                	jne    0x423290
423288:	a1 34 cb 4a 00       	mov    0x4acb34,%eax
42328d:	89 45 18             	mov    %eax,0x18(%ebp)
423290:	56                   	push   %esi
423291:	56                   	push   %esi
423292:	ff 75 10             	push   0x10(%ebp)
423295:	ff 75 0c             	push   0xc(%ebp)
423298:	33 c0                	xor    %eax,%eax
42329a:	39 75 20             	cmp    %esi,0x20(%ebp)
42329d:	0f 95 c0             	setne  %al
4232a0:	8d 04 c5 01 00 00 00 	lea    0x1(,%eax,8),%eax
4232a7:	50                   	push   %eax
4232a8:	ff 75 18             	push   0x18(%ebp)
4232ab:	ff 15 a4 03 4b 00    	call   *0x4b03a4
4232b1:	8b f8                	mov    %eax,%edi
4232b3:	89 7d d8             	mov    %edi,-0x28(%ebp)
4232b6:	85 ff                	test   %edi,%edi
4232b8:	0f 84 be 00 00 00    	je     0x42337c
4232be:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4232c2:	8d 1c 3f             	lea    (%edi,%edi,1),%ebx
4232c5:	8b c3                	mov    %ebx,%eax
4232c7:	83 c0 03             	add    $0x3,%eax
4232ca:	83 e0 fc             	and    $0xfffffffc,%eax
4232cd:	e8 1e 34 ff ff       	call   0x4166f0
4232d2:	89 65 e8             	mov    %esp,-0x18(%ebp)
4232d5:	8b f4                	mov    %esp,%esi
4232d7:	89 75 d4             	mov    %esi,-0x2c(%ebp)
4232da:	53                   	push   %ebx
4232db:	6a 00                	push   $0x0
4232dd:	56                   	push   %esi
4232de:	e8 5d 4f ff ff       	call   0x418240
4232e3:	83 c4 0c             	add    $0xc,%esp
4232e6:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4232ea:	eb 15                	jmp    0x423301
4232ec:	33 c0                	xor    %eax,%eax
4232ee:	40                   	inc    %eax
4232ef:	c3                   	ret
4232f0:	8b 65 e8             	mov    -0x18(%ebp),%esp
4232f3:	e8 17 31 ff ff       	call   0x41640f
4232f8:	33 f6                	xor    %esi,%esi
4232fa:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4232fe:	8b 7d d8             	mov    -0x28(%ebp),%edi
423301:	85 f6                	test   %esi,%esi
423303:	75 17                	jne    0x42331c
423305:	57                   	push   %edi
423306:	6a 02                	push   $0x2
423308:	e8 3b 78 ff ff       	call   0x41ab48
42330d:	59                   	pop    %ecx
42330e:	59                   	pop    %ecx
42330f:	8b f0                	mov    %eax,%esi
423311:	85 f6                	test   %esi,%esi
423313:	74 67                	je     0x42337c
423315:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
42331c:	57                   	push   %edi
42331d:	56                   	push   %esi
42331e:	ff 75 10             	push   0x10(%ebp)
423321:	ff 75 0c             	push   0xc(%ebp)
423324:	6a 01                	push   $0x1
423326:	ff 75 18             	push   0x18(%ebp)
423329:	ff 15 a4 03 4b 00    	call   *0x4b03a4
42332f:	85 c0                	test   %eax,%eax
423331:	74 11                	je     0x423344
423333:	ff 75 14             	push   0x14(%ebp)
423336:	50                   	push   %eax
423337:	56                   	push   %esi
423338:	ff 75 08             	push   0x8(%ebp)
42333b:	ff 15 b0 01 4b 00    	call   *0x4b01b0
423341:	89 45 dc             	mov    %eax,-0x24(%ebp)
423344:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
423348:	74 07                	je     0x423351
42334a:	56                   	push   %esi