475df6:	0f 83 34 01 00 00    	jae    0x475f30
475dfc:	8b 55 f8             	mov    -0x8(%ebp),%edx
475dff:	66 3b f2             	cmp    %dx,%si
475e02:	0f 82 3e 01 00 00    	jb     0x475f46
475e08:	66 3b 75 f4          	cmp    -0xc(%ebp),%si
475e0c:	72 db                	jb     0x475de9
475e0e:	8b 55 f0             	mov    -0x10(%ebp),%edx
475e11:	66 3b f2             	cmp    %dx,%si
475e14:	0f 82 2c 01 00 00    	jb     0x475f46
475e1a:	66 3b 75 ec          	cmp    -0x14(%ebp),%si
475e1e:	72 c9                	jb     0x475de9
475e20:	8b 55 e8             	mov    -0x18(%ebp),%edx
475e23:	66 3b f2             	cmp    %dx,%si
475e26:	0f 82 1a 01 00 00    	jb     0x475f46
475e2c:	66 3b 75 e4          	cmp    -0x1c(%ebp),%si
475e30:	72 b7                	jb     0x475de9
475e32:	8b 55 e0             	mov    -0x20(%ebp),%edx
475e35:	66 3b f2             	cmp    %dx,%si
475e38:	0f 82 08 01 00 00    	jb     0x475f46
475e3e:	66 3b 75 dc          	cmp    -0x24(%ebp),%si
475e42:	72 a5                	jb     0x475de9
475e44:	8b 55 d8             	mov    -0x28(%ebp),%edx
475e47:	66 3b f2             	cmp    %dx,%si
475e4a:	0f 82 f6 00 00 00    	jb     0x475f46
475e50:	66 3b 75 d4          	cmp    -0x2c(%ebp),%si
475e54:	72 93                	jb     0x475de9
475e56:	8b 55 d0             	mov    -0x30(%ebp),%edx
475e59:	66 3b f2             	cmp    %dx,%si
475e5c:	0f 82 e4 00 00 00    	jb     0x475f46
475e62:	66 3b 75 cc          	cmp    -0x34(%ebp),%si
475e66:	72 81                	jb     0x475de9
475e68:	8b 55 c8             	mov    -0x38(%ebp),%edx
475e6b:	66 3b f2             	cmp    %dx,%si
475e6e:	0f 82 d2 00 00 00    	jb     0x475f46
475e74:	66 3b 75 c4          	cmp    -0x3c(%ebp),%si
475e78:	0f 82 6b ff ff ff    	jb     0x475de9
475e7e:	8b 55 c0             	mov    -0x40(%ebp),%edx
475e81:	66 3b f2             	cmp    %dx,%si
475e84:	0f 82 bc 00 00 00    	jb     0x475f46
475e8a:	66 3b 75 bc          	cmp    -0x44(%ebp),%si
475e8e:	0f 82 55 ff ff ff    	jb     0x475de9
475e94:	8b 55 b8             	mov    -0x48(%ebp),%edx
475e97:	66 3b f2             	cmp    %dx,%si
475e9a:	0f 82 a6 00 00 00    	jb     0x475f46
475ea0:	66 3b 75 b4          	cmp    -0x4c(%ebp),%si
475ea4:	0f 82 3f ff ff ff    	jb     0x475de9
475eaa:	8b 55 b0             	mov    -0x50(%ebp),%edx
475ead:	66 3b f2             	cmp    %dx,%si
475eb0:	0f 82 90 00 00 00    	jb     0x475f46
475eb6:	66 3b 75 ac          	cmp    -0x54(%ebp),%si
475eba:	0f 82 29 ff ff ff    	jb     0x475de9
475ec0:	8b 55 a8             	mov    -0x58(%ebp),%edx
475ec3:	66 3b f2             	cmp    %dx,%si
475ec6:	72 7e                	jb     0x475f46
475ec8:	66 3b 75 a4          	cmp    -0x5c(%ebp),%si
475ecc:	0f 82 17 ff ff ff    	jb     0x475de9
475ed2:	8b 55 a0             	mov    -0x60(%ebp),%edx
475ed5:	66 3b f2             	cmp    %dx,%si
475ed8:	72 6c                	jb     0x475f46
475eda:	66 3b 75 9c          	cmp    -0x64(%ebp),%si
475ede:	0f 82 05 ff ff ff    	jb     0x475de9
475ee4:	8b 55 98             	mov    -0x68(%ebp),%edx
475ee7:	66 3b f2             	cmp    %dx,%si
475eea:	72 5a                	jb     0x475f46
475eec:	66 3b 75 94          	cmp    -0x6c(%ebp),%si
475ef0:	0f 82 f3 fe ff ff    	jb     0x475de9
475ef6:	8b 55 90             	mov    -0x70(%ebp),%edx
475ef9:	66 3b f2             	cmp    %dx,%si
475efc:	72 48                	jb     0x475f46
475efe:	66 3b 75 8c          	cmp    -0x74(%ebp),%si
475f02:	0f 82 e1 fe ff ff    	jb     0x475de9
475f08:	8b 55 88             	mov    -0x78(%ebp),%edx
475f0b:	66 3b f2             	cmp    %dx,%si
475f0e:	72 36                	jb     0x475f46
475f10:	66 3b 75 84          	cmp    -0x7c(%ebp),%si
475f14:	0f 82 cf fe ff ff    	jb     0x475de9
475f1a:	8b 55 80             	mov    -0x80(%ebp),%edx
475f1d:	66 3b f2             	cmp    %dx,%si
475f20:	72 24                	jb     0x475f46
475f22:	66 3b b5 7c ff ff ff 	cmp    -0x84(%ebp),%si
475f29:	73 1b                	jae    0x475f46
475f2b:	e9 b9 fe ff ff       	jmp    0x475de9
475f30:	66 3b b5 78 ff ff ff 	cmp    -0x88(%ebp),%si
475f37:	73 0d                	jae    0x475f46
475f39:	0f b7 c6             	movzwl %si,%eax
475f3c:	2d 10 ff 00 00       	sub    $0xff10,%eax
475f41:	83 f8 ff             	cmp    $0xffffffff,%eax
475f44:	75 28                	jne    0x475f6e
475f46:	0f b7 c6             	movzwl %si,%eax
475f49:	83 f8 41             	cmp    $0x41,%eax
475f4c:	72 0a                	jb     0x475f58
475f4e:	83 f8 5a             	cmp    $0x5a,%eax
475f51:	77 05                	ja     0x475f58
475f53:	8d 48 9f             	lea    -0x61(%eax),%ecx
475f56:	eb 08                	jmp    0x475f60
475f58:	8d 48 9f             	lea    -0x61(%eax),%ecx
475f5b:	83 f9 19             	cmp    $0x19,%ecx
475f5e:	77 4f                	ja     0x475faf
475f60:	83 f9 19             	cmp    $0x19,%ecx
475f63:	77 03                	ja     0x475f68
475f65:	83 c0 e0             	add    $0xffffffe0,%eax
475f68:	8b 4d 0c             	mov    0xc(%ebp),%ecx
475f6b:	83 c0 c9             	add    $0xffffffc9,%eax
475f6e:	85 c0                	test   %eax,%eax
475f70:	75 3d                	jne    0x475faf
475f72:	0f b7 01             	movzwl (%ecx),%eax
475f75:	83 c1 02             	add    $0x2,%ecx
475f78:	89 4d 0c             	mov    %ecx,0xc(%ebp)
475f7b:	83 f8 78             	cmp    $0x78,%eax
475f7e:	74 1a                	je     0x475f9a
475f80:	83 f8 58             	cmp    $0x58,%eax
475f83:	74 15                	je     0x475f9a
475f85:	85 ff                	test   %edi,%edi
475f87:	75 06                	jne    0x475f8f
475f89:	6a 08                	push   $0x8
475f8b:	5f                   	pop    %edi
475f8c:	89 7d 14             	mov    %edi,0x14(%ebp)
475f8f:	50                   	push   %eax
475f90:	8d 4d 0c             	lea    0xc(%ebp),%ecx
475f93:	e8 42 31 00 00       	call   0x4790da
475f98:	eb 1f                	jmp    0x475fb9
475f9a:	85 ff                	test   %edi,%edi
475f9c:	75 06                	jne    0x475fa4
475f9e:	6a 10                	push   $0x10
475fa0:	5f                   	pop    %edi
475fa1:	89 7d 14             	mov    %edi,0x14(%ebp)
475fa4:	0f b7 31             	movzwl (%ecx),%esi
475fa7:	83 c1 02             	add    $0x2,%ecx
475faa:	89 4d 0c             	mov    %ecx,0xc(%ebp)
475fad:	eb 0a                	jmp    0x475fb9
475faf:	85 ff                	test   %edi,%edi
475fb1:	75 06                	jne    0x475fb9
475fb3:	6a 0a                	push   $0xa
475fb5:	5f                   	pop    %edi
475fb6:	89 7d 14             	mov    %edi,0x14(%ebp)
475fb9:	83 c8 ff             	or     $0xffffffff,%eax
475fbc:	33 d2                	xor    %edx,%edx
475fbe:	f7 f7                	div    %edi
475fc0:	8b f8                	mov    %eax,%edi
475fc2:	6a 30                	push   $0x30
475fc4:	58                   	pop    %eax
475fc5:	66 3b f0             	cmp    %ax,%si
475fc8:	0f 82 4c 01 00 00    	jb     0x47611a
475fce:	6a 3a                	push   $0x3a
475fd0:	59                   	pop    %ecx
475fd1:	66 3b f1             	cmp    %cx,%si
475fd4:	0f 82 36 01 00 00    	jb     0x476110
475fda:	b8 10 ff 00 00       	mov    $0xff10,%eax
475fdf:	66 3b f0             	cmp    %ax,%si
475fe2:	0f 83 1f 01 00 00    	jae    0x476107
475fe8:	8b 45 f8             	mov    -0x8(%ebp),%eax
475feb:	66 3b f0             	cmp    %ax,%si
475fee:	0f 82 26 01 00 00    	jb     0x47611a
475ff4:	66 3b 75 f4          	cmp    -0xc(%ebp),%si
475ff8:	0f 82 12 01 00 00    	jb     0x476110
475ffe:	8b 45 f0             	mov    -0x10(%ebp),%eax
476001:	66 3b f0             	cmp    %ax,%si
476004:	0f 82 10 01 00 00    	jb     0x47611a
47600a:	66 3b 75 ec          	cmp    -0x14(%ebp),%si
47600e:	0f 82 fc 00 00 00    	jb     0x476110
476014:	8b 45 e8             	mov    -0x18(%ebp),%eax
476017:	66 3b f0             	cmp    %ax,%si
47601a:	0f 82 fa 00 00 00    	jb     0x47611a
476020:	66 3b 75 e4          	cmp    -0x1c(%ebp),%si
476024:	0f 82 e6 00 00 00    	jb     0x476110
47602a:	8b 45 e0             	mov    -0x20(%ebp),%eax
47602d:	66 3b f0             	cmp    %ax,%si
476030:	0f 82 e4 00 00 00    	jb     0x47611a
476036:	66 3b 75 dc          	cmp    -0x24(%ebp),%si
47603a:	0f 82 d0 00 00 00    	jb     0x476110
476040:	8b 45 d8             	mov    -0x28(%ebp),%eax
476043:	66 3b f0             	cmp    %ax,%si
476046:	0f 82 ce 00 00 00    	jb     0x47611a
47604c:	66 3b 75 d4          	cmp    -0x2c(%ebp),%si
476050:	0f 82 ba 00 00 00    	jb     0x476110
476056:	8b 45 d0             	mov    -0x30(%ebp),%eax
476059:	66 3b f0             	cmp    %ax,%si
47605c:	0f 82 b8 00 00 00    	jb     0x47611a
476062:	66 3b 75 cc          	cmp    -0x34(%ebp),%si
476066:	0f 82 a4 00 00 00    	jb     0x476110
47606c:	8b 45 c8             	mov    -0x38(%ebp),%eax
47606f:	66 3b f0             	cmp    %ax,%si
476072:	0f 82 a2 00 00 00    	jb     0x47611a
476078:	66 3b 75 c4          	cmp    -0x3c(%ebp),%si
47607c:	0f 82 8e 00 00 00    	jb     0x476110
476082:	8b 45 c0             	mov    -0x40(%ebp),%eax
476085:	66 3b f0             	cmp    %ax,%si
476088:	0f 82 8c 00 00 00    	jb     0x47611a
47608e:	66 3b 75 bc          	cmp    -0x44(%ebp),%si
476092:	72 7c                	jb     0x476110
476094:	8b 45 b8             	mov    -0x48(%ebp),%eax
476097:	66 3b f0             	cmp    %ax,%si
47609a:	72 7e                	jb     0x47611a
47609c:	66 3b 75 b4          	cmp    -0x4c(%ebp),%si
4760a0:	72 6e                	jb     0x476110
4760a2:	8b 45 b0             	mov    -0x50(%ebp),%eax
4760a5:	66 3b f0             	cmp    %ax,%si
4760a8:	72 70                	jb     0x47611a
4760aa:	66 3b 75 ac          	cmp    -0x54(%ebp),%si
4760ae:	72 60                	jb     0x476110
4760b0:	8b 45 a8             	mov    -0x58(%ebp),%eax
4760b3:	66 3b f0             	cmp    %ax,%si
4760b6:	72 62                	jb     0x47611a
4760b8:	66 3b 75 a4          	cmp    -0x5c(%ebp),%si
4760bc:	72 52                	jb     0x476110
4760be:	8b 45 a0             	mov    -0x60(%ebp),%eax
4760c1:	66 3b f0             	cmp    %ax,%si
4760c4:	72 54                	jb     0x47611a
4760c6:	66 3b 75 9c          	cmp    -0x64(%ebp),%si
4760ca:	72 44                	jb     0x476110
4760cc:	8b 45 98             	mov    -0x68(%ebp),%eax
4760cf:	66 3b f0             	cmp    %ax,%si
4760d2:	72 46                	jb     0x47611a
4760d4:	66 3b 75 94          	cmp    -0x6c(%ebp),%si
4760d8:	72 36                	jb     0x476110
4760da:	8b 45 90             	mov    -0x70(%ebp),%eax
4760dd:	66 3b f0             	cmp    %ax,%si
4760e0:	72 38                	jb     0x47611a
4760e2:	66 3b 75 8c          	cmp    -0x74(%ebp),%si
4760e6:	72 28                	jb     0x476110
4760e8:	8b 45 88             	mov    -0x78(%ebp),%eax
4760eb:	66 3b f0             	cmp    %ax,%si
4760ee:	72 2a                	jb     0x47611a
4760f0:	66 3b 75 84          	cmp    -0x7c(%ebp),%si
4760f4:	72 1a                	jb     0x476110
4760f6:	8b 45 80             	mov    -0x80(%ebp),%eax
4760f9:	66 3b f0             	cmp    %ax,%si
4760fc:	72 1c                	jb     0x47611a
4760fe:	66 3b b5 7c ff ff ff 	cmp    -0x84(%ebp),%si
476105:	eb 07                	jmp    0x47610e
476107:	66 3b b5 78 ff ff ff 	cmp    -0x88(%ebp),%si
47610e:	73 0a                	jae    0x47611a
476110:	0f b7 ce             	movzwl %si,%ecx
476113:	2b c8                	sub    %eax,%ecx
476115:	83 f9 ff             	cmp    $0xffffffff,%ecx
476118:	75 2e                	jne    0x476148
47611a:	0f b7 ce             	movzwl %si,%ecx
47611d:	83 f9 41             	cmp    $0x41,%ecx
476120:	72 05                	jb     0x476127
476122:	83 f9 5a             	cmp    $0x5a,%ecx
476125:	76 0b                	jbe    0x476132
476127:	83 f9 61             	cmp    $0x61,%ecx
47612a:	72 19                	jb     0x476145
47612c:	66 83 fe 7a          	cmp    $0x7a,%si
476130:	77 13                	ja     0x476145
476132:	6a 19                	push   $0x19
476134:	8d 46 9f             	lea    -0x61(%esi),%eax
476137:	5a                   	pop    %edx
476138:	66 3b c2             	cmp    %dx,%ax
47613b:	77 03                	ja     0x476140
47613d:	83 c1 e0             	add    $0xffffffe0,%ecx
476140:	83 c1 c9             	add    $0xffffffc9,%ecx
476143:	eb 03                	jmp    0x476148
476145:	83 c9 ff             	or     $0xffffffff,%ecx
476148:	8b 55 14             	mov    0x14(%ebp),%edx
47614b:	3b ca                	cmp    %edx,%ecx
47614d:	73 34                	jae    0x476183
47614f:	8b 45 fc             	mov    -0x4(%ebp),%eax
476152:	0f af c2             	imul   %edx,%eax
476155:	8d 14 08             	lea    (%eax,%ecx,1),%edx
476158:	3b d0                	cmp    %eax,%edx
47615a:	1b c9                	sbb    %ecx,%ecx
47615c:	f7 d9                	neg    %ecx
47615e:	3b 7d fc             	cmp    -0x4(%ebp),%edi
476161:	89 55 fc             	mov    %edx,-0x4(%ebp)
476164:	1b c0                	sbb    %eax,%eax
476166:	f7 d8                	neg    %eax
476168:	0b c8                	or     %eax,%ecx
47616a:	c1 e1 02             	shl    $0x2,%ecx
47616d:	83 c9 08             	or     $0x8,%ecx
476170:	0b d9                	or     %ecx,%ebx
476172:	8b 4d 0c             	mov    0xc(%ebp),%ecx
476175:	0f b7 31             	movzwl (%ecx),%esi
476178:	83 c1 02             	add    $0x2,%ecx
47617b:	89 4d 0c             	mov    %ecx,0xc(%ebp)
47617e:	e9 3f fe ff ff       	jmp    0x475fc2
476183:	56                   	push   %esi
476184:	8d 4d 0c             	lea    0xc(%ebp),%ecx
476187:	e8 4e 2f 00 00       	call   0x4790da
47618c:	f6 c3 08             	test   $0x8,%bl
47618f:	75 13                	jne    0x4761a4
476191:	8b 45 10             	mov    0x10(%ebp),%eax
476194:	85 c0                	test   %eax,%eax
476196:	74 08                	je     0x4761a0
476198:	8b 8d 70 ff ff ff    	mov    -0x90(%ebp),%ecx
47619e:	89 08                	mov    %ecx,(%eax)
4761a0:	33 c0                	xor    %eax,%eax
4761a2:	eb 65                	jmp    0x476209
4761a4:	8b 75 fc             	mov    -0x4(%ebp),%esi
4761a7:	56                   	push   %esi
4761a8:	53                   	push   %ebx
4761a9:	e8 b0 f7 ff ff       	call   0x47595e
4761ae:	59                   	pop    %ecx
4761af:	59                   	pop    %ecx
4761b0:	84 c0                	test   %al,%al
4761b2:	74 40                	je     0x4761f4
4761b4:	8b 45 08             	mov    0x8(%ebp),%eax
4761b7:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
4761bb:	c7 40 18 22 00 00 00 	movl   $0x22,0x18(%eax)
4761c2:	f6 c3 01             	test   $0x1,%bl
4761c5:	75 05                	jne    0x4761cc
4761c7:	83 ce ff             	or     $0xffffffff,%esi
4761ca:	eb 2f                	jmp    0x4761fb
4761cc:	8b 4d 10             	mov    0x10(%ebp),%ecx
4761cf:	f6 c3 02             	test   $0x2,%bl
4761d2:	74 10                	je     0x4761e4
4761d4:	85 c9                	test   %ecx,%ecx
4761d6:	74 05                	je     0x4761dd
4761d8:	8b 45 0c             	mov    0xc(%ebp),%eax
4761db:	89 01                	mov    %eax,(%ecx)
4761dd:	b8 00 00 00 80       	mov    $0x80000000,%eax
4761e2:	eb 25                	jmp    0x476209
4761e4:	85 c9                	test   %ecx,%ecx
4761e6:	74 05                	je     0x4761ed
4761e8:	8b 45 0c             	mov    0xc(%ebp),%eax
4761eb:	89 01                	mov    %eax,(%ecx)
4761ed:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
4761f2:	eb 15                	jmp    0x476209
4761f4:	f6 c3 02             	test   $0x2,%bl
4761f7:	74 02                	je     0x4761fb
4761f9:	f7 de                	neg    %esi
4761fb:	8b 55 10             	mov    0x10(%ebp),%edx
4761fe:	85 d2                	test   %edx,%edx
476200:	74 05                	je     0x476207
476202:	8b 4d 0c             	mov    0xc(%ebp),%ecx
476205:	89 0a                	mov    %ecx,(%edx)
476207:	8b c6                	mov    %esi,%eax
476209:	5f                   	pop    %edi
47620a:	5e                   	pop    %esi
47620b:	5b                   	pop    %ebx
47620c:	c9                   	leave
47620d:	c3                   	ret
47620e:	8b ff                	mov    %edi,%edi
476210:	56                   	push   %esi
476211:	8b f1                	mov    %ecx,%esi
476213:	57                   	push   %edi
476214:	8b be 04 04 00 00    	mov    0x404(%esi),%edi
47621a:	e8 0b f6 ff ff       	call   0x47582a
47621f:	85 ff                	test   %edi,%edi
476221:	75 04                	jne    0x476227
476223:	03 c6                	add    %esi,%eax
476225:	eb 02                	jmp    0x476229
476227:	03 c7                	add    %edi,%eax
476229:	5f                   	pop    %edi
47622a:	5e                   	pop    %esi
47622b:	c3                   	ret
47622c:	8b ff                	mov    %edi,%edi
47622e:	55                   	push   %ebp
47622f:	8b ec                	mov    %esp,%ebp
476231:	83 ec 0c             	sub    $0xc,%esp