437890:	81 e7 ff ff 01 00    	and    $0x1ffff,%edi
437896:	81 ff 00 80 01 00    	cmp    $0x18000,%edi
43789c:	75 40                	jne    0x4378de
43789e:	8b 45 d6             	mov    -0x2a(%ebp),%eax
4378a1:	83 f8 ff             	cmp    $0xffffffff,%eax
4378a4:	75 34                	jne    0x4378da
4378a6:	8b 45 da             	mov    -0x26(%ebp),%eax
4378a9:	89 5d d6             	mov    %ebx,-0x2a(%ebp)
4378ac:	83 f8 ff             	cmp    $0xffffffff,%eax
4378af:	75 20                	jne    0x4378d1
4378b1:	66 8b 45 de          	mov    -0x22(%ebp),%ax
4378b5:	b9 ff ff 00 00       	mov    $0xffff,%ecx
4378ba:	89 5d da             	mov    %ebx,-0x26(%ebp)
4378bd:	66 3b c1             	cmp    %cx,%ax
4378c0:	75 07                	jne    0x4378c9
4378c2:	66 89 55 de          	mov    %dx,-0x22(%ebp)
4378c6:	46                   	inc    %esi
4378c7:	eb 0c                	jmp    0x4378d5
4378c9:	66 40                	inc    %ax
4378cb:	66 89 45 de          	mov    %ax,-0x22(%ebp)
4378cf:	eb 04                	jmp    0x4378d5
4378d1:	40                   	inc    %eax
4378d2:	89 45 da             	mov    %eax,-0x26(%ebp)
4378d5:	8b 4d dc             	mov    -0x24(%ebp),%ecx
4378d8:	eb 07                	jmp    0x4378e1
4378da:	40                   	inc    %eax
4378db:	89 45 d6             	mov    %eax,-0x2a(%ebp)
4378de:	8b 4d b0             	mov    -0x50(%ebp),%ecx
4378e1:	ba ff 7f 00 00       	mov    $0x7fff,%edx
4378e6:	66 3b f2             	cmp    %dx,%si
4378e9:	73 1a                	jae    0x437905
4378eb:	66 8b 45 d6          	mov    -0x2a(%ebp),%ax
4378ef:	0b 75 a0             	or     -0x60(%ebp),%esi
4378f2:	66 89 45 c4          	mov    %ax,-0x3c(%ebp)
4378f6:	8b 45 d8             	mov    -0x28(%ebp),%eax
4378f9:	89 45 c6             	mov    %eax,-0x3a(%ebp)
4378fc:	89 4d ca             	mov    %ecx,-0x36(%ebp)
4378ff:	66 89 75 ce          	mov    %si,-0x32(%ebp)
437903:	eb 1d                	jmp    0x437922
437905:	33 c0                	xor    %eax,%eax
437907:	66 39 45 a0          	cmp    %ax,-0x60(%ebp)
43790b:	0f 94 c0             	sete   %al
43790e:	48                   	dec    %eax
43790f:	25 00 00 00 80       	and    $0x80000000,%eax
437914:	05 00 80 ff 7f       	add    $0x7fff8000,%eax
437919:	89 45 cc             	mov    %eax,-0x34(%ebp)
43791c:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
43791f:	89 5d c8             	mov    %ebx,-0x38(%ebp)
437922:	8b 45 b4             	mov    -0x4c(%ebp),%eax
437925:	8b 75 ac             	mov    -0x54(%ebp),%esi
437928:	85 f6                	test   %esi,%esi
43792a:	0f 85 31 fd ff ff    	jne    0x437661
437930:	8b 45 cc             	mov    -0x34(%ebp),%eax
437933:	0f b7 4d c4          	movzwl -0x3c(%ebp),%ecx
437937:	8b 55 c6             	mov    -0x3a(%ebp),%edx
43793a:	8b 75 ca             	mov    -0x36(%ebp),%esi
43793d:	c1 e8 10             	shr    $0x10,%eax
437940:	eb 32                	jmp    0x437974
437942:	33 ff                	xor    %edi,%edi
437944:	8b cb                	mov    %ebx,%ecx
437946:	8b c3                	mov    %ebx,%eax
437948:	8b f3                	mov    %ebx,%esi
43794a:	8b d3                	mov    %ebx,%edx
43794c:	8d 5f 01             	lea    0x1(%edi),%ebx
43794f:	eb 23                	jmp    0x437974
437951:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
437956:	be 00 00 00 80       	mov    $0x80000000,%esi
43795b:	6a 02                	push   $0x2
43795d:	eb 10                	jmp    0x43796f
43795f:	8b cb                	mov    %ebx,%ecx
437961:	8b c3                	mov    %ebx,%eax
437963:	8b f3                	mov    %ebx,%esi
437965:	8b d3                	mov    %ebx,%edx
437967:	eb 0b                	jmp    0x437974
437969:	8b c3                	mov    %ebx,%eax
43796b:	8b f3                	mov    %ebx,%esi
43796d:	6a 04                	push   $0x4
43796f:	8b cb                	mov    %ebx,%ecx
437971:	8b d3                	mov    %ebx,%edx
437973:	5b                   	pop    %ebx
437974:	8b 7d 8c             	mov    -0x74(%ebp),%edi
437977:	0b 45 94             	or     -0x6c(%ebp),%eax
43797a:	66 89 0f             	mov    %cx,(%edi)
43797d:	66 89 47 0a          	mov    %ax,0xa(%edi)
437981:	89 57 02             	mov    %edx,0x2(%edi)
437984:	89 77 06             	mov    %esi,0x6(%edi)
437987:	8b c3                	mov    %ebx,%eax
437989:	8b 4d fc             	mov    -0x4(%ebp),%ecx
43798c:	5f                   	pop    %edi
43798d:	5e                   	pop    %esi
43798e:	33 cd                	xor    %ebp,%ecx
437990:	5b                   	pop    %ebx
437991:	e8 76 2d ff ff       	call   0x42a70c
437996:	c9                   	leave
437997:	c3                   	ret
437998:	90                   	nop
437999:	dd 72 43             	fnsave 0x43(%edx)
43799c:	00 2f                	add    %ch,(%edi)
43799e:	73 43                	jae    0x4379e3
4379a0:	00 89 73 43 00 ba    	add    %cl,-0x45ffbc8d(%ecx)
4379a6:	73 43                	jae    0x4379eb
4379a8:	00 1b                	add    %bl,(%ebx)
4379aa:	74 43                	je     0x4379ef
4379ac:	00 9e 74 43 00 b7    	add    %bl,-0x48ffbc8c(%esi)
4379b2:	74 43                	je     0x4379f7
4379b4:	00 1a                	add    %bl,(%edx)
4379b6:	75 43                	jne    0x4379fb
4379b8:	00 fc                	add    %bh,%ah
4379ba:	74 43                	je     0x4379ff
4379bc:	00 5c 75 43          	add    %bl,0x43(%ebp,%esi,2)
4379c0:	00 51 75             	add    %dl,0x75(%ecx)
4379c3:	43                   	inc    %ebx
4379c4:	00 26                	add    %ah,(%esi)
4379c6:	75 43                	jne    0x437a0b
4379c8:	00 55 8b             	add    %dl,-0x75(%ebp)
4379cb:	ec                   	in     (%dx),%al
4379cc:	81 ec 88 00 00 00    	sub    $0x88,%esp
4379d2:	a1 c0 ad 4b 00       	mov    0x4badc0,%eax
4379d7:	33 c5                	xor    %ebp,%eax
4379d9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4379dc:	0f b7 55 10          	movzwl 0x10(%ebp),%edx
4379e0:	53                   	push   %ebx
4379e1:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
4379e4:	56                   	push   %esi
4379e5:	be 00 80 00 00       	mov    $0x8000,%esi
4379ea:	23 d6                	and    %esi,%edx
4379ec:	0f b7 75 10          	movzwl 0x10(%ebp),%esi
4379f0:	33 c9                	xor    %ecx,%ecx
4379f2:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
4379f7:	41                   	inc    %ecx
4379f8:	23 f0                	and    %eax,%esi
4379fa:	57                   	push   %edi
4379fb:	89 5d 90             	mov    %ebx,-0x70(%ebp)
4379fe:	c7 45 d0 cc cc cc cc 	movl   $0xcccccccc,-0x30(%ebp)
437a05:	c7 45 d4 cc cc cc cc 	movl   $0xcccccccc,-0x2c(%ebp)
437a0c:	c7 45 d8 cc cc fb 3f 	movl   $0x3ffbcccc,-0x28(%ebp)
437a13:	89 55 88             	mov    %edx,-0x78(%ebp)
437a16:	89 45 98             	mov    %eax,-0x68(%ebp)
437a19:	66 85 d2             	test   %dx,%dx
437a1c:	74 06                	je     0x437a24
437a1e:	c6 43 02 2d          	movb   $0x2d,0x2(%ebx)
437a22:	eb 04                	jmp    0x437a28
437a24:	c6 43 02 20          	movb   $0x20,0x2(%ebx)
437a28:	8b 7d 0c             	mov    0xc(%ebp),%edi
437a2b:	66 85 f6             	test   %si,%si
437a2e:	75 3a                	jne    0x437a6a
437a30:	85 ff                	test   %edi,%edi
437a32:	0f 85 c7 00 00 00    	jne    0x437aff
437a38:	39 7d 08             	cmp    %edi,0x8(%ebp)
437a3b:	0f 85 be 00 00 00    	jne    0x437aff
437a41:	33 c0                	xor    %eax,%eax
437a43:	66 89 03             	mov    %ax,(%ebx)
437a46:	b8 00 80 00 00       	mov    $0x8000,%eax
437a4b:	66 3b d0             	cmp    %ax,%dx
437a4e:	0f 95 c0             	setne  %al
437a51:	fe c8                	dec    %al
437a53:	24 0d                	and    $0xd,%al
437a55:	04 20                	add    $0x20,%al
437a57:	88 43 02             	mov    %al,0x2(%ebx)
437a5a:	88 4b 03             	mov    %cl,0x3(%ebx)
437a5d:	66 c7 43 04 30 00    	movw   $0x30,0x4(%ebx)
437a63:	8b c1                	mov    %ecx,%eax
437a65:	e9 ce 08 00 00       	jmp    0x438338
437a6a:	66 3b f0             	cmp    %ax,%si
437a6d:	0f 85 8c 00 00 00    	jne    0x437aff
437a73:	8b 45 0c             	mov    0xc(%ebp),%eax
437a76:	ba 00 00 00 80       	mov    $0x80000000,%edx
437a7b:	66 89 0b             	mov    %cx,(%ebx)
437a7e:	8b 4d 08             	mov    0x8(%ebp),%ecx
437a81:	3b c2                	cmp    %edx,%eax
437a83:	75 04                	jne    0x437a89
437a85:	85 c9                	test   %ecx,%ecx
437a87:	74 0e                	je     0x437a97
437a89:	a9 00 00 00 40       	test   $0x40000000,%eax
437a8e:	75 07                	jne    0x437a97
437a90:	68 90 da 49 00       	push   $0x49da90
437a95:	eb 47                	jmp    0x437ade
437a97:	66 83 7d 88 00       	cmpw   $0x0,-0x78(%ebp)
437a9c:	74 12                	je     0x437ab0
437a9e:	3d 00 00 00 c0       	cmp    $0xc0000000,%eax
437aa3:	75 0b                	jne    0x437ab0
437aa5:	85 c9                	test   %ecx,%ecx
437aa7:	75 30                	jne    0x437ad9
437aa9:	68 98 da 49 00       	push   $0x49da98
437aae:	eb 0d                	jmp    0x437abd
437ab0:	3b c2                	cmp    %edx,%eax
437ab2:	75 25                	jne    0x437ad9
437ab4:	85 c9                	test   %ecx,%ecx
437ab6:	75 21                	jne    0x437ad9
437ab8:	68 a0 da 49 00       	push   $0x49daa0
437abd:	8d 43 04             	lea    0x4(%ebx),%eax
437ac0:	6a 16                	push   $0x16
437ac2:	50                   	push   %eax
437ac3:	e8 4a aa ff ff       	call   0x432512
437ac8:	83 c4 0c             	add    $0xc,%esp
437acb:	85 c0                	test   %eax,%eax
437acd:	0f 85 ad 08 00 00    	jne    0x438380
437ad3:	c6 43 03 05          	movb   $0x5,0x3(%ebx)
437ad7:	eb 1f                	jmp    0x437af8
437ad9:	68 a8 da 49 00       	push   $0x49daa8
437ade:	8d 43 04             	lea    0x4(%ebx),%eax
437ae1:	6a 16                	push   $0x16
437ae3:	50                   	push   %eax
437ae4:	e8 29 aa ff ff       	call   0x432512
437ae9:	83 c4 0c             	add    $0xc,%esp
437aec:	85 c0                	test   %eax,%eax
437aee:	0f 85 8c 08 00 00    	jne    0x438380
437af4:	c6 43 03 06          	movb   $0x6,0x3(%ebx)
437af8:	33 c0                	xor    %eax,%eax
437afa:	e9 39 08 00 00       	jmp    0x438338
437aff:	0f b7 d6             	movzwl %si,%edx
437b02:	8b c2                	mov    %edx,%eax
437b04:	69 d2 10 4d 00 00    	imul   $0x4d10,%edx,%edx
437b0a:	c1 e8 08             	shr    $0x8,%eax
437b0d:	8b cf                	mov    %edi,%ecx
437b0f:	c1 e9 18             	shr    $0x18,%ecx
437b12:	81 c2 0c ed bc ec    	add    $0xecbced0c,%edx
437b18:	8d 04 48             	lea    (%eax,%ecx,2),%eax
437b1b:	6b c0 4d             	imul   $0x4d,%eax,%eax
437b1e:	03 c2                	add    %edx,%eax
437b20:	c1 f8 10             	sar    $0x10,%eax
437b23:	0f b7 c8             	movzwl %ax,%ecx
437b26:	8b 45 08             	mov    0x8(%ebp),%eax
437b29:	89 45 e2             	mov    %eax,-0x1e(%ebp)
437b2c:	33 c0                	xor    %eax,%eax
437b2e:	89 4d b8             	mov    %ecx,-0x48(%ebp)
437b31:	0f bf c9             	movswl %cx,%ecx
437b34:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
437b38:	f7 d9                	neg    %ecx
437b3a:	b8 b0 b1 4b 00       	mov    $0x4bb1b0,%eax
437b3f:	83 e8 60             	sub    $0x60,%eax
437b42:	33 db                	xor    %ebx,%ebx
437b44:	66 89 75 ea          	mov    %si,-0x16(%ebp)
437b48:	89 7d e6             	mov    %edi,-0x1a(%ebp)
437b4b:	89 4d bc             	mov    %ecx,-0x44(%ebp)
437b4e:	c7 45 a4 05 00 00 00 	movl   $0x5,-0x5c(%ebp)
437b55:	c7 45 94 fd bf 00 00 	movl   $0xbffd,-0x6c(%ebp)
437b5c:	c7 45 a8 bf 3f 00 00 	movl   $0x3fbf,-0x58(%ebp)
437b63:	85 c9                	test   %ecx,%ecx
437b65:	0f 84 21 03 00 00    	je     0x437e8c
437b6b:	79 0f                	jns    0x437b7c
437b6d:	f7 d9                	neg    %ecx
437b6f:	b8 10 b3 4b 00       	mov    $0x4bb310,%eax
437b74:	83 e8 60             	sub    $0x60,%eax
437b77:	89 4d bc             	mov    %ecx,-0x44(%ebp)
437b7a:	85 c9                	test   %ecx,%ecx
437b7c:	0f 84 0a 03 00 00    	je     0x437e8c
437b82:	8b 75 e0             	mov    -0x20(%ebp),%esi
437b85:	8b 55 e4             	mov    -0x1c(%ebp),%edx
437b88:	89 75 c0             	mov    %esi,-0x40(%ebp)
437b8b:	c1 7d bc 03          	sarl   $0x3,-0x44(%ebp)
437b8f:	83 c0 54             	add    $0x54,%eax
437b92:	89 45 ac             	mov    %eax,-0x54(%ebp)
437b95:	83 e1 07             	and    $0x7,%ecx
437b98:	0f 84 e1 02 00 00    	je     0x437e7f
437b9e:	6b c9 0c             	imul   $0xc,%ecx,%ecx
437ba1:	03 c8                	add    %eax,%ecx
437ba3:	b8 00 80 00 00       	mov    $0x8000,%eax
437ba8:	89 8d 78 ff ff ff    	mov    %ecx,-0x88(%ebp)
437bae:	66 39 01             	cmp    %ax,(%ecx)
437bb1:	72 14                	jb     0x437bc7
437bb3:	8b f1                	mov    %ecx,%esi
437bb5:	8d 7d c4             	lea    -0x3c(%ebp),%edi
437bb8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
437bb9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
437bba:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
437bbd:	a5                   	movsl  %ds:(%esi),%es:(%edi)
437bbe:	ff 4d c6             	decl   -0x3a(%ebp)
437bc1:	89 8d 78 ff ff ff    	mov    %ecx,-0x88(%ebp)
437bc7:	0f b7 79 0a          	movzwl 0xa(%ecx),%edi
437bcb:	8b 45 ea             	mov    -0x16(%ebp),%eax
437bce:	89 7d 9c             	mov    %edi,-0x64(%ebp)
437bd1:	31 45 9c             	xor    %eax,-0x64(%ebp)
437bd4:	25 ff 7f 00 00       	and    $0x7fff,%eax
437bd9:	81 e7 ff 7f 00 00    	and    $0x7fff,%edi
437bdf:	89 45 b0             	mov    %eax,-0x50(%ebp)
437be2:	03 c7                	add    %edi,%eax
437be4:	be 00 80 00 00       	mov    $0x8000,%esi
437be9:	21 75 9c             	and    %esi,-0x64(%ebp)
437bec:	89 7d a0             	mov    %edi,-0x60(%ebp)
437bef:	0f b7 f8             	movzwl %ax,%edi
437bf2:	8b 45 b0             	mov    -0x50(%ebp),%eax
437bf5:	4e                   	dec    %esi
437bf6:	89 5d 8c             	mov    %ebx,-0x74(%ebp)
437bf9:	89 5d f0             	mov    %ebx,-0x10(%ebp)
437bfc:	89 5d f4             	mov    %ebx,-0xc(%ebp)
437bff:	89 5d f8             	mov    %ebx,-0x8(%ebp)
437c02:	89 7d b4             	mov    %edi,-0x4c(%ebp)
437c05:	66 3b c6             	cmp    %si,%ax
437c08:	0f 83 4a 02 00 00    	jae    0x437e58
437c0e:	66 39 75 a0          	cmp    %si,-0x60(%ebp)
437c12:	8b 75 c0             	mov    -0x40(%ebp),%esi
437c15:	0f 83 3d 02 00 00    	jae    0x437e58
437c1b:	66 3b 7d 94          	cmp    -0x6c(%ebp),%di
437c1f:	0f 87 33 02 00 00    	ja     0x437e58
437c25:	66 3b 7d a8          	cmp    -0x58(%ebp),%di
437c29:	77 08                	ja     0x437c33
437c2b:	89 5d e8             	mov    %ebx,-0x18(%ebp)
437c2e:	e9 3c 02 00 00       	jmp    0x437e6f
437c33:	66 85 c0             	test   %ax,%ax
437c36:	75 20                	jne    0x437c58
437c38:	47                   	inc    %edi
437c39:	f7 45 e8 ff ff ff 7f 	testl  $0x7fffffff,-0x18(%ebp)
437c40:	89 7d b4             	mov    %edi,-0x4c(%ebp)
437c43:	75 13                	jne    0x437c58
437c45:	85 d2                	test   %edx,%edx
437c47:	75 0f                	jne    0x437c58
437c49:	85 f6                	test   %esi,%esi
437c4b:	75 0b                	jne    0x437c58
437c4d:	33 c0                	xor    %eax,%eax
437c4f:	66 89 45 ea          	mov    %ax,-0x16(%ebp)
437c53:	e9 24 02 00 00       	jmp    0x437e7c
437c58:	66 83 7d a0 00       	cmpw   $0x0,-0x60(%ebp)
437c5d:	75 16                	jne    0x437c75
437c5f:	47                   	inc    %edi
437c60:	f7 41 08 ff ff ff 7f 	testl  $0x7fffffff,0x8(%ecx)
437c67:	89 7d b4             	mov    %edi,-0x4c(%ebp)
437c6a:	75 09                	jne    0x437c75
437c6c:	39 59 04             	cmp    %ebx,0x4(%ecx)
437c6f:	75 04                	jne    0x437c75
437c71:	39 19                	cmp    %ebx,(%ecx)
437c73:	74 b6                	je     0x437c2b
437c75:	6a 05                	push   $0x5
437c77:	8b c3                	mov    %ebx,%eax
437c79:	5e                   	pop    %esi
437c7a:	89 45 80             	mov    %eax,-0x80(%ebp)
437c7d:	8d 55 f4             	lea    -0xc(%ebp),%edx
437c80:	89 75 b0             	mov    %esi,-0x50(%ebp)
437c83:	89 75 a0             	mov    %esi,-0x60(%ebp)
437c86:	85 f6                	test   %esi,%esi
437c88:	7e 6f                	jle    0x437cf9
437c8a:	8d 75 e0             	lea    -0x20(%ebp),%esi
437c8d:	8d 04 46             	lea    (%esi,%eax,2),%eax
437c90:	8d 71 08             	lea    0x8(%ecx),%esi
437c93:	8b 4d a0             	mov    -0x60(%ebp),%ecx
437c96:	89 45 c0             	mov    %eax,-0x40(%ebp)
437c99:	89 b5 7c ff ff ff    	mov    %esi,-0x84(%ebp)
437c9f:	0f b7 38             	movzwl (%eax),%edi
437ca2:	0f b7 06             	movzwl (%esi),%eax
437ca5:	0f af f8             	imul   %eax,%edi
437ca8:	8b 42 fc             	mov    -0x4(%edx),%eax
437cab:	89 5d 84             	mov    %ebx,-0x7c(%ebp)
437cae:	8d 34 38             	lea    (%eax,%edi,1),%esi
437cb1:	3b f0                	cmp    %eax,%esi
437cb3:	89 75 a0             	mov    %esi,-0x60(%ebp)
437cb6:	8b c6                	mov    %esi,%eax
437cb8:	72 04                	jb     0x437cbe
437cba:	3b c7                	cmp    %edi,%eax
437cbc:	73 05                	jae    0x437cc3
437cbe:	33 f6                	xor    %esi,%esi