41aa2a:	8b 4e 14             	mov    0x14(%esi),%ecx
41aa2d:	8b 5e 10             	mov    0x10(%esi),%ebx
41aa30:	89 4d f8             	mov    %ecx,-0x8(%ebp)
41aa33:	3b d9                	cmp    %ecx,%ebx
41aa35:	73 24                	jae    0x41aa5b
41aa37:	8d 43 01             	lea    0x1(%ebx),%eax
41aa3a:	89 46 10             	mov    %eax,0x10(%esi)
41aa3d:	83 f9 08             	cmp    $0x8,%ecx
41aa40:	72 02                	jb     0x41aa44
41aa42:	8b 36                	mov    (%esi),%esi
41aa44:	66 8b 45 08          	mov    0x8(%ebp),%ax
41aa48:	66 89 04 5e          	mov    %ax,(%esi,%ebx,2)
41aa4c:	33 c0                	xor    %eax,%eax
41aa4e:	66 89 44 5e 02       	mov    %ax,0x2(%esi,%ebx,2)
41aa53:	5e                   	pop    %esi
41aa54:	5b                   	pop    %ebx
41aa55:	8b e5                	mov    %ebp,%esp
41aa57:	5d                   	pop    %ebp
41aa58:	c2 04 00             	ret    $0x4
41aa5b:	ba fe ff ff 7f       	mov    $0x7ffffffe,%edx
41aa60:	8b c2                	mov    %edx,%eax
41aa62:	2b c3                	sub    %ebx,%eax
41aa64:	83 f8 01             	cmp    $0x1,%eax
41aa67:	0f 82 d5 00 00 00    	jb     0x41ab42
41aa6d:	57                   	push   %edi
41aa6e:	8d 7b 01             	lea    0x1(%ebx),%edi
41aa71:	83 cf 07             	or     $0x7,%edi
41aa74:	3b fa                	cmp    %edx,%edi
41aa76:	76 04                	jbe    0x41aa7c
41aa78:	8b fa                	mov    %edx,%edi
41aa7a:	eb 18                	jmp    0x41aa94
41aa7c:	8b c1                	mov    %ecx,%eax
41aa7e:	d1 e8                	shr    $1,%eax
41aa80:	2b d0                	sub    %eax,%edx
41aa82:	3b ca                	cmp    %edx,%ecx
41aa84:	76 07                	jbe    0x41aa8d
41aa86:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
41aa8b:	eb 07                	jmp    0x41aa94
41aa8d:	03 c1                	add    %ecx,%eax
41aa8f:	3b f8                	cmp    %eax,%edi
41aa91:	0f 42 f8             	cmovb  %eax,%edi
41aa94:	33 c9                	xor    %ecx,%ecx
41aa96:	8b c7                	mov    %edi,%eax
41aa98:	83 c0 01             	add    $0x1,%eax
41aa9b:	0f 92 c1             	setb   %cl
41aa9e:	f7 d9                	neg    %ecx
41aaa0:	0b c8                	or     %eax,%ecx
41aaa2:	51                   	push   %ecx
41aaa3:	8b ce                	mov    %esi,%ecx
41aaa5:	e8 66 76 fe ff       	call   0x402110
41aaaa:	8d 4b 01             	lea    0x1(%ebx),%ecx
41aaad:	89 7e 14             	mov    %edi,0x14(%esi)
41aab0:	89 4e 10             	mov    %ecx,0x10(%esi)
41aab3:	8d 0c 1b             	lea    (%ebx,%ebx,1),%ecx
41aab6:	8b 5d f8             	mov    -0x8(%ebp),%ebx
41aab9:	89 45 fc             	mov    %eax,-0x4(%ebp)
41aabc:	8d 3c 01             	lea    (%ecx,%eax,1),%edi
41aabf:	89 7d f4             	mov    %edi,-0xc(%ebp)
41aac2:	51                   	push   %ecx
41aac3:	83 fb 08             	cmp    $0x8,%ebx
41aac6:	72 55                	jb     0x41ab1d
41aac8:	8b 3e                	mov    (%esi),%edi
41aaca:	57                   	push   %edi
41aacb:	50                   	push   %eax
41aacc:	e8 4f 0b 05 00       	call   0x46b620
41aad1:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41aad4:	8d 1c 5d 02 00 00 00 	lea    0x2(,%ebx,2),%ebx
41aadb:	66 8b 45 08          	mov    0x8(%ebp),%ax
41aadf:	83 c4 0c             	add    $0xc,%esp
41aae2:	66 89 01             	mov    %ax,(%ecx)
41aae5:	33 c0                	xor    %eax,%eax
41aae7:	66 89 41 02          	mov    %ax,0x2(%ecx)
41aaeb:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
41aaf1:	72 12                	jb     0x41ab05
41aaf3:	8b 4f fc             	mov    -0x4(%edi),%ecx
41aaf6:	83 c3 23             	add    $0x23,%ebx
41aaf9:	2b f9                	sub    %ecx,%edi
41aafb:	8d 47 fc             	lea    -0x4(%edi),%eax
41aafe:	83 f8 1f             	cmp    $0x1f,%eax
41ab01:	77 44                	ja     0x41ab47
41ab03:	8b f9                	mov    %ecx,%edi
41ab05:	53                   	push   %ebx
41ab06:	57                   	push   %edi
41ab07:	e8 fc ee 04 00       	call   0x469a08
41ab0c:	8b 45 fc             	mov    -0x4(%ebp),%eax
41ab0f:	83 c4 08             	add    $0x8,%esp
41ab12:	89 06                	mov    %eax,(%esi)
41ab14:	5f                   	pop    %edi
41ab15:	5e                   	pop    %esi
41ab16:	5b                   	pop    %ebx
41ab17:	8b e5                	mov    %ebp,%esp
41ab19:	5d                   	pop    %ebp
41ab1a:	c2 04 00             	ret    $0x4
41ab1d:	56                   	push   %esi
41ab1e:	50                   	push   %eax
41ab1f:	e8 fc 0a 05 00       	call   0x46b620
41ab24:	66 8b 45 08          	mov    0x8(%ebp),%ax
41ab28:	83 c4 0c             	add    $0xc,%esp
41ab2b:	66 89 07             	mov    %ax,(%edi)
41ab2e:	33 c0                	xor    %eax,%eax
41ab30:	66 89 47 02          	mov    %ax,0x2(%edi)
41ab34:	8b 45 fc             	mov    -0x4(%ebp),%eax
41ab37:	5f                   	pop    %edi
41ab38:	89 06                	mov    %eax,(%esi)
41ab3a:	5e                   	pop    %esi
41ab3b:	5b                   	pop    %ebx
41ab3c:	8b e5                	mov    %ebp,%esp
41ab3e:	5d                   	pop    %ebp
41ab3f:	c2 04 00             	ret    $0x4
41ab42:	e8 99 68 fe ff       	call   0x4013e0
41ab47:	e8 e5 ea 05 00       	call   0x479631
41ab4c:	cc                   	int3
41ab4d:	cc                   	int3
41ab4e:	cc                   	int3
41ab4f:	cc                   	int3
41ab50:	55                   	push   %ebp
41ab51:	8b ec                	mov    %esp,%ebp
41ab53:	6a ff                	push   $0xffffffff
41ab55:	68 8b 90 49 00       	push   $0x49908b
41ab5a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
41ab60:	50                   	push   %eax
41ab61:	81 ec a4 00 00 00    	sub    $0xa4,%esp
41ab67:	a1 14 40 4c 00       	mov    0x4c4014,%eax
41ab6c:	33 c5                	xor    %ebp,%eax
41ab6e:	89 45 f0             	mov    %eax,-0x10(%ebp)
41ab71:	53                   	push   %ebx
41ab72:	56                   	push   %esi
41ab73:	57                   	push   %edi
41ab74:	50                   	push   %eax
41ab75:	8d 45 f4             	lea    -0xc(%ebp),%eax
41ab78:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
41ab7e:	8b 4d 18             	mov    0x18(%ebp),%ecx
41ab81:	8b 7d 0c             	mov    0xc(%ebp),%edi
41ab84:	8b 55 14             	mov    0x14(%ebp),%edx
41ab87:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
41ab8a:	8b 41 14             	mov    0x14(%ecx),%eax
41ab8d:	8b 75 10             	mov    0x10(%ebp),%esi
41ab90:	25 00 30 00 00       	and    $0x3000,%eax
41ab95:	89 bd 64 ff ff ff    	mov    %edi,-0x9c(%ebp)
41ab9b:	89 55 90             	mov    %edx,-0x70(%ebp)
41ab9e:	89 4d 80             	mov    %ecx,-0x80(%ebp)
41aba1:	89 9d 70 ff ff ff    	mov    %ebx,-0x90(%ebp)
41aba7:	3d 00 30 00 00       	cmp    $0x3000,%eax
41abac:	75 15                	jne    0x41abc3
41abae:	53                   	push   %ebx
41abaf:	51                   	push   %ecx
41abb0:	52                   	push   %edx
41abb1:	56                   	push   %esi
41abb2:	57                   	push   %edi
41abb3:	ff 75 08             	push   0x8(%ebp)
41abb6:	e8 85 17 00 00       	call   0x41c340
41abbb:	83 c4 18             	add    $0x18,%esp
41abbe:	e9 dd 0d 00 00       	jmp    0x41b9a0
41abc3:	8b 41 30             	mov    0x30(%ecx),%eax
41abc6:	8b 58 04             	mov    0x4(%eax),%ebx
41abc9:	89 9d 7c ff ff ff    	mov    %ebx,-0x84(%ebp)
41abcf:	8b 03                	mov    (%ebx),%eax
41abd1:	8b 78 04             	mov    0x4(%eax),%edi
41abd4:	8b cf                	mov    %edi,%ecx
41abd6:	ff 15 d4 e2 49 00    	call   *0x49e2d4
41abdc:	8b cb                	mov    %ebx,%ecx
41abde:	ff d7                	call   *%edi
41abe0:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
41abe6:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
41abed:	50                   	push   %eax
41abee:	e8 3d e3 ff ff       	call   0x418f30
41abf3:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
41abfa:	83 c4 04             	add    $0x4,%esp
41abfd:	8b 9d 7c ff ff ff    	mov    -0x84(%ebp),%ebx
41ac03:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
41ac09:	85 db                	test   %ebx,%ebx
41ac0b:	74 29                	je     0x41ac36
41ac0d:	8b 13                	mov    (%ebx),%edx
41ac0f:	8b 7a 08             	mov    0x8(%edx),%edi
41ac12:	8b cf                	mov    %edi,%ecx
41ac14:	ff 15 d4 e2 49 00    	call   *0x49e2d4
41ac1a:	8b cb                	mov    %ebx,%ecx
41ac1c:	ff d7                	call   *%edi
41ac1e:	8b d8                	mov    %eax,%ebx
41ac20:	85 db                	test   %ebx,%ebx
41ac22:	74 12                	je     0x41ac36
41ac24:	8b 0b                	mov    (%ebx),%ecx
41ac26:	6a 01                	push   $0x1
41ac28:	8b 39                	mov    (%ecx),%edi
41ac2a:	8b cf                	mov    %edi,%ecx
41ac2c:	ff 15 d4 e2 49 00    	call   *0x49e2d4
41ac32:	8b cb                	mov    %ebx,%ecx
41ac34:	ff d7                	call   *%edi
41ac36:	8b 9d 68 ff ff ff    	mov    -0x98(%ebp),%ebx
41ac3c:	8d 4d a0             	lea    -0x60(%ebp),%ecx
41ac3f:	51                   	push   %ecx
41ac40:	8b 03                	mov    (%ebx),%eax
41ac42:	8b 78 14             	mov    0x14(%eax),%edi
41ac45:	8b cf                	mov    %edi,%ecx
41ac47:	ff 15 d4 e2 49 00    	call   *0x49e2d4
41ac4d:	8b cb                	mov    %ebx,%ecx
41ac4f:	ff d7                	call   *%edi
41ac51:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
41ac57:	89 45 98             	mov    %eax,-0x68(%ebp)
41ac5a:	32 c0                	xor    %al,%al
41ac5c:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
41ac62:	8b 45 80             	mov    -0x80(%ebp),%eax
41ac65:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
41ac6c:	c6 45 8f 00          	movb   $0x0,-0x71(%ebp)
41ac70:	8b 40 30             	mov    0x30(%eax),%eax
41ac73:	8b 58 04             	mov    0x4(%eax),%ebx
41ac76:	89 9d 7c ff ff ff    	mov    %ebx,-0x84(%ebp)
41ac7c:	8b 03                	mov    (%ebx),%eax
41ac7e:	8b 78 04             	mov    0x4(%eax),%edi
41ac81:	8b cf                	mov    %edi,%ecx
41ac83:	ff 15 d4 e2 49 00    	call   *0x49e2d4
41ac89:	8b cb                	mov    %ebx,%ecx
41ac8b:	ff d7                	call   *%edi
41ac8d:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
41ac93:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
41ac97:	50                   	push   %eax
41ac98:	e8 93 98 ff ff       	call   0x414530
41ac9d:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
41aca1:	83 c4 04             	add    $0x4,%esp
41aca4:	8b 9d 7c ff ff ff    	mov    -0x84(%ebp),%ebx
41acaa:	89 45 80             	mov    %eax,-0x80(%ebp)
41acad:	85 db                	test   %ebx,%ebx
41acaf:	74 29                	je     0x41acda
41acb1:	8b 13                	mov    (%ebx),%edx
41acb3:	8b 7a 08             	mov    0x8(%edx),%edi
41acb6:	8b cf                	mov    %edi,%ecx
41acb8:	ff 15 d4 e2 49 00    	call   *0x49e2d4
41acbe:	8b cb                	mov    %ebx,%ecx
41acc0:	ff d7                	call   *%edi
41acc2:	8b d8                	mov    %eax,%ebx
41acc4:	85 db                	test   %ebx,%ebx
41acc6:	74 12                	je     0x41acda
41acc8:	8b 0b                	mov    (%ebx),%ecx
41acca:	6a 01                	push   $0x1
41accc:	8b 39                	mov    (%ecx),%edi
41acce:	8b cf                	mov    %edi,%ecx
41acd0:	ff 15 d4 e2 49 00    	call   *0x49e2d4
41acd6:	8b cb                	mov    %ebx,%ecx
41acd8:	ff d7                	call   *%edi
41acda:	8b 5d 80             	mov    -0x80(%ebp),%ebx
41acdd:	8d 4d d0             	lea    -0x30(%ebp),%ecx
41ace0:	51                   	push   %ecx
41ace1:	68 ab 32 4b 00       	push   $0x4b32ab
41ace6:	68 9c 32 4b 00       	push   $0x4b329c
41aceb:	8b 03                	mov    (%ebx),%eax
41aced:	8b 78 2c             	mov    0x2c(%eax),%edi
41acf0:	8b cf                	mov    %edi,%ecx
41acf2:	ff 15 d4 e2 49 00    	call   *0x49e2d4
41acf8:	8b cb                	mov    %ebx,%ecx
41acfa:	ff d7                	call   *%edi
41acfc:	80 7e 04 00          	cmpb   $0x0,0x4(%esi)
41ad00:	75 07                	jne    0x41ad09
41ad02:	8b ce                	mov    %esi,%ecx
41ad04:	e8 97 26 00 00       	call   0x41d3a0
41ad09:	8b 7d 90             	mov    -0x70(%ebp),%edi
41ad0c:	80 7f 04 00          	cmpb   $0x0,0x4(%edi)
41ad10:	75 07                	jne    0x41ad19
41ad12:	8b cf                	mov    %edi,%ecx
41ad14:	e8 87 26 00 00       	call   0x41d3a0
41ad19:	83 3e 00             	cmpl   $0x0,(%esi)
41ad1c:	8b 07                	mov    (%edi),%eax
41ad1e:	75 0a                	jne    0x41ad2a
41ad20:	85 c0                	test   %eax,%eax
41ad22:	0f 84 0d 01 00 00    	je     0x41ae35
41ad28:	eb 08                	jmp    0x41ad32
41ad2a:	85 c0                	test   %eax,%eax
41ad2c:	0f 85 03 01 00 00    	jne    0x41ae35
41ad32:	80 7e 04 00          	cmpb   $0x0,0x4(%esi)
41ad36:	75 07                	jne    0x41ad3f
41ad38:	8b ce                	mov    %esi,%ecx
41ad3a:	e8 61 26 00 00       	call   0x41d3a0
41ad3f:	0f b7 46 06          	movzwl 0x6(%esi),%eax
41ad43:	66 3b 45 e6          	cmp    -0x1a(%ebp),%ax
41ad47:	75 6e                	jne    0x41adb7
41ad49:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
41ad4f:	c6 00 2b             	movb   $0x2b,(%eax)
41ad52:	40                   	inc    %eax
41ad53:	8b 1e                	mov    (%esi),%ebx
41ad55:	89 45 98             	mov    %eax,-0x68(%ebp)
41ad58:	85 db                	test   %ebx,%ebx
41ad5a:	74 4e                	je     0x41adaa
41ad5c:	8b 43 1c             	mov    0x1c(%ebx),%eax
41ad5f:	83 38 00             	cmpl   $0x0,(%eax)
41ad62:	74 1b                	je     0x41ad7f
41ad64:	8b 4b 2c             	mov    0x2c(%ebx),%ecx
41ad67:	8b 01                	mov    (%ecx),%eax
41ad69:	85 c0                	test   %eax,%eax
41ad6b:	7e 12                	jle    0x41ad7f
41ad6d:	48                   	dec    %eax
41ad6e:	89 01                	mov    %eax,(%ecx)
41ad70:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
41ad73:	8b 11                	mov    (%ecx),%edx
41ad75:	8d 42 02             	lea    0x2(%edx),%eax
41ad78:	89 01                	mov    %eax,(%ecx)
41ad7a:	0f b7 02             	movzwl (%edx),%eax
41ad7d:	eb 17                	jmp    0x41ad96
41ad7f:	8b 03                	mov    (%ebx),%eax
41ad81:	8b 78 1c             	mov    0x1c(%eax),%edi
41ad84:	8b cf                	mov    %edi,%ecx
41ad86:	ff 15 d4 e2 49 00    	call   *0x49e2d4
41ad8c:	8b cb                	mov    %ebx,%ecx
41ad8e:	ff d7                	call   *%edi
41ad90:	8b 7d 90             	mov    -0x70(%ebp),%edi
41ad93:	0f b7 c0             	movzwl %ax,%eax
41ad96:	b9 ff ff 00 00       	mov    $0xffff,%ecx
41ad9b:	66 3b c8             	cmp    %ax,%cx
41ad9e:	74 0a                	je     0x41adaa
41ada0:	32 c0                	xor    %al,%al
41ada2:	88 46 04             	mov    %al,0x4(%esi)
41ada5:	e9 8b 00 00 00       	jmp    0x41ae35
41adaa:	b0 01                	mov    $0x1,%al
41adac:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
41adb2:	88 46 04             	mov    %al,0x4(%esi)
41adb5:	eb 7e                	jmp    0x41ae35
41adb7:	80 7e 04 00          	cmpb   $0x0,0x4(%esi)
41adbb:	75 07                	jne    0x41adc4
41adbd:	8b ce                	mov    %esi,%ecx
41adbf:	e8 dc 25 00 00       	call   0x41d3a0
41adc4:	0f b7 46 06          	movzwl 0x6(%esi),%eax
41adc8:	66 3b 45 e4          	cmp    -0x1c(%ebp),%ax
41adcc:	75 67                	jne    0x41ae35
41adce:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
41add4:	c6 00 2d             	movb   $0x2d,(%eax)
41add7:	40                   	inc    %eax
41add8:	8b 1e                	mov    (%esi),%ebx
41adda:	89 45 98             	mov    %eax,-0x68(%ebp)
41addd:	85 db                	test   %ebx,%ebx
41addf:	74 4a                	je     0x41ae2b
41ade1:	8b 43 1c             	mov    0x1c(%ebx),%eax
41ade4:	83 38 00             	cmpl   $0x0,(%eax)
41ade7:	74 1b                	je     0x41ae04
41ade9:	8b 4b 2c             	mov    0x2c(%ebx),%ecx
41adec:	8b 01                	mov    (%ecx),%eax
41adee:	85 c0                	test   %eax,%eax
41adf0:	7e 12                	jle    0x41ae04
41adf2:	48                   	dec    %eax
41adf3:	89 01                	mov    %eax,(%ecx)
41adf5:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
41adf8:	8b 11                	mov    (%ecx),%edx
41adfa:	8d 42 02             	lea    0x2(%edx),%eax
41adfd:	89 01                	mov    %eax,(%ecx)
41adff:	0f b7 02             	movzwl (%edx),%eax
41ae02:	eb 17                	jmp    0x41ae1b
41ae04:	8b 03                	mov    (%ebx),%eax
41ae06:	8b 78 1c             	mov    0x1c(%eax),%edi
41ae09:	8b cf                	mov    %edi,%ecx
41ae0b:	ff 15 d4 e2 49 00    	call   *0x49e2d4
41ae11:	8b cb                	mov    %ebx,%ecx
41ae13:	ff d7                	call   *%edi
41ae15:	8b 7d 90             	mov    -0x70(%ebp),%edi