46fbe3:	56                   	push   %esi
46fbe4:	e8 f9 f5 ff ff       	call   0x46f1e2
46fbe9:	83 c4 18             	add    $0x18,%esp
46fbec:	85 c0                	test   %eax,%eax
46fbee:	0f 84 c2 00 00 00    	je     0x46fcb6
46fbf4:	33 c9                	xor    %ecx,%ecx
46fbf6:	8d 57 20             	lea    0x20(%edi),%edx
46fbf9:	8b f1                	mov    %ecx,%esi
46fbfb:	89 95 44 fe ff ff    	mov    %edx,-0x1bc(%ebp)
46fc01:	85 f6                	test   %esi,%esi
46fc03:	0f 84 81 00 00 00    	je     0x46fc8a
46fc09:	8b 0a                	mov    (%edx),%ecx
46fc0b:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
46fc11:	66 8b 38             	mov    (%eax),%di
46fc14:	66 3b 39             	cmp    (%ecx),%di
46fc17:	8b bd 38 fe ff ff    	mov    -0x1c8(%ebp),%edi
46fc1d:	75 33                	jne    0x46fc52
46fc1f:	66 83 38 00          	cmpw   $0x0,(%eax)
46fc23:	74 27                	je     0x46fc4c
46fc25:	66 8b 50 02          	mov    0x2(%eax),%dx
46fc29:	66 3b 51 02          	cmp    0x2(%ecx),%dx
46fc2d:	66 89 95 42 fe ff ff 	mov    %dx,-0x1be(%ebp)
46fc34:	8b 95 44 fe ff ff    	mov    -0x1bc(%ebp),%edx
46fc3a:	75 16                	jne    0x46fc52
46fc3c:	83 c0 04             	add    $0x4,%eax
46fc3f:	83 c1 04             	add    $0x4,%ecx
46fc42:	66 83 bd 42 fe ff ff 	cmpw   $0x0,-0x1be(%ebp)
46fc49:	00
46fc4a:	75 c5                	jne    0x46fc11
46fc4c:	33 c9                	xor    %ecx,%ecx
46fc4e:	8b c1                	mov    %ecx,%eax
46fc50:	eb 07                	jmp    0x46fc59
46fc52:	1b c0                	sbb    %eax,%eax
46fc54:	83 c8 01             	or     $0x1,%eax
46fc57:	33 c9                	xor    %ecx,%ecx
46fc59:	85 c0                	test   %eax,%eax
46fc5b:	74 2c                	je     0x46fc89
46fc5d:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
46fc63:	50                   	push   %eax
46fc64:	56                   	push   %esi
46fc65:	57                   	push   %edi
46fc66:	e8 6e 00 00 00       	call   0x46fcd9
46fc6b:	8b 95 44 fe ff ff    	mov    -0x1bc(%ebp),%edx
46fc71:	83 c4 0c             	add    $0xc,%esp
46fc74:	85 c0                	test   %eax,%eax
46fc76:	74 05                	je     0x46fc7d
46fc78:	43                   	inc    %ebx
46fc79:	33 c9                	xor    %ecx,%ecx
46fc7b:	eb 0d                	jmp    0x46fc8a
46fc7d:	33 c9                	xor    %ecx,%ecx
46fc7f:	8b c1                	mov    %ecx,%eax
46fc81:	89 85 3c fe ff ff    	mov    %eax,-0x1c4(%ebp)
46fc87:	eb 07                	jmp    0x46fc90
46fc89:	43                   	inc    %ebx
46fc8a:	8b 85 3c fe ff ff    	mov    -0x1c4(%ebp),%eax
46fc90:	46                   	inc    %esi
46fc91:	83 c2 10             	add    $0x10,%edx
46fc94:	89 95 44 fe ff ff    	mov    %edx,-0x1bc(%ebp)
46fc9a:	83 fe 05             	cmp    $0x5,%esi
46fc9d:	0f 8e 5e ff ff ff    	jle    0x46fc01
46fca3:	85 c0                	test   %eax,%eax
46fca5:	75 08                	jne    0x46fcaf
46fca7:	85 db                	test   %ebx,%ebx
46fca9:	75 04                	jne    0x46fcaf
46fcab:	8b c1                	mov    %ecx,%eax
46fcad:	eb 07                	jmp    0x46fcb6
46fcaf:	57                   	push   %edi
46fcb0:	e8 a6 fb ff ff       	call   0x46f85b
46fcb5:	59                   	pop    %ecx
46fcb6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46fcb9:	5f                   	pop    %edi
46fcba:	5e                   	pop    %esi
46fcbb:	33 cd                	xor    %ebp,%ecx
46fcbd:	5b                   	pop    %ebx
46fcbe:	e8 3f fd fc ff       	call   0x43fa02
46fcc3:	8b e5                	mov    %ebp,%esp
46fcc5:	5d                   	pop    %ebp
46fcc6:	c3                   	ret
46fcc7:	e8 10 0e fd ff       	call   0x440adc
46fccc:	33 c0                	xor    %eax,%eax
46fcce:	50                   	push   %eax
46fccf:	50                   	push   %eax
46fcd0:	50                   	push   %eax
46fcd1:	50                   	push   %eax
46fcd2:	50                   	push   %eax
46fcd3:	e8 2b d0 fd ff       	call   0x44cd03
46fcd8:	cc                   	int3
46fcd9:	8b ff                	mov    %edi,%edi
46fcdb:	55                   	push   %ebp
46fcdc:	8b ec                	mov    %esp,%ebp
46fcde:	81 ec e4 02 00 00    	sub    $0x2e4,%esp
46fce4:	a1 94 80 4b 00       	mov    0x4b8094,%eax
46fce9:	33 c5                	xor    %ebp,%eax
46fceb:	89 45 fc             	mov    %eax,-0x4(%ebp)
46fcee:	53                   	push   %ebx
46fcef:	8b 5d 0c             	mov    0xc(%ebp),%ebx
46fcf2:	56                   	push   %esi
46fcf3:	8b 75 10             	mov    0x10(%ebp),%esi
46fcf6:	57                   	push   %edi
46fcf7:	8b 7d 08             	mov    0x8(%ebp),%edi
46fcfa:	89 9d 24 fd ff ff    	mov    %ebx,-0x2dc(%ebp)
46fd00:	e8 fb 22 00 00       	call   0x472000
46fd05:	05 78 02 00 00       	add    $0x278,%eax
46fd0a:	89 85 30 fd ff ff    	mov    %eax,-0x2d0(%ebp)
46fd10:	8d 85 3c fd ff ff    	lea    -0x2c4(%ebp),%eax
46fd16:	50                   	push   %eax
46fd17:	6a 55                	push   $0x55
46fd19:	8d 85 48 fd ff ff    	lea    -0x2b8(%ebp),%eax
46fd1f:	50                   	push   %eax
46fd20:	68 83 00 00 00       	push   $0x83
46fd25:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
46fd2b:	50                   	push   %eax
46fd2c:	56                   	push   %esi
46fd2d:	e8 b0 f4 ff ff       	call   0x46f1e2
46fd32:	83 c4 18             	add    $0x18,%esp
46fd35:	85 c0                	test   %eax,%eax
46fd37:	75 13                	jne    0x46fd4c
46fd39:	33 c0                	xor    %eax,%eax
46fd3b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46fd3e:	5f                   	pop    %edi
46fd3f:	5e                   	pop    %esi
46fd40:	33 cd                	xor    %ebp,%ecx
46fd42:	5b                   	pop    %ebx
46fd43:	e8 ba fc fc ff       	call   0x43fa02
46fd48:	8b e5                	mov    %ebp,%esp
46fd4a:	5d                   	pop    %ebp
46fd4b:	c3                   	ret
46fd4c:	8d 73 02             	lea    0x2(%ebx),%esi
46fd4f:	c1 e6 04             	shl    $0x4,%esi
46fd52:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
46fd58:	89 b5 38 fd ff ff    	mov    %esi,-0x2c8(%ebp)
46fd5e:	8b 14 3e             	mov    (%esi,%edi,1),%edx
46fd61:	8b ca                	mov    %edx,%ecx
46fd63:	66 8b 30             	mov    (%eax),%si
46fd66:	83 a5 44 fd ff ff 00 	andl   $0x0,-0x2bc(%ebp)
46fd6d:	66 3b 31             	cmp    (%ecx),%si
46fd70:	8b b5 38 fd ff ff    	mov    -0x2c8(%ebp),%esi
46fd76:	75 35                	jne    0x46fdad
46fd78:	66 83 38 00          	cmpw   $0x0,(%eax)
46fd7c:	74 27                	je     0x46fda5
46fd7e:	66 8b 70 02          	mov    0x2(%eax),%si
46fd82:	66 3b 71 02          	cmp    0x2(%ecx),%si
46fd86:	66 89 b5 42 fd ff ff 	mov    %si,-0x2be(%ebp)
46fd8d:	8b b5 38 fd ff ff    	mov    -0x2c8(%ebp),%esi
46fd93:	75 18                	jne    0x46fdad
46fd95:	83 c0 04             	add    $0x4,%eax
46fd98:	83 c1 04             	add    $0x4,%ecx
46fd9b:	66 83 bd 42 fd ff ff 	cmpw   $0x0,-0x2be(%ebp)
46fda2:	00
46fda3:	75 be                	jne    0x46fd63
46fda5:	8b 85 44 fd ff ff    	mov    -0x2bc(%ebp),%eax
46fdab:	eb 05                	jmp    0x46fdb2
46fdad:	1b c0                	sbb    %eax,%eax
46fdaf:	83 c8 01             	or     $0x1,%eax
46fdb2:	85 c0                	test   %eax,%eax
46fdb4:	75 04                	jne    0x46fdba
46fdb6:	8b c2                	mov    %edx,%eax
46fdb8:	eb 81                	jmp    0x46fd3b
46fdba:	8d 8d f4 fe ff ff    	lea    -0x10c(%ebp),%ecx
46fdc0:	8d 51 02             	lea    0x2(%ecx),%edx
46fdc3:	66 8b 01             	mov    (%ecx),%ax
46fdc6:	83 c1 02             	add    $0x2,%ecx
46fdc9:	66 3b 85 44 fd ff ff 	cmp    -0x2bc(%ebp),%ax
46fdd0:	75 f1                	jne    0x46fdc3
46fdd2:	2b ca                	sub    %edx,%ecx
46fdd4:	d1 f9                	sar    $1,%ecx
46fdd6:	8d 41 01             	lea    0x1(%ecx),%eax
46fdd9:	89 85 34 fd ff ff    	mov    %eax,-0x2cc(%ebp)
46fddf:	8d 04 45 04 00 00 00 	lea    0x4(,%eax,2),%eax
46fde6:	50                   	push   %eax
46fde7:	e8 3e 6f 00 00       	call   0x476d2a
46fdec:	89 85 28 fd ff ff    	mov    %eax,-0x2d8(%ebp)
46fdf2:	59                   	pop    %ecx
46fdf3:	85 c0                	test   %eax,%eax
46fdf5:	0f 84 3e ff ff ff    	je     0x46fd39
46fdfb:	8b 0c 3e             	mov    (%esi,%edi,1),%ecx
46fdfe:	83 c0 04             	add    $0x4,%eax
46fe01:	89 8d 2c fd ff ff    	mov    %ecx,-0x2d4(%ebp)
46fe07:	8b 8c 9f a0 00 00 00 	mov    0xa0(%edi,%ebx,4),%ecx
46fe0e:	89 8d 20 fd ff ff    	mov    %ecx,-0x2e0(%ebp)
46fe14:	8b 4f 08             	mov    0x8(%edi),%ecx
46fe17:	89 8d 1c fd ff ff    	mov    %ecx,-0x2e4(%ebp)
46fe1d:	8d 8d f4 fe ff ff    	lea    -0x10c(%ebp),%ecx
46fe23:	51                   	push   %ecx
46fe24:	ff b5 34 fd ff ff    	push   -0x2cc(%ebp)
46fe2a:	89 85 40 fd ff ff    	mov    %eax,-0x2c0(%ebp)
46fe30:	50                   	push   %eax
46fe31:	e8 31 80 ff ff       	call   0x467e67
46fe36:	83 c4 0c             	add    $0xc,%esp
46fe39:	85 c0                	test   %eax,%eax
46fe3b:	0f 85 53 02 00 00    	jne    0x470094
46fe41:	66 83 bd f4 fe ff ff 	cmpw   $0x43,-0x10c(%ebp)
46fe48:	43
46fe49:	8b 85 40 fd ff ff    	mov    -0x2c0(%ebp),%eax
46fe4f:	89 04 3e             	mov    %eax,(%esi,%edi,1)
46fe52:	75 19                	jne    0x46fe6d
46fe54:	66 83 bd f6 fe ff ff 	cmpw   $0x0,-0x10a(%ebp)
46fe5b:	00
46fe5c:	75 0f                	jne    0x46fe6d
46fe5e:	8b 8d 44 fd ff ff    	mov    -0x2bc(%ebp),%ecx
46fe64:	89 8c 9f a0 00 00 00 	mov    %ecx,0xa0(%edi,%ebx,4)
46fe6b:	eb 1a                	jmp    0x46fe87
46fe6d:	8d 85 48 fd ff ff    	lea    -0x2b8(%ebp),%eax
46fe73:	50                   	push   %eax
46fe74:	e8 4d f0 ff ff       	call   0x46eec6
46fe79:	59                   	pop    %ecx
46fe7a:	8b 8d 44 fd ff ff    	mov    -0x2bc(%ebp),%ecx
46fe80:	89 84 9f a0 00 00 00 	mov    %eax,0xa0(%edi,%ebx,4)
46fe87:	83 fb 02             	cmp    $0x2,%ebx
46fe8a:	0f 85 17 01 00 00    	jne    0x46ffa7
46fe90:	8b b5 30 fd ff ff    	mov    -0x2d0(%ebp),%esi
46fe96:	8b d1                	mov    %ecx,%edx
46fe98:	8b 85 3c fd ff ff    	mov    -0x2c4(%ebp),%eax
46fe9e:	8b ce                	mov    %esi,%ecx
46fea0:	89 47 08             	mov    %eax,0x8(%edi)
46fea3:	89 b5 40 fd ff ff    	mov    %esi,-0x2c0(%ebp)
46fea9:	8b 46 20             	mov    0x20(%esi),%eax
46feac:	89 85 34 fd ff ff    	mov    %eax,-0x2cc(%ebp)
46feb2:	8b 46 24             	mov    0x24(%esi),%eax
46feb5:	89 85 3c fd ff ff    	mov    %eax,-0x2c4(%ebp)
46febb:	8b 47 08             	mov    0x8(%edi),%eax
46febe:	3b 01                	cmp    (%ecx),%eax
46fec0:	74 47                	je     0x46ff09
46fec2:	8b b5 40 fd ff ff    	mov    -0x2c0(%ebp),%esi
46fec8:	42                   	inc    %edx
46fec9:	8b 01                	mov    (%ecx),%eax
46fecb:	8b 9d 34 fd ff ff    	mov    -0x2cc(%ebp),%ebx
46fed1:	8b 49 04             	mov    0x4(%ecx),%ecx
46fed4:	89 1e                	mov    %ebx,(%esi)
46fed6:	8b 9d 3c fd ff ff    	mov    -0x2c4(%ebp),%ebx
46fedc:	89 8d 3c fd ff ff    	mov    %ecx,-0x2c4(%ebp)
46fee2:	8b ce                	mov    %esi,%ecx
46fee4:	83 c1 08             	add    $0x8,%ecx
46fee7:	89 5e 04             	mov    %ebx,0x4(%esi)
46feea:	8b 9d 24 fd ff ff    	mov    -0x2dc(%ebp),%ebx
46fef0:	8b b5 30 fd ff ff    	mov    -0x2d0(%ebp),%esi
46fef6:	89 85 34 fd ff ff    	mov    %eax,-0x2cc(%ebp)
46fefc:	89 8d 40 fd ff ff    	mov    %ecx,-0x2c0(%ebp)
46ff02:	83 fa 05             	cmp    $0x5,%edx
46ff05:	7c b4                	jl     0x46febb
46ff07:	eb 23                	jmp    0x46ff2c
46ff09:	85 d2                	test   %edx,%edx
46ff0b:	74 1f                	je     0x46ff2c
46ff0d:	8b 04 d6             	mov    (%esi,%edx,8),%eax
46ff10:	89 06                	mov    %eax,(%esi)
46ff12:	8b 44 d6 04          	mov    0x4(%esi,%edx,8),%eax
46ff16:	89 46 04             	mov    %eax,0x4(%esi)
46ff19:	8b 85 34 fd ff ff    	mov    -0x2cc(%ebp),%eax
46ff1f:	89 04 d6             	mov    %eax,(%esi,%edx,8)
46ff22:	8b 85 3c fd ff ff    	mov    -0x2c4(%ebp),%eax
46ff28:	89 44 d6 04          	mov    %eax,0x4(%esi,%edx,8)
46ff2c:	83 fa 05             	cmp    $0x5,%edx
46ff2f:	75 6e                	jne    0x46ff9f
46ff31:	6a 01                	push   $0x1
46ff33:	ff 77 08             	push   0x8(%edi)
46ff36:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
46ff3c:	50                   	push   %eax
46ff3d:	6a 7f                	push   $0x7f
46ff3f:	68 e0 d8 49 00       	push   $0x49d8e0
46ff44:	6a 01                	push   $0x1
46ff46:	ff b5 44 fd ff ff    	push   -0x2bc(%ebp)
46ff4c:	e8 f4 ab 00 00       	call   0x47ab45
46ff51:	83 c4 1c             	add    $0x1c,%esp
46ff54:	85 c0                	test   %eax,%eax
46ff56:	8b 85 44 fd ff ff    	mov    -0x2bc(%ebp),%eax
46ff5c:	74 39                	je     0x46ff97
46ff5e:	b9 ff 01 00 00       	mov    $0x1ff,%ecx
46ff63:	66 21 8c 45 f4 fd ff 	and    %cx,-0x20c(%ebp,%eax,2)
46ff6a:	ff
46ff6b:	40                   	inc    %eax
46ff6c:	83 f8 7f             	cmp    $0x7f,%eax
46ff6f:	72 ed                	jb     0x46ff5e
46ff71:	68 fe 00 00 00       	push   $0xfe
46ff76:	ff 35 14 82 4b 00    	push   0x4b8214
46ff7c:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
46ff82:	50                   	push   %eax
46ff83:	e8 4a 16 fd ff       	call   0x4415d2
46ff88:	33 c9                	xor    %ecx,%ecx
46ff8a:	83 c4 0c             	add    $0xc,%esp
46ff8d:	85 c0                	test   %eax,%eax
46ff8f:	0f 94 c1             	sete   %cl
46ff92:	89 4e 04             	mov    %ecx,0x4(%esi)
46ff95:	eb 03                	jmp    0x46ff9a
46ff97:	89 46 04             	mov    %eax,0x4(%esi)
46ff9a:	8b 47 08             	mov    0x8(%edi),%eax
46ff9d:	89 06                	mov    %eax,(%esi)
46ff9f:	8b 46 04             	mov    0x4(%esi),%eax
46ffa2:	89 47 18             	mov    %eax,0x18(%edi)
46ffa5:	eb 1e                	jmp    0x46ffc5
46ffa7:	83 fb 01             	cmp    $0x1,%ebx
46ffaa:	75 0b                	jne    0x46ffb7
46ffac:	8b 85 3c fd ff ff    	mov    -0x2c4(%ebp),%eax
46ffb2:	89 47 10             	mov    %eax,0x10(%edi)
46ffb5:	eb 0e                	jmp    0x46ffc5
46ffb7:	83 fb 05             	cmp    $0x5,%ebx
46ffba:	75 09                	jne    0x46ffc5
46ffbc:	8b 85 3c fd ff ff    	mov    -0x2c4(%ebp),%eax
46ffc2:	89 47 14             	mov    %eax,0x14(%edi)
46ffc5:	6b c3 0c             	imul   $0xc,%ebx,%eax
46ffc8:	57                   	push   %edi
46ffc9:	8b b0 20 d8 49 00    	mov    0x49d820(%eax),%esi
46ffcf:	8b ce                	mov    %esi,%ecx
46ffd1:	ff 15 54 43 49 00    	call   *0x494354
46ffd7:	ff d6                	call   *%esi
46ffd9:	59                   	pop    %ecx
46ffda:	8b 8d 2c fd ff ff    	mov    -0x2d4(%ebp),%ecx
46ffe0:	85 c0                	test   %eax,%eax
46ffe2:	74 3e                	je     0x470022
46ffe4:	8b 85 38 fd ff ff    	mov    -0x2c8(%ebp),%eax
46ffea:	89 0c 38             	mov    %ecx,(%eax,%edi,1)
46ffed:	ff b4 9f a0 00 00 00 	push   0xa0(%edi,%ebx,4)
46fff4:	e8 40 23 00 00       	call   0x472339
46fff9:	8b 8d 28 fd ff ff    	mov    -0x2d8(%ebp),%ecx
46ffff:	8b 85 20 fd ff ff    	mov    -0x2e0(%ebp),%eax
470005:	51                   	push   %ecx
470006:	89 84 9f a0 00 00 00 	mov    %eax,0xa0(%edi,%ebx,4)
47000d:	e8 27 23 00 00       	call   0x472339
470012:	8b 85 1c fd ff ff    	mov    -0x2e4(%ebp),%eax
470018:	59                   	pop    %ecx
470019:	59                   	pop    %ecx
47001a:	89 47 08             	mov    %eax,0x8(%edi)
47001d:	e9 17 fd ff ff       	jmp    0x46fd39
470022:	81 f9 f0 82 4b 00    	cmp    $0x4b82f0,%ecx
470028:	74 4a                	je     0x470074
47002a:	8b f3                	mov    %ebx,%esi
47002c:	83 c9 ff             	or     $0xffffffff,%ecx
47002f:	03 f6                	add    %esi,%esi
470031:	8b 44 f7 28          	mov    0x28(%edi,%esi,8),%eax
470035:	f0 0f c1 08          	lock xadd %ecx,(%eax)
470039:	75 39                	jne    0x470074
47003b:	ff 74 f7 28          	push   0x28(%edi,%esi,8)
47003f:	e8 f5 22 00 00       	call   0x472339
470044:	ff 74 f7 24          	push   0x24(%edi,%esi,8)
470048:	e8 ec 22 00 00       	call   0x472339
47004d:	ff b4 9f a0 00 00 00 	push   0xa0(%edi,%ebx,4)
470054:	e8 e0 22 00 00       	call   0x472339
470059:	8b 85 38 fd ff ff    	mov    -0x2c8(%ebp),%eax
47005f:	83 c4 0c             	add    $0xc,%esp
470062:	8b 8d 44 fd ff ff    	mov    -0x2bc(%ebp),%ecx
470068:	89 0c 38             	mov    %ecx,(%eax,%edi,1)
47006b:	89 8c 9f a0 00 00 00 	mov    %ecx,0xa0(%edi,%ebx,4)
470072:	eb 06                	jmp    0x47007a
470074:	8b 85 38 fd ff ff    	mov    -0x2c8(%ebp),%eax
47007a:	8b 8d 28 fd ff ff    	mov    -0x2d8(%ebp),%ecx
470080:	03 db                	add    %ebx,%ebx
470082:	c7 01 01 00 00 00    	movl   $0x1,(%ecx)
470088:	8b 04 38             	mov    (%eax,%edi,1),%eax
47008b:	89 4c df 28          	mov    %ecx,0x28(%edi,%ebx,8)
47008f:	e9 a7 fc ff ff       	jmp    0x46fd3b
470094:	8b 85 44 fd ff ff    	mov    -0x2bc(%ebp),%eax