437270:	0f 84 41 ff ff ff    	je     0x4371b7
437276:	33 c0                	xor    %eax,%eax
437278:	50                   	push   %eax
437279:	50                   	push   %eax
43727a:	50                   	push   %eax
43727b:	50                   	push   %eax
43727c:	50                   	push   %eax
43727d:	e8 08 cb ff ff       	call   0x433d8a
437282:	cc                   	int3
437283:	8b ff                	mov    %edi,%edi
437285:	55                   	push   %ebp
437286:	8b ec                	mov    %esp,%ebp
437288:	8b 55 14             	mov    0x14(%ebp),%edx
43728b:	85 d2                	test   %edx,%edx
43728d:	74 26                	je     0x4372b5
43728f:	56                   	push   %esi
437290:	8b 75 10             	mov    0x10(%ebp),%esi
437293:	8b ce                	mov    %esi,%ecx
437295:	57                   	push   %edi
437296:	8d 79 01             	lea    0x1(%ecx),%edi
437299:	8a 01                	mov    (%ecx),%al
43729b:	41                   	inc    %ecx
43729c:	84 c0                	test   %al,%al
43729e:	75 f9                	jne    0x437299
4372a0:	2b cf                	sub    %edi,%ecx
4372a2:	8d 41 01             	lea    0x1(%ecx),%eax
4372a5:	50                   	push   %eax
4372a6:	8d 04 16             	lea    (%esi,%edx,1),%eax
4372a9:	56                   	push   %esi
4372aa:	50                   	push   %eax
4372ab:	e8 c0 78 ff ff       	call   0x42eb70
4372b0:	83 c4 0c             	add    $0xc,%esp
4372b3:	5f                   	pop    %edi
4372b4:	5e                   	pop    %esi
4372b5:	5d                   	pop    %ebp
4372b6:	c3                   	ret
4372b7:	8b ff                	mov    %edi,%edi
4372b9:	55                   	push   %ebp
4372ba:	8b ec                	mov    %esp,%ebp
4372bc:	51                   	push   %ecx
4372bd:	51                   	push   %ecx
4372be:	56                   	push   %esi
4372bf:	57                   	push   %edi
4372c0:	8b 7d 0c             	mov    0xc(%ebp),%edi
4372c3:	85 ff                	test   %edi,%edi
4372c5:	75 16                	jne    0x4372dd
4372c7:	e8 6a cb ff ff       	call   0x433e36
4372cc:	6a 16                	push   $0x16
4372ce:	5e                   	pop    %esi
4372cf:	89 30                	mov    %esi,(%eax)
4372d1:	e8 a4 ca ff ff       	call   0x433d7a
4372d6:	8b c6                	mov    %esi,%eax
4372d8:	e9 1e 01 00 00       	jmp    0x4373fb
4372dd:	53                   	push   %ebx
4372de:	8b 5d 10             	mov    0x10(%ebp),%ebx
4372e1:	85 db                	test   %ebx,%ebx
4372e3:	74 0c                	je     0x4372f1
4372e5:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
4372e9:	74 06                	je     0x4372f1
4372eb:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
4372ef:	77 16                	ja     0x437307
4372f1:	e8 40 cb ff ff       	call   0x433e36
4372f6:	6a 16                	push   $0x16
4372f8:	5e                   	pop    %esi
4372f9:	89 30                	mov    %esi,(%eax)
4372fb:	e8 7a ca ff ff       	call   0x433d7a
437300:	8b c6                	mov    %esi,%eax
437302:	e9 f3 00 00 00       	jmp    0x4373fa
437307:	8b 75 1c             	mov    0x1c(%ebp),%esi
43730a:	83 fe 41             	cmp    $0x41,%esi
43730d:	74 13                	je     0x437322
43730f:	83 fe 45             	cmp    $0x45,%esi
437312:	74 0e                	je     0x437322
437314:	83 fe 46             	cmp    $0x46,%esi
437317:	74 09                	je     0x437322
437319:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
43731d:	83 fe 47             	cmp    $0x47,%esi
437320:	75 04                	jne    0x437326
437322:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
437326:	8b 45 24             	mov    0x24(%ebp),%eax
437329:	83 e0 08             	and    $0x8,%eax
43732c:	83 c8 00             	or     $0x0,%eax
43732f:	75 32                	jne    0x437363
437331:	ff 75 08             	push   0x8(%ebp)
437334:	e8 b3 f6 ff ff       	call   0x4369ec
437339:	89 45 f8             	mov    %eax,-0x8(%ebp)
43733c:	59                   	pop    %ecx
43733d:	85 c0                	test   %eax,%eax
43733f:	74 22                	je     0x437363
437341:	ff 75 fc             	push   -0x4(%ebp)
437344:	53                   	push   %ebx
437345:	57                   	push   %edi
437346:	ff 75 08             	push   0x8(%ebp)
437349:	e8 0a f7 ff ff       	call   0x436a58
43734e:	59                   	pop    %ecx
43734f:	0f b6 c0             	movzbl %al,%eax
437352:	50                   	push   %eax
437353:	ff 75 f8             	push   -0x8(%ebp)
437356:	e8 30 fe ff ff       	call   0x43718b
43735b:	83 c4 14             	add    $0x14,%esp
43735e:	e9 97 00 00 00       	jmp    0x4373fa
437363:	8b 45 24             	mov    0x24(%ebp),%eax
437366:	83 e0 10             	and    $0x10,%eax
437369:	83 c8 00             	or     $0x0,%eax
43736c:	74 04                	je     0x437372
43736e:	6a 03                	push   $0x3
437370:	eb 02                	jmp    0x437374
437372:	6a 02                	push   $0x2
437374:	58                   	pop    %eax
437375:	83 fe 61             	cmp    $0x61,%esi
437378:	7f 28                	jg     0x4373a2
43737a:	74 0a                	je     0x437386
43737c:	83 ee 41             	sub    $0x41,%esi
43737f:	74 05                	je     0x437386
437381:	83 ee 04             	sub    $0x4,%esi
437384:	eb 1f                	jmp    0x4373a5
437386:	ff 75 2c             	push   0x2c(%ebp)
437389:	50                   	push   %eax
43738a:	ff 75 fc             	push   -0x4(%ebp)
43738d:	ff 75 20             	push   0x20(%ebp)
437390:	ff 75 18             	push   0x18(%ebp)
437393:	ff 75 14             	push   0x14(%ebp)
437396:	53                   	push   %ebx
437397:	57                   	push   %edi
437398:	ff 75 08             	push   0x8(%ebp)
43739b:	e8 d6 f6 ff ff       	call   0x436a76
4373a0:	eb 55                	jmp    0x4373f7
4373a2:	83 ee 65             	sub    $0x65,%esi
4373a5:	ff 75 2c             	push   0x2c(%ebp)
4373a8:	74 36                	je     0x4373e0
4373aa:	83 ee 01             	sub    $0x1,%esi
4373ad:	74 19                	je     0x4373c8
4373af:	50                   	push   %eax
4373b0:	ff 75 fc             	push   -0x4(%ebp)
4373b3:	ff 75 20             	push   0x20(%ebp)
4373b6:	ff 75 18             	push   0x18(%ebp)
4373b9:	ff 75 14             	push   0x14(%ebp)
4373bc:	53                   	push   %ebx
4373bd:	57                   	push   %edi
4373be:	ff 75 08             	push   0x8(%ebp)
4373c1:	e8 fd fc ff ff       	call   0x4370c3
4373c6:	eb 2f                	jmp    0x4373f7
4373c8:	ff 75 20             	push   0x20(%ebp)
4373cb:	ff 75 18             	push   0x18(%ebp)
4373ce:	ff 75 14             	push   0x14(%ebp)
4373d1:	53                   	push   %ebx
4373d2:	57                   	push   %edi
4373d3:	ff 75 08             	push   0x8(%ebp)
4373d6:	e8 84 fb ff ff       	call   0x436f5f
4373db:	83 c4 1c             	add    $0x1c,%esp
4373de:	eb 1a                	jmp    0x4373fa
4373e0:	50                   	push   %eax
4373e1:	ff 75 fc             	push   -0x4(%ebp)
4373e4:	ff 75 20             	push   0x20(%ebp)
4373e7:	ff 75 18             	push   0x18(%ebp)
4373ea:	ff 75 14             	push   0x14(%ebp)
4373ed:	53                   	push   %ebx
4373ee:	57                   	push   %edi
4373ef:	ff 75 08             	push   0x8(%ebp)
4373f2:	e8 82 f9 ff ff       	call   0x436d79
4373f7:	83 c4 24             	add    $0x24,%esp
4373fa:	5b                   	pop    %ebx
4373fb:	5f                   	pop    %edi
4373fc:	5e                   	pop    %esi
4373fd:	8b e5                	mov    %ebp,%esp
4373ff:	5d                   	pop    %ebp
437400:	c3                   	ret
437401:	8b ff                	mov    %edi,%edi
437403:	55                   	push   %ebp
437404:	8b ec                	mov    %esp,%ebp
437406:	8b 45 08             	mov    0x8(%ebp),%eax
437409:	85 c0                	test   %eax,%eax
43740b:	75 15                	jne    0x437422
43740d:	e8 24 ca ff ff       	call   0x433e36
437412:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
437418:	e8 5d c9 ff ff       	call   0x433d7a
43741d:	83 c8 ff             	or     $0xffffffff,%eax
437420:	5d                   	pop    %ebp
437421:	c3                   	ret
437422:	8b 40 10             	mov    0x10(%eax),%eax
437425:	5d                   	pop    %ebp
437426:	c3                   	ret
437427:	a1 40 b1 46 00       	mov    0x46b140,%eax
43742c:	56                   	push   %esi
43742d:	6a 03                	push   $0x3
43742f:	5e                   	pop    %esi
437430:	85 c0                	test   %eax,%eax
437432:	75 07                	jne    0x43743b
437434:	b8 00 02 00 00       	mov    $0x200,%eax
437439:	eb 06                	jmp    0x437441
43743b:	3b c6                	cmp    %esi,%eax
43743d:	7d 07                	jge    0x437446
43743f:	8b c6                	mov    %esi,%eax
437441:	a3 40 b1 46 00       	mov    %eax,0x46b140
437446:	6a 04                	push   $0x4
437448:	50                   	push   %eax
437449:	e8 f1 dd ff ff       	call   0x43523f
43744e:	6a 00                	push   $0x0
437450:	a3 44 b1 46 00       	mov    %eax,0x46b144
437455:	e8 c0 dc ff ff       	call   0x43511a
43745a:	83 c4 0c             	add    $0xc,%esp
43745d:	83 3d 44 b1 46 00 00 	cmpl   $0x0,0x46b144
437464:	75 2b                	jne    0x437491
437466:	6a 04                	push   $0x4
437468:	56                   	push   %esi
437469:	89 35 40 b1 46 00    	mov    %esi,0x46b140
43746f:	e8 cb dd ff ff       	call   0x43523f
437474:	6a 00                	push   $0x0
437476:	a3 44 b1 46 00       	mov    %eax,0x46b144
43747b:	e8 9a dc ff ff       	call   0x43511a
437480:	83 c4 0c             	add    $0xc,%esp
437483:	83 3d 44 b1 46 00 00 	cmpl   $0x0,0x46b144
43748a:	75 05                	jne    0x437491
43748c:	83 c8 ff             	or     $0xffffffff,%eax
43748f:	5e                   	pop    %esi
437490:	c3                   	ret
437491:	57                   	push   %edi
437492:	33 ff                	xor    %edi,%edi
437494:	be 28 a1 46 00       	mov    $0x46a128,%esi
437499:	6a 00                	push   $0x0
43749b:	68 a0 0f 00 00       	push   $0xfa0
4374a0:	8d 46 20             	lea    0x20(%esi),%eax
4374a3:	50                   	push   %eax
4374a4:	e8 5e 14 00 00       	call   0x438907
4374a9:	a1 44 b1 46 00       	mov    0x46b144,%eax
4374ae:	8b d7                	mov    %edi,%edx
4374b0:	c1 fa 06             	sar    $0x6,%edx
4374b3:	89 34 b8             	mov    %esi,(%eax,%edi,4)
4374b6:	8b c7                	mov    %edi,%eax
4374b8:	83 e0 3f             	and    $0x3f,%eax
4374bb:	6b c8 30             	imul   $0x30,%eax,%ecx
4374be:	8b 04 95 58 b1 46 00 	mov    0x46b158(,%edx,4),%eax
4374c5:	8b 44 08 18          	mov    0x18(%eax,%ecx,1),%eax
4374c9:	83 f8 ff             	cmp    $0xffffffff,%eax
4374cc:	74 09                	je     0x4374d7
4374ce:	83 f8 fe             	cmp    $0xfffffffe,%eax
4374d1:	74 04                	je     0x4374d7
4374d3:	85 c0                	test   %eax,%eax
4374d5:	75 07                	jne    0x4374de
4374d7:	c7 46 10 fe ff ff ff 	movl   $0xfffffffe,0x10(%esi)
4374de:	83 c6 38             	add    $0x38,%esi
4374e1:	47                   	inc    %edi
4374e2:	81 fe d0 a1 46 00    	cmp    $0x46a1d0,%esi
4374e8:	75 af                	jne    0x437499
4374ea:	5f                   	pop    %edi
4374eb:	33 c0                	xor    %eax,%eax
4374ed:	5e                   	pop    %esi
4374ee:	c3                   	ret
4374ef:	8b ff                	mov    %edi,%edi
4374f1:	56                   	push   %esi
4374f2:	e8 d1 48 00 00       	call   0x43bdc8
4374f7:	e8 7f 47 00 00       	call   0x43bc7b
4374fc:	33 f6                	xor    %esi,%esi
4374fe:	a1 44 b1 46 00       	mov    0x46b144,%eax
437503:	ff 34 06             	push   (%esi,%eax,1)
437506:	e8 9e 49 00 00       	call   0x43bea9
43750b:	a1 44 b1 46 00       	mov    0x46b144,%eax
437510:	59                   	pop    %ecx
437511:	8b 04 06             	mov    (%esi,%eax,1),%eax
437514:	83 c0 20             	add    $0x20,%eax
437517:	50                   	push   %eax
437518:	ff 15 8c b1 44 00    	call   *0x44b18c
43751e:	83 c6 04             	add    $0x4,%esi
437521:	83 fe 0c             	cmp    $0xc,%esi
437524:	75 d8                	jne    0x4374fe
437526:	ff 35 44 b1 46 00    	push   0x46b144
43752c:	e8 e9 db ff ff       	call   0x43511a
437531:	83 25 44 b1 46 00 00 	andl   $0x0,0x46b144
437538:	59                   	pop    %ecx
437539:	5e                   	pop    %esi
43753a:	c3                   	ret
43753b:	8b ff                	mov    %edi,%edi
43753d:	55                   	push   %ebp
43753e:	8b ec                	mov    %esp,%ebp
437540:	8b 45 08             	mov    0x8(%ebp),%eax
437543:	83 c0 20             	add    $0x20,%eax
437546:	50                   	push   %eax
437547:	ff 15 b4 b1 44 00    	call   *0x44b1b4
43754d:	5d                   	pop    %ebp
43754e:	c3                   	ret
43754f:	8b ff                	mov    %edi,%edi
437551:	55                   	push   %ebp
437552:	8b ec                	mov    %esp,%ebp
437554:	8b 45 08             	mov    0x8(%ebp),%eax
437557:	83 c0 20             	add    $0x20,%eax
43755a:	50                   	push   %eax
43755b:	ff 15 b8 b1 44 00    	call   *0x44b1b8
437561:	5d                   	pop    %ebp
437562:	c3                   	ret
437563:	8b 0d 08 a0 46 00    	mov    0x46a008,%ecx
437569:	33 c0                	xor    %eax,%eax
43756b:	83 c9 01             	or     $0x1,%ecx
43756e:	39 0d 48 b1 46 00    	cmp    %ecx,0x46b148
437574:	0f 94 c0             	sete   %al
437577:	c3                   	ret
437578:	8b ff                	mov    %edi,%edi
43757a:	55                   	push   %ebp
43757b:	8b ec                	mov    %esp,%ebp
43757d:	83 ec 48             	sub    $0x48,%esp
437580:	8d 45 b8             	lea    -0x48(%ebp),%eax
437583:	50                   	push   %eax
437584:	ff 15 08 b3 44 00    	call   *0x44b308
43758a:	66 83 7d ea 00       	cmpw   $0x0,-0x16(%ebp)
43758f:	0f 84 95 00 00 00    	je     0x43762a
437595:	8b 45 ec             	mov    -0x14(%ebp),%eax
437598:	85 c0                	test   %eax,%eax
43759a:	0f 84 8a 00 00 00    	je     0x43762a
4375a0:	53                   	push   %ebx
4375a1:	56                   	push   %esi
4375a2:	8b 30                	mov    (%eax),%esi
4375a4:	8d 58 04             	lea    0x4(%eax),%ebx
4375a7:	8d 04 33             	lea    (%ebx,%esi,1),%eax
4375aa:	89 45 fc             	mov    %eax,-0x4(%ebp)
4375ad:	b8 00 20 00 00       	mov    $0x2000,%eax
4375b2:	3b f0                	cmp    %eax,%esi
4375b4:	7c 02                	jl     0x4375b8
4375b6:	8b f0                	mov    %eax,%esi
4375b8:	56                   	push   %esi
4375b9:	e8 21 16 00 00       	call   0x438bdf
4375be:	a1 58 b3 46 00       	mov    0x46b358,%eax
4375c3:	59                   	pop    %ecx
4375c4:	3b f0                	cmp    %eax,%esi
4375c6:	7e 02                	jle    0x4375ca
4375c8:	8b f0                	mov    %eax,%esi
4375ca:	57                   	push   %edi
4375cb:	33 ff                	xor    %edi,%edi
4375cd:	85 f6                	test   %esi,%esi
4375cf:	74 56                	je     0x437627
4375d1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4375d4:	8b 08                	mov    (%eax),%ecx
4375d6:	83 f9 ff             	cmp    $0xffffffff,%ecx
4375d9:	74 40                	je     0x43761b
4375db:	83 f9 fe             	cmp    $0xfffffffe,%ecx
4375de:	74 3b                	je     0x43761b
4375e0:	8a 13                	mov    (%ebx),%dl
4375e2:	f6 c2 01             	test   $0x1,%dl
4375e5:	74 34                	je     0x43761b
4375e7:	f6 c2 08             	test   $0x8,%dl
4375ea:	75 0b                	jne    0x4375f7
4375ec:	51                   	push   %ecx
4375ed:	ff 15 d0 b2 44 00    	call   *0x44b2d0
4375f3:	85 c0                	test   %eax,%eax
4375f5:	74 21                	je     0x437618
4375f7:	8b c7                	mov    %edi,%eax
4375f9:	8b cf                	mov    %edi,%ecx
4375fb:	83 e0 3f             	and    $0x3f,%eax
4375fe:	c1 f9 06             	sar    $0x6,%ecx
437601:	6b d0 30             	imul   $0x30,%eax,%edx
437604:	8b 45 fc             	mov    -0x4(%ebp),%eax
437607:	03 14 8d 58 b1 46 00 	add    0x46b158(,%ecx,4),%edx