43ad28:	83 c4 0c             	add    $0xc,%esp
43ad2b:	83 f8 ff             	cmp    $0xffffffff,%eax
43ad2e:	74 36                	je     0x43ad66
43ad30:	99                   	cltd
43ad31:	2b f0                	sub    %eax,%esi
43ad33:	1b fa                	sbb    %edx,%edi
43ad35:	78 06                	js     0x43ad3d
43ad37:	7f d3                	jg     0x43ad0c
43ad39:	85 f6                	test   %esi,%esi
43ad3b:	75 cf                	jne    0x43ad0c
43ad3d:	8b 75 f0             	mov    -0x10(%ebp),%esi
43ad40:	ff 75 f8             	push   -0x8(%ebp)
43ad43:	ff 75 08             	push   0x8(%ebp)
43ad46:	e8 d4 01 00 00       	call   0x43af1f
43ad4b:	59                   	pop    %ecx
43ad4c:	59                   	pop    %ecx
43ad4d:	ff 75 fc             	push   -0x4(%ebp)
43ad50:	6a 00                	push   $0x0
43ad52:	ff 15 cc 34 47 00    	call   *0x4734cc
43ad58:	50                   	push   %eax
43ad59:	ff 15 c4 34 47 00    	call   *0x4734c4
43ad5f:	33 db                	xor    %ebx,%ebx
43ad61:	e9 86 00 00 00       	jmp    0x43adec
43ad66:	e8 50 9c ff ff       	call   0x4349bb
43ad6b:	83 38 05             	cmpl   $0x5,(%eax)
43ad6e:	75 0b                	jne    0x43ad7b
43ad70:	e8 33 9c ff ff       	call   0x4349a8
43ad75:	c7 00 0d 00 00 00    	movl   $0xd,(%eax)
43ad7b:	83 ce ff             	or     $0xffffffff,%esi
43ad7e:	89 75 f4             	mov    %esi,-0xc(%ebp)
43ad81:	eb bd                	jmp    0x43ad40
43ad83:	3b fb                	cmp    %ebx,%edi
43ad85:	7f 71                	jg     0x43adf8
43ad87:	7c 04                	jl     0x43ad8d
43ad89:	3b f3                	cmp    %ebx,%esi
43ad8b:	73 6b                	jae    0x43adf8
43ad8d:	53                   	push   %ebx
43ad8e:	ff 75 10             	push   0x10(%ebp)
43ad91:	ff 75 0c             	push   0xc(%ebp)
43ad94:	ff 75 08             	push   0x8(%ebp)
43ad97:	e8 12 fc ff ff       	call   0x43a9ae
43ad9c:	23 c2                	and    %edx,%eax
43ad9e:	83 c4 10             	add    $0x10,%esp
43ada1:	83 f8 ff             	cmp    $0xffffffff,%eax
43ada4:	0f 84 44 ff ff ff    	je     0x43acee
43adaa:	ff 75 08             	push   0x8(%ebp)
43adad:	e8 1e f8 ff ff       	call   0x43a5d0
43adb2:	59                   	pop    %ecx
43adb3:	50                   	push   %eax
43adb4:	ff 15 b0 35 47 00    	call   *0x4735b0
43adba:	f7 d8                	neg    %eax
43adbc:	1b c0                	sbb    %eax,%eax
43adbe:	f7 d8                	neg    %eax
43adc0:	48                   	dec    %eax
43adc1:	99                   	cltd
43adc2:	89 45 f0             	mov    %eax,-0x10(%ebp)
43adc5:	23 c2                	and    %edx,%eax
43adc7:	89 55 f4             	mov    %edx,-0xc(%ebp)
43adca:	83 f8 ff             	cmp    $0xffffffff,%eax
43adcd:	75 29                	jne    0x43adf8
43adcf:	e8 d4 9b ff ff       	call   0x4349a8
43add4:	c7 00 0d 00 00 00    	movl   $0xd,(%eax)
43adda:	e8 dc 9b ff ff       	call   0x4349bb
43addf:	8b f0                	mov    %eax,%esi
43ade1:	ff 15 24 34 47 00    	call   *0x473424
43ade7:	89 06                	mov    %eax,(%esi)
43ade9:	8b 75 f0             	mov    -0x10(%ebp),%esi
43adec:	23 75 f4             	and    -0xc(%ebp),%esi
43adef:	83 fe ff             	cmp    $0xffffffff,%esi
43adf2:	0f 84 f6 fe ff ff    	je     0x43acee
43adf8:	53                   	push   %ebx
43adf9:	ff 75 ec             	push   -0x14(%ebp)
43adfc:	ff 75 e8             	push   -0x18(%ebp)
43adff:	ff 75 08             	push   0x8(%ebp)
43ae02:	e8 a7 fb ff ff       	call   0x43a9ae
43ae07:	23 c2                	and    %edx,%eax
43ae09:	83 c4 10             	add    $0x10,%esp
43ae0c:	83 f8 ff             	cmp    $0xffffffff,%eax
43ae0f:	0f 84 d9 fe ff ff    	je     0x43acee
43ae15:	33 c0                	xor    %eax,%eax
43ae17:	e9 d9 fe ff ff       	jmp    0x43acf5
43ae1c:	6a 10                	push   $0x10
43ae1e:	68 30 e0 46 00       	push   $0x46e030
43ae23:	e8 58 9f ff ff       	call   0x434d80
43ae28:	8b 5d 08             	mov    0x8(%ebp),%ebx
43ae2b:	83 fb fe             	cmp    $0xfffffffe,%ebx
43ae2e:	75 10                	jne    0x43ae40
43ae30:	e8 86 9b ff ff       	call   0x4349bb
43ae35:	83 20 00             	andl   $0x0,(%eax)
43ae38:	6a 09                	push   $0x9
43ae3a:	58                   	pop    %eax
43ae3b:	e9 b2 00 00 00       	jmp    0x43aef2
43ae40:	85 db                	test   %ebx,%ebx
43ae42:	78 08                	js     0x43ae4c
43ae44:	3b 1d 2c 17 47 00    	cmp    0x47172c,%ebx
43ae4a:	72 1e                	jb     0x43ae6a
43ae4c:	e8 6a 9b ff ff       	call   0x4349bb
43ae51:	83 20 00             	andl   $0x0,(%eax)
43ae54:	e8 4f 9b ff ff       	call   0x4349a8
43ae59:	6a 09                	push   $0x9
43ae5b:	5e                   	pop    %esi
43ae5c:	89 30                	mov    %esi,(%eax)
43ae5e:	e8 0b 95 ff ff       	call   0x43436e
43ae63:	8b c6                	mov    %esi,%eax
43ae65:	e9 88 00 00 00       	jmp    0x43aef2
43ae6a:	8b c3                	mov    %ebx,%eax
43ae6c:	c1 f8 05             	sar    $0x5,%eax
43ae6f:	8d 3c 85 80 17 47 00 	lea    0x471780(,%eax,4),%edi
43ae76:	8b f3                	mov    %ebx,%esi
43ae78:	83 e6 1f             	and    $0x1f,%esi
43ae7b:	c1 e6 06             	shl    $0x6,%esi
43ae7e:	8b 07                	mov    (%edi),%eax
43ae80:	0f be 44 30 04       	movsbl 0x4(%eax,%esi,1),%eax
43ae85:	83 e0 01             	and    $0x1,%eax
43ae88:	74 c2                	je     0x43ae4c
43ae8a:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
43ae8e:	7f 1e                	jg     0x43aeae
43ae90:	7c 06                	jl     0x43ae98
43ae92:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
43ae96:	73 16                	jae    0x43aeae
43ae98:	e8 1e 9b ff ff       	call   0x4349bb
43ae9d:	83 20 00             	andl   $0x0,(%eax)
43aea0:	e8 03 9b ff ff       	call   0x4349a8
43aea5:	6a 16                	push   $0x16
43aea7:	59                   	pop    %ecx
43aea8:	89 08                	mov    %ecx,(%eax)
43aeaa:	8b f1                	mov    %ecx,%esi
43aeac:	eb b0                	jmp    0x43ae5e
43aeae:	53                   	push   %ebx
43aeaf:	e8 85 f7 ff ff       	call   0x43a639
43aeb4:	59                   	pop    %ecx
43aeb5:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
43aeb9:	8b 07                	mov    (%edi),%eax
43aebb:	f6 44 30 04 01       	testb  $0x1,0x4(%eax,%esi,1)
43aec0:	74 14                	je     0x43aed6
43aec2:	ff 75 10             	push   0x10(%ebp)
43aec5:	ff 75 0c             	push   0xc(%ebp)
43aec8:	53                   	push   %ebx
43aec9:	e8 98 fd ff ff       	call   0x43ac66
43aece:	83 c4 0c             	add    $0xc,%esp
43aed1:	89 45 e4             	mov    %eax,-0x1c(%ebp)
43aed4:	eb 0d                	jmp    0x43aee3
43aed6:	e8 cd 9a ff ff       	call   0x4349a8
43aedb:	6a 09                	push   $0x9
43aedd:	5e                   	pop    %esi
43aede:	89 30                	mov    %esi,(%eax)
43aee0:	89 75 e4             	mov    %esi,-0x1c(%ebp)
43aee3:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
43aeea:	e8 0c 00 00 00       	call   0x43aefb
43aeef:	8b 45 e4             	mov    -0x1c(%ebp),%eax
43aef2:	e8 ce 9e ff ff       	call   0x434dc5
43aef7:	c3                   	ret
43aef8:	8b 5d 08             	mov    0x8(%ebp),%ebx
43aefb:	53                   	push   %ebx
43aefc:	e8 d7 f7 ff ff       	call   0x43a6d8
43af01:	59                   	pop    %ecx
43af02:	c3                   	ret
43af03:	8b ff                	mov    %edi,%edi
43af05:	55                   	push   %ebp
43af06:	8b ec                	mov    %esp,%ebp
43af08:	8b 45 0c             	mov    0xc(%ebp),%eax
43af0b:	99                   	cltd
43af0c:	52                   	push   %edx
43af0d:	50                   	push   %eax
43af0e:	ff 75 08             	push   0x8(%ebp)
43af11:	e8 06 ff ff ff       	call   0x43ae1c
43af16:	83 c4 0c             	add    $0xc,%esp
43af19:	f7 d8                	neg    %eax
43af1b:	1b c0                	sbb    %eax,%eax
43af1d:	5d                   	pop    %ebp
43af1e:	c3                   	ret
43af1f:	8b ff                	mov    %edi,%edi
43af21:	55                   	push   %ebp
43af22:	8b ec                	mov    %esp,%ebp
43af24:	53                   	push   %ebx
43af25:	8b 5d 0c             	mov    0xc(%ebp),%ebx
43af28:	56                   	push   %esi
43af29:	8b 75 08             	mov    0x8(%ebp),%esi
43af2c:	8b c6                	mov    %esi,%eax
43af2e:	c1 f8 05             	sar    $0x5,%eax
43af31:	8d 14 85 80 17 47 00 	lea    0x471780(,%eax,4),%edx
43af38:	8b 0a                	mov    (%edx),%ecx
43af3a:	83 e6 1f             	and    $0x1f,%esi
43af3d:	c1 e6 06             	shl    $0x6,%esi
43af40:	03 ce                	add    %esi,%ecx
43af42:	8a 41 24             	mov    0x24(%ecx),%al
43af45:	02 c0                	add    %al,%al
43af47:	57                   	push   %edi
43af48:	0f b6 79 04          	movzbl 0x4(%ecx),%edi
43af4c:	0f be c0             	movsbl %al,%eax
43af4f:	81 e7 80 00 00 00    	and    $0x80,%edi
43af55:	d1 f8                	sar    $1,%eax
43af57:	81 fb 00 40 00 00    	cmp    $0x4000,%ebx
43af5d:	74 50                	je     0x43afaf
43af5f:	81 fb 00 80 00 00    	cmp    $0x8000,%ebx
43af65:	74 42                	je     0x43afa9
43af67:	81 fb 00 00 01 00    	cmp    $0x10000,%ebx
43af6d:	74 26                	je     0x43af95
43af6f:	81 fb 00 00 02 00    	cmp    $0x20000,%ebx
43af75:	74 1e                	je     0x43af95
43af77:	81 fb 00 00 04 00    	cmp    $0x40000,%ebx
43af7d:	75 3d                	jne    0x43afbc
43af7f:	80 49 04 80          	orb    $0x80,0x4(%ecx)
43af83:	8b 0a                	mov    (%edx),%ecx
43af85:	8d 4c 31 24          	lea    0x24(%ecx,%esi,1),%ecx
43af89:	8a 11                	mov    (%ecx),%dl
43af8b:	80 e2 81             	and    $0x81,%dl
43af8e:	80 ca 01             	or     $0x1,%dl
43af91:	88 11                	mov    %dl,(%ecx)
43af93:	eb 27                	jmp    0x43afbc
43af95:	80 49 04 80          	orb    $0x80,0x4(%ecx)
43af99:	8b 0a                	mov    (%edx),%ecx
43af9b:	8d 4c 31 24          	lea    0x24(%ecx,%esi,1),%ecx
43af9f:	8a 11                	mov    (%ecx),%dl
43afa1:	80 e2 82             	and    $0x82,%dl
43afa4:	80 ca 02             	or     $0x2,%dl
43afa7:	eb e8                	jmp    0x43af91
43afa9:	80 61 04 7f          	andb   $0x7f,0x4(%ecx)
43afad:	eb 0d                	jmp    0x43afbc
43afaf:	80 49 04 80          	orb    $0x80,0x4(%ecx)
43afb3:	8b 0a                	mov    (%edx),%ecx
43afb5:	8d 4c 31 24          	lea    0x24(%ecx,%esi,1),%ecx
43afb9:	80 21 80             	andb   $0x80,(%ecx)
43afbc:	85 ff                	test   %edi,%edi
43afbe:	5f                   	pop    %edi
43afbf:	5e                   	pop    %esi
43afc0:	5b                   	pop    %ebx
43afc1:	75 07                	jne    0x43afca
43afc3:	b8 00 80 00 00       	mov    $0x8000,%eax
43afc8:	5d                   	pop    %ebp
43afc9:	c3                   	ret
43afca:	f7 d8                	neg    %eax
43afcc:	1b c0                	sbb    %eax,%eax
43afce:	25 00 c0 00 00       	and    $0xc000,%eax
43afd3:	05 00 40 00 00       	add    $0x4000,%eax
43afd8:	5d                   	pop    %ebp
43afd9:	c3                   	ret
43afda:	8b ff                	mov    %edi,%edi
43afdc:	55                   	push   %ebp
43afdd:	8b ec                	mov    %esp,%ebp
43afdf:	8b 45 08             	mov    0x8(%ebp),%eax
43afe2:	3d 00 40 00 00       	cmp    $0x4000,%eax
43afe7:	74 23                	je     0x43b00c
43afe9:	3d 00 80 00 00       	cmp    $0x8000,%eax
43afee:	74 1c                	je     0x43b00c
43aff0:	3d 00 00 01 00       	cmp    $0x10000,%eax
43aff5:	74 15                	je     0x43b00c
43aff7:	e8 ac 99 ff ff       	call   0x4349a8
43affc:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
43b002:	e8 67 93 ff ff       	call   0x43436e
43b007:	6a 16                	push   $0x16
43b009:	58                   	pop    %eax
43b00a:	5d                   	pop    %ebp
43b00b:	c3                   	ret
43b00c:	50                   	push   %eax
43b00d:	68 e8 10 47 00       	push   $0x4710e8
43b012:	ff 15 10 35 47 00    	call   *0x473510
43b018:	33 c0                	xor    %eax,%eax
43b01a:	5d                   	pop    %ebp
43b01b:	c3                   	ret
43b01c:	8b ff                	mov    %edi,%edi
43b01e:	55                   	push   %ebp
43b01f:	8b ec                	mov    %esp,%ebp
43b021:	8b 45 08             	mov    0x8(%ebp),%eax
43b024:	85 c0                	test   %eax,%eax
43b026:	75 15                	jne    0x43b03d
43b028:	e8 7b 99 ff ff       	call   0x4349a8
43b02d:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
43b033:	e8 36 93 ff ff       	call   0x43436e
43b038:	6a 16                	push   $0x16
43b03a:	58                   	pop    %eax
43b03b:	5d                   	pop    %ebp
43b03c:	c3                   	ret
43b03d:	8b 0d e8 10 47 00    	mov    0x4710e8,%ecx
43b043:	89 08                	mov    %ecx,(%eax)
43b045:	33 c0                	xor    %eax,%eax
43b047:	5d                   	pop    %ebp
43b048:	c3                   	ret
43b049:	6a 10                	push   $0x10
43b04b:	68 50 e0 46 00       	push   $0x46e050
43b050:	e8 2b 9d ff ff       	call   0x434d80
43b055:	8b 45 0c             	mov    0xc(%ebp),%eax
43b058:	3d 00 40 00 00       	cmp    $0x4000,%eax
43b05d:	74 34                	je     0x43b093
43b05f:	3d 00 80 00 00       	cmp    $0x8000,%eax
43b064:	74 2d                	je     0x43b093
43b066:	3d 00 00 01 00       	cmp    $0x10000,%eax
43b06b:	74 26                	je     0x43b093
43b06d:	3d 00 00 04 00       	cmp    $0x40000,%eax
43b072:	74 1f                	je     0x43b093
43b074:	3d 00 00 02 00       	cmp    $0x20000,%eax
43b079:	74 18                	je     0x43b093
43b07b:	e8 28 99 ff ff       	call   0x4349a8
43b080:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
43b086:	e8 e3 92 ff ff       	call   0x43436e
43b08b:	83 c8 ff             	or     $0xffffffff,%eax
43b08e:	e9 90 00 00 00       	jmp    0x43b123
43b093:	8b 5d 08             	mov    0x8(%ebp),%ebx
43b096:	83 fb fe             	cmp    $0xfffffffe,%ebx
43b099:	75 0d                	jne    0x43b0a8
43b09b:	e8 08 99 ff ff       	call   0x4349a8
43b0a0:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
43b0a6:	eb e3                	jmp    0x43b08b
43b0a8:	85 db                	test   %ebx,%ebx
43b0aa:	78 08                	js     0x43b0b4
43b0ac:	3b 1d 2c 17 47 00    	cmp    0x47172c,%ebx
43b0b2:	72 0d                	jb     0x43b0c1
43b0b4:	e8 ef 98 ff ff       	call   0x4349a8
43b0b9:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
43b0bf:	eb c5                	jmp    0x43b086
43b0c1:	8b c3                	mov    %ebx,%eax
43b0c3:	c1 f8 05             	sar    $0x5,%eax
43b0c6:	8d 3c 85 80 17 47 00 	lea    0x471780(,%eax,4),%edi
43b0cd:	8b f3                	mov    %ebx,%esi
43b0cf:	83 e6 1f             	and    $0x1f,%esi
43b0d2:	c1 e6 06             	shl    $0x6,%esi
43b0d5:	8b 07                	mov    (%edi),%eax
43b0d7:	0f be 44 30 04       	movsbl 0x4(%eax,%esi,1),%eax
43b0dc:	83 e0 01             	and    $0x1,%eax
43b0df:	74 d3                	je     0x43b0b4
43b0e1:	53                   	push   %ebx
43b0e2:	e8 52 f5 ff ff       	call   0x43a639
43b0e7:	59                   	pop    %ecx
43b0e8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
43b0ec:	8b 07                	mov    (%edi),%eax
43b0ee:	f6 44 30 04 01       	testb  $0x1,0x4(%eax,%esi,1)
43b0f3:	74 10                	je     0x43b105
43b0f5:	ff 75 0c             	push   0xc(%ebp)
43b0f8:	53                   	push   %ebx
43b0f9:	e8 21 fe ff ff       	call   0x43af1f
43b0fe:	59                   	pop    %ecx
43b0ff:	59                   	pop    %ecx
43b100:	89 45 e4             	mov    %eax,-0x1c(%ebp)
43b103:	eb 0f                	jmp    0x43b114
43b105:	e8 9e 98 ff ff       	call   0x4349a8
43b10a:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
43b110:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
43b114:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
43b11b:	e8 0c 00 00 00       	call   0x43b12c
43b120:	8b 45 e4             	mov    -0x1c(%ebp),%eax
43b123:	e8 9d 9c ff ff       	call   0x434dc5
43b128:	c3                   	ret
43b129:	8b 5d 08             	mov    0x8(%ebp),%ebx
43b12c:	53                   	push   %ebx
43b12d:	e8 a6 f5 ff ff       	call   0x43a6d8
43b132:	59                   	pop    %ecx
43b133:	c3                   	ret
43b134:	a1 34 fe 46 00       	mov    0x46fe34,%eax
43b139:	c3                   	ret
43b13a:	e8 e9 94 ff ff       	call   0x434628