41aaa6:	8b 06                	mov    (%esi),%eax
41aaa8:	8b 48 04             	mov    0x4(%eax),%ecx
41aaab:	03 ce                	add    %esi,%ecx
41aaad:	e8 3d 04 00 00       	call   0x41aeef
41aab2:	8b c6                	mov    %esi,%eax
41aab4:	e8 e8 59 07 00       	call   0x4904a1
41aab9:	c2 0c 00             	ret    $0xc
41aabc:	8b ff                	mov    %edi,%edi
41aabe:	55                   	push   %ebp
41aabf:	8b ec                	mov    %esp,%ebp
41aac1:	51                   	push   %ecx
41aac2:	8b d1                	mov    %ecx,%edx
41aac4:	8b 02                	mov    (%edx),%eax
41aac6:	80 78 1d 00          	cmpb   $0x0,0x1d(%eax)
41aaca:	74 07                	je     0x41aad3
41aacc:	8b 40 08             	mov    0x8(%eax),%eax
41aacf:	89 02                	mov    %eax,(%edx)
41aad1:	eb 3f                	jmp    0x41ab12
41aad3:	8b 08                	mov    (%eax),%ecx
41aad5:	80 79 1d 00          	cmpb   $0x0,0x1d(%ecx)
41aad9:	74 3d                	je     0x41ab18
41aadb:	8b 48 04             	mov    0x4(%eax),%ecx
41aade:	80 79 1d 00          	cmpb   $0x0,0x1d(%ecx)
41aae2:	75 26                	jne    0x41ab0a
41aae4:	56                   	push   %esi
41aae5:	57                   	push   %edi
41aae6:	8b f0                	mov    %eax,%esi
41aae8:	8b f8                	mov    %eax,%edi
41aaea:	53                   	push   %ebx
41aaeb:	8b d9                	mov    %ecx,%ebx
41aaed:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41aaf0:	8b c7                	mov    %edi,%eax
41aaf2:	3b 31                	cmp    (%ecx),%esi
41aaf4:	75 11                	jne    0x41ab07
41aaf6:	89 0a                	mov    %ecx,(%edx)
41aaf8:	8b f1                	mov    %ecx,%esi
41aafa:	8b 49 04             	mov    0x4(%ecx),%ecx
41aafd:	8b fe                	mov    %esi,%edi
41aaff:	8b c3                	mov    %ebx,%eax
41ab01:	80 79 1d 00          	cmpb   $0x0,0x1d(%ecx)
41ab05:	74 e4                	je     0x41aaeb
41ab07:	5b                   	pop    %ebx
41ab08:	5f                   	pop    %edi
41ab09:	5e                   	pop    %esi
41ab0a:	80 78 1d 00          	cmpb   $0x0,0x1d(%eax)
41ab0e:	75 02                	jne    0x41ab12
41ab10:	89 0a                	mov    %ecx,(%edx)
41ab12:	8b c2                	mov    %edx,%eax
41ab14:	c9                   	leave
41ab15:	c3                   	ret
41ab16:	8b c8                	mov    %eax,%ecx
41ab18:	8b 41 08             	mov    0x8(%ecx),%eax
41ab1b:	80 78 1d 00          	cmpb   $0x0,0x1d(%eax)
41ab1f:	74 f5                	je     0x41ab16
41ab21:	eb ed                	jmp    0x41ab10
41ab23:	6a 4c                	push   $0x4c
41ab25:	b8 be 12 49 00       	mov    $0x4912be,%eax
41ab2a:	e8 d7 59 07 00       	call   0x490506
41ab2f:	8b f1                	mov    %ecx,%esi
41ab31:	81 7e 08 fe ff ff 0f 	cmpl   $0xffffffe,0x8(%esi)
41ab38:	8b 45 08             	mov    0x8(%ebp),%eax
41ab3b:	8b 7d 10             	mov    0x10(%ebp),%edi
41ab3e:	89 45 a8             	mov    %eax,-0x58(%ebp)
41ab41:	8b 45 14             	mov    0x14(%ebp),%eax
41ab44:	0f 83 06 01 00 00    	jae    0x41ac50
41ab4a:	51                   	push   %ecx
41ab4b:	50                   	push   %eax
41ab4c:	ff 76 04             	push   0x4(%esi)
41ab4f:	57                   	push   %edi
41ab50:	ff 76 04             	push   0x4(%esi)
41ab53:	e8 61 04 00 00       	call   0x41afb9
41ab58:	ff 46 08             	incl   0x8(%esi)
41ab5b:	8b d8                	mov    %eax,%ebx
41ab5d:	8b 46 04             	mov    0x4(%esi),%eax
41ab60:	3b f8                	cmp    %eax,%edi
41ab62:	75 0d                	jne    0x41ab71
41ab64:	89 58 04             	mov    %ebx,0x4(%eax)
41ab67:	8b 46 04             	mov    0x4(%esi),%eax
41ab6a:	89 18                	mov    %ebx,(%eax)
41ab6c:	8b 46 04             	mov    0x4(%esi),%eax
41ab6f:	eb 1e                	jmp    0x41ab8f
41ab71:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
41ab75:	74 0d                	je     0x41ab84
41ab77:	89 1f                	mov    %ebx,(%edi)
41ab79:	8b 46 04             	mov    0x4(%esi),%eax
41ab7c:	3b 38                	cmp    (%eax),%edi
41ab7e:	75 12                	jne    0x41ab92
41ab80:	89 18                	mov    %ebx,(%eax)
41ab82:	eb 0e                	jmp    0x41ab92
41ab84:	89 5f 08             	mov    %ebx,0x8(%edi)
41ab87:	8b 46 04             	mov    0x4(%esi),%eax
41ab8a:	3b 78 08             	cmp    0x8(%eax),%edi
41ab8d:	75 03                	jne    0x41ab92
41ab8f:	89 58 08             	mov    %ebx,0x8(%eax)
41ab92:	8b fb                	mov    %ebx,%edi
41ab94:	8d 4b 04             	lea    0x4(%ebx),%ecx
41ab97:	e9 91 00 00 00       	jmp    0x41ac2d
41ab9c:	8b 50 04             	mov    0x4(%eax),%edx
41ab9f:	8b 12                	mov    (%edx),%edx
41aba1:	3b c2                	cmp    %edx,%eax
41aba3:	75 3b                	jne    0x41abe0
41aba5:	8b 50 04             	mov    0x4(%eax),%edx
41aba8:	8b 52 08             	mov    0x8(%edx),%edx
41abab:	80 7a 1c 00          	cmpb   $0x0,0x1c(%edx)
41abaf:	74 35                	je     0x41abe6
41abb1:	3b 78 08             	cmp    0x8(%eax),%edi
41abb4:	75 0a                	jne    0x41abc0
41abb6:	8b f8                	mov    %eax,%edi
41abb8:	8b ce                	mov    %esi,%ecx
41abba:	57                   	push   %edi
41abbb:	e8 37 fc ff ff       	call   0x41a7f7
41abc0:	8b 47 04             	mov    0x4(%edi),%eax
41abc3:	8b ce                	mov    %esi,%ecx
41abc5:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41abc9:	8b 47 04             	mov    0x4(%edi),%eax
41abcc:	8b 40 04             	mov    0x4(%eax),%eax
41abcf:	c6 40 1c 00          	movb   $0x0,0x1c(%eax)
41abd3:	8b 47 04             	mov    0x4(%edi),%eax
41abd6:	ff 70 04             	push   0x4(%eax)
41abd9:	e8 d0 fb ff ff       	call   0x41a7ae
41abde:	eb 4a                	jmp    0x41ac2a
41abe0:	80 7a 1c 00          	cmpb   $0x0,0x1c(%edx)
41abe4:	75 18                	jne    0x41abfe
41abe6:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41abea:	c6 42 1c 01          	movb   $0x1,0x1c(%edx)
41abee:	8b 01                	mov    (%ecx),%eax
41abf0:	8b 40 04             	mov    0x4(%eax),%eax
41abf3:	c6 40 1c 00          	movb   $0x0,0x1c(%eax)
41abf7:	8b 01                	mov    (%ecx),%eax
41abf9:	8b 78 04             	mov    0x4(%eax),%edi
41abfc:	eb 2c                	jmp    0x41ac2a
41abfe:	3b 38                	cmp    (%eax),%edi
41ac00:	75 0a                	jne    0x41ac0c
41ac02:	8b f8                	mov    %eax,%edi
41ac04:	8b ce                	mov    %esi,%ecx
41ac06:	57                   	push   %edi
41ac07:	e8 a2 fb ff ff       	call   0x41a7ae
41ac0c:	8b 47 04             	mov    0x4(%edi),%eax
41ac0f:	8b ce                	mov    %esi,%ecx
41ac11:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41ac15:	8b 47 04             	mov    0x4(%edi),%eax
41ac18:	8b 40 04             	mov    0x4(%eax),%eax
41ac1b:	c6 40 1c 00          	movb   $0x0,0x1c(%eax)
41ac1f:	8b 47 04             	mov    0x4(%edi),%eax
41ac22:	ff 70 04             	push   0x4(%eax)
41ac25:	e8 cd fb ff ff       	call   0x41a7f7
41ac2a:	8d 4f 04             	lea    0x4(%edi),%ecx
41ac2d:	8b 01                	mov    (%ecx),%eax
41ac2f:	80 78 1c 00          	cmpb   $0x0,0x1c(%eax)
41ac33:	0f 84 63 ff ff ff    	je     0x41ab9c
41ac39:	8b 4e 04             	mov    0x4(%esi),%ecx
41ac3c:	8b 45 a8             	mov    -0x58(%ebp),%eax
41ac3f:	8b 49 04             	mov    0x4(%ecx),%ecx
41ac42:	c6 41 1c 01          	movb   $0x1,0x1c(%ecx)
41ac46:	89 18                	mov    %ebx,(%eax)
41ac48:	e8 68 58 07 00       	call   0x4904b5
41ac4d:	c2 10 00             	ret    $0x10
41ac50:	68 c0 f9 40 00       	push   $0x40f9c0
41ac55:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
41ac58:	e8 2f 12 00 00       	call   0x41be8c
41ac5d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41ac61:	8d 45 d4             	lea    -0x2c(%ebp),%eax
41ac64:	50                   	push   %eax
41ac65:	8d 4d ac             	lea    -0x54(%ebp),%ecx
41ac68:	e8 fd 0c 00 00       	call   0x41b96a
41ac6d:	68 c8 ea 49 00       	push   $0x49eac8
41ac72:	8d 45 ac             	lea    -0x54(%ebp),%eax
41ac75:	50                   	push   %eax
41ac76:	e8 20 58 07 00       	call   0x49049b
41ac7b:	cc                   	int3
41ac7c:	8b ff                	mov    %edi,%edi
41ac7e:	55                   	push   %ebp
41ac7f:	8b ec                	mov    %esp,%ebp
41ac81:	83 ec 0c             	sub    $0xc,%esp
41ac84:	53                   	push   %ebx
41ac85:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41ac88:	b2 01                	mov    $0x1,%dl
41ac8a:	56                   	push   %esi
41ac8b:	8b 71 04             	mov    0x4(%ecx),%esi
41ac8e:	57                   	push   %edi
41ac8f:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41ac92:	8b fe                	mov    %esi,%edi
41ac94:	88 55 f8             	mov    %dl,-0x8(%ebp)
41ac97:	8b 46 04             	mov    0x4(%esi),%eax
41ac9a:	80 78 1d 00          	cmpb   $0x0,0x1d(%eax)
41ac9e:	75 1f                	jne    0x41acbf
41aca0:	8b 0b                	mov    (%ebx),%ecx
41aca2:	3b 48 0c             	cmp    0xc(%eax),%ecx
41aca5:	8b f8                	mov    %eax,%edi
41aca7:	0f 9c c2             	setl   %dl
41acaa:	88 55 f8             	mov    %dl,-0x8(%ebp)
41acad:	7d 04                	jge    0x41acb3
41acaf:	8b 00                	mov    (%eax),%eax
41acb1:	eb 03                	jmp    0x41acb6
41acb3:	8b 40 08             	mov    0x8(%eax),%eax
41acb6:	80 78 1d 00          	cmpb   $0x0,0x1d(%eax)
41acba:	74 e6                	je     0x41aca2
41acbc:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41acbf:	8b c7                	mov    %edi,%eax
41acc1:	89 45 fc             	mov    %eax,-0x4(%ebp)
41acc4:	84 d2                	test   %dl,%dl
41acc6:	74 29                	je     0x41acf1
41acc8:	3b 3e                	cmp    (%esi),%edi
41acca:	75 1a                	jne    0x41ace6
41accc:	53                   	push   %ebx
41accd:	57                   	push   %edi
41acce:	6a 01                	push   $0x1
41acd0:	8d 45 f4             	lea    -0xc(%ebp),%eax
41acd3:	50                   	push   %eax
41acd4:	e8 4a fe ff ff       	call   0x41ab23
41acd9:	8b 08                	mov    (%eax),%ecx
41acdb:	8b 45 08             	mov    0x8(%ebp),%eax
41acde:	89 08                	mov    %ecx,(%eax)
41ace0:	c6 40 04 01          	movb   $0x1,0x4(%eax)
41ace4:	eb 38                	jmp    0x41ad1e
41ace6:	8d 4d fc             	lea    -0x4(%ebp),%ecx
41ace9:	e8 ce fd ff ff       	call   0x41aabc
41acee:	8b 45 fc             	mov    -0x4(%ebp),%eax
41acf1:	8b 48 0c             	mov    0xc(%eax),%ecx
41acf4:	8b 75 08             	mov    0x8(%ebp),%esi
41acf7:	3b 0b                	cmp    (%ebx),%ecx
41acf9:	7d 1b                	jge    0x41ad16
41acfb:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41acfe:	8d 45 f8             	lea    -0x8(%ebp),%eax
41ad01:	53                   	push   %ebx
41ad02:	57                   	push   %edi
41ad03:	ff 75 f8             	push   -0x8(%ebp)
41ad06:	50                   	push   %eax
41ad07:	e8 17 fe ff ff       	call   0x41ab23
41ad0c:	c6 46 04 01          	movb   $0x1,0x4(%esi)
41ad10:	8b 08                	mov    (%eax),%ecx
41ad12:	89 0e                	mov    %ecx,(%esi)
41ad14:	eb 06                	jmp    0x41ad1c
41ad16:	89 06                	mov    %eax,(%esi)
41ad18:	c6 46 04 00          	movb   $0x0,0x4(%esi)
41ad1c:	8b c6                	mov    %esi,%eax
41ad1e:	5f                   	pop    %edi
41ad1f:	5e                   	pop    %esi
41ad20:	5b                   	pop    %ebx
41ad21:	c9                   	leave
41ad22:	c2 08 00             	ret    $0x8
41ad25:	8b ff                	mov    %edi,%edi
41ad27:	55                   	push   %ebp
41ad28:	8b ec                	mov    %esp,%ebp
41ad2a:	56                   	push   %esi
41ad2b:	57                   	push   %edi
41ad2c:	8b 7d 08             	mov    0x8(%ebp),%edi
41ad2f:	8b f1                	mov    %ecx,%esi
41ad31:	57                   	push   %edi
41ad32:	e8 b9 02 00 00       	call   0x41aff0
41ad37:	84 c0                	test   %al,%al
41ad39:	74 1b                	je     0x41ad56
41ad3b:	83 7e 18 08          	cmpl   $0x8,0x18(%esi)
41ad3f:	8d 46 04             	lea    0x4(%esi),%eax
41ad42:	72 02                	jb     0x41ad46
41ad44:	8b 00                	mov    (%eax),%eax
41ad46:	ff 75 0c             	push   0xc(%ebp)
41ad49:	2b f8                	sub    %eax,%edi
41ad4b:	d1 ff                	sar    $1,%edi
41ad4d:	57                   	push   %edi
41ad4e:	56                   	push   %esi
41ad4f:	e8 b7 19 00 00       	call   0x41c70b
41ad54:	eb 3b                	jmp    0x41ad91
41ad56:	53                   	push   %ebx
41ad57:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41ad5a:	6a 00                	push   $0x0
41ad5c:	53                   	push   %ebx
41ad5d:	e8 3b 19 00 00       	call   0x41c69d
41ad62:	84 c0                	test   %al,%al
41ad64:	74 28                	je     0x41ad8e
41ad66:	8b 56 18             	mov    0x18(%esi),%edx
41ad69:	8d 4e 04             	lea    0x4(%esi),%ecx
41ad6c:	83 fa 08             	cmp    $0x8,%edx
41ad6f:	72 02                	jb     0x41ad73
41ad71:	8b 09                	mov    (%ecx),%ecx
41ad73:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
41ad76:	50                   	push   %eax
41ad77:	57                   	push   %edi
41ad78:	8d 04 12             	lea    (%edx,%edx,1),%eax
41ad7b:	50                   	push   %eax
41ad7c:	51                   	push   %ecx
41ad7d:	ff 15 f0 80 4a 00    	call   *0x4a80f0
41ad83:	83 c4 10             	add    $0x10,%esp
41ad86:	8b ce                	mov    %esi,%ecx
41ad88:	53                   	push   %ebx
41ad89:	e8 16 1a 00 00       	call   0x41c7a4
41ad8e:	8b c6                	mov    %esi,%eax
41ad90:	5b                   	pop    %ebx
41ad91:	5f                   	pop    %edi
41ad92:	5e                   	pop    %esi
41ad93:	5d                   	pop    %ebp
41ad94:	c2 08 00             	ret    $0x8
41ad97:	8b ff                	mov    %edi,%edi
41ad99:	55                   	push   %ebp
41ad9a:	8b ec                	mov    %esp,%ebp
41ad9c:	8b 4d 08             	mov    0x8(%ebp),%ecx
41ad9f:	8b c1                	mov    %ecx,%eax
41ada1:	f7 d0                	not    %eax
41ada3:	83 e0 01             	and    $0x1,%eax
41ada6:	c1 e0 02             	shl    $0x2,%eax
41ada9:	f6 c1 02             	test   $0x2,%cl
41adac:	75 03                	jne    0x41adb1
41adae:	83 c8 02             	or     $0x2,%eax
41adb1:	f6 c1 08             	test   $0x8,%cl
41adb4:	74 03                	je     0x41adb9
41adb6:	83 c8 08             	or     $0x8,%eax
41adb9:	f6 c1 04             	test   $0x4,%cl
41adbc:	74 03                	je     0x41adc1
41adbe:	83 c8 10             	or     $0x10,%eax
41adc1:	5d                   	pop    %ebp
41adc2:	c2 04 00             	ret    $0x4
41adc5:	8b ff                	mov    %edi,%edi
41adc7:	55                   	push   %ebp
41adc8:	8b ec                	mov    %esp,%ebp
41adca:	56                   	push   %esi
41adcb:	8b f1                	mov    %ecx,%esi
41adcd:	8b 46 40             	mov    0x40(%esi),%eax
41add0:	83 e0 06             	and    $0x6,%eax
41add3:	3c 06                	cmp    $0x6,%al
41add5:	74 7f                	je     0x41ae56
41add7:	53                   	push   %ebx
41add8:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41addb:	57                   	push   %edi
41addc:	53                   	push   %ebx
41addd:	e8 90 17 00 00       	call   0x41c572
41ade2:	03 db                	add    %ebx,%ebx
41ade4:	8b f8                	mov    %eax,%edi
41ade6:	53                   	push   %ebx
41ade7:	ff 75 08             	push   0x8(%ebp)
41adea:	53                   	push   %ebx
41adeb:	57                   	push   %edi
41adec:	ff 15 f0 80 4a 00    	call   *0x4a80f0
41adf2:	8b 46 40             	mov    0x40(%esi),%eax
41adf5:	8d 0c 3b             	lea    (%ebx,%edi,1),%ecx
41adf8:	83 c4 10             	add    $0x10,%esp
41adfb:	89 4e 3c             	mov    %ecx,0x3c(%esi)
41adfe:	a8 04                	test   $0x4,%al
41ae00:	75 15                	jne    0x41ae17
41ae02:	8b 46 10             	mov    0x10(%esi),%eax
41ae05:	8b 55 0c             	mov    0xc(%ebp),%edx
41ae08:	89 38                	mov    %edi,(%eax)
41ae0a:	8b 46 20             	mov    0x20(%esi),%eax
41ae0d:	89 38                	mov    %edi,(%eax)
41ae0f:	8b 46 30             	mov    0x30(%esi),%eax
41ae12:	89 10                	mov    %edx,(%eax)
41ae14:	8b 46 40             	mov    0x40(%esi),%eax
41ae17:	a8 02                	test   $0x2,%al
41ae19:	75 35                	jne    0x41ae50
41ae1b:	a8 10                	test   $0x10,%al
41ae1d:	75 02                	jne    0x41ae21