41e77e:	83 7d 0c 03          	cmpl   $0x3,0xc(%ebp)
41e782:	8b c8                	mov    %eax,%ecx
41e784:	89 44 24 24          	mov    %eax,0x24(%esp)
41e788:	89 4c 24 18          	mov    %ecx,0x18(%esp)
41e78c:	0f 85 09 01 00 00    	jne    0x41e89b
41e792:	6a 28                	push   $0x28
41e794:	58                   	pop    %eax
41e795:	39 06                	cmp    %eax,(%esi)
41e797:	0f 83 bd 00 00 00    	jae    0x41e85a
41e79d:	33 c9                	xor    %ecx,%ecx
41e79f:	89 44 24 40          	mov    %eax,0x40(%esp)
41e7a3:	89 4c 24 54          	mov    %ecx,0x54(%esp)
41e7a7:	33 d2                	xor    %edx,%edx
41e7a9:	89 4c 24 58          	mov    %ecx,0x58(%esp)
41e7ad:	42                   	inc    %edx
41e7ae:	89 4c 24 5c          	mov    %ecx,0x5c(%esp)
41e7b2:	89 4c 24 60          	mov    %ecx,0x60(%esp)
41e7b6:	89 4c 24 64          	mov    %ecx,0x64(%esp)
41e7ba:	0f b7 46 04          	movzwl 0x4(%esi),%eax
41e7be:	89 44 24 44          	mov    %eax,0x44(%esp)
41e7c2:	0f b7 46 06          	movzwl 0x6(%esi),%eax
41e7c6:	89 44 24 48          	mov    %eax,0x48(%esp)
41e7ca:	66 8b 46 08          	mov    0x8(%esi),%ax
41e7ce:	66 89 44 24 4c       	mov    %ax,0x4c(%esp)
41e7d3:	66 8b 46 0a          	mov    0xa(%esi),%ax
41e7d7:	89 4c 24 50          	mov    %ecx,0x50(%esp)
41e7db:	8b ce                	mov    %esi,%ecx
41e7dd:	66 89 44 24 4e       	mov    %ax,0x4e(%esp)
41e7e2:	e8 4e f1 00 00       	call   0x42d935
41e7e7:	0f b7 c8             	movzwl %ax,%ecx
41e7ea:	2b ca                	sub    %edx,%ecx
41e7ec:	78 51                	js     0x41e83f
41e7ee:	6b d1 03             	imul   $0x3,%ecx,%edx
41e7f1:	83 c2 0d             	add    $0xd,%edx
41e7f4:	03 d6                	add    %esi,%edx
41e7f6:	8a 42 ff             	mov    -0x1(%edx),%al
41e7f9:	88 44 8c 68          	mov    %al,0x68(%esp,%ecx,4)
41e7fd:	8a 02                	mov    (%edx),%al
41e7ff:	8d 52 fd             	lea    -0x3(%edx),%edx
41e802:	88 44 8c 69          	mov    %al,0x69(%esp,%ecx,4)
41e806:	8a 42 04             	mov    0x4(%edx),%al
41e809:	88 44 8c 6a          	mov    %al,0x6a(%esp,%ecx,4)
41e80d:	c6 44 8c 6b 00       	movb   $0x0,0x6b(%esp,%ecx,4)
41e812:	83 e9 01             	sub    $0x1,%ecx
41e815:	79 df                	jns    0x41e7f6
41e817:	8b 74 24 40          	mov    0x40(%esp),%esi
41e81b:	eb 25                	jmp    0x41e842
41e81d:	8b c8                	mov    %eax,%ecx
41e81f:	85 c0                	test   %eax,%eax
41e821:	75 0b                	jne    0x41e82e
41e823:	52                   	push   %edx
41e824:	8b cf                	mov    %edi,%ecx
41e826:	e8 49 12 00 00       	call   0x41fa74
41e82b:	8b 4f 30             	mov    0x30(%edi),%ecx
41e82e:	8b c1                	mov    %ecx,%eax
41e830:	85 c9                	test   %ecx,%ecx
41e832:	0f 85 19 ff ff ff    	jne    0x41e751
41e838:	33 c0                	xor    %eax,%eax
41e83a:	e9 b3 01 00 00       	jmp    0x41e9f2
41e83f:	6a 28                	push   $0x28
41e841:	5e                   	pop    %esi
41e842:	8d 44 24 40          	lea    0x40(%esp),%eax
41e846:	8b c8                	mov    %eax,%ecx
41e848:	89 44 24 14          	mov    %eax,0x14(%esp)
41e84c:	e8 21 f1 00 00       	call   0x42d972
41e851:	0f b7 c8             	movzwl %ax,%ecx
41e854:	03 ce                	add    %esi,%ecx
41e856:	89 4c 24 18          	mov    %ecx,0x18(%esp)
41e85a:	8b c1                	mov    %ecx,%eax
41e85c:	2b 44 24 24          	sub    0x24(%esp),%eax
41e860:	03 f8                	add    %eax,%edi
41e862:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
41e867:	89 7c 24 20          	mov    %edi,0x20(%esp)
41e86b:	89 7c 24 0c          	mov    %edi,0xc(%esp)
41e86f:	74 12                	je     0x41e883
41e871:	8d 47 2d             	lea    0x2d(%edi),%eax
41e874:	c7 44 24 1c 0e 00 00 	movl   $0xe,0x1c(%esp)
41e87b:	00
41e87c:	83 e0 e0             	and    $0xffffffe0,%eax
41e87f:	89 44 24 0c          	mov    %eax,0xc(%esp)
41e883:	8b 03                	mov    (%ebx),%eax
41e885:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
41e889:	6a 04                	push   $0x4
41e88b:	51                   	push   %ecx
41e88c:	8b 70 40             	mov    0x40(%eax),%esi
41e88f:	8b ce                	mov    %esi,%ecx
41e891:	ff 15 2c 81 4a 00    	call   *0x4a812c
41e897:	8b cb                	mov    %ebx,%ecx
41e899:	ff d6                	call   *%esi
41e89b:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
41e8a0:	74 48                	je     0x41e8ea
41e8a2:	8b 74 24 14          	mov    0x14(%esp),%esi
41e8a6:	b8 42 4d 00 00       	mov    $0x4d42,%eax
41e8ab:	66 89 44 24 30       	mov    %ax,0x30(%esp)
41e8b0:	8b ce                	mov    %esi,%ecx
41e8b2:	8d 47 0e             	lea    0xe(%edi),%eax
41e8b5:	89 44 24 32          	mov    %eax,0x32(%esp)
41e8b9:	33 c0                	xor    %eax,%eax
41e8bb:	89 44 24 36          	mov    %eax,0x36(%esp)
41e8bf:	e8 ae f0 00 00       	call   0x42d972
41e8c4:	0f b7 c8             	movzwl %ax,%ecx
41e8c7:	8b 06                	mov    (%esi),%eax
41e8c9:	83 c0 0e             	add    $0xe,%eax
41e8cc:	03 c1                	add    %ecx,%eax
41e8ce:	8d 4c 24 30          	lea    0x30(%esp),%ecx
41e8d2:	89 44 24 3a          	mov    %eax,0x3a(%esp)
41e8d6:	8b 03                	mov    (%ebx),%eax
41e8d8:	6a 0e                	push   $0xe
41e8da:	51                   	push   %ecx
41e8db:	8b 70 40             	mov    0x40(%eax),%esi
41e8de:	8b ce                	mov    %esi,%ecx
41e8e0:	ff 15 2c 81 4a 00    	call   *0x4a812c
41e8e6:	8b cb                	mov    %ebx,%ecx
41e8e8:	ff d6                	call   *%esi
41e8ea:	8b 03                	mov    (%ebx),%eax
41e8ec:	8b 70 14             	mov    0x14(%eax),%esi
41e8ef:	8b ce                	mov    %esi,%ecx
41e8f1:	ff 15 2c 81 4a 00    	call   *0x4a812c
41e8f7:	8b cb                	mov    %ebx,%ecx
41e8f9:	ff d6                	call   *%esi
41e8fb:	8b 0b                	mov    (%ebx),%ecx
41e8fd:	8b f8                	mov    %eax,%edi
41e8ff:	2b 44 24 1c          	sub    0x1c(%esp),%eax
41e903:	03 44 24 0c          	add    0xc(%esp),%eax
41e907:	50                   	push   %eax
41e908:	8b 71 34             	mov    0x34(%ecx),%esi
41e90b:	8b ce                	mov    %esi,%ecx
41e90d:	ff 15 2c 81 4a 00    	call   *0x4a812c
41e913:	8b cb                	mov    %ebx,%ecx
41e915:	ff d6                	call   *%esi
41e917:	8b 03                	mov    (%ebx),%eax
41e919:	6a 00                	push   $0x0
41e91b:	57                   	push   %edi
41e91c:	8b 70 30             	mov    0x30(%eax),%esi
41e91f:	8b ce                	mov    %esi,%ecx
41e921:	ff 15 2c 81 4a 00    	call   *0x4a812c
41e927:	8b cb                	mov    %ebx,%ecx
41e929:	ff d6                	call   *%esi
41e92b:	8b 03                	mov    (%ebx),%eax
41e92d:	ff 74 24 18          	push   0x18(%esp)
41e931:	ff 74 24 18          	push   0x18(%esp)
41e935:	8b 70 40             	mov    0x40(%eax),%esi
41e938:	8b ce                	mov    %esi,%ecx
41e93a:	ff 15 2c 81 4a 00    	call   *0x4a812c
41e940:	8b cb                	mov    %ebx,%ecx
41e942:	ff d6                	call   *%esi
41e944:	8b 7c 24 20          	mov    0x20(%esp),%edi
41e948:	8b c7                	mov    %edi,%eax
41e94a:	2b 44 24 18          	sub    0x18(%esp),%eax
41e94e:	8b 33                	mov    (%ebx),%esi
41e950:	50                   	push   %eax
41e951:	8b 44 24 2c          	mov    0x2c(%esp),%eax
41e955:	03 44 24 28          	add    0x28(%esp),%eax
41e959:	8b 4e 40             	mov    0x40(%esi),%ecx
41e95c:	50                   	push   %eax
41e95d:	ff 15 2c 81 4a 00    	call   *0x4a812c
41e963:	8b cb                	mov    %ebx,%ecx
41e965:	ff 56 40             	call   *0x40(%esi)
41e968:	8b 44 24 0c          	mov    0xc(%esp),%eax
41e96c:	2b 44 24 1c          	sub    0x1c(%esp),%eax
41e970:	89 44 24 0c          	mov    %eax,0xc(%esp)
41e974:	3b c7                	cmp    %edi,%eax
41e976:	76 55                	jbe    0x41e9cd
41e978:	8b 33                	mov    (%ebx),%esi
41e97a:	33 c9                	xor    %ecx,%ecx
41e97c:	2b c7                	sub    %edi,%eax
41e97e:	89 8c 24 6c 04 00 00 	mov    %ecx,0x46c(%esp)
41e985:	50                   	push   %eax
41e986:	8d 84 24 70 04 00 00 	lea    0x470(%esp),%eax
41e98d:	89 8c 24 74 04 00 00 	mov    %ecx,0x474(%esp)
41e994:	89 8c 24 78 04 00 00 	mov    %ecx,0x478(%esp)
41e99b:	89 8c 24 7c 04 00 00 	mov    %ecx,0x47c(%esp)
41e9a2:	89 8c 24 80 04 00 00 	mov    %ecx,0x480(%esp)
41e9a9:	89 8c 24 84 04 00 00 	mov    %ecx,0x484(%esp)
41e9b0:	89 8c 24 88 04 00 00 	mov    %ecx,0x488(%esp)
41e9b7:	89 8c 24 8c 04 00 00 	mov    %ecx,0x48c(%esp)
41e9be:	8b 4e 40             	mov    0x40(%esi),%ecx
41e9c1:	50                   	push   %eax
41e9c2:	ff 15 2c 81 4a 00    	call   *0x4a812c
41e9c8:	8b cb                	mov    %ebx,%ecx
41e9ca:	ff 56 40             	call   *0x40(%esi)
41e9cd:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
41e9d1:	83 67 2c 00          	andl   $0x0,0x2c(%edi)
41e9d5:	8b 13                	mov    (%ebx),%edx
41e9d7:	8b 72 50             	mov    0x50(%edx),%esi
41e9da:	8b ce                	mov    %esi,%ecx
41e9dc:	ff 15 2c 81 4a 00    	call   *0x4a812c
41e9e2:	8b cb                	mov    %ebx,%ecx
41e9e4:	ff d6                	call   *%esi
41e9e6:	ff 77 30             	push   0x30(%edi)
41e9e9:	ff 15 50 72 4a 00    	call   *0x4a7250
41e9ef:	33 c0                	xor    %eax,%eax
41e9f1:	40                   	inc    %eax
41e9f2:	8b 8c 24 8c 04 00 00 	mov    0x48c(%esp),%ecx
41e9f9:	5f                   	pop    %edi
41e9fa:	5e                   	pop    %esi
41e9fb:	5b                   	pop    %ebx
41e9fc:	33 cc                	xor    %esp,%ecx
41e9fe:	e8 fd 14 07 00       	call   0x48ff00
41ea03:	8b e5                	mov    %ebp,%esp
41ea05:	5d                   	pop    %ebp
41ea06:	c2 08 00             	ret    $0x8
41ea09:	6a 44                	push   $0x44
41ea0b:	b8 0c 17 49 00       	mov    $0x49170c,%eax
41ea10:	e8 f1 1a 07 00       	call   0x490506
41ea15:	89 4d d8             	mov    %ecx,-0x28(%ebp)
41ea18:	8b 45 0c             	mov    0xc(%ebp),%eax
41ea1b:	8d 4d b0             	lea    -0x50(%ebp),%ecx
41ea1e:	8b 75 08             	mov    0x8(%ebp),%esi
41ea21:	89 75 d4             	mov    %esi,-0x2c(%ebp)
41ea24:	89 45 dc             	mov    %eax,-0x24(%ebp)
41ea27:	ff 15 5c 75 4a 00    	call   *0x4a755c
41ea2d:	83 ec 0c             	sub    $0xc,%esp
41ea30:	8d 4d c0             	lea    -0x40(%ebp),%ecx
41ea33:	33 db                	xor    %ebx,%ebx
41ea35:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41ea38:	e8 95 12 00 00       	call   0x41fcd2
41ea3d:	56                   	push   %esi
41ea3e:	53                   	push   %ebx
41ea3f:	bf 04 08 00 00       	mov    $0x804,%edi
41ea44:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
41ea48:	57                   	push   %edi
41ea49:	b9 e0 55 4a 00       	mov    $0x4a55e0,%ecx
41ea4e:	e8 f6 f1 02 00       	call   0x44dc49
41ea53:	8d 45 c0             	lea    -0x40(%ebp),%eax
41ea56:	50                   	push   %eax
41ea57:	68 20 80 00 00       	push   $0x8020
41ea5c:	56                   	push   %esi
41ea5d:	8d 4d b0             	lea    -0x50(%ebp),%ecx
41ea60:	ff 15 78 75 4a 00    	call   *0x4a7578
41ea66:	85 c0                	test   %eax,%eax
41ea68:	75 10                	jne    0x41ea7a
41ea6a:	8b 45 c8             	mov    -0x38(%ebp),%eax
41ea6d:	a3 30 5c 4a 00       	mov    %eax,0x4a5c30
41ea72:	89 3d 48 5c 4a 00    	mov    %edi,0x4a5c48
41ea78:	eb 76                	jmp    0x41eaf0
41ea7a:	ff 75 dc             	push   -0x24(%ebp)
41ea7d:	be dc f0 40 00       	mov    $0x40f0dc,%esi
41ea82:	8d 7d e0             	lea    -0x20(%ebp),%edi
41ea85:	51                   	push   %ecx
41ea86:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
41ea89:	8d 55 e0             	lea    -0x20(%ebp),%edx
41ea8c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41ea8d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41ea8e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41ea8f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41ea90:	8b 75 d8             	mov    -0x28(%ebp),%esi
41ea93:	8d 46 48             	lea    0x48(%esi),%eax
41ea96:	50                   	push   %eax
41ea97:	8d 46 44             	lea    0x44(%esi),%eax
41ea9a:	50                   	push   %eax
41ea9b:	8d 46 40             	lea    0x40(%esi),%eax
41ea9e:	50                   	push   %eax
41ea9f:	8d 46 3c             	lea    0x3c(%esi),%eax
41eaa2:	50                   	push   %eax
41eaa3:	e8 35 bd 01 00       	call   0x43a7dd
41eaa8:	85 c0                	test   %eax,%eax
41eaaa:	74 2b                	je     0x41ead7
41eaac:	50                   	push   %eax
41eaad:	8b ce                	mov    %esi,%ecx
41eaaf:	e8 9b 02 00 00       	call   0x41ed4f
41eab4:	85 c0                	test   %eax,%eax
41eab6:	74 22                	je     0x41eada
41eab8:	89 1d 30 5c 4a 00    	mov    %ebx,0x4a5c30
41eabe:	8d 7e 14             	lea    0x14(%esi),%edi
41eac1:	89 1d 48 5c 4a 00    	mov    %ebx,0x4a5c48
41eac7:	c7 46 10 04 00 00 00 	movl   $0x4,0x10(%esi)
41eace:	8d 75 e0             	lea    -0x20(%ebp),%esi
41ead1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41ead2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41ead3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41ead4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41ead5:	eb 17                	jmp    0x41eaee
41ead7:	33 c0                	xor    %eax,%eax
41ead9:	40                   	inc    %eax
41eada:	c7 05 48 5c 4a 00 04 	movl   $0x804,0x4a5c48
41eae1:	08 00 00
41eae4:	c7 05 30 5c 4a 00 f4 	movl   $0x3f4,0x4a5c30
41eaeb:	03 00 00
41eaee:	8b d8                	mov    %eax,%ebx
41eaf0:	8d 4d c0             	lea    -0x40(%ebp),%ecx
41eaf3:	e8 87 11 00 00       	call   0x41fc7f
41eaf8:	8d 4d b0             	lea    -0x50(%ebp),%ecx
41eafb:	ff 15 60 75 4a 00    	call   *0x4a7560
41eb01:	8b c3                	mov    %ebx,%eax
41eb03:	e8 ad 19 07 00       	call   0x4904b5
41eb08:	c2 08 00             	ret    $0x8
41eb0b:	8b ff                	mov    %edi,%edi
41eb0d:	55                   	push   %ebp
41eb0e:	8b ec                	mov    %esp,%ebp
41eb10:	83 ec 28             	sub    $0x28,%esp
41eb13:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
41eb18:	33 c5                	xor    %ebp,%eax
41eb1a:	89 45 fc             	mov    %eax,-0x4(%ebp)
41eb1d:	53                   	push   %ebx
41eb1e:	56                   	push   %esi
41eb1f:	8b d9                	mov    %ecx,%ebx
41eb21:	33 c0                	xor    %eax,%eax
41eb23:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41eb26:	89 45 dc             	mov    %eax,-0x24(%ebp)
41eb29:	57                   	push   %edi
41eb2a:	8b 7d 08             	mov    0x8(%ebp),%edi
41eb2d:	89 7d e8             	mov    %edi,-0x18(%ebp)
41eb30:	85 c9                	test   %ecx,%ecx
41eb32:	74 0d                	je     0x41eb41
41eb34:	83 f9 02             	cmp    $0x2,%ecx
41eb37:	74 08                	je     0x41eb41
41eb39:	89 45 e4             	mov    %eax,-0x1c(%ebp)
41eb3c:	83 f9 03             	cmp    $0x3,%ecx
41eb3f:	75 07                	jne    0x41eb48
41eb41:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
41eb48:	8b 07                	mov    (%edi),%eax
41eb4a:	8b 70 38             	mov    0x38(%eax),%esi
41eb4d:	8b ce                	mov    %esi,%ecx
41eb4f:	ff 15 2c 81 4a 00    	call   *0x4a812c
41eb55:	8b cf                	mov    %edi,%ecx
41eb57:	ff d6                	call   *%esi
41eb59:	8b f8                	mov    %eax,%edi
41eb5b:	85 ff                	test   %edi,%edi
41eb5d:	75 1b                	jne    0x41eb7a
41eb5f:	39 43 30             	cmp    %eax,0x30(%ebx)
41eb62:	74 07                	je     0x41eb6b
41eb64:	8b cb                	mov    %ebx,%ecx
41eb66:	e8 93 f7 ff ff       	call   0x41e2fe
41eb6b:	33 c0                	xor    %eax,%eax
41eb6d:	c7 43 2c 01 00 00 00 	movl   $0x1,0x2c(%ebx)
41eb74:	40                   	inc    %eax
41eb75:	e9 b9 00 00 00       	jmp    0x41ec33
41eb7a:	83 7d 0c 03          	cmpl   $0x3,0xc(%ebp)
41eb7e:	75 2f                	jne    0x41ebaf
41eb80:	8b 45 e8             	mov    -0x18(%ebp),%eax
41eb83:	8d 4d e0             	lea    -0x20(%ebp),%ecx
41eb86:	6a 04                	push   $0x4
41eb88:	51                   	push   %ecx
41eb89:	8b 00                	mov    (%eax),%eax
41eb8b:	8b 70 3c             	mov    0x3c(%eax),%esi
41eb8e:	8b ce                	mov    %esi,%ecx
41eb90:	ff 15 2c 81 4a 00    	call   *0x4a812c
41eb96:	8b 4d e8             	mov    -0x18(%ebp),%ecx
41eb99:	ff d6                	call   *%esi
41eb9b:	83 f8 04             	cmp    $0x4,%eax
41eb9e:	0f 85 a6 00 00 00    	jne    0x41ec4a
41eba4:	39 7d e0             	cmp    %edi,-0x20(%ebp)
41eba7:	0f 87 9d 00 00 00    	ja     0x41ec4a
41ebad:	2b f8                	sub    %eax,%edi
41ebaf:	83 63 34 00          	andl   $0x0,0x34(%ebx)
41ebb3:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
41ebb7:	74 48                	je     0x41ec01
41ebb9:	8b 45 e8             	mov    -0x18(%ebp),%eax
41ebbc:	8d 4d ec             	lea    -0x14(%ebp),%ecx