4043f5:	ff 15 54 90 41 00    	call   *0x419054
4043fb:	85 c0                	test   %eax,%eax
4043fd:	79 19                	jns    0x404418
4043ff:	56                   	push   %esi
404400:	be f8 1a 42 00       	mov    $0x421af8,%esi
404405:	56                   	push   %esi
404406:	e8 ef 02 00 00       	call   0x4046fa
40440b:	83 c6 18             	add    $0x18,%esi
40440e:	59                   	pop    %ecx
40440f:	81 fe 58 1b 42 00    	cmp    $0x421b58,%esi
404415:	7c ee                	jl     0x404405
404417:	5e                   	pop    %esi
404418:	c3                   	ret
404419:	8b 01                	mov    (%ecx),%eax
40441b:	85 c0                	test   %eax,%eax
40441d:	75 09                	jne    0x404428
40441f:	6a 0c                	push   $0xc
404421:	e8 e5 41 00 00       	call   0x40860b
404426:	59                   	pop    %ecx
404427:	c3                   	ret
404428:	83 f8 04             	cmp    $0x4,%eax
40442b:	7d 0f                	jge    0x40443c
40442d:	6b c0 18             	imul   $0x18,%eax,%eax
404430:	05 f8 1a 42 00       	add    $0x421af8,%eax
404435:	50                   	push   %eax
404436:	e8 f0 02 00 00       	call   0x40472b
40443b:	59                   	pop    %ecx
40443c:	c3                   	ret
40443d:	55                   	push   %ebp
40443e:	8b ec                	mov    %esp,%ebp
404440:	56                   	push   %esi
404441:	e8 1d 39 00 00       	call   0x407d63
404446:	8b 75 08             	mov    0x8(%ebp),%esi
404449:	6a 02                	push   $0x2
40444b:	68 00 01 00 00       	push   $0x100
404450:	89 06                	mov    %eax,(%esi)
404452:	e8 01 46 00 00       	call   0x408a58
404457:	59                   	pop    %ecx
404458:	59                   	pop    %ecx
404459:	89 46 04             	mov    %eax,0x4(%esi)
40445c:	85 c0                	test   %eax,%eax
40445e:	74 1f                	je     0x40447f
404460:	68 00 02 00 00       	push   $0x200
404465:	e8 b6 41 00 00       	call   0x408620
40446a:	50                   	push   %eax
40446b:	ff 76 04             	push   0x4(%esi)
40446e:	e8 2d 12 00 00       	call   0x4056a0
404473:	83 c4 0c             	add    $0xc,%esp
404476:	c7 46 08 01 00 00 00 	movl   $0x1,0x8(%esi)
40447d:	eb 0c                	jmp    0x40448b
40447f:	e8 9c 41 00 00       	call   0x408620
404484:	83 66 08 00          	andl   $0x0,0x8(%esi)
404488:	89 46 04             	mov    %eax,0x4(%esi)
40448b:	e8 f9 38 00 00       	call   0x407d89
404490:	8b 40 04             	mov    0x4(%eax),%eax
404493:	89 46 0c             	mov    %eax,0xc(%esi)
404496:	85 c0                	test   %eax,%eax
404498:	74 0a                	je     0x4044a4
40449a:	50                   	push   %eax
40449b:	e8 1a 43 00 00       	call   0x4087ba
4044a0:	59                   	pop    %ecx
4044a1:	89 46 0c             	mov    %eax,0xc(%esi)
4044a4:	8b c6                	mov    %esi,%eax
4044a6:	5e                   	pop    %esi
4044a7:	5d                   	pop    %ebp
4044a8:	c3                   	ret
4044a9:	55                   	push   %ebp
4044aa:	8b ec                	mov    %esp,%ebp
4044ac:	83 ec 0c             	sub    $0xc,%esp
4044af:	56                   	push   %esi
4044b0:	8b 75 0c             	mov    0xc(%ebp),%esi
4044b3:	57                   	push   %edi
4044b4:	85 f6                	test   %esi,%esi
4044b6:	75 0f                	jne    0x4044c7
4044b8:	e8 cc 38 00 00       	call   0x407d89
4044bd:	8b 78 08             	mov    0x8(%eax),%edi
4044c0:	e8 9e 38 00 00       	call   0x407d63
4044c5:	eb 05                	jmp    0x4044cc
4044c7:	8b 7e 0c             	mov    0xc(%esi),%edi
4044ca:	8b 06                	mov    (%esi),%eax
4044cc:	89 45 f8             	mov    %eax,-0x8(%ebp)
4044cf:	85 ff                	test   %edi,%edi
4044d1:	75 17                	jne    0x4044ea
4044d3:	8b 45 08             	mov    0x8(%ebp),%eax
4044d6:	8d 48 bf             	lea    -0x41(%eax),%ecx
4044d9:	83 f9 19             	cmp    $0x19,%ecx
4044dc:	0f 87 c0 00 00 00    	ja     0x4045a2
4044e2:	83 c0 20             	add    $0x20,%eax
4044e5:	e9 b8 00 00 00       	jmp    0x4045a2
4044ea:	53                   	push   %ebx
4044eb:	8b 5d 08             	mov    0x8(%ebp),%ebx
4044ee:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
4044f4:	73 1d                	jae    0x404513
4044f6:	85 f6                	test   %esi,%esi
4044f8:	75 10                	jne    0x40450a
4044fa:	53                   	push   %ebx
4044fb:	e8 8f 42 00 00       	call   0x40878f
404500:	59                   	pop    %ecx
404501:	85 c0                	test   %eax,%eax
404503:	75 12                	jne    0x404517
404505:	e9 81 00 00 00       	jmp    0x40458b
40450a:	8b 46 04             	mov    0x4(%esi),%eax
40450d:	f6 04 58 01          	testb  $0x1,(%eax,%ebx,2)
404511:	74 78                	je     0x40458b
404513:	85 f6                	test   %esi,%esi
404515:	75 1e                	jne    0x404535
404517:	8b c3                	mov    %ebx,%eax
404519:	c1 f8 08             	sar    $0x8,%eax
40451c:	89 45 f4             	mov    %eax,-0xc(%ebp)
40451f:	e8 fc 40 00 00       	call   0x408620
404524:	8b 55 f4             	mov    -0xc(%ebp),%edx
404527:	0f b6 ca             	movzbl %dl,%ecx
40452a:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
40452e:	25 00 80 00 00       	and    $0x8000,%eax
404533:	eb 15                	jmp    0x40454a
404535:	8b 46 04             	mov    0x4(%esi),%eax
404538:	8b d3                	mov    %ebx,%edx
40453a:	c1 fa 08             	sar    $0x8,%edx
40453d:	0f b6 ca             	movzbl %dl,%ecx
404540:	0f bf 04 48          	movswl (%eax,%ecx,2),%eax
404544:	c1 e8 0f             	shr    $0xf,%eax
404547:	83 e0 01             	and    $0x1,%eax
40454a:	85 c0                	test   %eax,%eax
40454c:	74 0f                	je     0x40455d
40454e:	6a 02                	push   $0x2
404550:	88 55 0c             	mov    %dl,0xc(%ebp)
404553:	88 5d 0d             	mov    %bl,0xd(%ebp)
404556:	c6 45 0e 00          	movb   $0x0,0xe(%ebp)
40455a:	58                   	pop    %eax
40455b:	eb 0a                	jmp    0x404567
40455d:	33 c0                	xor    %eax,%eax
40455f:	88 5d 0c             	mov    %bl,0xc(%ebp)
404562:	c6 45 0d 00          	movb   $0x0,0xd(%ebp)
404566:	40                   	inc    %eax
404567:	6a 01                	push   $0x1
404569:	ff 75 f8             	push   -0x8(%ebp)
40456c:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40456f:	6a 03                	push   $0x3
404571:	51                   	push   %ecx
404572:	50                   	push   %eax
404573:	8d 45 0c             	lea    0xc(%ebp),%eax
404576:	50                   	push   %eax
404577:	68 00 01 00 00       	push   $0x100
40457c:	57                   	push   %edi
40457d:	6a 00                	push   $0x0
40457f:	e8 72 44 00 00       	call   0x4089f6
404584:	83 c4 24             	add    $0x24,%esp
404587:	85 c0                	test   %eax,%eax
404589:	75 04                	jne    0x40458f
40458b:	8b c3                	mov    %ebx,%eax
40458d:	eb 12                	jmp    0x4045a1
40458f:	83 f8 01             	cmp    $0x1,%eax
404592:	0f b6 45 fc          	movzbl -0x4(%ebp),%eax
404596:	74 09                	je     0x4045a1
404598:	0f b6 4d fd          	movzbl -0x3(%ebp),%ecx
40459c:	c1 e0 08             	shl    $0x8,%eax
40459f:	0b c1                	or     %ecx,%eax
4045a1:	5b                   	pop    %ebx
4045a2:	5f                   	pop    %edi
4045a3:	5e                   	pop    %esi
4045a4:	c9                   	leave
4045a5:	c3                   	ret
4045a6:	55                   	push   %ebp
4045a7:	8b ec                	mov    %esp,%ebp
4045a9:	83 ec 0c             	sub    $0xc,%esp
4045ac:	56                   	push   %esi
4045ad:	8b 75 0c             	mov    0xc(%ebp),%esi
4045b0:	57                   	push   %edi
4045b1:	85 f6                	test   %esi,%esi
4045b3:	75 0f                	jne    0x4045c4
4045b5:	e8 cf 37 00 00       	call   0x407d89
4045ba:	8b 78 08             	mov    0x8(%eax),%edi
4045bd:	e8 a1 37 00 00       	call   0x407d63
4045c2:	eb 05                	jmp    0x4045c9
4045c4:	8b 7e 0c             	mov    0xc(%esi),%edi
4045c7:	8b 06                	mov    (%esi),%eax
4045c9:	89 45 f8             	mov    %eax,-0x8(%ebp)
4045cc:	85 ff                	test   %edi,%edi
4045ce:	75 17                	jne    0x4045e7
4045d0:	8b 45 08             	mov    0x8(%ebp),%eax
4045d3:	8d 48 9f             	lea    -0x61(%eax),%ecx
4045d6:	83 f9 19             	cmp    $0x19,%ecx
4045d9:	0f 87 c0 00 00 00    	ja     0x40469f
4045df:	83 e8 20             	sub    $0x20,%eax
4045e2:	e9 b8 00 00 00       	jmp    0x40469f
4045e7:	53                   	push   %ebx
4045e8:	8b 5d 08             	mov    0x8(%ebp),%ebx
4045eb:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
4045f1:	73 1d                	jae    0x404610
4045f3:	85 f6                	test   %esi,%esi
4045f5:	75 10                	jne    0x404607
4045f7:	53                   	push   %ebx
4045f8:	e8 67 41 00 00       	call   0x408764
4045fd:	59                   	pop    %ecx
4045fe:	85 c0                	test   %eax,%eax
404600:	75 12                	jne    0x404614
404602:	e9 81 00 00 00       	jmp    0x404688
404607:	8b 46 04             	mov    0x4(%esi),%eax
40460a:	f6 04 58 02          	testb  $0x2,(%eax,%ebx,2)
40460e:	74 78                	je     0x404688
404610:	85 f6                	test   %esi,%esi
404612:	75 1e                	jne    0x404632
404614:	8b c3                	mov    %ebx,%eax
404616:	c1 f8 08             	sar    $0x8,%eax
404619:	89 45 f4             	mov    %eax,-0xc(%ebp)
40461c:	e8 ff 3f 00 00       	call   0x408620
404621:	8b 55 f4             	mov    -0xc(%ebp),%edx
404624:	0f b6 ca             	movzbl %dl,%ecx
404627:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
40462b:	25 00 80 00 00       	and    $0x8000,%eax
404630:	eb 15                	jmp    0x404647
404632:	8b 46 04             	mov    0x4(%esi),%eax
404635:	8b d3                	mov    %ebx,%edx
404637:	c1 fa 08             	sar    $0x8,%edx
40463a:	0f b6 ca             	movzbl %dl,%ecx
40463d:	0f bf 04 48          	movswl (%eax,%ecx,2),%eax
404641:	c1 e8 0f             	shr    $0xf,%eax
404644:	83 e0 01             	and    $0x1,%eax
404647:	85 c0                	test   %eax,%eax
404649:	74 0f                	je     0x40465a
40464b:	6a 02                	push   $0x2
40464d:	88 55 0c             	mov    %dl,0xc(%ebp)
404650:	88 5d 0d             	mov    %bl,0xd(%ebp)
404653:	c6 45 0e 00          	movb   $0x0,0xe(%ebp)
404657:	58                   	pop    %eax
404658:	eb 0a                	jmp    0x404664
40465a:	33 c0                	xor    %eax,%eax
40465c:	88 5d 0c             	mov    %bl,0xc(%ebp)
40465f:	c6 45 0d 00          	movb   $0x0,0xd(%ebp)
404663:	40                   	inc    %eax
404664:	6a 01                	push   $0x1
404666:	ff 75 f8             	push   -0x8(%ebp)
404669:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40466c:	6a 03                	push   $0x3
40466e:	51                   	push   %ecx
40466f:	50                   	push   %eax
404670:	8d 45 0c             	lea    0xc(%ebp),%eax
404673:	50                   	push   %eax
404674:	68 00 02 00 00       	push   $0x200
404679:	57                   	push   %edi
40467a:	6a 00                	push   $0x0
40467c:	e8 75 43 00 00       	call   0x4089f6
404681:	83 c4 24             	add    $0x24,%esp
404684:	85 c0                	test   %eax,%eax
404686:	75 04                	jne    0x40468c
404688:	8b c3                	mov    %ebx,%eax
40468a:	eb 12                	jmp    0x40469e
40468c:	83 f8 01             	cmp    $0x1,%eax
40468f:	0f b6 45 fc          	movzbl -0x4(%ebp),%eax
404693:	74 09                	je     0x40469e
404695:	0f b6 4d fd          	movzbl -0x3(%ebp),%ecx
404699:	c1 e0 08             	shl    $0x8,%eax
40469c:	0b c1                	or     %ecx,%eax
40469e:	5b                   	pop    %ebx
40469f:	5f                   	pop    %edi
4046a0:	5e                   	pop    %esi
4046a1:	c9                   	leave
4046a2:	c3                   	ret
4046a3:	eb 1b                	jmp    0x4046c0
4046a5:	8b 04 8d 78 1b 42 00 	mov    0x421b78(,%ecx,4),%eax
4046ac:	41                   	inc    %ecx
4046ad:	50                   	push   %eax
4046ae:	89 0d 20 01 42 00    	mov    %ecx,0x420120
4046b4:	ff 15 5c 90 41 00    	call   *0x41905c
4046ba:	85 c0                	test   %eax,%eax
4046bc:	74 02                	je     0x4046c0
4046be:	ff d0                	call   *%eax
4046c0:	8b 0d 20 01 42 00    	mov    0x420120,%ecx
4046c6:	83 f9 0a             	cmp    $0xa,%ecx
4046c9:	72 da                	jb     0x4046a5
4046cb:	c3                   	ret
4046cc:	55                   	push   %ebp
4046cd:	8b ec                	mov    %esp,%ebp
4046cf:	a1 20 01 42 00       	mov    0x420120,%eax
4046d4:	85 c0                	test   %eax,%eax
4046d6:	0f 84 7a 44 00 00    	je     0x408b56
4046dc:	ff 75 08             	push   0x8(%ebp)
4046df:	48                   	dec    %eax
4046e0:	a3 20 01 42 00       	mov    %eax,0x420120
4046e5:	ff 15 58 90 41 00    	call   *0x419058
4046eb:	8b 0d 20 01 42 00    	mov    0x420120,%ecx
4046f1:	89 04 8d 78 1b 42 00 	mov    %eax,0x421b78(,%ecx,4)
4046f8:	5d                   	pop    %ebp
4046f9:	c3                   	ret
4046fa:	55                   	push   %ebp
4046fb:	8b ec                	mov    %esp,%ebp
4046fd:	ff 75 08             	push   0x8(%ebp)
404700:	ff 15 6c 90 41 00    	call   *0x41906c
404706:	5d                   	pop    %ebp
404707:	c3                   	ret
404708:	55                   	push   %ebp
404709:	8b ec                	mov    %esp,%ebp
40470b:	6a 00                	push   $0x0
40470d:	68 a0 0f 00 00       	push   $0xfa0
404712:	ff 75 08             	push   0x8(%ebp)
404715:	ff 15 68 90 41 00    	call   *0x419068
40471b:	5d                   	pop    %ebp
40471c:	c3                   	ret
40471d:	55                   	push   %ebp
40471e:	8b ec                	mov    %esp,%ebp
404720:	ff 75 08             	push   0x8(%ebp)
404723:	ff 15 60 90 41 00    	call   *0x419060
404729:	5d                   	pop    %ebp
40472a:	c3                   	ret
40472b:	55                   	push   %ebp
40472c:	8b ec                	mov    %esp,%ebp
40472e:	ff 75 08             	push   0x8(%ebp)
404731:	ff 15 64 90 41 00    	call   *0x419064
404737:	5d                   	pop    %ebp
404738:	c3                   	ret
404739:	3b 0d 90 08 42 00    	cmp    0x420890,%ecx
40473f:	75 02                	jne    0x404743
404741:	f3 c3                	repz ret
404743:	e9 2f 60 00 00       	jmp    0x40a777
404748:	cc                   	int3
404749:	cc                   	int3
40474a:	cc                   	int3
40474b:	cc                   	int3
40474c:	cc                   	int3
40474d:	cc                   	int3
40474e:	cc                   	int3
40474f:	cc                   	int3
404750:	57                   	push   %edi
404751:	56                   	push   %esi
404752:	8b 74 24 10          	mov    0x10(%esp),%esi
404756:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40475a:	8b 7c 24 0c          	mov    0xc(%esp),%edi
40475e:	8b c1                	mov    %ecx,%eax
404760:	8b d1                	mov    %ecx,%edx
404762:	03 c6                	add    %esi,%eax
404764:	3b fe                	cmp    %esi,%edi
404766:	76 08                	jbe    0x404770
404768:	3b f8                	cmp    %eax,%edi
40476a:	0f 82 68 03 00 00    	jb     0x404ad8
404770:	0f ba 25 d4 20 42 00 	btl    $0x1,0x4220d4
404777:	01
404778:	73 07                	jae    0x404781
40477a:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40477c:	e9 17 03 00 00       	jmp    0x404a98
404781:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
404787:	0f 82 ce 01 00 00    	jb     0x40495b
40478d:	8b c7                	mov    %edi,%eax
40478f:	33 c6                	xor    %esi,%eax
404791:	a9 0f 00 00 00       	test   $0xf,%eax
404796:	75 0e                	jne    0x4047a6
404798:	0f ba 25 a8 08 42 00 	btl    $0x1,0x4208a8
40479f:	01
4047a0:	0f 82 da 04 00 00    	jb     0x404c80
4047a6:	0f ba 25 d4 20 42 00 	btl    $0x0,0x4220d4
4047ad:	00