41ac89:	ff 75 08             	push   0x8(%ebp)
41ac8c:	83 e2 7f             	and    $0x7f,%edx
41ac8f:	8b 40 04             	mov    0x4(%eax),%eax
41ac92:	e8 ad e4 fe ff       	call   0x409144
41ac97:	89 45 f8             	mov    %eax,-0x8(%ebp)
41ac9a:	89 55 fc             	mov    %edx,-0x4(%ebp)
41ac9d:	8b 45 f8             	mov    -0x8(%ebp),%eax
41aca0:	8b 55 fc             	mov    -0x4(%ebp),%edx
41aca3:	59                   	pop    %ecx
41aca4:	59                   	pop    %ecx
41aca5:	5d                   	pop    %ebp
41aca6:	c2 08 00             	ret    $0x8
41aca9:	8d 40 00             	lea    0x0(%eax),%eax
41acac:	53                   	push   %ebx
41acad:	8b da                	mov    %edx,%ebx
41acaf:	8b c8                	mov    %eax,%ecx
41acb1:	8b c3                	mov    %ebx,%eax
41acb3:	99                   	cltd
41acb4:	52                   	push   %edx
41acb5:	50                   	push   %eax
41acb6:	8b c1                	mov    %ecx,%eax
41acb8:	8b 10                	mov    (%eax),%edx
41acba:	ff 52 08             	call   *0x8(%edx)
41acbd:	5b                   	pop    %ebx
41acbe:	c3                   	ret
41acbf:	90                   	nop
41acc0:	55                   	push   %ebp
41acc1:	8b ec                	mov    %esp,%ebp
41acc3:	53                   	push   %ebx
41acc4:	8b d8                	mov    %eax,%ebx
41acc6:	ff 75 0c             	push   0xc(%ebp)
41acc9:	ff 75 08             	push   0x8(%ebp)
41accc:	33 d2                	xor    %edx,%edx
41acce:	8b c3                	mov    %ebx,%eax
41acd0:	8b 08                	mov    (%eax),%ecx
41acd2:	ff 51 18             	call   *0x18(%ecx)
41acd5:	8b 43 04             	mov    0x4(%ebx),%eax
41acd8:	50                   	push   %eax
41acd9:	e8 2a be fe ff       	call   0x406b08
41acde:	e8 59 2f ff ff       	call   0x40dc3c
41ace3:	5b                   	pop    %ebx
41ace4:	5d                   	pop    %ebp
41ace5:	c2 08 00             	ret    $0x8
41ace8:	55                   	push   %ebp
41ace9:	8b ec                	mov    %esp,%ebp
41aceb:	53                   	push   %ebx
41acec:	56                   	push   %esi
41aced:	84 d2                	test   %dl,%dl
41acef:	74 08                	je     0x41acf9
41acf1:	83 c4 f0             	add    $0xfffffff0,%esp
41acf4:	e8 47 8f fe ff       	call   0x403c40
41acf9:	8b da                	mov    %edx,%ebx
41acfb:	8b f0                	mov    %eax,%esi
41acfd:	0f b7 45 08          	movzwl 0x8(%ebp),%eax
41ad01:	50                   	push   %eax
41ad02:	6a 00                	push   $0x0
41ad04:	33 d2                	xor    %edx,%edx
41ad06:	8b c6                	mov    %esi,%eax
41ad08:	e8 1f 00 00 00       	call   0x41ad2c
41ad0d:	8b c6                	mov    %esi,%eax
41ad0f:	84 db                	test   %bl,%bl
41ad11:	74 0f                	je     0x41ad22
41ad13:	e8 80 8f fe ff       	call   0x403c98
41ad18:	64 8f 05 00 00 00 00 	pop    %fs:0x0
41ad1f:	83 c4 0c             	add    $0xc,%esp
41ad22:	8b c6                	mov    %esi,%eax
41ad24:	5e                   	pop    %esi
41ad25:	5b                   	pop    %ebx
41ad26:	5d                   	pop    %ebp
41ad27:	c2 04 00             	ret    $0x4
41ad2a:	8b c0                	mov    %eax,%eax
41ad2c:	55                   	push   %ebp
41ad2d:	8b ec                	mov    %esp,%ebp
41ad2f:	83 c4 dc             	add    $0xffffffdc,%esp
41ad32:	53                   	push   %ebx
41ad33:	56                   	push   %esi
41ad34:	57                   	push   %edi
41ad35:	33 db                	xor    %ebx,%ebx
41ad37:	89 5d e0             	mov    %ebx,-0x20(%ebp)
41ad3a:	89 5d dc             	mov    %ebx,-0x24(%ebp)
41ad3d:	89 5d e8             	mov    %ebx,-0x18(%ebp)
41ad40:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
41ad43:	84 d2                	test   %dl,%dl
41ad45:	74 08                	je     0x41ad4f
41ad47:	83 c4 f0             	add    $0xfffffff0,%esp
41ad4a:	e8 f1 8e fe ff       	call   0x403c40
41ad4f:	8b f1                	mov    %ecx,%esi
41ad51:	88 55 ff             	mov    %dl,-0x1(%ebp)
41ad54:	8b d8                	mov    %eax,%ebx
41ad56:	8b 7d 0c             	mov    0xc(%ebp),%edi
41ad59:	33 c0                	xor    %eax,%eax
41ad5b:	55                   	push   %ebp
41ad5c:	68 74 ae 41 00       	push   $0x41ae74
41ad61:	64 ff 30             	push   %fs:(%eax)
41ad64:	64 89 20             	mov    %esp,%fs:(%eax)
41ad67:	66 81 ff ff ff       	cmp    $0xffff,%di
41ad6c:	75 7e                	jne    0x41adec
41ad6e:	6a 00                	push   $0x0
41ad70:	68 80 00 00 00       	push   $0x80
41ad75:	6a 02                	push   $0x2
41ad77:	6a 00                	push   $0x0
41ad79:	6a 00                	push   $0x0
41ad7b:	68 00 00 00 c0       	push   $0xc0000000
41ad80:	8b c6                	mov    %esi,%eax
41ad82:	e8 85 9e fe ff       	call   0x404c0c
41ad87:	50                   	push   %eax
41ad88:	e8 0b bc fe ff       	call   0x406998
41ad8d:	8b c8                	mov    %eax,%ecx
41ad8f:	33 d2                	xor    %edx,%edx
41ad91:	8b c3                	mov    %ebx,%eax
41ad93:	e8 8c fe ff ff       	call   0x41ac24
41ad98:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
41ad9c:	0f 8d ad 00 00 00    	jge    0x41ae4f
41ada2:	8d 55 e8             	lea    -0x18(%ebp),%edx
41ada5:	8b c6                	mov    %esi,%eax
41ada7:	e8 f0 e4 fe ff       	call   0x40929c
41adac:	8b 45 e8             	mov    -0x18(%ebp),%eax
41adaf:	89 45 ec             	mov    %eax,-0x14(%ebp)
41adb2:	c6 45 f0 0b          	movb   $0xb,-0x10(%ebp)
41adb6:	e8 65 bc fe ff       	call   0x406a20
41adbb:	8d 55 e4             	lea    -0x1c(%ebp),%edx
41adbe:	e8 2d 0e ff ff       	call   0x40bbf0
41adc3:	8b 45 e4             	mov    -0x1c(%ebp),%eax
41adc6:	89 45 f4             	mov    %eax,-0xc(%ebp)
41adc9:	c6 45 f8 0b          	movb   $0xb,-0x8(%ebp)
41adcd:	8d 45 ec             	lea    -0x14(%ebp),%eax
41add0:	50                   	push   %eax
41add1:	6a 01                	push   $0x1
41add3:	8b 0d 40 78 4a 00    	mov    0x4a7840,%ecx
41add9:	b2 01                	mov    $0x1,%dl
41addb:	a1 04 58 41 00       	mov    0x415804,%eax
41ade0:	e8 23 17 ff ff       	call   0x40c508
41ade5:	e8 a6 93 fe ff       	call   0x404190
41adea:	eb 63                	jmp    0x41ae4f
41adec:	0f b7 d7             	movzwl %di,%edx
41adef:	8b c6                	mov    %esi,%eax
41adf1:	e8 9e e2 fe ff       	call   0x409094
41adf6:	8b c8                	mov    %eax,%ecx
41adf8:	33 d2                	xor    %edx,%edx
41adfa:	8b c3                	mov    %ebx,%eax
41adfc:	e8 23 fe ff ff       	call   0x41ac24
41ae01:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
41ae05:	7d 48                	jge    0x41ae4f
41ae07:	8d 55 e0             	lea    -0x20(%ebp),%edx
41ae0a:	8b c6                	mov    %esi,%eax
41ae0c:	e8 8b e4 fe ff       	call   0x40929c
41ae11:	8b 45 e0             	mov    -0x20(%ebp),%eax
41ae14:	89 45 ec             	mov    %eax,-0x14(%ebp)
41ae17:	c6 45 f0 0b          	movb   $0xb,-0x10(%ebp)
41ae1b:	e8 00 bc fe ff       	call   0x406a20
41ae20:	8d 55 dc             	lea    -0x24(%ebp),%edx
41ae23:	e8 c8 0d ff ff       	call   0x40bbf0
41ae28:	8b 45 dc             	mov    -0x24(%ebp),%eax
41ae2b:	89 45 f4             	mov    %eax,-0xc(%ebp)
41ae2e:	c6 45 f8 0b          	movb   $0xb,-0x8(%ebp)
41ae32:	8d 45 ec             	lea    -0x14(%ebp),%eax
41ae35:	50                   	push   %eax
41ae36:	6a 01                	push   $0x1
41ae38:	8b 0d 94 73 4a 00    	mov    0x4a7394,%ecx
41ae3e:	b2 01                	mov    $0x1,%dl
41ae40:	a1 60 58 41 00       	mov    0x415860,%eax
41ae45:	e8 be 16 ff ff       	call   0x40c508
41ae4a:	e8 41 93 fe ff       	call   0x404190
41ae4f:	8d 43 08             	lea    0x8(%ebx),%eax
41ae52:	8b d6                	mov    %esi,%edx
41ae54:	e8 43 99 fe ff       	call   0x40479c
41ae59:	33 c0                	xor    %eax,%eax
41ae5b:	5a                   	pop    %edx
41ae5c:	59                   	pop    %ecx
41ae5d:	59                   	pop    %ecx
41ae5e:	64 89 10             	mov    %edx,%fs:(%eax)
41ae61:	68 7b ae 41 00       	push   $0x41ae7b
41ae66:	8d 45 dc             	lea    -0x24(%ebp),%eax
41ae69:	ba 04 00 00 00       	mov    $0x4,%edx
41ae6e:	e8 f9 98 fe ff       	call   0x40476c
41ae73:	c3                   	ret
41ae74:	e9 37 92 fe ff       	jmp    0x4040b0
41ae79:	eb eb                	jmp    0x41ae66
41ae7b:	8b c3                	mov    %ebx,%eax
41ae7d:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
41ae81:	74 0f                	je     0x41ae92
41ae83:	e8 10 8e fe ff       	call   0x403c98
41ae88:	64 8f 05 00 00 00 00 	pop    %fs:0x0
41ae8f:	83 c4 0c             	add    $0xc,%esp
41ae92:	8b c3                	mov    %ebx,%eax
41ae94:	5f                   	pop    %edi
41ae95:	5e                   	pop    %esi
41ae96:	5b                   	pop    %ebx
41ae97:	8b e5                	mov    %ebp,%esp
41ae99:	5d                   	pop    %ebp
41ae9a:	c2 08 00             	ret    $0x8
41ae9d:	8d 40 00             	lea    0x0(%eax),%eax
41aea0:	53                   	push   %ebx
41aea1:	56                   	push   %esi
41aea2:	e8 41 8e fe ff       	call   0x403ce8
41aea7:	8b da                	mov    %edx,%ebx
41aea9:	8b f0                	mov    %eax,%esi
41aeab:	8b 46 04             	mov    0x4(%esi),%eax
41aeae:	85 c0                	test   %eax,%eax
41aeb0:	7c 06                	jl     0x41aeb8
41aeb2:	50                   	push   %eax
41aeb3:	e8 c8 ba fe ff       	call   0x406980
41aeb8:	8b d3                	mov    %ebx,%edx
41aeba:	80 e2 fc             	and    $0xfc,%dl
41aebd:	8b c6                	mov    %esi,%eax
41aebf:	e8 48 8a fe ff       	call   0x40390c
41aec4:	84 db                	test   %bl,%bl
41aec6:	7e 07                	jle    0x41aecf
41aec8:	8b c6                	mov    %esi,%eax
41aeca:	e8 c1 8d fe ff       	call   0x403c90
41aecf:	5e                   	pop    %esi
41aed0:	5b                   	pop    %ebx
41aed1:	c3                   	ret
41aed2:	8b c0                	mov    %eax,%eax
41aed4:	89 50 04             	mov    %edx,0x4(%eax)
41aed7:	89 48 08             	mov    %ecx,0x8(%eax)
41aeda:	c3                   	ret
41aedb:	90                   	nop
41aedc:	53                   	push   %ebx
41aedd:	56                   	push   %esi
41aede:	57                   	push   %edi
41aedf:	8b d8                	mov    %eax,%ebx
41aee1:	8b 7b 0c             	mov    0xc(%ebx),%edi
41aee4:	85 ff                	test   %edi,%edi
41aee6:	7c 24                	jl     0x41af0c
41aee8:	85 c9                	test   %ecx,%ecx
41aeea:	7c 20                	jl     0x41af0c
41aeec:	8b 73 08             	mov    0x8(%ebx),%esi
41aeef:	2b f7                	sub    %edi,%esi
41aef1:	85 f6                	test   %esi,%esi
41aef3:	7e 17                	jle    0x41af0c
41aef5:	3b ce                	cmp    %esi,%ecx
41aef7:	7d 02                	jge    0x41aefb
41aef9:	8b f1                	mov    %ecx,%esi
41aefb:	8b 43 04             	mov    0x4(%ebx),%eax
41aefe:	03 c7                	add    %edi,%eax
41af00:	8b ce                	mov    %esi,%ecx
41af02:	e8 e5 7f fe ff       	call   0x402eec
41af07:	01 73 0c             	add    %esi,0xc(%ebx)
41af0a:	eb 02                	jmp    0x41af0e
41af0c:	33 f6                	xor    %esi,%esi
41af0e:	8b c6                	mov    %esi,%eax
41af10:	5f                   	pop    %edi
41af11:	5e                   	pop    %esi
41af12:	5b                   	pop    %ebx
41af13:	c3                   	ret
41af14:	66 83 e9 01          	sub    $0x1,%cx
41af18:	72 09                	jb     0x41af23
41af1a:	74 0c                	je     0x41af28
41af1c:	66 ff c9             	dec    %cx
41af1f:	74 0c                	je     0x41af2d
41af21:	eb 10                	jmp    0x41af33
41af23:	89 50 0c             	mov    %edx,0xc(%eax)
41af26:	eb 0b                	jmp    0x41af33
41af28:	01 50 0c             	add    %edx,0xc(%eax)
41af2b:	eb 06                	jmp    0x41af33
41af2d:	03 50 08             	add    0x8(%eax),%edx
41af30:	89 50 0c             	mov    %edx,0xc(%eax)
41af33:	8b 40 0c             	mov    0xc(%eax),%eax
41af36:	c3                   	ret
41af37:	90                   	nop
41af38:	53                   	push   %ebx
41af39:	56                   	push   %esi
41af3a:	e8 a9 8d fe ff       	call   0x403ce8
41af3f:	8b da                	mov    %edx,%ebx
41af41:	8b f0                	mov    %eax,%esi
41af43:	8b c6                	mov    %esi,%eax
41af45:	e8 1a 00 00 00       	call   0x41af64
41af4a:	8b d3                	mov    %ebx,%edx
41af4c:	80 e2 fc             	and    $0xfc,%dl
41af4f:	8b c6                	mov    %esi,%eax
41af51:	e8 b6 89 fe ff       	call   0x40390c
41af56:	84 db                	test   %bl,%bl
41af58:	7e 07                	jle    0x41af61
41af5a:	8b c6                	mov    %esi,%eax
41af5c:	e8 2f 8d fe ff       	call   0x403c90
41af61:	5e                   	pop    %esi
41af62:	5b                   	pop    %ebx
41af63:	c3                   	ret
41af64:	53                   	push   %ebx
41af65:	8b d8                	mov    %eax,%ebx
41af67:	33 d2                	xor    %edx,%edx
41af69:	8b c3                	mov    %ebx,%eax
41af6b:	e8 44 00 00 00       	call   0x41afb4
41af70:	33 c0                	xor    %eax,%eax
41af72:	89 43 08             	mov    %eax,0x8(%ebx)
41af75:	33 c0                	xor    %eax,%eax
41af77:	89 43 0c             	mov    %eax,0xc(%ebx)
41af7a:	5b                   	pop    %ebx
41af7b:	c3                   	ret
41af7c:	53                   	push   %ebx
41af7d:	56                   	push   %esi
41af7e:	57                   	push   %edi
41af7f:	8b fa                	mov    %edx,%edi
41af81:	8b f0                	mov    %eax,%esi
41af83:	6a 00                	push   $0x0
41af85:	6a 00                	push   $0x0
41af87:	8b c7                	mov    %edi,%eax
41af89:	e8 c6 f8 ff ff       	call   0x41a854
41af8e:	8b c7                	mov    %edi,%eax
41af90:	8b 10                	mov    (%eax),%edx
41af92:	ff 12                	call   *(%edx)
41af94:	8b d8                	mov    %eax,%ebx
41af96:	8b d3                	mov    %ebx,%edx
41af98:	8b c6                	mov    %esi,%eax
41af9a:	8b 08                	mov    (%eax),%ecx
41af9c:	ff 51 04             	call   *0x4(%ecx)
41af9f:	85 db                	test   %ebx,%ebx
41afa1:	74 0c                	je     0x41afaf
41afa3:	8b 56 04             	mov    0x4(%esi),%edx
41afa6:	8b cb                	mov    %ebx,%ecx
41afa8:	8b c7                	mov    %edi,%eax
41afaa:	e8 b1 fa ff ff       	call   0x41aa60
41afaf:	5f                   	pop    %edi
41afb0:	5e                   	pop    %esi
41afb1:	5b                   	pop    %ebx
41afb2:	c3                   	ret
41afb3:	90                   	nop
41afb4:	53                   	push   %ebx
41afb5:	51                   	push   %ecx
41afb6:	89 14 24             	mov    %edx,(%esp)
41afb9:	8b d8                	mov    %eax,%ebx
41afbb:	8b d4                	mov    %esp,%edx
41afbd:	8b c3                	mov    %ebx,%eax
41afbf:	8b 08                	mov    (%eax),%ecx
41afc1:	ff 51 1c             	call   *0x1c(%ecx)
41afc4:	8b d0                	mov    %eax,%edx
41afc6:	8b 4b 08             	mov    0x8(%ebx),%ecx
41afc9:	8b c3                	mov    %ebx,%eax
41afcb:	e8 04 ff ff ff       	call   0x41aed4
41afd0:	8b 04 24             	mov    (%esp),%eax
41afd3:	89 43 10             	mov    %eax,0x10(%ebx)
41afd6:	5a                   	pop    %edx
41afd7:	5b                   	pop    %ebx
41afd8:	c3                   	ret
41afd9:	8d 40 00             	lea    0x0(%eax),%eax
41afdc:	53                   	push   %ebx
41afdd:	56                   	push   %esi
41afde:	57                   	push   %edi
41afdf:	8b f2                	mov    %edx,%esi
41afe1:	8b d8                	mov    %eax,%ebx
41afe3:	8b 7b 0c             	mov    0xc(%ebx),%edi
41afe6:	8b d6                	mov    %esi,%edx
41afe8:	8b c3                	mov    %ebx,%eax
41afea:	e8 c5 ff ff ff       	call   0x41afb4
41afef:	89 73 08             	mov    %esi,0x8(%ebx)
41aff2:	3b f7                	cmp    %edi,%esi
41aff4:	7d 0d                	jge    0x41b003
41aff6:	66 b9 02 00          	mov    $0x2,%cx
41affa:	33 d2                	xor    %edx,%edx