46cef2:	8d 45 f4             	lea    -0xc(%ebp),%eax
46cef5:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
46cefb:	8b 75 10             	mov    0x10(%ebp),%esi
46cefe:	8b fe                	mov    %esi,%edi
46cf00:	8b 45 08             	mov    0x8(%ebp),%eax
46cf03:	8b 55 0c             	mov    0xc(%ebp),%edx
46cf06:	2b fa                	sub    %edx,%edi
46cf08:	89 45 84             	mov    %eax,-0x7c(%ebp)
46cf0b:	8d 46 e0             	lea    -0x20(%esi),%eax
46cf0e:	c1 ff 06             	sar    $0x6,%edi
46cf11:	8b d8                	mov    %eax,%ebx
46cf13:	c1 e7 05             	shl    $0x5,%edi
46cf16:	2b da                	sub    %edx,%ebx
46cf18:	89 55 90             	mov    %edx,-0x70(%ebp)
46cf1b:	03 fa                	add    %edx,%edi
46cf1d:	c1 fb 05             	sar    $0x5,%ebx
46cf20:	89 75 9c             	mov    %esi,-0x64(%ebp)
46cf23:	89 7d a8             	mov    %edi,-0x58(%ebp)
46cf26:	83 fb 28             	cmp    $0x28,%ebx
46cf29:	7e 5a                	jle    0x46cf85
46cf2b:	8b 7d 14             	mov    0x14(%ebp),%edi
46cf2e:	43                   	inc    %ebx
46cf2f:	c1 fb 03             	sar    $0x3,%ebx
46cf32:	8b c3                	mov    %ebx,%eax
46cf34:	c1 e3 05             	shl    $0x5,%ebx
46cf37:	c1 e0 06             	shl    $0x6,%eax
46cf3a:	89 45 94             	mov    %eax,-0x6c(%ebp)
46cf3d:	03 c2                	add    %edx,%eax
46cf3f:	57                   	push   %edi
46cf40:	50                   	push   %eax
46cf41:	8d 0c 13             	lea    (%ebx,%edx,1),%ecx
46cf44:	51                   	push   %ecx
46cf45:	52                   	push   %edx
46cf46:	e8 75 fe ff ff       	call   0x46cdc0
46cf4b:	8b 4d a8             	mov    -0x58(%ebp),%ecx
46cf4e:	57                   	push   %edi
46cf4f:	8d 04 0b             	lea    (%ebx,%ecx,1),%eax
46cf52:	50                   	push   %eax
46cf53:	51                   	push   %ecx
46cf54:	2b cb                	sub    %ebx,%ecx
46cf56:	51                   	push   %ecx
46cf57:	e8 64 fe ff ff       	call   0x46cdc0
46cf5c:	8d 46 e0             	lea    -0x20(%esi),%eax
46cf5f:	8b f0                	mov    %eax,%esi
46cf61:	57                   	push   %edi
46cf62:	50                   	push   %eax
46cf63:	2b 45 94             	sub    -0x6c(%ebp),%eax
46cf66:	2b f3                	sub    %ebx,%esi
46cf68:	56                   	push   %esi
46cf69:	50                   	push   %eax
46cf6a:	e8 51 fe ff ff       	call   0x46cdc0
46cf6f:	8b 45 90             	mov    -0x70(%ebp),%eax
46cf72:	57                   	push   %edi
46cf73:	8b 7d a8             	mov    -0x58(%ebp),%edi
46cf76:	03 c3                	add    %ebx,%eax
46cf78:	56                   	push   %esi
46cf79:	57                   	push   %edi
46cf7a:	50                   	push   %eax
46cf7b:	e8 40 fe ff ff       	call   0x46cdc0
46cf80:	83 c4 40             	add    $0x40,%esp
46cf83:	eb 0e                	jmp    0x46cf93
46cf85:	ff 75 14             	push   0x14(%ebp)
46cf88:	50                   	push   %eax
46cf89:	57                   	push   %edi
46cf8a:	52                   	push   %edx
46cf8b:	e8 30 fe ff ff       	call   0x46cdc0
46cf90:	83 c4 10             	add    $0x10,%esp
46cf93:	8d 5f 20             	lea    0x20(%edi),%ebx
46cf96:	89 5d a4             	mov    %ebx,-0x5c(%ebp)
46cf99:	39 7d 90             	cmp    %edi,-0x70(%ebp)
46cf9c:	0f 83 4d 02 00 00    	jae    0x46d1ef
46cfa2:	8d 5f e0             	lea    -0x20(%edi),%ebx
46cfa5:	8b cb                	mov    %ebx,%ecx
46cfa7:	89 5d a8             	mov    %ebx,-0x58(%ebp)
46cfaa:	e8 41 81 00 00       	call   0x4750f0
46cfaf:	48                   	dec    %eax
46cfb0:	83 f8 08             	cmp    $0x8,%eax
46cfb3:	0f 87 f4 01 00 00    	ja     0x46d1ad
46cfb9:	ff 24 85 2c dd 46 00 	jmp    *0x46dd2c(,%eax,4)
46cfc0:	8b cf                	mov    %edi,%ecx
46cfc2:	e8 59 37 00 00       	call   0x470720
46cfc7:	8b cb                	mov    %ebx,%ecx
46cfc9:	8b f0                	mov    %eax,%esi
46cfcb:	e8 50 37 00 00       	call   0x470720
46cfd0:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
46cfd4:	8b d6                	mov    %esi,%edx
46cfd6:	72 02                	jb     0x46cfda
46cfd8:	8b 16                	mov    (%esi),%edx
46cfda:	83 78 14 10          	cmpl   $0x10,0x14(%eax)
46cfde:	8b c8                	mov    %eax,%ecx
46cfe0:	72 02                	jb     0x46cfe4
46cfe2:	8b 08                	mov    (%eax),%ecx
46cfe4:	ff 76 10             	push   0x10(%esi)
46cfe7:	52                   	push   %edx
46cfe8:	ff 70 10             	push   0x10(%eax)
46cfeb:	51                   	push   %ecx
46cfec:	e8 1f 15 00 00       	call   0x46e510
46cff1:	83 c4 10             	add    $0x10,%esp
46cff4:	c1 e8 1f             	shr    $0x1f,%eax
46cff7:	e9 93 00 00 00       	jmp    0x46d08f
46cffc:	8b cb                	mov    %ebx,%ecx
46cffe:	e8 3d 34 00 00       	call   0x470440
46d003:	8b cf                	mov    %edi,%ecx
46d005:	89 45 94             	mov    %eax,-0x6c(%ebp)
46d008:	8b f2                	mov    %edx,%esi
46d00a:	e8 31 34 00 00       	call   0x470440
46d00f:	3b f2                	cmp    %edx,%esi
46d011:	0f 8c d5 01 00 00    	jl     0x46d1ec
46d017:	7f 7e                	jg     0x46d097
46d019:	39 45 94             	cmp    %eax,-0x6c(%ebp)
46d01c:	0f 82 ca 01 00 00    	jb     0x46d1ec
46d022:	eb 73                	jmp    0x46d097
46d024:	8b cb                	mov    %ebx,%ecx
46d026:	e8 25 32 00 00       	call   0x470250
46d02b:	8b cf                	mov    %edi,%ecx
46d02d:	8b f0                	mov    %eax,%esi
46d02f:	e8 1c 32 00 00       	call   0x470250
46d034:	3b f0                	cmp    %eax,%esi
46d036:	0f 9c c0             	setl   %al
46d039:	eb 54                	jmp    0x46d08f
46d03b:	8b cb                	mov    %ebx,%ecx
46d03d:	e8 ae 3a 00 00       	call   0x470af0
46d042:	8b cf                	mov    %edi,%ecx
46d044:	89 45 94             	mov    %eax,-0x6c(%ebp)
46d047:	8b f2                	mov    %edx,%esi
46d049:	e8 a2 3a 00 00       	call   0x470af0
46d04e:	3b f2                	cmp    %edx,%esi
46d050:	0f 82 96 01 00 00    	jb     0x46d1ec
46d056:	77 3f                	ja     0x46d097
46d058:	39 45 94             	cmp    %eax,-0x6c(%ebp)
46d05b:	0f 82 8b 01 00 00    	jb     0x46d1ec
46d061:	eb 34                	jmp    0x46d097
46d063:	8b cb                	mov    %ebx,%ecx
46d065:	e8 96 38 00 00       	call   0x470900
46d06a:	8b cf                	mov    %edi,%ecx
46d06c:	8b f0                	mov    %eax,%esi
46d06e:	e8 8d 38 00 00       	call   0x470900
46d073:	3b f0                	cmp    %eax,%esi
46d075:	eb 15                	jmp    0x46d08c
46d077:	8b cb                	mov    %ebx,%ecx
46d079:	e8 e2 2f 00 00       	call   0x470060
46d07e:	8b cf                	mov    %edi,%ecx
46d080:	8a d8                	mov    %al,%bl
46d082:	e8 d9 2f 00 00       	call   0x470060
46d087:	3a d8                	cmp    %al,%bl
46d089:	8b 5d a8             	mov    -0x58(%ebp),%ebx
46d08c:	0f 92 c0             	setb   %al
46d08f:	84 c0                	test   %al,%al
46d091:	0f 85 55 01 00 00    	jne    0x46d1ec
46d097:	8b cf                	mov    %edi,%ecx
46d099:	e8 52 80 00 00       	call   0x4750f0
46d09e:	48                   	dec    %eax
46d09f:	83 f8 08             	cmp    $0x8,%eax
46d0a2:	0f 87 e8 00 00 00    	ja     0x46d190
46d0a8:	ff 24 85 50 dd 46 00 	jmp    *0x46dd50(,%eax,4)
46d0af:	8b cb                	mov    %ebx,%ecx
46d0b1:	e8 6a 36 00 00       	call   0x470720
46d0b6:	8b cf                	mov    %edi,%ecx
46d0b8:	8b f0                	mov    %eax,%esi
46d0ba:	e8 61 36 00 00       	call   0x470720
46d0bf:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
46d0c3:	8b d6                	mov    %esi,%edx
46d0c5:	72 02                	jb     0x46d0c9
46d0c7:	8b 16                	mov    (%esi),%edx
46d0c9:	83 78 14 10          	cmpl   $0x10,0x14(%eax)
46d0cd:	8b c8                	mov    %eax,%ecx
46d0cf:	72 02                	jb     0x46d0d3
46d0d1:	8b 08                	mov    (%eax),%ecx
46d0d3:	ff 76 10             	push   0x10(%esi)
46d0d6:	52                   	push   %edx
46d0d7:	ff 70 10             	push   0x10(%eax)
46d0da:	51                   	push   %ecx
46d0db:	e8 30 14 00 00       	call   0x46e510
46d0e0:	83 c4 10             	add    $0x10,%esp
46d0e3:	c1 e8 1f             	shr    $0x1f,%eax
46d0e6:	e9 94 00 00 00       	jmp    0x46d17f
46d0eb:	8b cf                	mov    %edi,%ecx
46d0ed:	e8 4e 33 00 00       	call   0x470440
46d0f2:	8b cb                	mov    %ebx,%ecx
46d0f4:	89 45 a8             	mov    %eax,-0x58(%ebp)
46d0f7:	8b f2                	mov    %edx,%esi
46d0f9:	e8 42 33 00 00       	call   0x470440
46d0fe:	3b f2                	cmp    %edx,%esi
46d100:	0f 8c e6 00 00 00    	jl     0x46d1ec
46d106:	7f 7b                	jg     0x46d183
46d108:	39 45 a8             	cmp    %eax,-0x58(%ebp)
46d10b:	0f 82 db 00 00 00    	jb     0x46d1ec
46d111:	eb 70                	jmp    0x46d183
46d113:	8b cf                	mov    %edi,%ecx
46d115:	e8 36 31 00 00       	call   0x470250
46d11a:	8b cb                	mov    %ebx,%ecx
46d11c:	8b f0                	mov    %eax,%esi
46d11e:	e8 2d 31 00 00       	call   0x470250
46d123:	3b f0                	cmp    %eax,%esi
46d125:	0f 9c c0             	setl   %al
46d128:	eb 55                	jmp    0x46d17f
46d12a:	8b cf                	mov    %edi,%ecx
46d12c:	e8 bf 39 00 00       	call   0x470af0
46d131:	8b cb                	mov    %ebx,%ecx
46d133:	89 45 a8             	mov    %eax,-0x58(%ebp)
46d136:	8b f2                	mov    %edx,%esi
46d138:	e8 b3 39 00 00       	call   0x470af0
46d13d:	3b f2                	cmp    %edx,%esi
46d13f:	0f 82 a7 00 00 00    	jb     0x46d1ec
46d145:	77 3c                	ja     0x46d183
46d147:	39 45 a8             	cmp    %eax,-0x58(%ebp)
46d14a:	0f 82 9c 00 00 00    	jb     0x46d1ec
46d150:	eb 31                	jmp    0x46d183
46d152:	8b cf                	mov    %edi,%ecx
46d154:	e8 a7 37 00 00       	call   0x470900
46d159:	8b cb                	mov    %ebx,%ecx
46d15b:	8b f0                	mov    %eax,%esi
46d15d:	e8 9e 37 00 00       	call   0x470900
46d162:	3b f0                	cmp    %eax,%esi
46d164:	eb 16                	jmp    0x46d17c
46d166:	8b cf                	mov    %edi,%ecx
46d168:	e8 f3 2e 00 00       	call   0x470060
46d16d:	8b 4d a8             	mov    -0x58(%ebp),%ecx
46d170:	8a d8                	mov    %al,%bl
46d172:	e8 e9 2e 00 00       	call   0x470060
46d177:	3a d8                	cmp    %al,%bl
46d179:	8b 5d a8             	mov    -0x58(%ebp),%ebx
46d17c:	0f 92 c0             	setb   %al
46d17f:	84 c0                	test   %al,%al
46d181:	75 69                	jne    0x46d1ec
46d183:	8b fb                	mov    %ebx,%edi
46d185:	39 7d 90             	cmp    %edi,-0x70(%ebp)
46d188:	0f 82 14 fe ff ff    	jb     0x46cfa2
46d18e:	eb 5c                	jmp    0x46d1ec
46d190:	68 98 04 00 00       	push   $0x498
46d195:	68 88 79 60 00       	push   $0x607988
46d19a:	6a 02                	push   $0x2
46d19c:	8d 4d cc             	lea    -0x34(%ebp),%ecx
46d19f:	e8 3c 81 00 00       	call   0x4752e0
46d1a4:	c7 45 fc 07 00 00 00 	movl   $0x7,-0x4(%ebp)
46d1ab:	eb 1b                	jmp    0x46d1c8
46d1ad:	68 98 04 00 00       	push   $0x498
46d1b2:	68 88 79 60 00       	push   $0x607988
46d1b7:	6a 02                	push   $0x2
46d1b9:	8d 4d cc             	lea    -0x34(%ebp),%ecx
46d1bc:	e8 1f 81 00 00       	call   0x4752e0
46d1c1:	c7 45 fc 03 00 00 00 	movl   $0x3,-0x4(%ebp)
46d1c8:	68 48 77 60 00       	push   $0x607748
46d1cd:	8b c8                	mov    %eax,%ecx
46d1cf:	e8 1c 87 00 00       	call   0x4758f0
46d1d4:	50                   	push   %eax
46d1d5:	8d 4d 9b             	lea    -0x65(%ebp),%ecx
46d1d8:	e8 a3 84 00 00       	call   0x475680
46d1dd:	8d 4d cc             	lea    -0x34(%ebp),%ecx
46d1e0:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
46d1e7:	e8 24 84 00 00       	call   0x475610
46d1ec:	8b 5d a4             	mov    -0x5c(%ebp),%ebx
46d1ef:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
46d1f2:	3b d9                	cmp    %ecx,%ebx
46d1f4:	0f 83 53 02 00 00    	jae    0x46d44d
46d1fa:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
46d200:	8b cb                	mov    %ebx,%ecx
46d202:	e8 e9 7e 00 00       	call   0x4750f0
46d207:	48                   	dec    %eax
46d208:	83 f8 08             	cmp    $0x8,%eax
46d20b:	0f 87 fa 01 00 00    	ja     0x46d40b
46d211:	ff 24 85 74 dd 46 00 	jmp    *0x46dd74(,%eax,4)
46d218:	8b cf                	mov    %edi,%ecx
46d21a:	e8 01 35 00 00       	call   0x470720
46d21f:	8b cb                	mov    %ebx,%ecx
46d221:	8b f0                	mov    %eax,%esi
46d223:	e8 f8 34 00 00       	call   0x470720
46d228:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
46d22c:	8b d6                	mov    %esi,%edx
46d22e:	72 02                	jb     0x46d232
46d230:	8b 16                	mov    (%esi),%edx
46d232:	83 78 14 10          	cmpl   $0x10,0x14(%eax)
46d236:	8b c8                	mov    %eax,%ecx
46d238:	72 02                	jb     0x46d23c
46d23a:	8b 08                	mov    (%eax),%ecx
46d23c:	ff 76 10             	push   0x10(%esi)
46d23f:	52                   	push   %edx
46d240:	ff 70 10             	push   0x10(%eax)
46d243:	51                   	push   %ecx
46d244:	e8 c7 12 00 00       	call   0x46e510
46d249:	83 c4 10             	add    $0x10,%esp
46d24c:	c1 e8 1f             	shr    $0x1f,%eax
46d24f:	e9 93 00 00 00       	jmp    0x46d2e7
46d254:	8b cb                	mov    %ebx,%ecx
46d256:	e8 e5 31 00 00       	call   0x470440
46d25b:	8b cf                	mov    %edi,%ecx
46d25d:	89 45 a8             	mov    %eax,-0x58(%ebp)
46d260:	8b f2                	mov    %edx,%esi
46d262:	e8 d9 31 00 00       	call   0x470440
46d267:	3b f2                	cmp    %edx,%esi
46d269:	0f 8c db 01 00 00    	jl     0x46d44a
46d26f:	7f 7e                	jg     0x46d2ef
46d271:	39 45 a8             	cmp    %eax,-0x58(%ebp)
46d274:	0f 82 d0 01 00 00    	jb     0x46d44a
46d27a:	eb 73                	jmp    0x46d2ef
46d27c:	8b cb                	mov    %ebx,%ecx
46d27e:	e8 cd 2f 00 00       	call   0x470250
46d283:	8b cf                	mov    %edi,%ecx
46d285:	8b f0                	mov    %eax,%esi
46d287:	e8 c4 2f 00 00       	call   0x470250
46d28c:	3b f0                	cmp    %eax,%esi
46d28e:	0f 9c c0             	setl   %al
46d291:	eb 54                	jmp    0x46d2e7
46d293:	8b cb                	mov    %ebx,%ecx
46d295:	e8 56 38 00 00       	call   0x470af0
46d29a:	8b cf                	mov    %edi,%ecx
46d29c:	89 45 a8             	mov    %eax,-0x58(%ebp)
46d29f:	8b f2                	mov    %edx,%esi
46d2a1:	e8 4a 38 00 00       	call   0x470af0
46d2a6:	3b f2                	cmp    %edx,%esi
46d2a8:	0f 82 9c 01 00 00    	jb     0x46d44a
46d2ae:	77 3f                	ja     0x46d2ef
46d2b0:	39 45 a8             	cmp    %eax,-0x58(%ebp)
46d2b3:	0f 82 91 01 00 00    	jb     0x46d44a
46d2b9:	eb 34                	jmp    0x46d2ef
46d2bb:	8b cb                	mov    %ebx,%ecx
46d2bd:	e8 3e 36 00 00       	call   0x470900
46d2c2:	8b cf                	mov    %edi,%ecx
46d2c4:	8b f0                	mov    %eax,%esi
46d2c6:	e8 35 36 00 00       	call   0x470900
46d2cb:	3b f0                	cmp    %eax,%esi
46d2cd:	eb 15                	jmp    0x46d2e4
46d2cf:	8b cb                	mov    %ebx,%ecx
46d2d1:	e8 8a 2d 00 00       	call   0x470060
46d2d6:	8b cf                	mov    %edi,%ecx
46d2d8:	8a d8                	mov    %al,%bl
46d2da:	e8 81 2d 00 00       	call   0x470060
46d2df:	3a d8                	cmp    %al,%bl
46d2e1:	8b 5d a4             	mov    -0x5c(%ebp),%ebx
46d2e4:	0f 92 c0             	setb   %al
46d2e7:	84 c0                	test   %al,%al
46d2e9:	0f 85 5b 01 00 00    	jne    0x46d44a
46d2ef:	8b cf                	mov    %edi,%ecx
46d2f1:	e8 fa 7d 00 00       	call   0x4750f0
46d2f6:	48                   	dec    %eax
46d2f7:	83 f8 08             	cmp    $0x8,%eax
46d2fa:	0f 87 ee 00 00 00    	ja     0x46d3ee
46d300:	ff 24 85 98 dd 46 00 	jmp    *0x46dd98(,%eax,4)
46d307:	8b cb                	mov    %ebx,%ecx
46d309:	e8 12 34 00 00       	call   0x470720
46d30e:	8b cf                	mov    %edi,%ecx
46d310:	8b f0                	mov    %eax,%esi
46d312:	e8 09 34 00 00       	call   0x470720
46d317:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
46d31b:	8b d6                	mov    %esi,%edx
46d31d:	72 02                	jb     0x46d321
46d31f:	8b 16                	mov    (%esi),%edx
46d321:	83 78 14 10          	cmpl   $0x10,0x14(%eax)
46d325:	8b c8                	mov    %eax,%ecx
46d327:	72 02                	jb     0x46d32b