46fc72:	56                   	push   %esi
46fc73:	e8 08 14 17 00       	call   0x5e1080
46fc78:	ff 75 d0             	push   -0x30(%ebp)
46fc7b:	8b 4d e8             	mov    -0x18(%ebp),%ecx
46fc7e:	57                   	push   %edi
46fc7f:	56                   	push   %esi
46fc80:	50                   	push   %eax
46fc81:	89 01                	mov    %eax,(%ecx)
46fc83:	e8 f8 88 ff ff       	call   0x468580
46fc88:	8b 75 dc             	mov    -0x24(%ebp),%esi
46fc8b:	83 c4 14             	add    $0x14,%esp
46fc8e:	8b 4e 74             	mov    0x74(%esi),%ecx
46fc91:	b8 39 8e e3 38       	mov    $0x38e38e39,%eax
46fc96:	2b 4e 70             	sub    0x70(%esi),%ecx
46fc99:	f7 e9                	imul   %ecx
46fc9b:	33 c9                	xor    %ecx,%ecx
46fc9d:	c1 fa 04             	sar    $0x4,%edx
46fca0:	8b c2                	mov    %edx,%eax
46fca2:	c1 e8 1f             	shr    $0x1f,%eax
46fca5:	03 c2                	add    %edx,%eax
46fca7:	ba 04 00 00 00       	mov    $0x4,%edx
46fcac:	89 45 ec             	mov    %eax,-0x14(%ebp)
46fcaf:	40                   	inc    %eax
46fcb0:	f7 e2                	mul    %edx
46fcb2:	0f 90 c1             	seto   %cl
46fcb5:	f7 d9                	neg    %ecx
46fcb7:	0b c8                	or     %eax,%ecx
46fcb9:	51                   	push   %ecx
46fcba:	e8 c1 13 17 00       	call   0x5e1080
46fcbf:	8b 8b 68 03 00 00    	mov    0x368(%ebx),%ecx
46fcc5:	33 ff                	xor    %edi,%edi
46fcc7:	83 c4 04             	add    $0x4,%esp
46fcca:	89 7d f0             	mov    %edi,-0x10(%ebp)
46fccd:	89 41 08             	mov    %eax,0x8(%ecx)
46fcd0:	8b 4d ec             	mov    -0x14(%ebp),%ecx
46fcd3:	85 c9                	test   %ecx,%ecx
46fcd5:	0f 84 bc 01 00 00    	je     0x46fe97
46fcdb:	89 7d e4             	mov    %edi,-0x1c(%ebp)
46fcde:	66 90                	xchg   %ax,%ax
46fce0:	6a 0c                	push   $0xc
46fce2:	e8 5b 13 17 00       	call   0x5e1042
46fce7:	8b 8b 68 03 00 00    	mov    0x368(%ebx),%ecx
46fced:	8d 14 bd 00 00 00 00 	lea    0x0(,%edi,4),%edx
46fcf4:	89 55 d0             	mov    %edx,-0x30(%ebp)
46fcf7:	83 c4 04             	add    $0x4,%esp
46fcfa:	8b 49 08             	mov    0x8(%ecx),%ecx
46fcfd:	89 04 0a             	mov    %eax,(%edx,%ecx,1)
46fd00:	8b 45 dc             	mov    -0x24(%ebp),%eax
46fd03:	8b 76 74             	mov    0x74(%esi),%esi
46fd06:	8b ce                	mov    %esi,%ecx
46fd08:	8b 40 70             	mov    0x70(%eax),%eax
46fd0b:	2b c8                	sub    %eax,%ecx
46fd0d:	89 45 e8             	mov    %eax,-0x18(%ebp)
46fd10:	b8 39 8e e3 38       	mov    $0x38e38e39,%eax
46fd15:	f7 e9                	imul   %ecx
46fd17:	c1 fa 04             	sar    $0x4,%edx
46fd1a:	8b c2                	mov    %edx,%eax
46fd1c:	c1 e8 1f             	shr    $0x1f,%eax
46fd1f:	03 c2                	add    %edx,%eax
46fd21:	3b c7                	cmp    %edi,%eax
46fd23:	0f 86 62 05 00 00    	jbe    0x47028b
46fd29:	8b 45 e4             	mov    -0x1c(%ebp),%eax
46fd2c:	03 45 e8             	add    -0x18(%ebp),%eax
46fd2f:	8b c8                	mov    %eax,%ecx
46fd31:	89 45 e8             	mov    %eax,-0x18(%ebp)
46fd34:	83 78 14 10          	cmpl   $0x10,0x14(%eax)
46fd38:	72 05                	jb     0x46fd3f
46fd3a:	8b 08                	mov    (%eax),%ecx
46fd3c:	89 4d e8             	mov    %ecx,-0x18(%ebp)
46fd3f:	8b 50 10             	mov    0x10(%eax),%edx
46fd42:	8b 83 68 03 00 00    	mov    0x368(%ebx),%eax
46fd48:	89 55 e0             	mov    %edx,-0x20(%ebp)
46fd4b:	8b 40 08             	mov    0x8(%eax),%eax
46fd4e:	8b 04 b8             	mov    (%eax,%edi,4),%eax
46fd51:	89 45 d8             	mov    %eax,-0x28(%ebp)
46fd54:	85 c0                	test   %eax,%eax
46fd56:	74 2a                	je     0x46fd82
46fd58:	85 c9                	test   %ecx,%ecx
46fd5a:	74 26                	je     0x46fd82
46fd5c:	8d 72 01             	lea    0x1(%edx),%esi
46fd5f:	56                   	push   %esi
46fd60:	e8 1b 13 17 00       	call   0x5e1080
46fd65:	ff 75 e0             	push   -0x20(%ebp)
46fd68:	8b 4d d8             	mov    -0x28(%ebp),%ecx
46fd6b:	ff 75 e8             	push   -0x18(%ebp)
46fd6e:	56                   	push   %esi
46fd6f:	50                   	push   %eax
46fd70:	89 01                	mov    %eax,(%ecx)
46fd72:	e8 09 88 ff ff       	call   0x468580
46fd77:	8b 45 dc             	mov    -0x24(%ebp),%eax
46fd7a:	83 c4 14             	add    $0x14,%esp
46fd7d:	8b 70 74             	mov    0x74(%eax),%esi
46fd80:	eb 03                	jmp    0x46fd85
46fd82:	8b 45 dc             	mov    -0x24(%ebp),%eax
46fd85:	8b 40 70             	mov    0x70(%eax),%eax
46fd88:	8b ce                	mov    %esi,%ecx
46fd8a:	2b c8                	sub    %eax,%ecx
46fd8c:	89 45 e0             	mov    %eax,-0x20(%ebp)
46fd8f:	b8 39 8e e3 38       	mov    $0x38e38e39,%eax
46fd94:	f7 e9                	imul   %ecx
46fd96:	c1 fa 04             	sar    $0x4,%edx
46fd99:	8b c2                	mov    %edx,%eax
46fd9b:	c1 e8 1f             	shr    $0x1f,%eax
46fd9e:	03 c2                	add    %edx,%eax
46fda0:	3b c7                	cmp    %edi,%eax
46fda2:	0f 86 e3 04 00 00    	jbe    0x47028b
46fda8:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
46fdab:	8b 55 e0             	mov    -0x20(%ebp),%edx
46fdae:	8d 79 18             	lea    0x18(%ecx),%edi
46fdb1:	03 fa                	add    %edx,%edi
46fdb3:	83 7f 14 10          	cmpl   $0x10,0x14(%edi)
46fdb7:	72 02                	jb     0x46fdbb
46fdb9:	8b 3f                	mov    (%edi),%edi
46fdbb:	8b 83 68 03 00 00    	mov    0x368(%ebx),%eax
46fdc1:	8b 5d d0             	mov    -0x30(%ebp),%ebx
46fdc4:	8b 54 0a 28          	mov    0x28(%edx,%ecx,1),%edx
46fdc8:	89 55 d8             	mov    %edx,-0x28(%ebp)
46fdcb:	8b 40 08             	mov    0x8(%eax),%eax
46fdce:	8b 04 18             	mov    (%eax,%ebx,1),%eax
46fdd1:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
46fdd4:	83 c0 04             	add    $0x4,%eax
46fdd7:	89 45 e0             	mov    %eax,-0x20(%ebp)
46fdda:	74 29                	je     0x46fe05
46fddc:	85 ff                	test   %edi,%edi
46fdde:	74 25                	je     0x46fe05
46fde0:	8d 72 01             	lea    0x1(%edx),%esi
46fde3:	56                   	push   %esi
46fde4:	e8 97 12 17 00       	call   0x5e1080
46fde9:	ff 75 d8             	push   -0x28(%ebp)
46fdec:	8b 4d e0             	mov    -0x20(%ebp),%ecx
46fdef:	57                   	push   %edi
46fdf0:	56                   	push   %esi
46fdf1:	50                   	push   %eax
46fdf2:	89 01                	mov    %eax,(%ecx)
46fdf4:	e8 87 87 ff ff       	call   0x468580
46fdf9:	8b 4d dc             	mov    -0x24(%ebp),%ecx
46fdfc:	83 c4 14             	add    $0x14,%esp
46fdff:	8b 71 74             	mov    0x74(%ecx),%esi
46fe02:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
46fe05:	8b 45 dc             	mov    -0x24(%ebp),%eax
46fe08:	8b 78 70             	mov    0x70(%eax),%edi
46fe0b:	2b f7                	sub    %edi,%esi
46fe0d:	b8 39 8e e3 38       	mov    $0x38e38e39,%eax
46fe12:	89 7d e0             	mov    %edi,-0x20(%ebp)
46fe15:	f7 ee                	imul   %esi
46fe17:	c1 fa 04             	sar    $0x4,%edx
46fe1a:	8b c2                	mov    %edx,%eax
46fe1c:	c1 e8 1f             	shr    $0x1f,%eax
46fe1f:	03 c2                	add    %edx,%eax
46fe21:	3b 45 f0             	cmp    -0x10(%ebp),%eax
46fe24:	0f 86 61 04 00 00    	jbe    0x47028b
46fe2a:	83 c7 30             	add    $0x30,%edi
46fe2d:	03 f9                	add    %ecx,%edi
46fe2f:	83 7f 14 10          	cmpl   $0x10,0x14(%edi)
46fe33:	72 02                	jb     0x46fe37
46fe35:	8b 3f                	mov    (%edi),%edi
46fe37:	8b 83 68 03 00 00    	mov    0x368(%ebx),%eax
46fe3d:	8b 75 d0             	mov    -0x30(%ebp),%esi
46fe40:	8b 55 e0             	mov    -0x20(%ebp),%edx
46fe43:	8b 40 08             	mov    0x8(%eax),%eax
46fe46:	8b 54 0a 40          	mov    0x40(%edx,%ecx,1),%edx
46fe4a:	89 55 d8             	mov    %edx,-0x28(%ebp)
46fe4d:	8b 04 30             	mov    (%eax,%esi,1),%eax
46fe50:	83 c0 08             	add    $0x8,%eax
46fe53:	89 45 e0             	mov    %eax,-0x20(%ebp)
46fe56:	74 23                	je     0x46fe7b
46fe58:	85 ff                	test   %edi,%edi
46fe5a:	74 1f                	je     0x46fe7b
46fe5c:	8d 72 01             	lea    0x1(%edx),%esi
46fe5f:	56                   	push   %esi
46fe60:	e8 1b 12 17 00       	call   0x5e1080
46fe65:	ff 75 d8             	push   -0x28(%ebp)
46fe68:	8b 4d e0             	mov    -0x20(%ebp),%ecx
46fe6b:	57                   	push   %edi
46fe6c:	56                   	push   %esi
46fe6d:	50                   	push   %eax
46fe6e:	89 01                	mov    %eax,(%ecx)
46fe70:	e8 0b 87 ff ff       	call   0x468580
46fe75:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
46fe78:	83 c4 14             	add    $0x14,%esp
46fe7b:	8b 7d f0             	mov    -0x10(%ebp),%edi
46fe7e:	83 c1 48             	add    $0x48,%ecx
46fe81:	8b 75 dc             	mov    -0x24(%ebp),%esi
46fe84:	47                   	inc    %edi
46fe85:	89 7d f0             	mov    %edi,-0x10(%ebp)
46fe88:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
46fe8b:	3b 7d ec             	cmp    -0x14(%ebp),%edi
46fe8e:	0f 82 4c fe ff ff    	jb     0x46fce0
46fe94:	8b 4d ec             	mov    -0x14(%ebp),%ecx
46fe97:	8b 83 68 03 00 00    	mov    0x368(%ebx),%eax
46fe9d:	8b 40 08             	mov    0x8(%eax),%eax
46fea0:	c7 04 88 00 00 00 00 	movl   $0x0,(%eax,%ecx,4)
46fea7:	6a 28                	push   $0x28
46fea9:	e8 94 11 17 00       	call   0x5e1042
46feae:	8b 55 dc             	mov    -0x24(%ebp),%edx
46feb1:	8b f8                	mov    %eax,%edi
46feb3:	83 c4 04             	add    $0x4,%esp
46feb6:	89 bb 6c 03 00 00    	mov    %edi,0x36c(%ebx)
46febc:	85 ff                	test   %edi,%edi
46febe:	0f 84 ee 02 00 00    	je     0x4701b2
46fec4:	83 ba a8 00 00 00 10 	cmpl   $0x10,0xa8(%edx)
46fecb:	8d 82 94 00 00 00    	lea    0x94(%edx),%eax
46fed1:	89 45 e8             	mov    %eax,-0x18(%ebp)
46fed4:	72 05                	jb     0x46fedb
46fed6:	8b 00                	mov    (%eax),%eax
46fed8:	89 45 e8             	mov    %eax,-0x18(%ebp)
46fedb:	8b b2 a4 00 00 00    	mov    0xa4(%edx),%esi
46fee1:	8d 4f 04             	lea    0x4(%edi),%ecx
46fee4:	89 75 d8             	mov    %esi,-0x28(%ebp)
46fee7:	89 4d e0             	mov    %ecx,-0x20(%ebp)
46feea:	85 c9                	test   %ecx,%ecx
46feec:	74 29                	je     0x46ff17
46feee:	85 c0                	test   %eax,%eax
46fef0:	74 25                	je     0x46ff17
46fef2:	46                   	inc    %esi
46fef3:	56                   	push   %esi
46fef4:	e8 87 11 17 00       	call   0x5e1080
46fef9:	ff 75 d8             	push   -0x28(%ebp)
46fefc:	8b 4d e0             	mov    -0x20(%ebp),%ecx
46feff:	ff 75 e8             	push   -0x18(%ebp)
46ff02:	56                   	push   %esi
46ff03:	50                   	push   %eax
46ff04:	89 01                	mov    %eax,(%ecx)
46ff06:	e8 75 86 ff ff       	call   0x468580
46ff0b:	8b bb 6c 03 00 00    	mov    0x36c(%ebx),%edi
46ff11:	83 c4 14             	add    $0x14,%esp
46ff14:	8b 55 dc             	mov    -0x24(%ebp),%edx
46ff17:	83 ba 90 00 00 00 10 	cmpl   $0x10,0x90(%edx)
46ff1e:	8d 4a 7c             	lea    0x7c(%edx),%ecx
46ff21:	89 4d e8             	mov    %ecx,-0x18(%ebp)
46ff24:	72 05                	jb     0x46ff2b
46ff26:	8b 09                	mov    (%ecx),%ecx
46ff28:	89 4d e8             	mov    %ecx,-0x18(%ebp)
46ff2b:	8b b2 8c 00 00 00    	mov    0x8c(%edx),%esi
46ff31:	8b c7                	mov    %edi,%eax
46ff33:	89 75 e0             	mov    %esi,-0x20(%ebp)
46ff36:	85 ff                	test   %edi,%edi
46ff38:	74 26                	je     0x46ff60
46ff3a:	85 c9                	test   %ecx,%ecx
46ff3c:	74 22                	je     0x46ff60
46ff3e:	46                   	inc    %esi
46ff3f:	56                   	push   %esi
46ff40:	e8 3b 11 17 00       	call   0x5e1080
46ff45:	ff 75 e0             	push   -0x20(%ebp)
46ff48:	89 07                	mov    %eax,(%edi)
46ff4a:	ff 75 e8             	push   -0x18(%ebp)
46ff4d:	56                   	push   %esi
46ff4e:	50                   	push   %eax
46ff4f:	e8 2c 86 ff ff       	call   0x468580
46ff54:	8b 83 6c 03 00 00    	mov    0x36c(%ebx),%eax
46ff5a:	83 c4 14             	add    $0x14,%esp
46ff5d:	8b 55 dc             	mov    -0x24(%ebp),%edx
46ff60:	83 ba d8 00 00 00 10 	cmpl   $0x10,0xd8(%edx)
46ff67:	8d ba c4 00 00 00    	lea    0xc4(%edx),%edi
46ff6d:	72 02                	jb     0x46ff71
46ff6f:	8b 3f                	mov    (%edi),%edi
46ff71:	8b b2 d4 00 00 00    	mov    0xd4(%edx),%esi
46ff77:	8d 48 0c             	lea    0xc(%eax),%ecx
46ff7a:	89 75 d8             	mov    %esi,-0x28(%ebp)
46ff7d:	89 4d e0             	mov    %ecx,-0x20(%ebp)
46ff80:	85 c9                	test   %ecx,%ecx
46ff82:	74 27                	je     0x46ffab
46ff84:	85 ff                	test   %edi,%edi
46ff86:	74 23                	je     0x46ffab
46ff88:	46                   	inc    %esi
46ff89:	56                   	push   %esi
46ff8a:	e8 f1 10 17 00       	call   0x5e1080
46ff8f:	ff 75 d8             	push   -0x28(%ebp)
46ff92:	8b 4d e0             	mov    -0x20(%ebp),%ecx
46ff95:	57                   	push   %edi
46ff96:	56                   	push   %esi
46ff97:	50                   	push   %eax
46ff98:	89 01                	mov    %eax,(%ecx)
46ff9a:	e8 e1 85 ff ff       	call   0x468580
46ff9f:	8b 83 6c 03 00 00    	mov    0x36c(%ebx),%eax
46ffa5:	83 c4 14             	add    $0x14,%esp
46ffa8:	8b 55 dc             	mov    -0x24(%ebp),%edx
46ffab:	83 ba f0 00 00 00 10 	cmpl   $0x10,0xf0(%edx)
46ffb2:	8d ba dc 00 00 00    	lea    0xdc(%edx),%edi
46ffb8:	72 02                	jb     0x46ffbc
46ffba:	8b 3f                	mov    (%edi),%edi
46ffbc:	8b b2 ec 00 00 00    	mov    0xec(%edx),%esi
46ffc2:	8d 48 10             	lea    0x10(%eax),%ecx
46ffc5:	89 75 d8             	mov    %esi,-0x28(%ebp)
46ffc8:	89 4d e0             	mov    %ecx,-0x20(%ebp)
46ffcb:	85 c9                	test   %ecx,%ecx
46ffcd:	74 27                	je     0x46fff6
46ffcf:	85 ff                	test   %edi,%edi
46ffd1:	74 23                	je     0x46fff6
46ffd3:	46                   	inc    %esi
46ffd4:	56                   	push   %esi
46ffd5:	e8 a6 10 17 00       	call   0x5e1080
46ffda:	ff 75 d8             	push   -0x28(%ebp)
46ffdd:	8b 4d e0             	mov    -0x20(%ebp),%ecx
46ffe0:	57                   	push   %edi
46ffe1:	56                   	push   %esi
46ffe2:	50                   	push   %eax
46ffe3:	89 01                	mov    %eax,(%ecx)
46ffe5:	e8 96 85 ff ff       	call   0x468580
46ffea:	8b 83 6c 03 00 00    	mov    0x36c(%ebx),%eax
46fff0:	83 c4 14             	add    $0x14,%esp
46fff3:	8b 55 dc             	mov    -0x24(%ebp),%edx
46fff6:	83 ba 08 01 00 00 10 	cmpl   $0x10,0x108(%edx)
46fffd:	8d ba f4 00 00 00    	lea    0xf4(%edx),%edi
470003:	72 02                	jb     0x470007
470005:	8b 3f                	mov    (%edi),%edi
470007:	8b b2 04 01 00 00    	mov    0x104(%edx),%esi
47000d:	8d 48 14             	lea    0x14(%eax),%ecx
470010:	89 75 d8             	mov    %esi,-0x28(%ebp)
470013:	89 4d e0             	mov    %ecx,-0x20(%ebp)
470016:	85 c9                	test   %ecx,%ecx
470018:	74 27                	je     0x470041
47001a:	85 ff                	test   %edi,%edi
47001c:	74 23                	je     0x470041
47001e:	46                   	inc    %esi
47001f:	56                   	push   %esi
470020:	e8 5b 10 17 00       	call   0x5e1080
470025:	ff 75 d8             	push   -0x28(%ebp)
470028:	8b 4d e0             	mov    -0x20(%ebp),%ecx
47002b:	57                   	push   %edi
47002c:	56                   	push   %esi
47002d:	50                   	push   %eax
47002e:	89 01                	mov    %eax,(%ecx)
470030:	e8 4b 85 ff ff       	call   0x468580
470035:	8b 83 6c 03 00 00    	mov    0x36c(%ebx),%eax
47003b:	83 c4 14             	add    $0x14,%esp
47003e:	8b 55 dc             	mov    -0x24(%ebp),%edx
470041:	83 ba 20 01 00 00 10 	cmpl   $0x10,0x120(%edx)
470048:	8d ba 0c 01 00 00    	lea    0x10c(%edx),%edi
47004e:	72 02                	jb     0x470052
470050:	8b 3f                	mov    (%edi),%edi
470052:	8b b2 1c 01 00 00    	mov    0x11c(%edx),%esi
470058:	8d 48 18             	lea    0x18(%eax),%ecx
47005b:	89 75 d8             	mov    %esi,-0x28(%ebp)
47005e:	89 4d e0             	mov    %ecx,-0x20(%ebp)
470061:	85 c9                	test   %ecx,%ecx
470063:	74 27                	je     0x47008c
470065:	85 ff                	test   %edi,%edi
470067:	74 23                	je     0x47008c
470069:	46                   	inc    %esi
47006a:	56                   	push   %esi
47006b:	e8 10 10 17 00       	call   0x5e1080
470070:	ff 75 d8             	push   -0x28(%ebp)
470073:	8b 4d e0             	mov    -0x20(%ebp),%ecx
470076:	57                   	push   %edi
470077:	56                   	push   %esi
470078:	50                   	push   %eax
470079:	89 01                	mov    %eax,(%ecx)
47007b:	e8 00 85 ff ff       	call   0x468580
470080:	8b 83 6c 03 00 00    	mov    0x36c(%ebx),%eax