423101:	81 fa ff ff ff 3f    	cmp    $0x3fffffff,%edx
423107:	0f 83 f7 fe ff ff    	jae    0x423004
42310d:	6a 04                	push   $0x4
42310f:	52                   	push   %edx
423110:	50                   	push   %eax
423111:	e8 4a 3b fe ff       	call   0x406c60
423116:	53                   	push   %ebx
423117:	89 45 f4             	mov    %eax,-0xc(%ebp)
42311a:	e8 f1 3a fe ff       	call   0x406c10
42311f:	8b 45 f4             	mov    -0xc(%ebp),%eax
423122:	83 c4 10             	add    $0x10,%esp
423125:	85 c0                	test   %eax,%eax
423127:	0f 84 d7 fe ff ff    	je     0x423004
42312d:	8b 55 f8             	mov    -0x8(%ebp),%edx
423130:	8b fb                	mov    %ebx,%edi
423132:	89 34 90             	mov    %esi,(%eax,%edx,4)
423135:	89 5c 90 04          	mov    %ebx,0x4(%eax,%edx,4)
423139:	a3 9c f7 43 00       	mov    %eax,0x43f79c
42313e:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
423141:	0f 84 90 00 00 00    	je     0x4231d7
423147:	8d 4e 02             	lea    0x2(%esi),%ecx
42314a:	66 8b 06             	mov    (%esi),%ax
42314d:	83 c6 02             	add    $0x2,%esi
423150:	66 3b c3             	cmp    %bx,%ax
423153:	75 f5                	jne    0x42314a
423155:	2b f1                	sub    %ecx,%esi
423157:	d1 fe                	sar    $1,%esi
423159:	6a 02                	push   $0x2
42315b:	8d 46 02             	lea    0x2(%esi),%eax
42315e:	50                   	push   %eax
42315f:	89 45 f4             	mov    %eax,-0xc(%ebp)
423162:	e8 49 3a fe ff       	call   0x406bb0
423167:	8b f0                	mov    %eax,%esi
423169:	59                   	pop    %ecx
42316a:	59                   	pop    %ecx
42316b:	85 f6                	test   %esi,%esi
42316d:	75 08                	jne    0x423177
42316f:	53                   	push   %ebx
423170:	e8 9b 3a fe ff       	call   0x406c10
423175:	eb 4e                	jmp    0x4231c5
423177:	ff 75 08             	push   0x8(%ebp)
42317a:	ff 75 f4             	push   -0xc(%ebp)
42317d:	56                   	push   %esi
42317e:	e8 05 f9 fe ff       	call   0x412a88
423183:	83 c4 0c             	add    $0xc,%esp
423186:	85 c0                	test   %eax,%eax
423188:	75 71                	jne    0x4231fb
42318a:	8b 45 f0             	mov    -0x10(%ebp),%eax
42318d:	33 d2                	xor    %edx,%edx
42318f:	8d 48 01             	lea    0x1(%eax),%ecx
423192:	66 89 14 46          	mov    %dx,(%esi,%eax,2)
423196:	8b 45 ec             	mov    -0x14(%ebp),%eax
423199:	8d 0c 4e             	lea    (%esi,%ecx,2),%ecx
42319c:	0f b7 c0             	movzwl %ax,%eax
42319f:	f7 d8                	neg    %eax
4231a1:	1b c0                	sbb    %eax,%eax
4231a3:	23 c1                	and    %ecx,%eax
4231a5:	50                   	push   %eax
4231a6:	56                   	push   %esi
4231a7:	ff 15 4c 10 43 00    	call   *0x43104c
4231ad:	85 c0                	test   %eax,%eax
4231af:	75 1f                	jne    0x4231d0
4231b1:	e8 bb 94 ff ff       	call   0x41c671
4231b6:	56                   	push   %esi
4231b7:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
4231bd:	e8 4e 3a fe ff       	call   0x406c10
4231c2:	83 cb ff             	or     $0xffffffff,%ebx
4231c5:	59                   	pop    %ecx
4231c6:	57                   	push   %edi
4231c7:	e8 44 3a fe ff       	call   0x406c10
4231cc:	8b c3                	mov    %ebx,%eax
4231ce:	eb 25                	jmp    0x4231f5
4231d0:	56                   	push   %esi
4231d1:	e8 3a 3a fe ff       	call   0x406c10
4231d6:	59                   	pop    %ecx
4231d7:	57                   	push   %edi
4231d8:	e8 33 3a fe ff       	call   0x406c10
4231dd:	33 c0                	xor    %eax,%eax
4231df:	eb 14                	jmp    0x4231f5
4231e1:	e8 8b 94 ff ff       	call   0x41c671
4231e6:	56                   	push   %esi
4231e7:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4231ed:	e8 1e 3a fe ff       	call   0x406c10
4231f2:	83 c8 ff             	or     $0xffffffff,%eax
4231f5:	59                   	pop    %ecx
4231f6:	5f                   	pop    %edi
4231f7:	5e                   	pop    %esi
4231f8:	5b                   	pop    %ebx
4231f9:	c9                   	leave
4231fa:	c3                   	ret
4231fb:	53                   	push   %ebx
4231fc:	53                   	push   %ebx
4231fd:	53                   	push   %ebx
4231fe:	53                   	push   %ebx
4231ff:	53                   	push   %ebx
423200:	e8 16 a2 fe ff       	call   0x40d41b
423205:	cc                   	int3
423206:	8b ff                	mov    %edi,%edi
423208:	55                   	push   %ebp
423209:	8b ec                	mov    %esp,%ebp
42320b:	51                   	push   %ecx
42320c:	51                   	push   %ecx
42320d:	57                   	push   %edi
42320e:	8b 7d 08             	mov    0x8(%ebp),%edi
423211:	85 ff                	test   %edi,%edi
423213:	75 05                	jne    0x42321a
423215:	33 c0                	xor    %eax,%eax
423217:	5f                   	pop    %edi
423218:	c9                   	leave
423219:	c3                   	ret
42321a:	33 d2                	xor    %edx,%edx
42321c:	8b c7                	mov    %edi,%eax
42321e:	8b ca                	mov    %edx,%ecx
423220:	89 55 fc             	mov    %edx,-0x4(%ebp)
423223:	39 17                	cmp    %edx,(%edi)
423225:	74 08                	je     0x42322f
423227:	8d 40 04             	lea    0x4(%eax),%eax
42322a:	41                   	inc    %ecx
42322b:	39 10                	cmp    %edx,(%eax)
42322d:	75 f8                	jne    0x423227
42322f:	56                   	push   %esi
423230:	8d 41 01             	lea    0x1(%ecx),%eax
423233:	6a 04                	push   $0x4
423235:	50                   	push   %eax
423236:	e8 75 39 fe ff       	call   0x406bb0
42323b:	8b f0                	mov    %eax,%esi
42323d:	59                   	pop    %ecx
42323e:	59                   	pop    %ecx
42323f:	85 f6                	test   %esi,%esi
423241:	74 6f                	je     0x4232b2
423243:	8b 0f                	mov    (%edi),%ecx
423245:	85 c9                	test   %ecx,%ecx
423247:	74 58                	je     0x4232a1
423249:	53                   	push   %ebx
42324a:	8b de                	mov    %esi,%ebx
42324c:	2b df                	sub    %edi,%ebx
42324e:	8d 51 02             	lea    0x2(%ecx),%edx
423251:	66 8b 01             	mov    (%ecx),%ax
423254:	83 c1 02             	add    $0x2,%ecx
423257:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
42325b:	75 f4                	jne    0x423251
42325d:	2b ca                	sub    %edx,%ecx
42325f:	d1 f9                	sar    $1,%ecx
423261:	6a 02                	push   $0x2
423263:	8d 41 01             	lea    0x1(%ecx),%eax
423266:	50                   	push   %eax
423267:	89 45 f8             	mov    %eax,-0x8(%ebp)
42326a:	e8 41 39 fe ff       	call   0x406bb0
42326f:	89 04 3b             	mov    %eax,(%ebx,%edi,1)
423272:	33 c0                	xor    %eax,%eax
423274:	50                   	push   %eax
423275:	e8 96 39 fe ff       	call   0x406c10
42327a:	83 c4 0c             	add    $0xc,%esp
42327d:	83 3c 3b 00          	cmpl   $0x0,(%ebx,%edi,1)
423281:	74 2f                	je     0x4232b2
423283:	ff 37                	push   (%edi)
423285:	ff 75 f8             	push   -0x8(%ebp)
423288:	ff 34 3b             	push   (%ebx,%edi,1)
42328b:	e8 f8 f7 fe ff       	call   0x412a88
423290:	83 c4 0c             	add    $0xc,%esp
423293:	85 c0                	test   %eax,%eax
423295:	75 20                	jne    0x4232b7
423297:	83 c7 04             	add    $0x4,%edi
42329a:	8b 0f                	mov    (%edi),%ecx
42329c:	85 c9                	test   %ecx,%ecx
42329e:	75 ae                	jne    0x42324e
4232a0:	5b                   	pop    %ebx
4232a1:	33 c0                	xor    %eax,%eax
4232a3:	50                   	push   %eax
4232a4:	e8 67 39 fe ff       	call   0x406c10
4232a9:	59                   	pop    %ecx
4232aa:	8b c6                	mov    %esi,%eax
4232ac:	5e                   	pop    %esi
4232ad:	e9 65 ff ff ff       	jmp    0x423217
4232b2:	e8 da 8b ff ff       	call   0x41be91
4232b7:	33 c0                	xor    %eax,%eax
4232b9:	50                   	push   %eax
4232ba:	50                   	push   %eax
4232bb:	50                   	push   %eax
4232bc:	50                   	push   %eax
4232bd:	50                   	push   %eax
4232be:	e8 58 a1 fe ff       	call   0x40d41b
4232c3:	cc                   	int3
4232c4:	a1 9c f7 43 00       	mov    0x43f79c,%eax
4232c9:	3b 05 a0 f7 43 00    	cmp    0x43f7a0,%eax
4232cf:	75 0c                	jne    0x4232dd
4232d1:	50                   	push   %eax
4232d2:	e8 2f ff ff ff       	call   0x423206
4232d7:	59                   	pop    %ecx
4232d8:	a3 9c f7 43 00       	mov    %eax,0x43f79c
4232dd:	c3                   	ret
4232de:	8b ff                	mov    %edi,%edi
4232e0:	55                   	push   %ebp
4232e1:	8b ec                	mov    %esp,%ebp
4232e3:	53                   	push   %ebx
4232e4:	56                   	push   %esi
4232e5:	57                   	push   %edi
4232e6:	8b 3d 9c f7 43 00    	mov    0x43f79c,%edi
4232ec:	8b f7                	mov    %edi,%esi
4232ee:	8b 07                	mov    (%edi),%eax
4232f0:	85 c0                	test   %eax,%eax
4232f2:	74 2d                	je     0x423321
4232f4:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4232f7:	53                   	push   %ebx
4232f8:	50                   	push   %eax
4232f9:	ff 75 08             	push   0x8(%ebp)
4232fc:	e8 72 75 00 00       	call   0x42a873
423301:	83 c4 0c             	add    $0xc,%esp
423304:	85 c0                	test   %eax,%eax
423306:	75 10                	jne    0x423318
423308:	8b 06                	mov    (%esi),%eax
42330a:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
42330e:	83 f8 3d             	cmp    $0x3d,%eax
423311:	74 1c                	je     0x42332f
423313:	66 85 c0             	test   %ax,%ax
423316:	74 17                	je     0x42332f
423318:	83 c6 04             	add    $0x4,%esi
42331b:	8b 06                	mov    (%esi),%eax
42331d:	85 c0                	test   %eax,%eax
42331f:	75 d6                	jne    0x4232f7
423321:	2b f7                	sub    %edi,%esi
423323:	c1 fe 02             	sar    $0x2,%esi
423326:	f7 de                	neg    %esi
423328:	5f                   	pop    %edi
423329:	8b c6                	mov    %esi,%eax
42332b:	5e                   	pop    %esi
42332c:	5b                   	pop    %ebx
42332d:	5d                   	pop    %ebp
42332e:	c3                   	ret
42332f:	2b f7                	sub    %edi,%esi
423331:	c1 fe 02             	sar    $0x2,%esi
423334:	eb f2                	jmp    0x423328
423336:	8b ff                	mov    %edi,%edi
423338:	55                   	push   %ebp
423339:	8b ec                	mov    %esp,%ebp
42333b:	5d                   	pop    %ebp
42333c:	e9 3a fc ff ff       	jmp    0x422f7b
423341:	8b ff                	mov    %edi,%edi
423343:	56                   	push   %esi
423344:	57                   	push   %edi
423345:	bf e8 fb 43 00       	mov    $0x43fbe8,%edi
42334a:	33 f6                	xor    %esi,%esi
42334c:	6a 00                	push   $0x0
42334e:	68 a0 0f 00 00       	push   $0xfa0
423353:	57                   	push   %edi
423354:	e8 6f b2 ff ff       	call   0x41e5c8
423359:	85 c0                	test   %eax,%eax
42335b:	74 18                	je     0x423375
42335d:	ff 05 38 fd 43 00    	incl   0x43fd38
423363:	83 c6 18             	add    $0x18,%esi
423366:	83 c7 18             	add    $0x18,%edi
423369:	81 fe 50 01 00 00    	cmp    $0x150,%esi
42336f:	72 db                	jb     0x42334c
423371:	b0 01                	mov    $0x1,%al
423373:	eb 0a                	jmp    0x42337f
423375:	6a 00                	push   $0x0
423377:	e8 1d 00 00 00       	call   0x423399
42337c:	59                   	pop    %ecx
42337d:	32 c0                	xor    %al,%al
42337f:	5f                   	pop    %edi
423380:	5e                   	pop    %esi
423381:	c3                   	ret
423382:	8b ff                	mov    %edi,%edi
423384:	55                   	push   %ebp
423385:	8b ec                	mov    %esp,%ebp
423387:	6b 45 08 18          	imul   $0x18,0x8(%ebp),%eax
42338b:	05 e8 fb 43 00       	add    $0x43fbe8,%eax
423390:	50                   	push   %eax
423391:	ff 15 14 10 43 00    	call   *0x431014
423397:	5d                   	pop    %ebp
423398:	c3                   	ret
423399:	8b ff                	mov    %edi,%edi
42339b:	56                   	push   %esi
42339c:	8b 35 38 fd 43 00    	mov    0x43fd38,%esi
4233a2:	85 f6                	test   %esi,%esi
4233a4:	74 20                	je     0x4233c6
4233a6:	6b c6 18             	imul   $0x18,%esi,%eax
4233a9:	57                   	push   %edi
4233aa:	8d b8 d0 fb 43 00    	lea    0x43fbd0(%eax),%edi
4233b0:	57                   	push   %edi
4233b1:	ff 15 1c 11 43 00    	call   *0x43111c
4233b7:	ff 0d 38 fd 43 00    	decl   0x43fd38
4233bd:	83 ef 18             	sub    $0x18,%edi
4233c0:	83 ee 01             	sub    $0x1,%esi
4233c3:	75 eb                	jne    0x4233b0
4233c5:	5f                   	pop    %edi
4233c6:	b0 01                	mov    $0x1,%al
4233c8:	5e                   	pop    %esi
4233c9:	c3                   	ret
4233ca:	8b ff                	mov    %edi,%edi
4233cc:	55                   	push   %ebp
4233cd:	8b ec                	mov    %esp,%ebp
4233cf:	6b 45 08 18          	imul   $0x18,0x8(%ebp),%eax
4233d3:	05 e8 fb 43 00       	add    $0x43fbe8,%eax
4233d8:	50                   	push   %eax
4233d9:	ff 15 18 10 43 00    	call   *0x431018
4233df:	5d                   	pop    %ebp
4233e0:	c3                   	ret
4233e1:	e8 3d b3 ff ff       	call   0x41e723
4233e6:	6a 04                	push   $0x4
4233e8:	e8 95 ff ff ff       	call   0x423382
4233ed:	59                   	pop    %ecx
4233ee:	c3                   	ret
4233ef:	6a 04                	push   $0x4
4233f1:	e8 d4 ff ff ff       	call   0x4233ca
4233f6:	59                   	pop    %ecx
4233f7:	c3                   	ret
4233f8:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
4233fe:	8b 40 30             	mov    0x30(%eax),%eax
423401:	8b 40 68             	mov    0x68(%eax),%eax
423404:	c1 e8 08             	shr    $0x8,%eax
423407:	24 01                	and    $0x1,%al
423409:	c3                   	ret
42340a:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
423410:	8b 40 30             	mov    0x30(%eax),%eax
423413:	8b 40 10             	mov    0x10(%eax),%eax
423416:	8b 40 08             	mov    0x8(%eax),%eax
423419:	c1 e8 1f             	shr    $0x1f,%eax
42341c:	c3                   	ret
42341d:	8b ff                	mov    %edi,%edi
42341f:	55                   	push   %ebp
423420:	8b ec                	mov    %esp,%ebp
423422:	51                   	push   %ecx
423423:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
423427:	e8 de ff ff ff       	call   0x42340a
42342c:	84 c0                	test   %al,%al
42342e:	75 09                	jne    0x423439
423430:	8d 45 fc             	lea    -0x4(%ebp),%eax
423433:	50                   	push   %eax
423434:	e8 05 af ff ff       	call   0x41e33e
423439:	33 c0                	xor    %eax,%eax
42343b:	83 7d fc 01          	cmpl   $0x1,-0x4(%ebp)
42343f:	0f 95 c0             	setne  %al
423442:	c9                   	leave
423443:	c3                   	ret
423444:	83 3d 3c fd 43 00 00 	cmpl   $0x0,0x43fd3c
42344b:	75 0a                	jne    0x423457
42344d:	c7 05 3c fd 43 00 00 	movl   $0x4000,0x43fd3c
423454:	40 00 00
423457:	33 c0                	xor    %eax,%eax
423459:	c3                   	ret
42345a:	8b ff                	mov    %edi,%edi
42345c:	55                   	push   %ebp
42345d:	8b ec                	mov    %esp,%ebp
42345f:	51                   	push   %ecx
423460:	e8 84 8e ff ff       	call   0x41c2e9
423465:	8b 48 4c             	mov    0x4c(%eax),%ecx
423468:	89 4d fc             	mov    %ecx,-0x4(%ebp)
42346b:	8d 4d fc             	lea    -0x4(%ebp),%ecx
42346e:	51                   	push   %ecx