43637b:	88 45 d4             	mov    %al,-0x2c(%ebp)
43637e:	8b 46 4c             	mov    0x4c(%esi),%eax
436381:	89 85 6c ff ff ff    	mov    %eax,-0x94(%ebp)
436387:	0f 85 a1 00 00 00    	jne    0x43642e
43638d:	83 fa 01             	cmp    $0x1,%edx
436390:	0f 85 98 00 00 00    	jne    0x43642e
436396:	8d 45 a0             	lea    -0x60(%ebp),%eax
436399:	50                   	push   %eax
43639a:	8d 45 a4             	lea    -0x5c(%ebp),%eax
43639d:	50                   	push   %eax
43639e:	8d 45 a8             	lea    -0x58(%ebp),%eax
4363a1:	50                   	push   %eax
4363a2:	8d 45 94             	lea    -0x6c(%ebp),%eax
4363a5:	50                   	push   %eax
4363a6:	8d 45 ac             	lea    -0x54(%ebp),%eax
4363a9:	50                   	push   %eax
4363aa:	8d 45 b0             	lea    -0x50(%ebp),%eax
4363ad:	50                   	push   %eax
4363ae:	8d 45 b4             	lea    -0x4c(%ebp),%eax
4363b1:	50                   	push   %eax
4363b2:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
4363b8:	50                   	push   %eax
4363b9:	8d 45 b8             	lea    -0x48(%ebp),%eax
4363bc:	50                   	push   %eax
4363bd:	8d 45 bc             	lea    -0x44(%ebp),%eax
4363c0:	50                   	push   %eax
4363c1:	8d 45 88             	lea    -0x78(%ebp),%eax
4363c4:	50                   	push   %eax
4363c5:	8d 85 58 ff ff ff    	lea    -0xa8(%ebp),%eax
4363cb:	50                   	push   %eax
4363cc:	ff 75 8c             	push   -0x74(%ebp)
4363cf:	8d 45 fc             	lea    -0x4(%ebp),%eax
4363d2:	ff 75 90             	push   -0x70(%ebp)
4363d5:	ff 75 c0             	push   -0x40(%ebp)
4363d8:	ff 75 84             	push   -0x7c(%ebp)
4363db:	50                   	push   %eax
4363dc:	8d 45 dc             	lea    -0x24(%ebp),%eax
4363df:	50                   	push   %eax
4363e0:	8d 45 e0             	lea    -0x20(%ebp),%eax
4363e3:	50                   	push   %eax
4363e4:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4363e7:	50                   	push   %eax
4363e8:	8d 45 e8             	lea    -0x18(%ebp),%eax
4363eb:	50                   	push   %eax
4363ec:	8d 45 ec             	lea    -0x14(%ebp),%eax
4363ef:	50                   	push   %eax
4363f0:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
4363f6:	50                   	push   %eax
4363f7:	8d 45 f0             	lea    -0x10(%ebp),%eax
4363fa:	50                   	push   %eax
4363fb:	8d 45 f4             	lea    -0xc(%ebp),%eax
4363fe:	50                   	push   %eax
4363ff:	8d 45 f8             	lea    -0x8(%ebp),%eax
436402:	50                   	push   %eax
436403:	8d 45 d0             	lea    -0x30(%ebp),%eax
436406:	50                   	push   %eax
436407:	8d 85 74 ff ff ff    	lea    -0x8c(%ebp),%eax
43640d:	50                   	push   %eax
43640e:	8d 45 d4             	lea    -0x2c(%ebp),%eax
436411:	50                   	push   %eax
436412:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
436418:	50                   	push   %eax
436419:	ff 76 18             	push   0x18(%esi)
43641c:	6a 1f                	push   $0x1f
43641e:	6a 41                	push   $0x41
436420:	e8 4b 0f 01 00       	call   0x447370
436425:	8b 4e 50             	mov    0x50(%esi),%ecx
436428:	81 c4 84 00 00 00    	add    $0x84,%esp
43642e:	8a 41 10             	mov    0x10(%ecx),%al
436431:	24 01                	and    $0x1,%al
436433:	88 45 fc             	mov    %al,-0x4(%ebp)
436436:	8b 41 10             	mov    0x10(%ecx),%eax
436439:	8b d0                	mov    %eax,%edx
43643b:	8b d8                	mov    %eax,%ebx
43643d:	c1 ea 02             	shr    $0x2,%edx
436440:	c1 eb 03             	shr    $0x3,%ebx
436443:	80 e2 01             	and    $0x1,%dl
436446:	80 e3 01             	and    $0x1,%bl
436449:	85 ff                	test   %edi,%edi
43644b:	74 0f                	je     0x43645c
43644d:	d1 e8                	shr    $1,%eax
43644f:	a8 01                	test   $0x1,%al
436451:	75 13                	jne    0x436466
436453:	5f                   	pop    %edi
436454:	5e                   	pop    %esi
436455:	5b                   	pop    %ebx
436456:	8b e5                	mov    %ebp,%esp
436458:	5d                   	pop    %ebp
436459:	c2 0c 00             	ret    $0xc
43645c:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
436460:	0f 84 98 01 00 00    	je     0x4365fe
436466:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
43646a:	74 0d                	je     0x436479
43646c:	84 d2                	test   %dl,%dl
43646e:	75 11                	jne    0x436481
436470:	5f                   	pop    %edi
436471:	5e                   	pop    %esi
436472:	5b                   	pop    %ebx
436473:	8b e5                	mov    %ebp,%esp
436475:	5d                   	pop    %ebp
436476:	c2 0c 00             	ret    $0xc
436479:	84 db                	test   %bl,%bl
43647b:	0f 84 7d 01 00 00    	je     0x4365fe
436481:	83 3d 6c 1a 45 00 00 	cmpl   $0x0,0x451a6c
436488:	8b 46 58             	mov    0x58(%esi),%eax
43648b:	89 85 6c ff ff ff    	mov    %eax,-0x94(%ebp)
436491:	8b 46 28             	mov    0x28(%esi),%eax
436494:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
43649a:	8b 46 2c             	mov    0x2c(%esi),%eax
43649d:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
4364a3:	8b 46 20             	mov    0x20(%esi),%eax
4364a6:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
4364ac:	8b 46 24             	mov    0x24(%esi),%eax
4364af:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
4364b5:	8b 46 1c             	mov    0x1c(%esi),%eax
4364b8:	89 45 84             	mov    %eax,-0x7c(%ebp)
4364bb:	8b 46 60             	mov    0x60(%esi),%eax
4364be:	89 45 a0             	mov    %eax,-0x60(%ebp)
4364c1:	8b 46 64             	mov    0x64(%esi),%eax
4364c4:	89 45 a4             	mov    %eax,-0x5c(%ebp)
4364c7:	8b 46 40             	mov    0x40(%esi),%eax
4364ca:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
4364d0:	8b 46 44             	mov    0x44(%esi),%eax
4364d3:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
4364d9:	8b 86 80 00 00 00    	mov    0x80(%esi),%eax
4364df:	89 45 a8             	mov    %eax,-0x58(%ebp)
4364e2:	8b 46 38             	mov    0x38(%esi),%eax
4364e5:	89 45 ac             	mov    %eax,-0x54(%ebp)
4364e8:	8b 46 3c             	mov    0x3c(%esi),%eax
4364eb:	89 45 b0             	mov    %eax,-0x50(%ebp)
4364ee:	8b 46 30             	mov    0x30(%esi),%eax
4364f1:	89 45 94             	mov    %eax,-0x6c(%ebp)
4364f4:	8b 46 34             	mov    0x34(%esi),%eax
4364f7:	89 45 98             	mov    %eax,-0x68(%ebp)
4364fa:	8b 11                	mov    (%ecx),%edx
4364fc:	0f b6 46 5c          	movzbl 0x5c(%esi),%eax
436500:	88 45 fc             	mov    %al,-0x4(%ebp)
436503:	8a 45 db             	mov    -0x25(%ebp),%al
436506:	88 45 dc             	mov    %al,-0x24(%ebp)
436509:	8d 7a 50             	lea    0x50(%edx),%edi
43650c:	8a 45 da             	mov    -0x26(%ebp),%al
43650f:	8d 5a 30             	lea    0x30(%edx),%ebx
436512:	88 45 e0             	mov    %al,-0x20(%ebp)
436515:	8a 45 cc             	mov    -0x34(%ebp),%al
436518:	88 45 cc             	mov    %al,-0x34(%ebp)
43651b:	8a 45 c8             	mov    -0x38(%ebp),%al
43651e:	88 45 c8             	mov    %al,-0x38(%ebp)
436521:	8a 45 d9             	mov    -0x27(%ebp),%al
436524:	88 45 e4             	mov    %al,-0x1c(%ebp)
436527:	8b 41 0c             	mov    0xc(%ecx),%eax
43652a:	89 45 b4             	mov    %eax,-0x4c(%ebp)
43652d:	0f b6 41 0b          	movzbl 0xb(%ecx),%eax
436531:	88 45 e8             	mov    %al,-0x18(%ebp)
436534:	0f b6 41 0a          	movzbl 0xa(%ecx),%eax
436538:	88 45 ec             	mov    %al,-0x14(%ebp)
43653b:	0f b6 41 09          	movzbl 0x9(%ecx),%eax
43653f:	88 45 f0             	mov    %al,-0x10(%ebp)
436542:	0f b6 41 08          	movzbl 0x8(%ecx),%eax
436546:	88 45 f4             	mov    %al,-0xc(%ebp)
436549:	8b 41 04             	mov    0x4(%ecx),%eax
43654c:	89 45 b8             	mov    %eax,-0x48(%ebp)
43654f:	8a 45 d8             	mov    -0x28(%ebp),%al
436552:	88 45 f8             	mov    %al,-0x8(%ebp)
436555:	8b 46 4c             	mov    0x4c(%esi),%eax
436558:	89 45 bc             	mov    %eax,-0x44(%ebp)
43655b:	0f 85 9d 00 00 00    	jne    0x4365fe
436561:	83 3d 64 f0 44 00 01 	cmpl   $0x1,0x44f064
436568:	0f 85 90 00 00 00    	jne    0x4365fe
43656e:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
436574:	50                   	push   %eax
436575:	8d 85 74 ff ff ff    	lea    -0x8c(%ebp),%eax
43657b:	50                   	push   %eax
43657c:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
436582:	50                   	push   %eax
436583:	8d 85 58 ff ff ff    	lea    -0xa8(%ebp),%eax
436589:	50                   	push   %eax
43658a:	8d 45 84             	lea    -0x7c(%ebp),%eax
43658d:	50                   	push   %eax
43658e:	8d 45 a0             	lea    -0x60(%ebp),%eax
436591:	50                   	push   %eax
436592:	8d 45 a4             	lea    -0x5c(%ebp),%eax
436595:	50                   	push   %eax
436596:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
43659c:	50                   	push   %eax
43659d:	8d 45 a8             	lea    -0x58(%ebp),%eax
4365a0:	50                   	push   %eax
4365a1:	8d 45 ac             	lea    -0x54(%ebp),%eax
4365a4:	50                   	push   %eax
4365a5:	8d 45 b0             	lea    -0x50(%ebp),%eax
4365a8:	50                   	push   %eax
4365a9:	8d 45 94             	lea    -0x6c(%ebp),%eax
4365ac:	50                   	push   %eax
4365ad:	52                   	push   %edx
4365ae:	57                   	push   %edi
4365af:	53                   	push   %ebx
4365b0:	8d 42 10             	lea    0x10(%edx),%eax
4365b3:	50                   	push   %eax
4365b4:	8d 45 fc             	lea    -0x4(%ebp),%eax
4365b7:	50                   	push   %eax
4365b8:	8d 45 dc             	lea    -0x24(%ebp),%eax
4365bb:	50                   	push   %eax
4365bc:	8d 45 e0             	lea    -0x20(%ebp),%eax
4365bf:	50                   	push   %eax
4365c0:	8d 45 cc             	lea    -0x34(%ebp),%eax
4365c3:	50                   	push   %eax
4365c4:	8d 45 c8             	lea    -0x38(%ebp),%eax
4365c7:	50                   	push   %eax
4365c8:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4365cb:	50                   	push   %eax
4365cc:	8d 45 b4             	lea    -0x4c(%ebp),%eax
4365cf:	50                   	push   %eax
4365d0:	8d 45 e8             	lea    -0x18(%ebp),%eax
4365d3:	50                   	push   %eax
4365d4:	8d 45 ec             	lea    -0x14(%ebp),%eax
4365d7:	50                   	push   %eax
4365d8:	8d 45 f0             	lea    -0x10(%ebp),%eax
4365db:	50                   	push   %eax
4365dc:	8d 45 f4             	lea    -0xc(%ebp),%eax
4365df:	50                   	push   %eax
4365e0:	8d 45 b8             	lea    -0x48(%ebp),%eax
4365e3:	50                   	push   %eax
4365e4:	8d 45 f8             	lea    -0x8(%ebp),%eax
4365e7:	50                   	push   %eax
4365e8:	8d 45 bc             	lea    -0x44(%ebp),%eax
4365eb:	50                   	push   %eax
4365ec:	ff 76 18             	push   0x18(%esi)
4365ef:	6a 1f                	push   $0x1f
4365f1:	6a 44                	push   $0x44
4365f3:	e8 78 0d 01 00       	call   0x447370
4365f8:	81 c4 84 00 00 00    	add    $0x84,%esp
4365fe:	5f                   	pop    %edi
4365ff:	5e                   	pop    %esi
436600:	5b                   	pop    %ebx
436601:	8b e5                	mov    %ebp,%esp
436603:	5d                   	pop    %ebp
436604:	c2 0c 00             	ret    $0xc
436607:	cc                   	int3
436608:	cc                   	int3
436609:	cc                   	int3
43660a:	cc                   	int3
43660b:	cc                   	int3
43660c:	cc                   	int3
43660d:	cc                   	int3
43660e:	cc                   	int3
43660f:	cc                   	int3
436610:	8b ff                	mov    %edi,%edi
436612:	55                   	push   %ebp
436613:	8b ec                	mov    %esp,%ebp
436615:	83 e4 f8             	and    $0xfffffff8,%esp
436618:	81 ec 84 06 00 00    	sub    $0x684,%esp
43661e:	a1 e4 f8 44 00       	mov    0x44f8e4,%eax
436623:	33 c4                	xor    %esp,%eax
436625:	89 84 24 80 06 00 00 	mov    %eax,0x680(%esp)
43662c:	53                   	push   %ebx
43662d:	56                   	push   %esi
43662e:	57                   	push   %edi
43662f:	8b 7d 08             	mov    0x8(%ebp),%edi
436632:	89 54 24 38          	mov    %edx,0x38(%esp)
436636:	89 4c 24 30          	mov    %ecx,0x30(%esp)
43663a:	89 7c 24 2c          	mov    %edi,0x2c(%esp)
43663e:	8b 87 80 00 00 00    	mov    0x80(%edi),%eax
436644:	8b 70 18             	mov    0x18(%eax),%esi
436647:	89 74 24 1c          	mov    %esi,0x1c(%esp)
43664b:	e8 40 6f ff ff       	call   0x42d590
436650:	2b 47 38             	sub    0x38(%edi),%eax
436653:	8b ca                	mov    %edx,%ecx
436655:	89 44 24 18          	mov    %eax,0x18(%esp)
436659:	1b 4f 3c             	sbb    0x3c(%edi),%ecx
43665c:	51                   	push   %ecx
43665d:	50                   	push   %eax
43665e:	89 4c 24 18          	mov    %ecx,0x18(%esp)
436662:	e8 b9 20 00 00       	call   0x438720
436667:	8b 4f 24             	mov    0x24(%edi),%ecx
43666a:	8b d8                	mov    %eax,%ebx
43666c:	69 c1 a0 0f 00 00    	imul   $0xfa0,%ecx,%eax
436672:	89 5c 24 20          	mov    %ebx,0x20(%esp)
436676:	89 54 24 14          	mov    %edx,0x14(%esp)
43667a:	89 44 24 0c          	mov    %eax,0xc(%esp)
43667e:	83 f9 02             	cmp    $0x2,%ecx
436681:	73 08                	jae    0x43668b
436683:	c7 44 24 0c a0 0f 00 	movl   $0xfa0,0xc(%esp)
43668a:	00
43668b:	85 d2                	test   %edx,%edx
43668d:	72 2b                	jb     0x4366ba
43668f:	77 06                	ja     0x436697
436691:	3b 5c 24 0c          	cmp    0xc(%esp),%ebx
436695:	76 23                	jbe    0x4366ba
436697:	83 f9 02             	cmp    $0x2,%ecx
43669a:	76 0f                	jbe    0x4366ab
43669c:	8d 98 c0 e0 ff ff    	lea    -0x1f40(%eax),%ebx
4366a2:	89 5c 24 20          	mov    %ebx,0x20(%esp)
4366a6:	83 fb 14             	cmp    $0x14,%ebx
4366a9:	77 09                	ja     0x4366b4
4366ab:	bb 14 00 00 00       	mov    $0x14,%ebx
4366b0:	89 5c 24 20          	mov    %ebx,0x20(%esp)
4366b4:	33 d2                	xor    %edx,%edx
4366b6:	89 54 24 14          	mov    %edx,0x14(%esp)
4366ba:	a1 5c 0c 45 00       	mov    0x450c5c,%eax
4366bf:	d1 e8                	shr    $1,%eax
4366c1:	85 d2                	test   %edx,%edx
4366c3:	72 10                	jb     0x4366d5
4366c5:	77 04                	ja     0x4366cb
4366c7:	3b d8                	cmp    %eax,%ebx
4366c9:	76 0a                	jbe    0x4366d5
4366cb:	c7 44 24 34 01 00 00 	movl   $0x1,0x34(%esp)
4366d2:	00
4366d3:	eb 08                	jmp    0x4366dd
4366d5:	c7 44 24 34 00 00 00 	movl   $0x0,0x34(%esp)
4366dc:	00
4366dd:	8b 4f 0c             	mov    0xc(%edi),%ecx
4366e0:	33 c0                	xor    %eax,%eax
4366e2:	03 47 08             	add    0x8(%edi),%eax
4366e5:	89 44 24 3c          	mov    %eax,0x3c(%esp)
4366e9:	8d 47 48             	lea    0x48(%edi),%eax
4366ec:	89 84 24 f0 00 00 00 	mov    %eax,0xf0(%esp)
4366f3:	83 d1 00             	adc    $0x0,%ecx
4366f6:	8b 47 5c             	mov    0x5c(%edi),%eax
4366f9:	89 84 24 f4 00 00 00 	mov    %eax,0xf4(%esp)
436700:	8a 47 64             	mov    0x64(%edi),%al
436703:	89 4c 24 40          	mov    %ecx,0x40(%esp)
436707:	8b 8f 80 00 00 00    	mov    0x80(%edi),%ecx
43670d:	88 84 24 fc 00 00 00 	mov    %al,0xfc(%esp)
436714:	8b 47 60             	mov    0x60(%edi),%eax
436717:	89 84 24 f8 00 00 00 	mov    %eax,0xf8(%esp)
43671e:	8b 01                	mov    (%ecx),%eax
436720:	89 44 24 0c          	mov    %eax,0xc(%esp)
436724:	83 b8 2c 03 00 00 00 	cmpl   $0x0,0x32c(%eax)
43672b:	75 1d                	jne    0x43674a
43672d:	83 b8 34 03 00 00 0c 	cmpl   $0xc,0x334(%eax)
436734:	72 14                	jb     0x43674a
436736:	80 b8 38 03 00 00 00 	cmpb   $0x0,0x338(%eax)
43673d:	c7 84 24 a4 00 00 00 	movl   $0x0,0xa4(%esp)
436744:	00 00 00 00
436748:	74 0b                	je     0x436755
43674a:	c7 84 24 a4 00 00 00 	movl   $0x1,0xa4(%esp)
436751:	01 00 00 00
436755:	8b 47 44             	mov    0x44(%edi),%eax
436758:	83 e0 01             	and    $0x1,%eax
43675b:	89 9c 24 e0 00 00 00 	mov    %ebx,0xe0(%esp)
436762:	89 84 24 a8 00 00 00 	mov    %eax,0xa8(%esp)
436769:	0f be 47 2d          	movsbl 0x2d(%edi),%eax
43676d:	89 84 24 ac 00 00 00 	mov    %eax,0xac(%esp)
436774:	8b 41 20             	mov    0x20(%ecx),%eax
436777:	89 84 24 b0 00 00 00 	mov    %eax,0xb0(%esp)
43677e:	8b 41 24             	mov    0x24(%ecx),%eax
436781:	89 84 24 b4 00 00 00 	mov    %eax,0xb4(%esp)
436788:	8b 41 04             	mov    0x4(%ecx),%eax
43678b:	8b 49 18             	mov    0x18(%ecx),%ecx
43678e:	83 c0 08             	add    $0x8,%eax
436791:	89 84 24 b8 00 00 00 	mov    %eax,0xb8(%esp)