416cad:	e8 cb 22 00 00       	call   0x418f7d
416cb2:	59                   	pop    %ecx
416cb3:	59                   	pop    %ecx
416cb4:	85 c0                	test   %eax,%eax
416cb6:	0f 85 64 ad 03 00    	jne    0x451a20
416cbc:	be 80 00 00 00       	mov    $0x80,%esi
416cc1:	8d 4e 7f             	lea    0x7f(%esi),%ecx
416cc4:	8b 45 dc             	mov    -0x24(%ebp),%eax
416cc7:	85 c0                	test   %eax,%eax
416cc9:	79 57                	jns    0x416d22
416ccb:	8b 75 e8             	mov    -0x18(%ebp),%esi
416cce:	33 c0                	xor    %eax,%eax
416cd0:	8b d6                	mov    %esi,%edx
416cd2:	50                   	push   %eax
416cd3:	8d 85 30 ff ff ff    	lea    -0xd0(%ebp),%eax
416cd9:	8b cf                	mov    %edi,%ecx
416cdb:	50                   	push   %eax
416cdc:	ff 75 fc             	push   -0x4(%ebp)
416cdf:	e8 9d 17 00 00       	call   0x418481
416ce4:	83 c4 0c             	add    $0xc,%esp
416ce7:	85 c0                	test   %eax,%eax
416ce9:	0f 85 b6 00 00 00    	jne    0x416da5
416cef:	0f b7 47 02          	movzwl 0x2(%edi),%eax
416cf3:	8d 3c 47             	lea    (%edi,%eax,2),%edi
416cf6:	66 83 3f 77          	cmpw   $0x77,(%edi)
416cfa:	74 d2                	je     0x416cce
416cfc:	8b c3                	mov    %ebx,%eax
416cfe:	5f                   	pop    %edi
416cff:	5e                   	pop    %esi
416d00:	5b                   	pop    %ebx
416d01:	8b e5                	mov    %ebp,%esp
416d03:	5d                   	pop    %ebp
416d04:	c3                   	ret
416d05:	8b 55 c4             	mov    -0x3c(%ebp),%edx
416d08:	66 89 53 18          	mov    %dx,0x18(%ebx)
416d0c:	a8 01                	test   $0x1,%al
416d0e:	0f 85 18 ad 03 00    	jne    0x451a2c
416d14:	be 80 00 00 00       	mov    $0x80,%esi
416d19:	8d 4e 7f             	lea    0x7f(%esi),%ecx
416d1c:	83 4b 0c 10          	orl    $0x10,0xc(%ebx)
416d20:	eb a2                	jmp    0x416cc4
416d22:	f6 43 08 10          	testb  $0x10,0x8(%ebx)
416d26:	75 67                	jne    0x416d8f
416d28:	8b 55 d0             	mov    -0x30(%ebp),%edx
416d2b:	66 89 53 1a          	mov    %dx,0x1a(%ebx)
416d2f:	a8 01                	test   $0x1,%al
416d31:	74 21                	je     0x416d54
416d33:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
416d37:	74 60                	je     0x416d99
416d39:	66 3b d6             	cmp    %si,%dx
416d3c:	0f 83 61 ad 03 00    	jae    0x451aa3
416d42:	8b 85 34 ff ff ff    	mov    -0xcc(%ebp),%eax
416d48:	0f b7 ca             	movzwl %dx,%ecx
416d4b:	0f b6 04 01          	movzbl (%ecx,%eax,1),%eax
416d4f:	66 3b c2             	cmp    %dx,%ax
416d52:	75 4c                	jne    0x416da0
416d54:	83 4b 0c 40          	orl    $0x40,0xc(%ebx)
416d58:	e9 6e ff ff ff       	jmp    0x416ccb
416d5d:	6a 10                	push   $0x10
416d5f:	e9 8f a7 03 00       	jmp    0x4514f3
416d64:	6a 11                	push   $0x11
416d66:	eb 02                	jmp    0x416d6a
416d68:	6a 15                	push   $0x15
416d6a:	5e                   	pop    %esi
416d6b:	e9 74 ac 03 00       	jmp    0x4519e4
416d70:	89 55 e8             	mov    %edx,-0x18(%ebp)
416d73:	e9 5d fb ff ff       	jmp    0x4168d5
416d78:	6a 4e                	push   $0x4e
416d7a:	e9 74 a7 03 00       	jmp    0x4514f3
416d7f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
416d82:	e9 86 fb ff ff       	jmp    0x41690d
416d87:	6a 38                	push   $0x38
416d89:	eb df                	jmp    0x416d6a
416d8b:	6a 14                	push   $0x14
416d8d:	eb db                	jmp    0x416d6a
416d8f:	a8 02                	test   $0x2,%al
416d91:	0f 84 34 ff ff ff    	je     0x416ccb
416d97:	eb 8f                	jmp    0x416d28
416d99:	66 3b d1             	cmp    %cx,%dx
416d9c:	77 b6                	ja     0x416d54
416d9e:	eb a2                	jmp    0x416d42
416da0:	09 73 0c             	or     %esi,0xc(%ebx)
416da3:	eb af                	jmp    0x416d54
416da5:	81 4b 0c 00 80 00 00 	orl    $0x8000,0xc(%ebx)
416dac:	e9 4b ff ff ff       	jmp    0x416cfc
416db1:	33 c0                	xor    %eax,%eax
416db3:	e9 46 ff ff ff       	jmp    0x416cfe
416db8:	55                   	push   %ebp
416db9:	8b ec                	mov    %esp,%ebp
416dbb:	83 e4 f8             	and    $0xfffffff8,%esp
416dbe:	83 ec 6c             	sub    $0x6c,%esp
416dc1:	8b 45 08             	mov    0x8(%ebp),%eax
416dc4:	53                   	push   %ebx
416dc5:	33 db                	xor    %ebx,%ebx
416dc7:	89 54 24 4c          	mov    %edx,0x4c(%esp)
416dcb:	56                   	push   %esi
416dcc:	8b 00                	mov    (%eax),%eax
416dce:	8b 32                	mov    (%edx),%esi
416dd0:	89 44 24 24          	mov    %eax,0x24(%esp)
416dd4:	a1 20 75 4c 00       	mov    0x4c7520,%eax
416dd9:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
416ddd:	89 74 24 14          	mov    %esi,0x14(%esp)
416de1:	89 74 24 38          	mov    %esi,0x38(%esp)
416de5:	89 5c 24 48          	mov    %ebx,0x48(%esp)
416de9:	89 5c 24 4c          	mov    %ebx,0x4c(%esp)
416ded:	57                   	push   %edi
416dee:	85 c0                	test   %eax,%eax
416df0:	0f 85 ed ac 03 00    	jne    0x451ae3
416df6:	8b 45 30             	mov    0x30(%ebp),%eax
416df9:	8b 7d 34             	mov    0x34(%ebp),%edi
416dfc:	8b 55 18             	mov    0x18(%ebp),%edx
416dff:	89 44 24 70          	mov    %eax,0x70(%esp)
416e03:	6a fe                	push   $0xfffffffe
416e05:	58                   	pop    %eax
416e06:	89 44 24 14          	mov    %eax,0x14(%esp)
416e0a:	8d 4a 04             	lea    0x4(%edx),%ecx
416e0d:	89 44 24 38          	mov    %eax,0x38(%esp)
416e11:	8b 47 20             	mov    0x20(%edi),%eax
416e14:	2b 47 10             	sub    0x10(%edi),%eax
416e17:	d1 f8                	sar    $1,%eax
416e19:	89 44 24 60          	mov    %eax,0x60(%esp)
416e1d:	b8 85 00 00 00       	mov    $0x85,%eax
416e22:	89 74 24 74          	mov    %esi,0x74(%esp)
416e26:	89 5c 24 24          	mov    %ebx,0x24(%esp)
416e2a:	89 5c 24 34          	mov    %ebx,0x34(%esp)
416e2e:	89 4c 24 10          	mov    %ecx,0x10(%esp)
416e32:	66 39 06             	cmp    %ax,(%esi)
416e35:	0f 84 c8 01 00 00    	je     0x417003
416e3b:	8d 46 02             	lea    0x2(%esi),%eax
416e3e:	33 db                	xor    %ebx,%ebx
416e40:	89 44 24 64          	mov    %eax,0x64(%esp)
416e44:	66 89 18             	mov    %bx,(%eax)
416e47:	8d 04 55 04 00 00 00 	lea    0x4(,%edx,2),%eax
416e4e:	89 44 24 58          	mov    %eax,0x58(%esp)
416e52:	03 f0                	add    %eax,%esi
416e54:	8b 47 40             	mov    0x40(%edi),%eax
416e57:	6a 7c                	push   $0x7c
416e59:	89 44 24 44          	mov    %eax,0x44(%esp)
416e5d:	89 44 24 60          	mov    %eax,0x60(%esp)
416e61:	5a                   	pop    %edx
416e62:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
416e66:	89 74 24 1c          	mov    %esi,0x1c(%esp)
416e6a:	0f 85 96 02 00 00    	jne    0x417106
416e70:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
416e74:	0f 85 81 ac 03 00    	jne    0x451afb
416e7a:	8b 5d 38             	mov    0x38(%ebp),%ebx
416e7d:	8d 4c 24 10          	lea    0x10(%esp),%ecx
416e81:	8b c3                	mov    %ebx,%eax
416e83:	8d 54 24 1c          	lea    0x1c(%esp),%edx
416e87:	f7 d8                	neg    %eax
416e89:	1b c0                	sbb    %eax,%eax
416e8b:	23 c1                	and    %ecx,%eax
416e8d:	8d 4c 24 20          	lea    0x20(%esp),%ecx
416e91:	50                   	push   %eax
416e92:	57                   	push   %edi
416e93:	ff 75 1c             	push   0x1c(%ebp)
416e96:	8d 44 24 7c          	lea    0x7c(%esp),%eax
416e9a:	50                   	push   %eax
416e9b:	8d 44 24 3c          	lea    0x3c(%esp),%eax
416e9f:	50                   	push   %eax
416ea0:	8d 44 24 44          	lea    0x44(%esp),%eax
416ea4:	50                   	push   %eax
416ea5:	8d 44 24 5c          	lea    0x5c(%esp),%eax
416ea9:	50                   	push   %eax
416eaa:	8d 44 24 64          	lea    0x64(%esp),%eax
416eae:	50                   	push   %eax
416eaf:	ff 75 0c             	push   0xc(%ebp)
416eb2:	8d 44 24 4c          	lea    0x4c(%esp),%eax
416eb6:	50                   	push   %eax
416eb7:	e8 52 02 00 00       	call   0x41710e
416ebc:	83 c4 28             	add    $0x28,%esp
416ebf:	85 c0                	test   %eax,%eax
416ec1:	0f 84 b5 ac 03 00    	je     0x451b7c
416ec7:	8b 44 24 40          	mov    0x40(%esp),%eax
416ecb:	39 47 40             	cmp    %eax,0x40(%edi)
416ece:	0f 87 76 01 00 00    	ja     0x41704a
416ed4:	8b 54 24 20          	mov    0x20(%esp),%edx
416ed8:	8b 74 24 1c          	mov    0x1c(%esp),%esi
416edc:	85 db                	test   %ebx,%ebx
416ede:	75 3a                	jne    0x416f1a
416ee0:	8b 44 24 18          	mov    0x18(%esp),%eax
416ee4:	6a 77                	push   $0x77
416ee6:	59                   	pop    %ecx
416ee7:	66 39 08             	cmp    %cx,(%eax)
416eea:	0f 84 66 01 00 00    	je     0x417056
416ef0:	8b 4c 24 48          	mov    0x48(%esp),%ecx
416ef4:	89 4c 24 34          	mov    %ecx,0x34(%esp)
416ef8:	8b 4c 24 44          	mov    0x44(%esp),%ecx
416efc:	89 4c 24 38          	mov    %ecx,0x38(%esp)
416f00:	8b 4c 24 30          	mov    0x30(%esp),%ecx
416f04:	89 4c 24 24          	mov    %ecx,0x24(%esp)
416f08:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
416f0c:	89 4c 24 14          	mov    %ecx,0x14(%esp)
416f10:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
416f14:	0f 85 03 ac 03 00    	jne    0x451b1d
416f1a:	8b 5c 24 28          	mov    0x28(%esp),%ebx
416f1e:	6a 7c                	push   $0x7c
416f20:	5a                   	pop    %edx
416f21:	66 39 13             	cmp    %dx,(%ebx)
416f24:	0f 84 aa 00 00 00    	je     0x416fd4
416f2a:	83 7d 38 00          	cmpl   $0x0,0x38(%ebp)
416f2e:	75 22                	jne    0x416f52
416f30:	8b 7c 24 18          	mov    0x18(%esp),%edi
416f34:	8b d6                	mov    %esi,%edx
416f36:	2b d7                	sub    %edi,%edx
416f38:	d1 fa                	sar    $1,%edx
416f3a:	0f b7 4f 02          	movzwl 0x2(%edi),%ecx
416f3e:	8b c1                	mov    %ecx,%eax
416f40:	66 89 57 02          	mov    %dx,0x2(%edi)
416f44:	f7 d8                	neg    %eax
416f46:	8b d1                	mov    %ecx,%edx
416f48:	8d 3c 47             	lea    (%edi,%eax,2),%edi
416f4b:	85 c9                	test   %ecx,%ecx
416f4d:	7f eb                	jg     0x416f3a
416f4f:	8b 7d 34             	mov    0x34(%ebp),%edi
416f52:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
416f56:	6a 78                	push   $0x78
416f58:	58                   	pop    %eax
416f59:	66 89 06             	mov    %ax,(%esi)
416f5c:	8b c6                	mov    %esi,%eax
416f5e:	2b c1                	sub    %ecx,%eax
416f60:	d1 f8                	sar    $1,%eax
416f62:	66 89 46 02          	mov    %ax,0x2(%esi)
416f66:	83 c6 04             	add    $0x4,%esi
416f69:	83 7c 24 50 00       	cmpl   $0x0,0x50(%esp)
416f6e:	0f 8f b6 00 00 00    	jg     0x41702a
416f74:	8b 4c 24 10          	mov    0x10(%esp),%ecx
416f78:	8b 44 24 40          	mov    0x40(%esp),%eax
416f7c:	8b 54 24 34          	mov    0x34(%esp),%edx
416f80:	89 47 40             	mov    %eax,0x40(%edi)
416f83:	8b 44 24 54          	mov    0x54(%esp),%eax
416f87:	89 30                	mov    %esi,(%eax)
416f89:	8b 45 08             	mov    0x8(%ebp),%eax
416f8c:	89 18                	mov    %ebx,(%eax)
416f8e:	8b 45 20             	mov    0x20(%ebp),%eax
416f91:	8b 5c 24 14          	mov    0x14(%esp),%ebx
416f95:	89 10                	mov    %edx,(%eax)
416f97:	8b 45 24             	mov    0x24(%ebp),%eax
416f9a:	8b 54 24 38          	mov    0x38(%esp),%edx
416f9e:	89 10                	mov    %edx,(%eax)
416fa0:	8b 45 28             	mov    0x28(%ebp),%eax
416fa3:	8b 54 24 24          	mov    0x24(%esp),%edx
416fa7:	89 10                	mov    %edx,(%eax)
416fa9:	8b 45 2c             	mov    0x2c(%ebp),%eax
416fac:	89 18                	mov    %ebx,(%eax)
416fae:	8b 5d 38             	mov    0x38(%ebp),%ebx
416fb1:	85 db                	test   %ebx,%ebx
416fb3:	74 15                	je     0x416fca
416fb5:	8b 13                	mov    (%ebx),%edx
416fb7:	b8 eb ff ff 7f       	mov    $0x7fffffeb,%eax
416fbc:	2b c2                	sub    %edx,%eax
416fbe:	3b c1                	cmp    %ecx,%eax
416fc0:	0f 8c 33 ac 03 00    	jl     0x451bf9
416fc6:	03 ca                	add    %edx,%ecx
416fc8:	89 0b                	mov    %ecx,(%ebx)
416fca:	33 c0                	xor    %eax,%eax
416fcc:	40                   	inc    %eax
416fcd:	5f                   	pop    %edi
416fce:	5e                   	pop    %esi
416fcf:	5b                   	pop    %ebx
416fd0:	8b e5                	mov    %ebp,%esp
416fd2:	5d                   	pop    %ebp
416fd3:	c3                   	ret
416fd4:	83 7d 38 00          	cmpl   $0x0,0x38(%ebp)
416fd8:	8b 4c 24 10          	mov    0x10(%esp),%ecx
416fdc:	0f 84 bb 00 00 00    	je     0x41709d
416fe2:	8b 44 24 54          	mov    0x54(%esp),%eax
416fe6:	8b 30                	mov    (%eax),%esi
416fe8:	03 74 24 58          	add    0x58(%esp),%esi
416fec:	83 c1 02             	add    $0x2,%ecx
416fef:	89 4c 24 10          	mov    %ecx,0x10(%esp)
416ff3:	8b 44 24 5c          	mov    0x5c(%esp),%eax
416ff7:	83 c3 02             	add    $0x2,%ebx
416ffa:	89 5c 24 28          	mov    %ebx,0x28(%esp)
416ffe:	e9 5f fe ff ff       	jmp    0x416e62
417003:	0f b7 5e 04          	movzwl 0x4(%esi),%ebx
417007:	8b 47 24             	mov    0x24(%edi),%eax
41700a:	89 44 24 68          	mov    %eax,0x68(%esp)
41700e:	33 c0                	xor    %eax,%eax
417010:	66 89 44 24 6e       	mov    %ax,0x6e(%esp)
417015:	8d 44 24 68          	lea    0x68(%esp),%eax
417019:	89 5c 24 50          	mov    %ebx,0x50(%esp)
41701d:	66 89 5c 24 6c       	mov    %bx,0x6c(%esp)
417022:	89 47 24             	mov    %eax,0x24(%edi)
417025:	e9 11 fe ff ff       	jmp    0x416e3b
41702a:	8b 47 24             	mov    0x24(%edi),%eax
41702d:	33 d2                	xor    %edx,%edx
41702f:	66 39 50 06          	cmp    %dx,0x6(%eax)
417033:	0f 85 53 ab 03 00    	jne    0x451b8c
417039:	8b 4c 24 10          	mov    0x10(%esp),%ecx
41703d:	8b 47 24             	mov    0x24(%edi),%eax
417040:	8b 00                	mov    (%eax),%eax
417042:	89 47 24             	mov    %eax,0x24(%edi)
417045:	e9 2e ff ff ff       	jmp    0x416f78
41704a:	8b 47 40             	mov    0x40(%edi),%eax
41704d:	89 44 24 40          	mov    %eax,0x40(%esp)
417051:	e9 7e fe ff ff       	jmp    0x416ed4
417056:	8b 4c 24 38          	mov    0x38(%esp),%ecx
41705a:	8b 44 24 44          	mov    0x44(%esp),%eax
41705e:	8b 54 24 48          	mov    0x48(%esp),%edx
417062:	85 c9                	test   %ecx,%ecx
417064:	79 59                	jns    0x4170bf
417066:	85 c0                	test   %eax,%eax
417068:	78 63                	js     0x4170cd
41706a:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
41706e:	85 c9                	test   %ecx,%ecx
417070:	79 5f                	jns    0x4170d1
417072:	8b c8                	mov    %eax,%ecx
417074:	89 54 24 30          	mov    %edx,0x30(%esp)
417078:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
41707c:	8b 5c 24 14          	mov    0x14(%esp),%ebx
417080:	8b c1                	mov    %ecx,%eax
417082:	33 c3                	xor    %ebx,%eax
417084:	a9 fd ff ff ff       	test   $0xfffffffd,%eax
417089:	74 69                	je     0x4170f4
41708b:	83 4c 24 14 ff       	orl    $0xffffffff,0x14(%esp)
417090:	8b 54 24 20          	mov    0x20(%esp),%edx
417094:	8b 44 24 18          	mov    0x18(%esp),%eax
417098:	e9 73 fe ff ff       	jmp    0x416f10
41709d:	6a 77                	push   $0x77
41709f:	58                   	pop    %eax
4170a0:	66 89 06             	mov    %ax,(%esi)
4170a3:	8b c6                	mov    %esi,%eax
4170a5:	2b 44 24 18          	sub    0x18(%esp),%eax
4170a9:	d1 f8                	sar    $1,%eax
4170ab:	66 89 46 02          	mov    %ax,0x2(%esi)
4170af:	89 74 24 18          	mov    %esi,0x18(%esp)
4170b3:	89 74 24 74          	mov    %esi,0x74(%esp)
4170b7:	83 c6 04             	add    $0x4,%esi
4170ba:	e9 34 ff ff ff       	jmp    0x416ff3
4170bf:	39 54 24 34          	cmp    %edx,0x34(%esp)
4170c3:	75 12                	jne    0x4170d7
4170c5:	3b c8                	cmp    %eax,%ecx
4170c7:	75 0e                	jne    0x4170d7
4170c9:	85 c9                	test   %ecx,%ecx
4170cb:	78 99                	js     0x417066
4170cd:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
4170d1:	8b 54 24 30          	mov    0x30(%esp),%edx
4170d5:	eb a5                	jmp    0x41707c
4170d7:	8b 5c 24 14          	mov    0x14(%esp),%ebx
4170db:	85 db                	test   %ebx,%ebx
4170dd:	79 0c                	jns    0x4170eb
4170df:	8b 5c 24 34          	mov    0x34(%esp),%ebx
4170e3:	89 5c 24 24          	mov    %ebx,0x24(%esp)
4170e7:	89 4c 24 14          	mov    %ecx,0x14(%esp)
4170eb:	83 c9 ff             	or     $0xffffffff,%ecx
4170ee:	89 4c 24 38          	mov    %ecx,0x38(%esp)
4170f2:	eb d5                	jmp    0x4170c9
4170f4:	39 54 24 24          	cmp    %edx,0x24(%esp)
4170f8:	75 91                	jne    0x41708b