439d39:	0f b7 75 10          	movzwl 0x10(%ebp),%esi
439d3d:	41                   	inc    %ecx
439d3e:	23 f0                	and    %eax,%esi
439d40:	c7 45 d4 cc cc cc cc 	movl   $0xcccccccc,-0x2c(%ebp)
439d47:	c7 45 d8 cc cc fb 3f 	movl   $0x3ffbcccc,-0x28(%ebp)
439d4e:	89 55 80             	mov    %edx,-0x80(%ebp)
439d51:	89 45 9c             	mov    %eax,-0x64(%ebp)
439d54:	57                   	push   %edi
439d55:	66 85 d2             	test   %dx,%dx
439d58:	74 06                	je     0x439d60
439d5a:	c6 43 02 2d          	movb   $0x2d,0x2(%ebx)
439d5e:	eb 04                	jmp    0x439d64
439d60:	c6 43 02 20          	movb   $0x20,0x2(%ebx)
439d64:	8b 7d 0c             	mov    0xc(%ebp),%edi
439d67:	66 85 f6             	test   %si,%si
439d6a:	75 3a                	jne    0x439da6
439d6c:	85 ff                	test   %edi,%edi
439d6e:	0f 85 c7 00 00 00    	jne    0x439e3b
439d74:	39 7d 08             	cmp    %edi,0x8(%ebp)
439d77:	0f 85 be 00 00 00    	jne    0x439e3b
439d7d:	33 c0                	xor    %eax,%eax
439d7f:	88 4b 03             	mov    %cl,0x3(%ebx)
439d82:	66 89 03             	mov    %ax,(%ebx)
439d85:	b8 00 80 00 00       	mov    $0x8000,%eax
439d8a:	66 3b d0             	cmp    %ax,%dx
439d8d:	0f 95 c0             	setne  %al
439d90:	fe c8                	dec    %al
439d92:	24 0d                	and    $0xd,%al
439d94:	04 20                	add    $0x20,%al
439d96:	88 43 02             	mov    %al,0x2(%ebx)
439d99:	8b c1                	mov    %ecx,%eax
439d9b:	66 c7 43 04 30 00    	movw   $0x30,0x4(%ebx)
439da1:	e9 dc 08 00 00       	jmp    0x43a682
439da6:	66 3b f0             	cmp    %ax,%si
439da9:	0f 85 8c 00 00 00    	jne    0x439e3b
439daf:	8b 45 0c             	mov    0xc(%ebp),%eax
439db2:	ba 00 00 00 80       	mov    $0x80000000,%edx
439db7:	66 89 0b             	mov    %cx,(%ebx)
439dba:	8b 4d 08             	mov    0x8(%ebp),%ecx
439dbd:	3b c2                	cmp    %edx,%eax
439dbf:	75 04                	jne    0x439dc5
439dc1:	85 c9                	test   %ecx,%ecx
439dc3:	74 0e                	je     0x439dd3
439dc5:	a9 00 00 00 40       	test   $0x40000000,%eax
439dca:	75 07                	jne    0x439dd3
439dcc:	68 f4 2d 4a 00       	push   $0x4a2df4
439dd1:	eb 47                	jmp    0x439e1a
439dd3:	66 83 7d 80 00       	cmpw   $0x0,-0x80(%ebp)
439dd8:	74 12                	je     0x439dec
439dda:	3d 00 00 00 c0       	cmp    $0xc0000000,%eax
439ddf:	75 0b                	jne    0x439dec
439de1:	85 c9                	test   %ecx,%ecx
439de3:	75 30                	jne    0x439e15
439de5:	68 fc 2d 4a 00       	push   $0x4a2dfc
439dea:	eb 0d                	jmp    0x439df9
439dec:	3b c2                	cmp    %edx,%eax
439dee:	75 25                	jne    0x439e15
439df0:	85 c9                	test   %ecx,%ecx
439df2:	75 21                	jne    0x439e15
439df4:	68 04 2e 4a 00       	push   $0x4a2e04
439df9:	8d 43 04             	lea    0x4(%ebx),%eax
439dfc:	6a 16                	push   $0x16
439dfe:	50                   	push   %eax
439dff:	e8 fe a9 ff ff       	call   0x434802
439e04:	83 c4 0c             	add    $0xc,%esp
439e07:	85 c0                	test   %eax,%eax
439e09:	0f 85 bd 08 00 00    	jne    0x43a6cc
439e0f:	c6 43 03 05          	movb   $0x5,0x3(%ebx)
439e13:	eb 1f                	jmp    0x439e34
439e15:	68 0c 2e 4a 00       	push   $0x4a2e0c
439e1a:	8d 43 04             	lea    0x4(%ebx),%eax
439e1d:	6a 16                	push   $0x16
439e1f:	50                   	push   %eax
439e20:	e8 dd a9 ff ff       	call   0x434802
439e25:	83 c4 0c             	add    $0xc,%esp
439e28:	85 c0                	test   %eax,%eax
439e2a:	0f 85 9c 08 00 00    	jne    0x43a6cc
439e30:	c6 43 03 06          	movb   $0x6,0x3(%ebx)
439e34:	33 c0                	xor    %eax,%eax
439e36:	e9 47 08 00 00       	jmp    0x43a682
439e3b:	0f b7 d6             	movzwl %si,%edx
439e3e:	8b cf                	mov    %edi,%ecx
439e40:	c1 e9 18             	shr    $0x18,%ecx
439e43:	8b c2                	mov    %edx,%eax
439e45:	c1 e8 08             	shr    $0x8,%eax
439e48:	33 db                	xor    %ebx,%ebx
439e4a:	89 7d e6             	mov    %edi,-0x1a(%ebp)
439e4d:	bf 40 01 4c 00       	mov    $0x4c0140,%edi
439e52:	83 ef 60             	sub    $0x60,%edi
439e55:	66 89 75 ea          	mov    %si,-0x16(%ebp)
439e59:	c7 45 a8 05 00 00 00 	movl   $0x5,-0x58(%ebp)
439e60:	8d 04 48             	lea    (%eax,%ecx,2),%eax
439e63:	c7 45 90 fd bf 00 00 	movl   $0xbffd,-0x70(%ebp)
439e6a:	6b c8 4d             	imul   $0x4d,%eax,%ecx
439e6d:	69 c2 10 4d 00 00    	imul   $0x4d10,%edx,%eax
439e73:	c7 45 ac bf 3f 00 00 	movl   $0x3fbf,-0x54(%ebp)
439e7a:	05 0c ed bc ec       	add    $0xecbced0c,%eax
439e7f:	03 c1                	add    %ecx,%eax
439e81:	c1 f8 10             	sar    $0x10,%eax
439e84:	0f b7 c8             	movzwl %ax,%ecx
439e87:	8b 45 08             	mov    0x8(%ebp),%eax
439e8a:	89 45 e2             	mov    %eax,-0x1e(%ebp)
439e8d:	33 c0                	xor    %eax,%eax
439e8f:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
439e93:	0f bf c1             	movswl %cx,%eax
439e96:	f7 d8                	neg    %eax
439e98:	89 4d b8             	mov    %ecx,-0x48(%ebp)
439e9b:	89 45 bc             	mov    %eax,-0x44(%ebp)
439e9e:	85 c0                	test   %eax,%eax
439ea0:	0f 84 2f 03 00 00    	je     0x43a1d5
439ea6:	79 0f                	jns    0x439eb7
439ea8:	f7 d8                	neg    %eax
439eaa:	bf a0 02 4c 00       	mov    $0x4c02a0,%edi
439eaf:	83 ef 60             	sub    $0x60,%edi
439eb2:	89 45 bc             	mov    %eax,-0x44(%ebp)
439eb5:	85 c0                	test   %eax,%eax
439eb7:	0f 84 18 03 00 00    	je     0x43a1d5
439ebd:	8b 75 e0             	mov    -0x20(%ebp),%esi
439ec0:	8b 55 e4             	mov    -0x1c(%ebp),%edx
439ec3:	89 75 c0             	mov    %esi,-0x40(%ebp)
439ec6:	c1 7d bc 03          	sarl   $0x3,-0x44(%ebp)
439eca:	83 c7 54             	add    $0x54,%edi
439ecd:	89 7d 94             	mov    %edi,-0x6c(%ebp)
439ed0:	83 e0 07             	and    $0x7,%eax
439ed3:	0f 84 ec 02 00 00    	je     0x43a1c5
439ed9:	6b c8 0c             	imul   $0xc,%eax,%ecx
439edc:	b8 00 80 00 00       	mov    $0x8000,%eax
439ee1:	03 cf                	add    %edi,%ecx
439ee3:	89 4d 98             	mov    %ecx,-0x68(%ebp)
439ee6:	66 39 01             	cmp    %ax,(%ecx)
439ee9:	72 11                	jb     0x439efc
439eeb:	8b f1                	mov    %ecx,%esi
439eed:	8d 7d c4             	lea    -0x3c(%ebp),%edi
439ef0:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
439ef3:	89 4d 98             	mov    %ecx,-0x68(%ebp)
439ef6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
439ef7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
439ef8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
439ef9:	ff 4d c6             	decl   -0x3a(%ebp)
439efc:	0f b7 79 0a          	movzwl 0xa(%ecx),%edi
439f00:	be 00 80 00 00       	mov    $0x8000,%esi
439f05:	8b 45 ea             	mov    -0x16(%ebp),%eax
439f08:	89 7d a4             	mov    %edi,-0x5c(%ebp)
439f0b:	81 e7 ff 7f 00 00    	and    $0x7fff,%edi
439f11:	31 45 a4             	xor    %eax,-0x5c(%ebp)
439f14:	25 ff 7f 00 00       	and    $0x7fff,%eax
439f19:	21 75 a4             	and    %esi,-0x5c(%ebp)
439f1c:	89 45 b0             	mov    %eax,-0x50(%ebp)
439f1f:	03 c7                	add    %edi,%eax
439f21:	89 7d a0             	mov    %edi,-0x60(%ebp)
439f24:	4e                   	dec    %esi
439f25:	0f b7 f8             	movzwl %ax,%edi
439f28:	8b 45 b0             	mov    -0x50(%ebp),%eax
439f2b:	66 3b c6             	cmp    %si,%ax
439f2e:	8b 75 c0             	mov    -0x40(%ebp),%esi
439f31:	89 5d 84             	mov    %ebx,-0x7c(%ebp)
439f34:	89 5d f0             	mov    %ebx,-0x10(%ebp)
439f37:	89 5d f4             	mov    %ebx,-0xc(%ebp)
439f3a:	89 5d f8             	mov    %ebx,-0x8(%ebp)
439f3d:	89 7d b4             	mov    %edi,-0x4c(%ebp)
439f40:	0f 83 58 02 00 00    	jae    0x43a19e
439f46:	b9 ff 7f 00 00       	mov    $0x7fff,%ecx
439f4b:	66 39 4d a0          	cmp    %cx,-0x60(%ebp)
439f4f:	8b 4d 98             	mov    -0x68(%ebp),%ecx
439f52:	0f 83 46 02 00 00    	jae    0x43a19e
439f58:	66 3b 7d 90          	cmp    -0x70(%ebp),%di
439f5c:	0f 87 3c 02 00 00    	ja     0x43a19e
439f62:	66 3b 7d ac          	cmp    -0x54(%ebp),%di
439f66:	77 08                	ja     0x439f70
439f68:	89 5d e8             	mov    %ebx,-0x18(%ebp)
439f6b:	e9 45 02 00 00       	jmp    0x43a1b5
439f70:	66 85 c0             	test   %ax,%ax
439f73:	75 20                	jne    0x439f95
439f75:	47                   	inc    %edi
439f76:	f7 45 e8 ff ff ff 7f 	testl  $0x7fffffff,-0x18(%ebp)
439f7d:	89 7d b4             	mov    %edi,-0x4c(%ebp)
439f80:	75 13                	jne    0x439f95
439f82:	85 d2                	test   %edx,%edx
439f84:	75 0f                	jne    0x439f95
439f86:	85 f6                	test   %esi,%esi
439f88:	75 0b                	jne    0x439f95
439f8a:	33 c0                	xor    %eax,%eax
439f8c:	66 89 45 ea          	mov    %ax,-0x16(%ebp)
439f90:	e9 2d 02 00 00       	jmp    0x43a1c2
439f95:	66 83 7d a0 00       	cmpw   $0x0,-0x60(%ebp)
439f9a:	75 16                	jne    0x439fb2
439f9c:	47                   	inc    %edi
439f9d:	f7 41 08 ff ff ff 7f 	testl  $0x7fffffff,0x8(%ecx)
439fa4:	89 7d b4             	mov    %edi,-0x4c(%ebp)
439fa7:	75 09                	jne    0x439fb2
439fa9:	39 59 04             	cmp    %ebx,0x4(%ecx)
439fac:	75 04                	jne    0x439fb2
439fae:	39 19                	cmp    %ebx,(%ecx)
439fb0:	74 b6                	je     0x439f68
439fb2:	6a 05                	push   $0x5
439fb4:	8b c3                	mov    %ebx,%eax
439fb6:	8d 55 f4             	lea    -0xc(%ebp),%edx
439fb9:	5e                   	pop    %esi
439fba:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
439fc0:	89 75 b0             	mov    %esi,-0x50(%ebp)
439fc3:	89 75 a0             	mov    %esi,-0x60(%ebp)
439fc6:	85 f6                	test   %esi,%esi
439fc8:	7e 72                	jle    0x43a03c
439fca:	8d 75 e0             	lea    -0x20(%ebp),%esi
439fcd:	8d 04 46             	lea    (%esi,%eax,2),%eax
439fd0:	8d 71 08             	lea    0x8(%ecx),%esi
439fd3:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
439fd9:	89 75 c0             	mov    %esi,-0x40(%ebp)
439fdc:	8b 75 a0             	mov    -0x60(%ebp),%esi
439fdf:	8b 4d c0             	mov    -0x40(%ebp),%ecx
439fe2:	0f b7 38             	movzwl (%eax),%edi
439fe5:	0f b7 01             	movzwl (%ecx),%eax
439fe8:	0f af f8             	imul   %eax,%edi
439feb:	8b 42 fc             	mov    -0x4(%edx),%eax
439fee:	89 5d 88             	mov    %ebx,-0x78(%ebp)
439ff1:	8d 0c 38             	lea    (%eax,%edi,1),%ecx
439ff4:	3b c8                	cmp    %eax,%ecx
439ff6:	89 4d a0             	mov    %ecx,-0x60(%ebp)
439ff9:	8b c1                	mov    %ecx,%eax
439ffb:	72 04                	jb     0x43a001
439ffd:	3b c7                	cmp    %edi,%eax
439fff:	73 05                	jae    0x43a006
43a001:	33 c9                	xor    %ecx,%ecx
43a003:	41                   	inc    %ecx
43a004:	eb 03                	jmp    0x43a009
43a006:	8b 4d 88             	mov    -0x78(%ebp),%ecx
43a009:	89 42 fc             	mov    %eax,-0x4(%edx)
43a00c:	85 c9                	test   %ecx,%ecx
43a00e:	74 03                	je     0x43a013
43a010:	66 ff 02             	incw   (%edx)
43a013:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
43a019:	8b 4d c0             	mov    -0x40(%ebp),%ecx
43a01c:	83 c0 02             	add    $0x2,%eax
43a01f:	83 e9 02             	sub    $0x2,%ecx
43a022:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
43a028:	4e                   	dec    %esi
43a029:	89 4d c0             	mov    %ecx,-0x40(%ebp)
43a02c:	85 f6                	test   %esi,%esi
43a02e:	7f b2                	jg     0x439fe2
43a030:	8b 4d 98             	mov    -0x68(%ebp),%ecx
43a033:	8b 75 b0             	mov    -0x50(%ebp),%esi
43a036:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
43a03c:	83 c2 02             	add    $0x2,%edx
43a03f:	40                   	inc    %eax
43a040:	4e                   	dec    %esi
43a041:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
43a047:	89 75 b0             	mov    %esi,-0x50(%ebp)
43a04a:	85 f6                	test   %esi,%esi
43a04c:	0f 8f 71 ff ff ff    	jg     0x439fc3
43a052:	8b 7d b4             	mov    -0x4c(%ebp),%edi
43a055:	8b 45 f8             	mov    -0x8(%ebp),%eax
43a058:	81 c7 02 c0 00 00    	add    $0xc002,%edi
43a05e:	8b 75 f0             	mov    -0x10(%ebp),%esi
43a061:	89 45 c0             	mov    %eax,-0x40(%ebp)
43a064:	66 85 ff             	test   %di,%di
43a067:	7e 3b                	jle    0x43a0a4
43a069:	85 c0                	test   %eax,%eax
43a06b:	78 32                	js     0x43a09f
43a06d:	8b 45 f4             	mov    -0xc(%ebp),%eax
43a070:	8b d6                	mov    %esi,%edx
43a072:	8b c8                	mov    %eax,%ecx
43a074:	c1 ea 1f             	shr    $0x1f,%edx
43a077:	03 c0                	add    %eax,%eax
43a079:	c1 e9 1f             	shr    $0x1f,%ecx
43a07c:	0b c2                	or     %edx,%eax
43a07e:	03 f6                	add    %esi,%esi
43a080:	89 45 f4             	mov    %eax,-0xc(%ebp)
43a083:	8b 45 c0             	mov    -0x40(%ebp),%eax
43a086:	03 c0                	add    %eax,%eax
43a088:	89 75 f0             	mov    %esi,-0x10(%ebp)
43a08b:	0b c1                	or     %ecx,%eax
43a08d:	b9 ff ff 00 00       	mov    $0xffff,%ecx
43a092:	03 f9                	add    %ecx,%edi
43a094:	89 45 c0             	mov    %eax,-0x40(%ebp)
43a097:	89 45 f8             	mov    %eax,-0x8(%ebp)
43a09a:	66 85 ff             	test   %di,%di
43a09d:	7f ca                	jg     0x43a069
43a09f:	66 85 ff             	test   %di,%di
43a0a2:	7f 71                	jg     0x43a115
43a0a4:	b8 ff ff 00 00       	mov    $0xffff,%eax
43a0a9:	03 f8                	add    %eax,%edi
43a0ab:	66 85 ff             	test   %di,%di
43a0ae:	79 65                	jns    0x43a115
43a0b0:	8b 5d c0             	mov    -0x40(%ebp),%ebx
43a0b3:	8b c7                	mov    %edi,%eax
43a0b5:	f7 d8                	neg    %eax
43a0b7:	33 d2                	xor    %edx,%edx
43a0b9:	0f b7 c0             	movzwl %ax,%eax
43a0bc:	03 f8                	add    %eax,%edi
43a0be:	89 45 b0             	mov    %eax,-0x50(%ebp)
43a0c1:	89 7d b4             	mov    %edi,-0x4c(%ebp)
43a0c4:	42                   	inc    %edx
43a0c5:	8b 7d 84             	mov    -0x7c(%ebp),%edi
43a0c8:	84 55 f0             	test   %dl,-0x10(%ebp)
43a0cb:	74 01                	je     0x43a0ce
43a0cd:	47                   	inc    %edi
43a0ce:	8b 4d f4             	mov    -0xc(%ebp),%ecx
43a0d1:	8b c3                	mov    %ebx,%eax
43a0d3:	c1 e0 1f             	shl    $0x1f,%eax
43a0d6:	89 4d c0             	mov    %ecx,-0x40(%ebp)
43a0d9:	d1 6d c0             	shrl   $1,-0x40(%ebp)
43a0dc:	09 45 c0             	or     %eax,-0x40(%ebp)
43a0df:	8b 45 c0             	mov    -0x40(%ebp),%eax
43a0e2:	c1 e1 1f             	shl    $0x1f,%ecx
43a0e5:	d1 ee                	shr    $1,%esi
43a0e7:	d1 eb                	shr    $1,%ebx
43a0e9:	0b f1                	or     %ecx,%esi
43a0eb:	ff 4d b0             	decl   -0x50(%ebp)
43a0ee:	89 5d f8             	mov    %ebx,-0x8(%ebp)
43a0f1:	89 45 f4             	mov    %eax,-0xc(%ebp)
43a0f4:	89 75 f0             	mov    %esi,-0x10(%ebp)
43a0f7:	75 cf                	jne    0x43a0c8
43a0f9:	6a 00                	push   $0x0
43a0fb:	89 5d c0             	mov    %ebx,-0x40(%ebp)
43a0fe:	85 ff                	test   %edi,%edi
43a100:	8b 7d b4             	mov    -0x4c(%ebp),%edi
43a103:	5b                   	pop    %ebx
43a104:	74 0f                	je     0x43a115
43a106:	66 8b c6             	mov    %si,%ax
43a109:	66 0b c2             	or     %dx,%ax
43a10c:	66 89 45 f0          	mov    %ax,-0x10(%ebp)
43a110:	8b 75 f0             	mov    -0x10(%ebp),%esi
43a113:	eb 04                	jmp    0x43a119
43a115:	66 8b 45 f0          	mov    -0x10(%ebp),%ax
43a119:	b9 00 80 00 00       	mov    $0x8000,%ecx
43a11e:	66 3b c1             	cmp    %cx,%ax
43a121:	77 0e                	ja     0x43a131
43a123:	81 e6 ff ff 01 00    	and    $0x1ffff,%esi
43a129:	81 fe 00 80 01 00    	cmp    $0x18000,%esi
43a12f:	75 40                	jne    0x43a171
43a131:	8b 45 f2             	mov    -0xe(%ebp),%eax
43a134:	83 f8 ff             	cmp    $0xffffffff,%eax
43a137:	75 34                	jne    0x43a16d
43a139:	8b 45 f6             	mov    -0xa(%ebp),%eax
43a13c:	89 5d f2             	mov    %ebx,-0xe(%ebp)
43a13f:	83 f8 ff             	cmp    $0xffffffff,%eax
43a142:	75 20                	jne    0x43a164
43a144:	66 8b 45 fa          	mov    -0x6(%ebp),%ax
43a148:	ba ff ff 00 00       	mov    $0xffff,%edx
43a14d:	89 5d f6             	mov    %ebx,-0xa(%ebp)
43a150:	66 3b c2             	cmp    %dx,%ax
43a153:	75 07                	jne    0x43a15c
43a155:	66 89 4d fa          	mov    %cx,-0x6(%ebp)
43a159:	47                   	inc    %edi
43a15a:	eb 0c                	jmp    0x43a168
43a15c:	66 40                	inc    %ax
43a15e:	66 89 45 fa          	mov    %ax,-0x6(%ebp)
43a162:	eb 04                	jmp    0x43a168
43a164:	40                   	inc    %eax
43a165:	89 45 f6             	mov    %eax,-0xa(%ebp)