4063a4:	8b c2                	mov    %edx,%eax
4063a6:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4063ac:	72 14                	jb     0x4063c2
4063ae:	8b 50 fc             	mov    -0x4(%eax),%edx
4063b1:	83 c1 23             	add    $0x23,%ecx
4063b4:	2b c2                	sub    %edx,%eax
4063b6:	83 c0 fc             	add    $0xfffffffc,%eax
4063b9:	83 f8 1f             	cmp    $0x1f,%eax
4063bc:	0f 87 a0 01 00 00    	ja     0x406562
4063c2:	51                   	push   %ecx
4063c3:	52                   	push   %edx
4063c4:	e8 ef 37 01 00       	call   0x419bb8
4063c9:	83 c4 08             	add    $0x8,%esp
4063cc:	6a 00                	push   $0x0
4063ce:	68 54 9f 44 00       	push   $0x449f54
4063d3:	8d 4d bc             	lea    -0x44(%ebp),%ecx
4063d6:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)
4063dd:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
4063e4:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
4063eb:	e8 10 cc ff ff       	call   0x403000
4063f0:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
4063f4:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
4063f7:	6a 01                	push   $0x1
4063f9:	68 f4 eb 44 00       	push   $0x44ebf4
4063fe:	c7 45 a4 00 00 00 00 	movl   $0x0,-0x5c(%ebp)
406405:	c7 45 b4 00 00 00 00 	movl   $0x0,-0x4c(%ebp)
40640c:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
406413:	e8 e8 cb ff ff       	call   0x403000
406418:	8d 45 bc             	lea    -0x44(%ebp),%eax
40641b:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
40641f:	50                   	push   %eax
406420:	8d 55 a4             	lea    -0x5c(%ebp),%edx
406423:	8d 4d d8             	lea    -0x28(%ebp),%ecx
406426:	e8 d5 fd ff ff       	call   0x406200
40642b:	8b 4d b8             	mov    -0x48(%ebp),%ecx
40642e:	83 c4 04             	add    $0x4,%esp
406431:	83 f9 08             	cmp    $0x8,%ecx
406434:	72 32                	jb     0x406468
406436:	8b 55 a4             	mov    -0x5c(%ebp),%edx
406439:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
406440:	8b c2                	mov    %edx,%eax
406442:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
406448:	72 14                	jb     0x40645e
40644a:	8b 50 fc             	mov    -0x4(%eax),%edx
40644d:	83 c1 23             	add    $0x23,%ecx
406450:	2b c2                	sub    %edx,%eax
406452:	83 c0 fc             	add    $0xfffffffc,%eax
406455:	83 f8 1f             	cmp    $0x1f,%eax
406458:	0f 87 04 01 00 00    	ja     0x406562
40645e:	51                   	push   %ecx
40645f:	52                   	push   %edx
406460:	e8 53 37 01 00       	call   0x419bb8
406465:	83 c4 08             	add    $0x8,%esp
406468:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40646b:	83 f9 08             	cmp    $0x8,%ecx
40646e:	72 32                	jb     0x4064a2
406470:	8b 55 bc             	mov    -0x44(%ebp),%edx
406473:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40647a:	8b c2                	mov    %edx,%eax
40647c:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
406482:	72 14                	jb     0x406498
406484:	8b 50 fc             	mov    -0x4(%eax),%edx
406487:	83 c1 23             	add    $0x23,%ecx
40648a:	2b c2                	sub    %edx,%eax
40648c:	83 c0 fc             	add    $0xfffffffc,%eax
40648f:	83 f8 1f             	cmp    $0x1f,%eax
406492:	0f 87 ca 00 00 00    	ja     0x406562
406498:	51                   	push   %ecx
406499:	52                   	push   %edx
40649a:	e8 19 37 01 00       	call   0x419bb8
40649f:	83 c4 08             	add    $0x8,%esp
4064a2:	8b 7d ec             	mov    -0x14(%ebp),%edi
4064a5:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4064a8:	8b 75 d8             	mov    -0x28(%ebp),%esi
4064ab:	83 ff 08             	cmp    $0x8,%edi
4064ae:	8b 5d e8             	mov    -0x18(%ebp),%ebx
4064b1:	8b d3                	mov    %ebx,%edx
4064b3:	6a 1a                	push   $0x1a
4064b5:	68 dc ed 44 00       	push   $0x44eddc
4064ba:	0f 43 ce             	cmovae %esi,%ecx
4064bd:	6a 00                	push   $0x0
4064bf:	e8 2c ec ff ff       	call   0x4050f0
4064c4:	83 c4 0c             	add    $0xc,%esp
4064c7:	83 f8 ff             	cmp    $0xffffffff,%eax
4064ca:	75 46                	jne    0x406512
4064cc:	6a 11                	push   $0x11
4064ce:	83 ff 08             	cmp    $0x8,%edi
4064d1:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4064d4:	68 14 ee 44 00       	push   $0x44ee14
4064d9:	0f 43 ce             	cmovae %esi,%ecx
4064dc:	8b d3                	mov    %ebx,%edx
4064de:	6a 00                	push   $0x0
4064e0:	e8 0b ec ff ff       	call   0x4050f0
4064e5:	83 c4 0c             	add    $0xc,%esp
4064e8:	83 f8 ff             	cmp    $0xffffffff,%eax
4064eb:	75 25                	jne    0x406512
4064ed:	6a 09                	push   $0x9
4064ef:	83 ff 08             	cmp    $0x8,%edi
4064f2:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4064f5:	68 38 ee 44 00       	push   $0x44ee38
4064fa:	0f 43 ce             	cmovae %esi,%ecx
4064fd:	8b d3                	mov    %ebx,%edx
4064ff:	6a 00                	push   $0x0
406501:	e8 ea eb ff ff       	call   0x4050f0
406506:	83 c4 0c             	add    $0xc,%esp
406509:	83 f8 ff             	cmp    $0xffffffff,%eax
40650c:	75 04                	jne    0x406512
40650e:	32 db                	xor    %bl,%bl
406510:	eb 02                	jmp    0x406514
406512:	b3 01                	mov    $0x1,%bl
406514:	83 ff 08             	cmp    $0x8,%edi
406517:	72 2b                	jb     0x406544
406519:	8d 3c 7d 02 00 00 00 	lea    0x2(,%edi,2),%edi
406520:	8b c6                	mov    %esi,%eax
406522:	81 ff 00 10 00 00    	cmp    $0x1000,%edi
406528:	72 10                	jb     0x40653a
40652a:	8b 70 fc             	mov    -0x4(%eax),%esi
40652d:	83 c7 23             	add    $0x23,%edi
406530:	2b c6                	sub    %esi,%eax
406532:	83 c0 fc             	add    $0xfffffffc,%eax
406535:	83 f8 1f             	cmp    $0x1f,%eax
406538:	77 28                	ja     0x406562
40653a:	57                   	push   %edi
40653b:	56                   	push   %esi
40653c:	e8 77 36 01 00       	call   0x419bb8
406541:	83 c4 08             	add    $0x8,%esp
406544:	8a c3                	mov    %bl,%al
406546:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406549:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406550:	59                   	pop    %ecx
406551:	5f                   	pop    %edi
406552:	5e                   	pop    %esi
406553:	5b                   	pop    %ebx
406554:	8b 4d f0             	mov    -0x10(%ebp),%ecx
406557:	33 cd                	xor    %ebp,%ecx
406559:	e8 4c 36 01 00       	call   0x419baa
40655e:	8b e5                	mov    %ebp,%esp
406560:	5d                   	pop    %ebp
406561:	c3                   	ret
406562:	e8 2c 94 01 00       	call   0x41f993
406567:	cc                   	int3
406568:	cc                   	int3
406569:	cc                   	int3
40656a:	cc                   	int3
40656b:	cc                   	int3
40656c:	cc                   	int3
40656d:	cc                   	int3
40656e:	cc                   	int3
40656f:	cc                   	int3
406570:	56                   	push   %esi
406571:	8b f1                	mov    %ecx,%esi
406573:	8b 06                	mov    (%esi),%eax
406575:	85 c0                	test   %eax,%eax
406577:	74 09                	je     0x406582
406579:	50                   	push   %eax
40657a:	e8 c4 d4 01 00       	call   0x423a43
40657f:	83 c4 04             	add    $0x4,%esp
406582:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
406588:	5e                   	pop    %esi
406589:	c3                   	ret
40658a:	cc                   	int3
40658b:	cc                   	int3
40658c:	cc                   	int3
40658d:	cc                   	int3
40658e:	cc                   	int3
40658f:	cc                   	int3
406590:	55                   	push   %ebp
406591:	8b ec                	mov    %esp,%ebp
406593:	51                   	push   %ecx
406594:	53                   	push   %ebx
406595:	8b 5d 08             	mov    0x8(%ebp),%ebx
406598:	8b c3                	mov    %ebx,%eax
40659a:	56                   	push   %esi
40659b:	8b f1                	mov    %ecx,%esi
40659d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4065a0:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
4065a6:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
4065ad:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
4065b4:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
4065b8:	72 05                	jb     0x4065bf
4065ba:	8b 03                	mov    (%ebx),%eax
4065bc:	89 45 fc             	mov    %eax,-0x4(%ebp)
4065bf:	8b 5b 10             	mov    0x10(%ebx),%ebx
4065c2:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
4065c8:	0f 87 ab 00 00 00    	ja     0x406679
4065ce:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
4065d5:	83 fb 10             	cmp    $0x10,%ebx
4065d8:	73 19                	jae    0x4065f3
4065da:	6a 10                	push   $0x10
4065dc:	50                   	push   %eax
4065dd:	56                   	push   %esi
4065de:	89 5e 10             	mov    %ebx,0x10(%esi)
4065e1:	e8 9a 50 01 00       	call   0x41b680
4065e6:	83 c4 0c             	add    $0xc,%esp
4065e9:	8b c6                	mov    %esi,%eax
4065eb:	5e                   	pop    %esi
4065ec:	5b                   	pop    %ebx
4065ed:	8b e5                	mov    %ebp,%esp
4065ef:	5d                   	pop    %ebp
4065f0:	c2 04 00             	ret    $0x4
4065f3:	57                   	push   %edi
4065f4:	8b fb                	mov    %ebx,%edi
4065f6:	83 cf 0f             	or     $0xf,%edi
4065f9:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
4065ff:	76 27                	jbe    0x406628
406601:	b9 00 00 00 80       	mov    $0x80000000,%ecx
406606:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
40660b:	83 c1 23             	add    $0x23,%ecx
40660e:	51                   	push   %ecx
40660f:	e8 b2 35 01 00       	call   0x419bc6
406614:	8b c8                	mov    %eax,%ecx
406616:	83 c4 04             	add    $0x4,%esp
406619:	85 c9                	test   %ecx,%ecx
40661b:	74 66                	je     0x406683
40661d:	8d 41 23             	lea    0x23(%ecx),%eax
406620:	83 e0 e0             	and    $0xffffffe0,%eax
406623:	89 48 fc             	mov    %ecx,-0x4(%eax)
406626:	eb 2e                	jmp    0x406656
406628:	b8 16 00 00 00       	mov    $0x16,%eax
40662d:	3b f8                	cmp    %eax,%edi
40662f:	0f 42 f8             	cmovb  %eax,%edi
406632:	8d 47 01             	lea    0x1(%edi),%eax
406635:	3d 00 10 00 00       	cmp    $0x1000,%eax
40663a:	72 09                	jb     0x406645
40663c:	8d 48 23             	lea    0x23(%eax),%ecx
40663f:	3b c8                	cmp    %eax,%ecx
406641:	76 3b                	jbe    0x40667e
406643:	eb c9                	jmp    0x40660e
406645:	85 c0                	test   %eax,%eax
406647:	74 0b                	je     0x406654
406649:	50                   	push   %eax
40664a:	e8 77 35 01 00       	call   0x419bc6
40664f:	83 c4 04             	add    $0x4,%esp
406652:	eb 02                	jmp    0x406656
406654:	33 c0                	xor    %eax,%eax
406656:	8d 4b 01             	lea    0x1(%ebx),%ecx
406659:	89 06                	mov    %eax,(%esi)
40665b:	51                   	push   %ecx
40665c:	ff 75 fc             	push   -0x4(%ebp)
40665f:	89 5e 10             	mov    %ebx,0x10(%esi)
406662:	50                   	push   %eax
406663:	89 7e 14             	mov    %edi,0x14(%esi)
406666:	e8 15 50 01 00       	call   0x41b680
40666b:	83 c4 0c             	add    $0xc,%esp
40666e:	8b c6                	mov    %esi,%eax
406670:	5f                   	pop    %edi
406671:	5e                   	pop    %esi
406672:	5b                   	pop    %ebx
406673:	8b e5                	mov    %ebp,%esp
406675:	5d                   	pop    %ebp
406676:	c2 04 00             	ret    $0x4
406679:	e8 e2 ac ff ff       	call   0x401360
40667e:	e8 3d ac ff ff       	call   0x4012c0
406683:	e8 0b 93 01 00       	call   0x41f993
406688:	cc                   	int3
406689:	cc                   	int3
40668a:	cc                   	int3
40668b:	cc                   	int3
40668c:	cc                   	int3
40668d:	cc                   	int3
40668e:	cc                   	int3
40668f:	cc                   	int3
406690:	55                   	push   %ebp
406691:	8b ec                	mov    %esp,%ebp
406693:	83 ec 08             	sub    $0x8,%esp
406696:	8b 45 08             	mov    0x8(%ebp),%eax
406699:	53                   	push   %ebx
40669a:	56                   	push   %esi
40669b:	8b 75 0c             	mov    0xc(%ebp),%esi
40669e:	8b d9                	mov    %ecx,%ebx
4066a0:	89 45 f8             	mov    %eax,-0x8(%ebp)
4066a3:	81 fe ff ff ff 7f    	cmp    $0x7fffffff,%esi
4066a9:	0f 87 b1 00 00 00    	ja     0x406760
4066af:	c7 43 14 0f 00 00 00 	movl   $0xf,0x14(%ebx)
4066b6:	83 fe 10             	cmp    $0x10,%esi
4066b9:	73 1a                	jae    0x4066d5
4066bb:	56                   	push   %esi
4066bc:	50                   	push   %eax
4066bd:	53                   	push   %ebx
4066be:	89 73 10             	mov    %esi,0x10(%ebx)
4066c1:	e8 ba 4f 01 00       	call   0x41b680
4066c6:	83 c4 0c             	add    $0xc,%esp
4066c9:	c6 04 1e 00          	movb   $0x0,(%esi,%ebx,1)
4066cd:	5e                   	pop    %esi
4066ce:	5b                   	pop    %ebx
4066cf:	8b e5                	mov    %ebp,%esp
4066d1:	5d                   	pop    %ebp
4066d2:	c2 08 00             	ret    $0x8
4066d5:	57                   	push   %edi
4066d6:	8b fe                	mov    %esi,%edi
4066d8:	83 cf 0f             	or     $0xf,%edi
4066db:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
4066e1:	76 27                	jbe    0x40670a
4066e3:	b9 00 00 00 80       	mov    $0x80000000,%ecx
4066e8:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
4066ed:	83 c1 23             	add    $0x23,%ecx
4066f0:	51                   	push   %ecx
4066f1:	e8 d0 34 01 00       	call   0x419bc6
4066f6:	8b c8                	mov    %eax,%ecx
4066f8:	83 c4 04             	add    $0x4,%esp
4066fb:	85 c9                	test   %ecx,%ecx
4066fd:	74 6b                	je     0x40676a
4066ff:	8d 41 23             	lea    0x23(%ecx),%eax
406702:	83 e0 e0             	and    $0xffffffe0,%eax
406705:	89 48 fc             	mov    %ecx,-0x4(%eax)
406708:	eb 2e                	jmp    0x406738
40670a:	b8 16 00 00 00       	mov    $0x16,%eax
40670f:	3b f8                	cmp    %eax,%edi
406711:	0f 42 f8             	cmovb  %eax,%edi
406714:	8d 47 01             	lea    0x1(%edi),%eax
406717:	3d 00 10 00 00       	cmp    $0x1000,%eax
40671c:	72 09                	jb     0x406727
40671e:	8d 48 23             	lea    0x23(%eax),%ecx
406721:	3b c8                	cmp    %eax,%ecx
406723:	76 40                	jbe    0x406765
406725:	eb c9                	jmp    0x4066f0
406727:	85 c0                	test   %eax,%eax
406729:	74 0b                	je     0x406736
40672b:	50                   	push   %eax
40672c:	e8 95 34 01 00       	call   0x419bc6
406731:	83 c4 04             	add    $0x4,%esp
406734:	eb 02                	jmp    0x406738
406736:	33 c0                	xor    %eax,%eax
406738:	56                   	push   %esi
406739:	ff 75 f8             	push   -0x8(%ebp)
40673c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40673f:	50                   	push   %eax
406740:	89 03                	mov    %eax,(%ebx)
406742:	89 73 10             	mov    %esi,0x10(%ebx)
406745:	89 7b 14             	mov    %edi,0x14(%ebx)
406748:	e8 33 4f 01 00       	call   0x41b680
40674d:	8b 45 fc             	mov    -0x4(%ebp),%eax
406750:	83 c4 0c             	add    $0xc,%esp
406753:	5f                   	pop    %edi
406754:	c6 04 06 00          	movb   $0x0,(%esi,%eax,1)
406758:	5e                   	pop    %esi
406759:	5b                   	pop    %ebx
40675a:	8b e5                	mov    %ebp,%esp
40675c:	5d                   	pop    %ebp
40675d:	c2 08 00             	ret    $0x8
406760:	e8 fb ab ff ff       	call   0x401360
406765:	e8 56 ab ff ff       	call   0x4012c0
40676a:	e8 24 92 01 00       	call   0x41f993
40676f:	cc                   	int3
406770:	55                   	push   %ebp
406771:	8b ec                	mov    %esp,%ebp
406773:	83 ec 10             	sub    $0x10,%esp
406776:	8b 45 10             	mov    0x10(%ebp),%eax
406779:	53                   	push   %ebx
40677a:	8b d9                	mov    %ecx,%ebx