<!DOCTYPE html> <html lang="en"> <head> <meta...
創建於:2026年1月27日
使用 GPT-5.2 Thinking 回答 Chat01
創建於:2026年1月27日
使用 GPT-5.2 Thinking 回答 Chat01
</body> </html>text<h2>Draw a complex continuous shape to verify biological signature.</h2> <canvas id="pad" width="600" height="400"></canvas> <div id="status">Waiting for input...</div> <button id="verifyBtn" onclick="window.checkTrace()">VERIFY IDENTITY</button> </div> <script> var Module = { onRuntimeInitialized: function() { const statusEl = document.getElementById('status'); if(statusEl) { statusEl.innerText = "System Ready. Waiting for input..."; statusEl.style.color = "green"; } console.log("Wasm Runtime Initialized!"); } }; </script> <script src="verify.js"></script> <script> document.addEventListener('DOMContentLoaded', () => { const canvas = document.getElementById('pad'); const ctx = canvas.getContext('2d'); const statusEl = document.getElementById('status'); const btn = document.getElementById('verifyBtn'); let isDrawing = false; let points = { x: [], y: [] }; ctx.lineWidth = 2; ctx.lineCap = 'round'; ctx.lineJoin = 'round'; canvas.addEventListener('mousedown', e => { isDrawing = true; points = { x: [], y: [] }; ctx.clearRect(0, 0, canvas.width, canvas.height); ctx.beginPath(); ctx.moveTo(e.offsetX, e.offsetY); statusEl.innerText = "Recording bio-metrics..."; statusEl.style.color = "#000"; }); canvas.addEventListener('mousemove', e => { if (!isDrawing) return; ctx.lineTo(e.offsetX, e.offsetY); ctx.strokeStyle = '#ff0000'; ctx.stroke(); points.x.push(e.offsetX); points.y.push(e.offsetY); }); canvas.addEventListener('mouseup', () => { isDrawing = false; }); canvas.addEventListener('mouseleave', () => { isDrawing = false; }); window.runWasmCheck = function() { try { const len = points.x.length; const bytesPerElement = 4; const xPtr = Module._malloc(len * bytesPerElement); const yPtr = Module._malloc(len * bytesPerElement); for (let i = 0; i < len; i++) { Module.setValue(xPtr + (i * 4), points.x[i], 'i32'); Module.setValue(yPtr + (i * 4), points.y[i], 'i32'); } const resultPtr = Module.ccall( 'verify_human', 'number', ['number', 'number', 'number'], [xPtr, yPtr, len] ); const resultStr = Module.UTF8ToString(resultPtr); statusEl.innerText = resultStr; if (resultStr.startsWith("UniCTF")) { statusEl.style.color = "green"; } else { statusEl.style.color = "red"; } Module._free(xPtr); Module._free(yPtr); } catch (e) { console.error(e); statusEl.innerText = "System Error: " + e.message; } finally { btn.disabled = false; } }; window.checkTrace = function() { if (typeof Module === 'undefined' || !Module.ccall) { statusEl.innerText = "Error: Wasm Module not loaded."; statusEl.style.color = "red"; return; } if (points.x.length < 50) { statusEl.innerText = "Error: Trace too short."; statusEl.style.color = "red"; return; } statusEl.innerText = "Analyzing neural micro-tremors..."; btn.disabled = true; setTimeout(window.runWasmCheck, 50); }; }); </script>
本题最终 flag 为验证正确时的字符串加上逆向分析得到的所有生物特征值之和的 md5 (小写)。
比如,验证通过后显示的字符串为UniCTF{abcd},分析得到的正确生物特征值为速度 11、抖动 33,生物特征值之和为 44,注意生物特征值通常不会太大,则最终的 flag 就是
tips:
题目描述更新为UniCTF{md5(UniCTF{abcd}44)}
以下是js文件
// include: shell.js
// include: minimum_runtime_check.js
// end include: minimum_runtime_check.js
// The Module object: Our interface to the outside world. We import
// and export values on it. There are various ways Module can be used:
// 1. Not defined. We create it here
// 2. A function parameter, function(moduleArg) => Promise<Module>
// 3. pre-run appended it, var Module = {}; ..generated code..
// 4. External script tag defines var Module.
// We need to check if Module already exists (e.g. case 3 above).
// Substitution will be replaced with actual code on later stage of the build,
// this way Closure Compiler will not mangle it (e.g. case 4. above).
// Note that if you want to run closure, and also to use Module
// after the generated code, you will need to define var Module = {};
// before the code. Then that object will be used in the code, and you
// can continue to use Module afterwards as well.
var Module = typeof Module != 'undefined' ? Module : {};
// Determine the runtime environment we are in. You can customize this by
// setting the ENVIRONMENT setting at compile time (see settings.js).
// Attempt to auto-detect the environment
var ENVIRONMENT_IS_WEB = !!globalThis.window;
var ENVIRONMENT_IS_WORKER = !!globalThis.WorkerGlobalScope;
// N.b. Electron.js environment is simultaneously a NODE-environment, but
// also a web environment.
var ENVIRONMENT_IS_NODE = globalThis.process?.versions?.node && globalThis.process?.type != 'renderer';
var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;
// --pre-jses are emitted after the Module integration code, so that they can
// refer to Module (if they choose; they can also define Module)
var arguments_ = [];
var thisProgram = './this.program';
var quit_ = (status, toThrow) => {
throw toThrow;
};
// In MODULARIZE mode _scriptName needs to be captured already at the very top of the page immediately when the page is parsed, so it is generated there
// before the page load. In non-MODULARIZE modes generate it here.
var _scriptName = globalThis.document?.currentScript?.src;
if (typeof __filename != 'undefined') { // Node
_scriptName = __filename;
} else
if (ENVIRONMENT_IS_WORKER) {
_scriptName = self.location.href;
}
// / should be present at the end if scriptDirectory is not empty
var scriptDirectory = '';
function locateFile(path) {
if (Module['locateFile']) {
return Module['locateFile'](path, scriptDirectory);
}
return scriptDirectory + path;
}
// Hooks that are implemented differently in different runtime environments.
var readAsync, readBinary;
if (ENVIRONMENT_IS_NODE) {
// These modules will usually be used on Node.js. Load them eagerly to avoid
// the complexity of lazy-loading.
var fs = require('fs');
scriptDirectory = __dirname + '/';
// include: node_shell_read.js
readBinary = (filename) => {
// We need to re-wrap file:// strings to URLs.
filename = isFileURI(filename) ? new URL(filename) : filename;
var ret = fs.readFileSync(filename);
return ret;
};
readAsync = async (filename, binary = true) => {
// See the comment in the readBinary function.
filename = isFileURI(filename) ? new URL(filename) : filename;
var ret = fs.readFileSync(filename, binary ? undefined : 'utf8');
return ret;
};
// end include: node_shell_read.js
if (process.argv.length > 1) {
thisProgram = process.argv[1].replace(/\/g, '/');
}
arguments_ = process.argv.slice(2);
// MODULARIZE will export the module in the proper place outside, we don't need to export here
if (typeof module != 'undefined') {
module['exports'] = Module;
}
quit_ = (status, toThrow) => {
process.exitCode = status;
throw toThrow;
};
} else
// Note that this includes Node.js workers when relevant (pthreads is enabled).
// Node.js workers are detected as a combination of ENVIRONMENT_IS_WORKER and
// ENVIRONMENT_IS_NODE.
if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
try {
scriptDirectory = new URL('.', _scriptName).href; // includes trailing slash
} catch {
// Must be a blob: or data: URL (e.g. blob:http://site.com/etc/etc), we cannot
// infer anything from them.
}
{
// include: web_or_worker_shell_read.js
if (ENVIRONMENT_IS_WORKER) {
readBinary = (url) => {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, false);
xhr.responseType = 'arraybuffer';
xhr.send(null);
return new Uint8Array(/** @type{!ArrayBuffer} */(xhr.response));
};
}
readAsync = async (url) => {
// Fetch has some additional restrictions over XHR, like it can't be used on a file:// url.
// See https://github.com/github/fetch/pull/92#issuecomment-140665932
// Cordova or Electron apps are typically loaded from a file:// url.
// So use XHR on webview if URL is a file URL.
if (isFileURI(url)) {
return new Promise((resolve, reject) => {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'arraybuffer';
xhr.onload = () => {
if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
resolve(xhr.response);
return;
}
reject(xhr.status);
};
xhr.onerror = reject;
xhr.send(null);
});
}
var response = await fetch(url, { credentials: 'same-origin' });
if (response.ok) {
return response.arrayBuffer();
}
throw new Error(response.status + ' : ' + response.url);
};
// end include: web_or_worker_shell_read.js
}
} else
{
}
var out = console.log.bind(console);
var err = console.error.bind(console);
// end include: shell.js
// include: preamble.js
// === Preamble library stuff ===
// Documentation for the public APIs defined in this file must be updated in:
// site/source/docs/api_reference/preamble.js.rst
// A prebuilt local version of the documentation is available at:
// site/build/text/docs/api_reference/preamble.js.txt
// You can also build docs locally as HTML or other formats in site/
// An online HTML version (which may be of a different version of Emscripten)
// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html
var wasmBinary;
// Wasm globals
//========================================
// Runtime essentials
//========================================
// whether we are quitting the application. no code should run after this.
// set in exit() and abort()
var ABORT = false;
// set by exit() and abort(). Passed to 'onExit' handler.
// NOTE: This is also used as the process return code in shell environments
// but only when noExitRuntime is false.
var EXITSTATUS;
// In STRICT mode, we only define assert() when ASSERTIONS is set. i.e. we
// don't define it at all in release modes. This matches the behaviour of
// MINIMAL_RUNTIME.
// TODO(sbc): Make this the default even without STRICT enabled.
/** @type {function(*, string=)} */
function assert(condition, text) {
if (!condition) {
// This build was created without ASSERTIONS defined. assert() should not
// ever be called in this configuration but in case there are callers in
// the wild leave this simple abort() implementation here for now.
abort(text);
}
}
/**
// include: runtime_common.js
// include: runtime_stack_check.js
// end include: runtime_stack_check.js
// include: runtime_exceptions.js
// end include: runtime_exceptions.js
// include: runtime_debug.js
// end include: runtime_debug.js
// Memory management
var
/** @type {!Int8Array} /
HEAP8,
/* @type {!Uint8Array} /
HEAPU8,
/* @type {!Int16Array} /
HEAP16,
/* @type {!Uint16Array} /
HEAPU16,
/* @type {!Int32Array} /
HEAP32,
/* @type {!Uint32Array} /
HEAPU32,
/* @type {!Float32Array} /
HEAPF32,
/* @type {!Float64Array} */
HEAPF64;
// BigInt64Array type is not correctly defined in closure
var
/** not-@type {!BigInt64Array} /
HEAP64,
/ BigUint64Array type is not correctly defined in closure
/** not-@type {!BigUint64Array} */
HEAPU64;
var runtimeInitialized = false;
function updateMemoryViews() {
var b = wasmMemory.buffer;
HEAP8 = new Int8Array(b);
HEAP16 = new Int16Array(b);
HEAPU8 = new Uint8Array(b);
HEAPU16 = new Uint16Array(b);
HEAP32 = new Int32Array(b);
HEAPU32 = new Uint32Array(b);
HEAPF32 = new Float32Array(b);
HEAPF64 = new Float64Array(b);
HEAP64 = new BigInt64Array(b);
HEAPU64 = new BigUint64Array(b);
}
// include: memoryprofiler.js
// end include: memoryprofiler.js
// end include: runtime_common.js
function preRun() {
if (Module['preRun']) {
if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];
while (Module['preRun'].length) {
addOnPreRun(Module['preRun'].shift());
}
}
// Begin ATPRERUNS hooks
callRuntimeCallbacks(onPreRuns);
// End ATPRERUNS hooks
}
function initRuntime() {
runtimeInitialized = true;
// No ATINITS hooks
wasmExports'__wasm_call_ctors';
// No ATPOSTCTORS hooks
}
function postRun() {
// PThreads reuse the runtime from the main thread.
if (Module['postRun']) {
if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];
while (Module['postRun'].length) {
addOnPostRun(Module['postRun'].shift());
}
}
// Begin ATPOSTRUNS hooks
callRuntimeCallbacks(onPostRuns);
// End ATPOSTRUNS hooks
}
/** @param {string|number=} what */
function abort(what) {
Module['onAbort']?.(what);
what = 'Aborted(' + what + ')';
// TODO(sbc): Should we remove printing and leave it up to whoever
// catches the exception?
err(what);
ABORT = true;
what += '. Build with -sASSERTIONS for more info.';
// Use a wasm runtime error, because a JS error might be seen as a foreign
// exception, which means we'd run destructors on it. We need the error to
// simply make the program stop.
// FIXME This approach does not work in Wasm EH because it currently does not assume
// all RuntimeErrors are from traps; it decides whether a RuntimeError is from
// a trap or not based on a hidden field within the object. So at the moment
// we don't have a way of throwing a wasm trap from JS. TODO Make a JS API that
// allows this in the wasm spec.
// Suppress closure compiler warning here. Closure compiler's builtin extern
// definition for WebAssembly.RuntimeError claims it takes no arguments even
// though it can.
// TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure gets fixed.
/** @suppress {checkTypes} */
var e = new WebAssembly.RuntimeError(what);
// Throw the error whether or not MODULARIZE is set because abort is used
// in code paths apart from instantiation where an exception is expected
// to be thrown when abort is called.
throw e;
}
var wasmBinaryFile;
function findWasmBinary() {
return locateFile('verify.wasm');
}
function getBinarySync(file) {
if (file == wasmBinaryFile && wasmBinary) {
return new Uint8Array(wasmBinary);
}
if (readBinary) {
return readBinary(file);
}
// Throwing a plain string here, even though it not normally advisable since
// this gets turning into an abort in instantiateArrayBuffer.
throw 'both async and sync fetching of the wasm failed';
}
async function getWasmBinary(binaryFile) {
// If we don't have the binary yet, load it asynchronously using readAsync.
if (!wasmBinary) {
// Fetch the binary using readAsync
try {
var response = await readAsync(binaryFile);
return new Uint8Array(response);
} catch {
// Fall back to getBinarySync below;
}
}
// Otherwise, getBinarySync should be able to get it synchronously
return getBinarySync(binaryFile);
}
async function instantiateArrayBuffer(binaryFile, imports) {
try {
var binary = await getWasmBinary(binaryFile);
var instance = await WebAssembly.instantiate(binary, imports);
return instance;
} catch (reason) {
err(failed to asynchronously prepare wasm: ${reason});
abort(reason);
}
}
async function instantiateAsync(binary, binaryFile, imports) {
if (!binary
// Don't use streaming for file:// delivered objects in a webview, fetch them synchronously.
&& !isFileURI(binaryFile)
// Avoid instantiateStreaming() on Node.js environment for now, as while
// Node.js v18.1.0 implements it, it does not have a full fetch()
// implementation yet.
//
// Reference:
// https://github.com/emscripten-core/emscripten/pull/16917
&& !ENVIRONMENT_IS_NODE
) {
try {
var response = fetch(binaryFile, { credentials: 'same-origin' });
var instantiationResult = await WebAssembly.instantiateStreaming(response, imports);
return instantiationResult;
} catch (reason) {
// We expect the most common failure cause to be a bad MIME type for the binary,
// in which case falling back to ArrayBuffer instantiation should work.
err(wasm streaming compile failed: ${reason});
err('falling back to ArrayBuffer instantiation');
// fall back of instantiateArrayBuffer below
};
}
return instantiateArrayBuffer(binaryFile, imports);
}
function getWasmImports() {
// prepare imports
var imports = {
'env': wasmImports,
'wasi_snapshot_preview1': wasmImports,
};
return imports;
}
// Create the wasm instance.
// Receives the wasm imports, returns the exports.
async function createWasm() {
// Load the wasm module and create an instance of using native support in the JS engine.
// handle a generated wasm instance, receiving its exports and
// performing other necessary setup
/** @param {WebAssembly.Module=} module*/
function receiveInstance(instance, module) {
wasmExports = instance.exports;
textassignWasmExports(wasmExports); updateMemoryViews(); removeRunDependency('wasm-instantiate'); return wasmExports;
}
addRunDependency('wasm-instantiate');
// Prefer streaming instantiation if available.
function receiveInstantiationResult(result) {
// 'result' is a ResultObject object which has both the module and instance.
// receiveInstance() will swap in the exports (to Module.asm) so they can be called
// TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line.
// When the regression is fixed, can restore the above PTHREADS-enabled path.
return receiveInstance(result['instance']);
}
var info = getWasmImports();
// User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback
// to manually instantiate the Wasm module themselves. This allows pages to
// run the instantiation parallel to any other async startup actions they are
// performing.
// Also pthreads and wasm workers initialize the wasm instance through this
// path.
if (Module['instantiateWasm']) {
return new Promise((resolve, reject) => {
Module['instantiateWasm'](info, (inst, mod) => {
resolve(receiveInstance(inst, mod));
});
});
}
wasmBinaryFile ??= findWasmBinary();
var result = await instantiateAsync(wasmBinary, wasmBinaryFile, info);
var exports = receiveInstantiationResult(result);
return exports;
}
// end include: preamble.js
// Begin JS library code
class ExitStatus {
name = 'ExitStatus';
constructor(status) {
this.message = Program terminated with exit(${status});
this.status = status;
}
}
var callRuntimeCallbacks = (callbacks) => {
while (callbacks.length > 0) {
// Pass the module as the first argument.
callbacks.shift()(Module);
}
};
var onPostRuns = [];
var addOnPostRun = (cb) => onPostRuns.push(cb);
var onPreRuns = [];
var addOnPreRun = (cb) => onPreRuns.push(cb);
var runDependencies = 0;
var dependenciesFulfilled = null;
var removeRunDependency = (id) => {
runDependencies--;
textModule['monitorRunDependencies']?.(runDependencies); if (runDependencies == 0) { if (dependenciesFulfilled) { var callback = dependenciesFulfilled; dependenciesFulfilled = null; callback(); // can add another dependenciesFulfilled } } };
var addRunDependency = (id) => {
runDependencies++;
textModule['monitorRunDependencies']?.(runDependencies); }; /** * @param {number} ptr * @param {string} type */
function getValue(ptr, type = 'i8') {
if (type.endsWith('')) type = '';
switch (type) {
case 'i1': return HEAP8[ptr];
case 'i8': return HEAP8[ptr];
case 'i16': return HEAP16[((ptr)>>1)];
case 'i32': return HEAP32[((ptr)>>2)];
case 'i64': return HEAP64[((ptr)>>3)];
case 'float': return HEAPF32[((ptr)>>2)];
case 'double': return HEAPF64[((ptr)>>3)];
case '*': return HEAPU32[((ptr)>>2)];
default: abort(invalid type for getValue: ${type});
}
}
var noExitRuntime = true;
text/** * @param {number} ptr * @param {number} value * @param {string} type */
function setValue(ptr, value, type = 'i8') {
if (type.endsWith('')) type = '';
switch (type) {
case 'i1': HEAP8[ptr] = value; break;
case 'i8': HEAP8[ptr] = value; break;
case 'i16': HEAP16[((ptr)>>1)] = value; break;
case 'i32': HEAP32[((ptr)>>2)] = value; break;
case 'i64': HEAP64[((ptr)>>3)] = BigInt(value); break;
case 'float': HEAPF32[((ptr)>>2)] = value; break;
case 'double': HEAPF64[((ptr)>>3)] = value; break;
case '*': HEAPU32[((ptr)>>2)] = value; break;
default: abort(invalid type for setValue: ${type});
}
}
var stackRestore = (val) => __emscripten_stack_restore(val);
var stackSave = () => _emscripten_stack_get_current();
var abortOnCannotGrowMemory = (requestedSize) => {
abort('OOM');
};
var _emscripten_resize_heap = (requestedSize) => {
var oldSize = HEAPU8.length;
// With CAN_ADDRESS_2GB or MEMORY64, pointers are already unsigned.
requestedSize >>>= 0;
abortOnCannotGrowMemory(requestedSize);
};
var getCFunc = (ident) => {
var func = Module['_' + ident]; // closure exported function
return func;
};
var writeArrayToMemory = (array, buffer) => {
HEAP8.set(array, buffer);
};
var lengthBytesUTF8 = (str) => {
var len = 0;
for (var i = 0; i < str.length; ++i) {
// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code
// unit, not a Unicode code point of the character! So decode
// UTF16->UTF32->UTF8.
// See http://unicode.org/faq/utf_bom.html#utf16-3
var c = str.charCodeAt(i); // possibly a lead surrogate
if (c <= 0x7F) {
len++;
} else if (c <= 0x7FF) {
len += 2;
} else if (c >= 0xD800 && c <= 0xDFFF) {
len += 4; ++i;
} else {
len += 3;
}
}
return len;
};
var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => {
// Parameter maxBytesToWrite is not optional. Negative values, 0, null,
// undefined and false each don't write out any bytes.
if (!(maxBytesToWrite > 0))
return 0;
textvar startIdx = outIdx; var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. for (var i = 0; i < str.length; ++i) { // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description // and https://www.ietf.org/rfc/rfc2279.txt // and https://tools.ietf.org/html/rfc3629 var u = str.codePointAt(i); if (u <= 0x7F) { if (outIdx >= endIdx) break; heap[outIdx++] = u; } else if (u <= 0x7FF) { if (outIdx + 1 >= endIdx) break; heap[outIdx++] = 0xC0 | (u >> 6); heap[outIdx++] = 0x80 | (u & 63); } else if (u <= 0xFFFF) { if (outIdx + 2 >= endIdx) break; heap[outIdx++] = 0xE0 | (u >> 12); heap[outIdx++] = 0x80 | ((u >> 6) & 63); heap[outIdx++] = 0x80 | (u & 63); } else { if (outIdx + 3 >= endIdx) break; heap[outIdx++] = 0xF0 | (u >> 18); heap[outIdx++] = 0x80 | ((u >> 12) & 63); heap[outIdx++] = 0x80 | ((u >> 6) & 63); heap[outIdx++] = 0x80 | (u & 63); // Gotcha: if codePoint is over 0xFFFF, it is represented as a surrogate pair in UTF-16. // We need to manually skip over the second code unit for correct iteration. i++; } } // Null-terminate the pointer to the buffer. heap[outIdx] = 0; return outIdx - startIdx; };
var stringToUTF8 = (str, outPtr, maxBytesToWrite) => {
return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
};
var stackAlloc = (sz) => __emscripten_stack_alloc(sz);
var stringToUTF8OnStack = (str) => {
var size = lengthBytesUTF8(str) + 1;
var ret = stackAlloc(size);
stringToUTF8(str, ret, size);
return ret;
};
var UTF8Decoder = globalThis.TextDecoder && new TextDecoder();
var findStringEnd = (heapOrArray, idx, maxBytesToRead, ignoreNul) => {
var maxIdx = idx + maxBytesToRead;
if (ignoreNul) return maxIdx;
// TextDecoder needs to know the byte length in advance, it doesn't stop on
// null terminator by itself.
// As a tiny code save trick, compare idx against maxIdx using a negation,
// so that maxBytesToRead=undefined/NaN means Infinity.
while (heapOrArray[idx] && !(idx >= maxIdx)) ++idx;
return idx;
};
text/** * Given a pointer 'idx' to a null-terminated UTF8-encoded string in the given * array that contains uint8 values, returns a copy of that string as a * Javascript String object. * heapOrArray is either a regular array, or a JavaScript typed array view. * @param {number=} idx * @param {number=} maxBytesToRead * @param {boolean=} ignoreNul - If true, the function will not stop on a NUL character. * @return {string} */
var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead, ignoreNul) => {
textvar endPtr = findStringEnd(heapOrArray, idx, maxBytesToRead, ignoreNul); // When using conditional TextDecoder, skip it for short strings as the overhead of the native call is not worth it. if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); } var str = ''; while (idx < endPtr) { // For UTF8 byte structure, see: // http://en.wikipedia.org/wiki/UTF-8#Description // https://www.ietf.org/rfc/rfc2279.txt // https://tools.ietf.org/html/rfc3629 var u0 = heapOrArray[idx++]; if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } var u1 = heapOrArray[idx++] & 63; if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } var u2 = heapOrArray[idx++] & 63; if ((u0 & 0xF0) == 0xE0) { u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; } else { u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heapOrArray[idx++] & 63); } if (u0 < 0x10000) { str += String.fromCharCode(u0); } else { var ch = u0 - 0x10000; str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); } } return str; }; /** * Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the * emscripten HEAP, returns a copy of that string as a Javascript String object. * * @param {number} ptr * @param {number=} maxBytesToRead - An optional length that specifies the * maximum number of bytes to read. You can omit this parameter to scan the * string until the first 0 byte. If maxBytesToRead is passed, and the string * at [ptr, ptr+maxBytesToReadr[ contains a null byte in the middle, then the * string will cut short at that byte index. * @param {boolean=} ignoreNul - If true, the function will not stop on a NUL character. * @return {string} */
var UTF8ToString = (ptr, maxBytesToRead, ignoreNul) => {
return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead, ignoreNul) : '';
};
text/** * @param {string|null=} returnType * @param {Array=} argTypes * @param {Array=} args * @param {Object=} opts */
var ccall = (ident, returnType, argTypes, args, opts) => {
// For fast lookup of conversion functions
var toC = {
'string': (str) => {
var ret = 0;
if (str !== null && str !== undefined && str !== 0) { // null string
ret = stringToUTF8OnStack(str);
}
return ret;
},
'array': (arr) => {
var ret = stackAlloc(arr.length);
writeArrayToMemory(arr, ret);
return ret;
}
};
textfunction convertReturnValue(ret) { if (returnType === 'string') { return UTF8ToString(ret); } if (returnType === 'boolean') return Boolean(ret); return ret; } var func = getCFunc(ident); var cArgs = []; var stack = 0; if (args) { for (var i = 0; i < args.length; i++) { var converter = toC[argTypes[i]]; if (converter) { if (stack === 0) stack = stackSave(); cArgs[i] = converter(args[i]); } else { cArgs[i] = args[i]; } } } var ret = func(...cArgs); function onDone(ret) { if (stack !== 0) stackRestore(stack); return convertReturnValue(ret); } ret = onDone(ret); return ret; }; /** * @param {string=} returnType * @param {Array=} argTypes * @param {Object=} opts */
var cwrap = (ident, returnType, argTypes, opts) => {
// When the function takes numbers and returns a number, we can just return
// the original function
var numericArgs = !argTypes || argTypes.every((type) => type === 'number' || type === 'boolean');
var numericRet = returnType !== 'string';
if (numericRet && numericArgs && !opts) {
return getCFunc(ident);
}
return (...args) => ccall(ident, returnType, argTypes, args, opts);
};
// End JS library code
// include: postlibrary.js
// This file is included after the automatically-generated JS library code
// but before the wasm module is created.
{
// Begin ATMODULES hooks
if (Module['noExitRuntime']) noExitRuntime = Module['noExitRuntime'];
if (Module['print']) out = Module['print'];
if (Module['printErr']) err = Module['printErr'];
if (Module['wasmBinary']) wasmBinary = Module['wasmBinary'];
// End ATMODULES hooks
if (Module['arguments']) arguments_ = Module['arguments'];
if (Module['thisProgram']) thisProgram = Module['thisProgram'];
if (Module['preInit']) {
if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];
while (Module['preInit'].length > 0) {
Module['preInit'].shift()();
}
}
}
// Begin runtime exports
Module['ccall'] = ccall;
Module['cwrap'] = cwrap;
Module['setValue'] = setValue;
Module['UTF8ToString'] = UTF8ToString;
// End runtime exports
// Begin JS library exports
// End JS library exports
// end include: postlibrary.js
// Imports from the Wasm binary.
var _verify_human,
_malloc,
_free,
__emscripten_stack_restore,
__emscripten_stack_alloc,
_emscripten_stack_get_current,
memory,
__indirect_function_table,
wasmMemory;
function assignWasmExports(wasmExports) {
_verify_human = Module['_verify_human'] = wasmExports['verify_human'];
_malloc = Module['_malloc'] = wasmExports['malloc'];
_free = Module['_free'] = wasmExports['free'];
__emscripten_stack_restore = wasmExports['_emscripten_stack_restore'];
__emscripten_stack_alloc = wasmExports['_emscripten_stack_alloc'];
_emscripten_stack_get_current = wasmExports['emscripten_stack_get_current'];
memory = wasmMemory = wasmExports['memory'];
__indirect_function_table = wasmExports['__indirect_function_table'];
}
var wasmImports = {
/** @export */
emscripten_resize_heap: _emscripten_resize_heap
};
// include: postamble.js
// === Auto-generated postamble setup entry stuff ===
function run() {
if (runDependencies > 0) {
dependenciesFulfilled = run;
return;
}
preRun();
// a preRun added a dependency, run will be called later
if (runDependencies > 0) {
dependenciesFulfilled = run;
return;
}
function doRun() {
// run may have just been called through dependencies being fulfilled just in this very frame,
// or while the async setStatus time below was happening
Module['calledRun'] = true;
textif (ABORT) return; initRuntime(); Module['onRuntimeInitialized']?.(); postRun();
}
if (Module['setStatus']) {
Module'setStatus';
setTimeout(() => {
setTimeout(() => Module'setStatus', 1);
doRun();
}, 1);
} else
{
doRun();
}
}
var wasmExports;
// With async instantation wasmExports is assigned asynchronously when the
// instance is received.
createWasm();
run();
// end include: postamble.js
以下是wasm反编译的wat文件的核心部分:
local.get 15
local.get 2
f64.convert_i32_u
local.tee 11
f64.div
i64.trunc_sat_f64_u
i64.const 32
i64.shl
i64.const 281470681743360
i64.and
local.get 11
f64.const 0x1.47ae147ae147bp-3 (;=0.16;)
f64.mul
i64.trunc_sat_f64_u
i64.const 48
i64.shl
i64.or
local.get 14
local.get 11
f64.div
local.tee 12
local.get 12
f64.add
i64.trunc_sat_f64_u
i64.const 16
i64.shl
i64.const 4294901760
i64.and
i64.or
local.get 13
local.get 11
f64.div
local.tee 11
local.get 11
f64.add
i64.trunc_sat_f64_u
i64.const 65535
i64.and
i64.or
local.set 16
i32.const 0
local.set 3
loop ;; label = @2
local.get 3
local.tee 3
local.get 3
i32.load8_u offset=1024
local.get 16
i64.const 6364136223846793005
i64.mul
i64.const 1442695040888963407
i64.add
local.tee 16
i64.const 56
i64.shr_u
i32.wrap_i64
i32.xor
i32.store8 offset=1104
local.get 16
local.set 16
local.get 3
i32.const 1
i32.add
local.tee 1
local.set 3
local.get 1
i32.const 46
i32.ne
br_if 0 (;@2;)
end
i32.const 0
i32.const 0
i32.store8 offset=1150
i32.const 1104
local.set 3
end
我已经把 verify_human 的核心逻辑抽出来了:它用你的轨迹点(x/y i32 数组 + 长度)算出一个 64-bit seed,然后用这个 seed 跑 LCG 去 XOR 解密内置密文,解出来的明文如果以 UniCTF 开头就算拿到 flag。
先帮我写个脚本得到特征值
下面给你一个最省事的方案:** 不需要把 local13/14/15 的前半段计算全逆出来**——直接在 verify_human 里 seed 刚算完(local.set 16)的位置把 seed 写到线性内存,然后用脚本读出来并拆成 4 个 16-bit “特征值”。
先把 wasm 转 wat(需要 WABT 工具):
bashwasm2wat verify.wasm -o verify.wat
然后用下面这个脚本自动插入 i64.store(把 seed 写到地址 4096,8 字节对齐,安全):
python# patch_seed_store.py from pathlib import Path SEED_ADDR = 4096 # 你也可以换成 8192/16384 等,只要别撞到数据区 wat_in = Path("verify.wat") wat_out = Path("verify_patched.wat") s = wat_in.read_text(encoding="utf-8") # 尽量限定在 verify_human 附近再找 local.set 16 anchor = s.find("verify_human") if anchor == -1: anchor = 0 pos = s.find("local.set 16", anchor) if pos == -1: raise SystemExit("没找到 'local.set 16',请确认 verify.wat 里是否有该片段。") insert = ( "local.set 16\n" f" i32.const {SEED_ADDR}\n" " local.get 16\n" " i64.store\n" ) s2 = s[:pos] + insert + s[pos + len("local.set 16\n"):] wat_out.write_text(s2, encoding="utf-8") print(f"[+] wrote {wat_out}")
执行:
bashpython3 patch_seed_store.py wat2wasm verify_patched.wat -o verify_patched.wasm
准备一个 points.json:
json{"x":[12,13,14], "y":[200,201,199]}
然后用这个脚本(dump_features.js):
js// dump_features.js const fs = require("fs"); const crypto = require("crypto"); const SEED_ADDR = 4096; function readCString(u8, ptr) { let end = ptr; while (u8[end] !== 0) end++; return new TextDecoder("utf-8").decode(u8.slice(ptr, end)); } (async () => { const wasm = fs.readFileSync("verify_patched.wasm"); // 你的 verify.js 里把 env 和 wasi_snapshot_preview1 都指向同一份 imports const imports = { env: { emscripten_resize_heap: () => { throw new Error("emscripten_resize_heap called (unexpected)"); }, }, wasi_snapshot_preview1: { emscripten_resize_heap: () => { throw new Error("emscripten_resize_heap called (unexpected)"); }, }, }; const { instance } = await WebAssembly.instantiate(wasm, imports); const { memory, malloc, free, verify_human } = instance.exports; const pointsPath = process.argv[2] || "points.json"; const points = JSON.parse(fs.readFileSync(pointsPath, "utf-8")); const x = points.x || []; const y = points.y || []; if (x.length !== y.length) throw new Error("x/y length mismatch"); if (x.length === 0) throw new Error("empty points"); const len = x.length; // 分配并写入 i32 数组 const xPtr = Number(malloc(len * 4)); const yPtr = Number(malloc(len * 4)); new Int32Array(memory.buffer, xPtr, len).set(x.map(v => v | 0)); new Int32Array(memory.buffer, yPtr, len).set(y.map(v => v | 0)); const resPtr = Number(verify_human(xPtr, yPtr, len)); const u8 = new Uint8Array(memory.buffer); const dv = new DataView(memory.buffer); const resultStr = readCString(u8, resPtr); // i64.store 是 little-endian const lo = BigInt(dv.getUint32(SEED_ADDR, true)); const hi = BigInt(dv.getUint32(SEED_ADDR + 4, true)); const seed = lo | (hi << 32n); // 按你贴的 packing:高 16 / 次高 16 / 次低 16 / 低 16 const f0 = Number((seed >> 48n) & 0xFFFFn); const f1 = Number((seed >> 32n) & 0xFFFFn); const f2 = Number((seed >> 16n) & 0xFFFFn); const f3 = Number(seed & 0xFFFFn); const sum = f0 + f1 + f2 + f3; // 题面更新:UniCTF{md5(UniCTF{abcd}44)} const md5 = crypto.createHash("md5").update(resultStr + String(sum), "utf8").digest("hex"); const finalFlag = `UniCTF{${md5}}`; console.log("resultStr =", resultStr); console.log("seed =", "0x" + seed.toString(16).padStart(16, "0")); console.log("features =", [f0, f1, f2, f3]); console.log("sum =", sum); console.log("final =", finalFlag); free(xPtr); free(yPtr); })().catch((e) => { console.error(e); process.exit(1); });
运行:
bashnode dump_features.js points.json
你现在页面里的 points 在闭包里,外面拿不到。最简单改一行:
在 DOMContentLoaded 里 let points = { x: [], y: [] }; 后面加:
jswindow.__points = points;
然后你画完之后,控制台:
jscopy(JSON.stringify(window.__points))
粘贴保存成 points.json 即可。
如果你把 verify.wat 里 verify_human 的完整函数(或者至少 local13/14/15 的计算那段)也贴出来,我还能帮你把这 4 个 16-bit 值分别对应到“速度/抖动/复杂度/长度”等更可读的特征定义(而不是只给 raw 值)。
(func (;2;) (type 2) (param i32 i32 i32) (result i32)
(local i32 f64 f64 f64 f64 f64 i32 i32 f64 f64 f64 f64 f64 i64)
i32.const 1070
local.set 3
block ;; label = @1
local.get 2
i32.const 50
i32.lt_s
br_if 0 (;@1;)
f64.const 0x0p+0 (;=0;)
local.set 4
f64.const 0x0p+0 (;=0;)
local.set 5
f64.const 0x0p+0 (;=0;)
local.set 6
f64.const 0x0p+0 (;=0;)
local.set 7
f64.const 0x0p+0 (;=0;)
local.set 8
i32.const 1
local.set 3
loop ;; label = @2
local.get 0
local.get 3
local.tee 9
i32.const 2
i32.shl
local.tee 3
i32.add
i32.load
local.get 0
local.get 3
i32.const -4
i32.add
local.tee 10
i32.add
i32.load
i32.sub
f64.convert_i32_s
local.tee 11
local.get 7
f64.sub
local.tee 12
local.get 12
f64.mul
local.get 4
f64.add
local.tee 13
local.set 4
local.get 1
local.get 3
i32.add
i32.load
local.get 1
local.get 10
i32.add
i32.load
i32.sub
f64.convert_i32_s
local.tee 12
local.get 8
f64.sub
local.tee 7
local.get 7
f64.mul
local.get 5
f64.add
local.tee 14
local.set 5
local.get 6
local.get 11
local.get 11
f64.mul
local.get 12
local.get 12
f64.mul
f64.add
f64.sqrt
f64.add
local.tee 15
local.set 6
local.get 11
local.set 7
local.get 12
local.set 8
local.get 9
i32.const 1
i32.add
local.tee 9
local.set 3
local.get 9
local.get 2
i32.ne
br_if 0 (;@2;)
end
local.get 15
local.get 2
f64.convert_i32_u
local.tee 11
f64.div
i64.trunc_sat_f64_u
i64.const 32
i64.shl
i64.const 281470681743360
i64.and
local.get 11
f64.const 0x1.47ae147ae147bp-3 (;=0.16;)
f64.mul
i64.trunc_sat_f64_u
i64.const 48
i64.shl
i64.or
local.get 14
local.get 11
f64.div
local.tee 12
local.get 12
f64.add
i64.trunc_sat_f64_u
i64.const 16
i64.shl
i64.const 4294901760
i64.and
i64.or
local.get 13
local.get 11
f64.div
local.tee 11
local.get 11
f64.add
i64.trunc_sat_f64_u
i64.const 65535
i64.and
i64.or
local.set 16
i32.const 0
local.set 3
loop ;; label = @2
local.get 3
local.tee 3
local.get 3
i32.load8_u offset=1024
local.get 16
i64.const 6364136223846793005
i64.mul
i64.const 1442695040888963407
i64.add
local.tee 16
i64.const 56
i64.shr_u
i32.wrap_i64
i32.xor
i32.store8 offset=1104
local.get 16
local.set 16
local.get 3
i32.const 1
i32.add
local.tee 1
local.set 3
local.get 1
i32.const 46
i32.ne
br_if 0 (;@2;)
end
i32.const 0
i32.const 0
i32.store8 offset=1150
i32.const 1104
local.set 3
end
local.get 3)
这是完整函数,你觉得爆破出特征值可行吗
pythonconst=281470681743360 hex(const) '0xffff00000000'
pythonhex(4294901760) '0xffff0000'
可行,但完全没必要爆破——你这份 wat 已经把“生物特征值”写死成从轨迹点直接算出来的 4 个 16-bit 值了,确定性计算即可。
令点数 N = len(注意 wasm 用 N 做分母,不是 N-1)。
对 i = 1..N-1:
dx = x[i] - x[i-1]dy = y[i] - y[i-1]ax = dx - prev_dx(prev_dx 初始为 0)ay = dy - prev_dy(prev_dy 初始为 0)累计:
L += sqrt(dx^2 + dy^2) (总路径长度)SX += ax^2 (x 方向“加速度变化能量”)SY += ay^2 (y 方向“加速度变化能量”)然后 4 个 16-bit 特征值(都等价于 int(trunc toward 0),再取低 16 位):
f0 = int(0.16 * N) & 0xFFFF (写到 seed 的 bits 48..63)f1 = int(L / N) & 0xFFFF (bits 32..47)f2 = int(2 * (SY / N)) & 0xFFFF (bits 16..31)f3 = int(2 * (SX / N)) & 0xFFFF (bits 0..15)seed 组装就是:
seed = (f0<<48) | (f1<<32) | (f2<<16) | f3
特征值之和:sum = f0+f1+f2+f3
输入 points.json(格式同你前面:{"x":[...],"y":[...]}):
python# calc_features.py import json, math, sys, hashlib def calc_features(x, y): assert len(x) == len(y) N = len(x) prev_dx = 0.0 prev_dy = 0.0 SX = 0.0 SY = 0.0 L = 0.0 for i in range(1, N): dx = float(int(x[i]) - int(x[i-1])) dy = float(int(y[i]) - int(y[i-1])) ax = dx - prev_dx ay = dy - prev_dy SX += ax * ax SY += ay * ay L += math.sqrt(dx*dx + dy*dy) prev_dx = dx prev_dy = dy f0 = (int(0.16 * N) ) & 0xFFFF f1 = (int(L / N) ) & 0xFFFF f2 = (int(2.0 * (SY / N)) ) & 0xFFFF f3 = (int(2.0 * (SX / N)) ) & 0xFFFF seed = (f0 << 48) | (f1 << 32) | (f2 << 16) | f3 s = f0 + f1 + f2 + f3 return (f0, f1, f2, f3, seed, s) if __name__ == "__main__": points_path = sys.argv[1] if len(sys.argv) > 1 else "points.json" result_str = sys.argv[2] if len(sys.argv) > 2 else None # 例如 UniCTF{abcd} pts = json.load(open(points_path, "r", encoding="utf-8")) f0,f1,f2,f3,seed,s = calc_features(pts["x"], pts["y"]) print("N =", len(pts["x"])) print("features=", [f0,f1,f2,f3]) print("sum =", s) print("seed =", f"0x{seed:016x}") if result_str is not None: md5 = hashlib.md5((result_str + str(s)).encode("utf-8")).hexdigest() print("final =", f"UniCTF{{{md5}}}")
用法:
bashpython3 calc_features.py points.json "UniCTF{abcd}"
UniCTF... 的 seed:不太可行(除非你再引入约束/数学解法)。f2/f3 本质上在 &0xFFFF 后几乎可以覆盖全空间,朴素枚举会很大(动辄 2^32 级别起步)。UniCTF 恢复 seed → 走“LCG 高位泄露求解”(SMT/格/分支剪枝),这属于另一套解法,比暴力枚举 2^64 强很多。如果你把 verify.wasm 里 offset=1024 的 46 字节密文(或者完整 data 段)也贴出来,我可以给你写一个“从已知前缀 UniCTF 直接恢复 seed → 拆出 4 个特征值”的脚本(不需要画图、不需要 points)。
aDeregisterFram db '__deregister_frame_info',0
.rdata:00007FF71A6EC029 ; DATA XREF: sub_7FF71A6E15E0+48↑o
.rdata:00007FF71A6EC041 align 20h
.rdata:00007FF71A6EC060 db 10h
.rdata:00007FF71A6EC061 db 0
.rdata:00007FF71A6EC062 db 0
.rdata:00007FF71A6EC063 db 0
.rdata:00007FF71A6EC064 db 0Ah
.rdata:00007FF71A6EC065 db 0
.rdata:00007FF71A6EC066 db 0
.rdata:00007FF71A6EC067 db 0
.rdata:00007FF71A6EC068 db 10h
.rdata:00007FF71A6EC069 db 0
.rdata:00007FF71A6EC06A db 0
.rdata:00007FF71A6EC06B db 0
.rdata:00007FF71A6EC06C db 4
.rdata:00007FF71A6EC06D db 0
.rdata:00007FF71A6EC06E db 0
.rdata:00007FF71A6EC06F db 0
.rdata:00007FF71A6EC070 db 4
.rdata:00007FF71A6EC071 db 0
.rdata:00007FF71A6EC072 db 0
.rdata:00007FF71A6EC073 db 0
.rdata:00007FF71A6EC074 db 0
.rdata:00007FF71A6EC075 db 0
.rdata:00007FF71A6EC076 db 0
.rdata:00007FF71A6EC077 db 0
.rdata:00007FF71A6EC078 db 0
.rdata:00007FF71A6EC079 db 0
.rdata:00007FF71A6EC07A db 0
.rdata:00007FF71A6EC07B db 0
.rdata:00007FF71A6EC07C db 0
.rdata:00007FF71A6EC07D db 0
.rdata:00007FF71A6EC07E db 0
.rdata:00007FF71A6EC07F db 0
.rdata:00007FF71A6EC080 unk_7FF71A6EC080 db 45h ; E ; DATA XREF: main+1EA1↑o
.rdata:00007FF71A6EC080 ; main+2358↑o ...
.rdata:00007FF71A6EC081 db 25h ; %
.rdata:00007FF71A6EC082 db 95h
.rdata:00007FF71A6EC083 db 0F4h
.rdata:00007FF71A6EC084 db 49h ; I
.rdata:00007FF71A6EC085 db 7Fh ;
.rdata:00007FF71A6EC086 db 39h ; 9
.rdata:00007FF71A6EC087 db 0FEh
.rdata:00007FF71A6EC088 db 2Bh ; +
.rdata:00007FF71A6EC089 db 5
.rdata:00007FF71A6EC08A db 0D7h
.rdata:00007FF71A6EC08B db 64h ; d
.rdata:00007FF71A6EC08C db 0D1h
.rdata:00007FF71A6EC08D db 9Ch
.rdata:00007FF71A6EC08E db 5Bh ; [
.rdata:00007FF71A6EC08F db 7Ch ; |
.rdata:00007FF71A6EC090 db 0A7h
.rdata:00007FF71A6EC091 db 0D2h
.rdata:00007FF71A6EC092 db 0ACh
.rdata:00007FF71A6EC093 db 1Dh
.rdata:00007FF71A6EC094 db 10h
.rdata:00007FF71A6EC095 db 0CBh
.rdata:00007FF71A6EC096 db 0E6h
.rdata:00007FF71A6EC097 db 0EBh
.rdata:00007FF71A6EC098 db 0A0h
.rdata:00007FF71A6EC099 db 15h
.rdata:00007FF71A6EC09A db 2
.rdata:00007FF71A6EC09B db 8
.rdata:00007FF71A6EC09C db 21h ; !
.rdata:00007FF71A6EC09D db 96h
.rdata:00007FF71A6EC09E db 65h ; e
.rdata:00007FF71A6EC09F db 11h
.rdata:00007FF71A6EC0A0 db 0EFh
.rdata:00007FF71A6EC0A1 db 63h ; c
.rdata:00007FF71A6EC0A2 db 0C0h
.rdata:00007FF71A6EC0A3 db 94h
.rdata:00007FF71A6EC0A4 db 0EAh
.rdata:00007FF71A6EC0A5 db 70h ; p
.rdata:00007FF71A6EC0A6 db 84h
.rdata:00007FF71A6EC0A7 db 0B8h
.rdata:00007FF71A6EC0A8 db 0F1h
.rdata:00007FF71A6EC0A9 db 56h ; V
.rdata:00007FF71A6EC0AA db 7Bh ; {
.rdata:00007FF71A6EC0AB db 23h ; #
.rdata:00007FF71A6EC0AC db 4Dh ; M
.rdata:00007FF71A6EC0AD db 37h ; 7
.rdata:00007FF71A6EC0AE db 0AFh
.rdata:00007FF71A6EC0AF db 0C8h
.rdata:00007FF71A6EC0B0 db 46h ; F
.rdata:00007FF71A6EC0B1 db 8Eh
.rdata:00007FF71A6EC0B2 db 13h
.rdata:00007FF71A6EC0B3 db 0ADh
.rdata:00007FF71A6EC0B4 db 2Ah ; *
.rdata:00007FF71A6EC0B5 db 1Ch
.rdata:00007FF71A6EC0B6 db 4Bh ; K
.rdata:00007FF71A6EC0B7 db 0B1h
.rdata:00007FF71A6EC0B8 db 47h ; G
.rdata:00007FF71A6EC0B9 db 2Dh ; -
.rdata:00007FF71A6EC0BA db 2Eh ; .
.rdata:00007FF71A6EC0BB db 0A2h
.rdata:00007FF71A6EC0BC db 3Bh ; ;
.rdata:00007FF71A6EC0BD db 9Ah
.rdata:00007FF71A6EC0BE db 8Ch
.rdata:00007FF71A6EC0BF db 0F7h
.rdata:00007FF71A6EC0C0 db 3Eh ; >
.rdata:00007FF71A6EC0C1 db 51h ; Q
.rdata:00007FF71A6EC0C2 db 48h ; H
.rdata:00007FF71A6EC0C3 db 8Dh
.rdata:00007FF71A6EC0C4 db 0B4h
.rdata:00007FF71A6EC0C5 db 2Fh ; /
.rdata:00007FF71A6EC0C6 db 0EDh
.rdata:00007FF71A6EC0C7 db 0D5h
.rdata:00007FF71A6EC0C8 db 83h
.rdata:00007FF71A6EC0C9 db 42h ; B
.rdata:00007FF71A6EC0CA db 69h ; i
.rdata:00007FF71A6EC0CB db 34h ; 4
.rdata:00007FF71A6EC0CC db 86h
.rdata:00007FF71A6EC0CD db 6Eh ; n
.rdata:00007FF71A6EC0CE db 0E3h
.rdata:00007FF71A6EC0CF db 36h ; 6
.rdata:00007FF71A6EC0D0 db 0FFh
.rdata:00007FF71A6EC0D1 db 0A3h
.rdata:00007FF71A6EC0D2 db 33h ; 3
.rdata:00007FF71A6EC0D3 db 59h ; Y
.rdata:00007FF71A6EC0D4 db 0A6h
.rdata:00007FF71A6EC0D5 db 0Eh
.rdata:00007FF71A6EC0D6 db 8Ah
.rdata:00007FF71A6EC0D7 db 7
.rdata:00007FF71A6EC0D8 db 0B7h
.rdata:00007FF71A6EC0D9 db 0Bh
.rdata:00007FF71A6EC0DA db 0AAh
.rdata:00007FF71A6EC0DB db 0BEh
.rdata:00007FF71A6EC0DC db 0CAh
.rdata:00007FF71A6EC0DD db 87h
.rdata:00007FF71A6EC0DE db 1Fh
.rdata:00007FF71A6EC0DF db 79h ; y
.rdata:00007FF71A6EC0E0 db 0C3h
.rdata:00007FF71A6EC0E1 db 0ECh
.rdata:00007FF71A6EC0E2 db 75h ; u
.rdata:00007FF71A6EC0E3 db 0DCh
.rdata:00007FF71A6EC0E4 db 68h ; h
.rdata:00007FF71A6EC0E5 db 6
.rdata:00007FF71A6EC0E6 db 58h ; X
.rdata:00007FF71A6EC0E7 db 0C4h
.rdata:00007FF71A6EC0E8 db 29h ; )
.rdata:00007FF71A6EC0E9 db 89h
.rdata:00007FF71A6EC0EA db 54h ; T
.rdata:00007FF71A6EC0EB db 0A8h
.rdata:00007FF71A6EC0EC db 3Ch ; <
.rdata:00007FF71A6EC0ED db 0BBh
.rdata:00007FF71A6EC0EE db 4Ah ; J
.rdata:00007FF71A6EC0EF db 1Eh
.rdata:00007FF71A6EC0F0 db 1Bh
.rdata:00007FF71A6EC0F1 db 0E1h
.rdata:00007FF71A6EC0F2 db 0BDh
.rdata:00007FF71A6EC0F3 db 71h ; q
.rdata:00007FF71A6EC0F4 db 0DBh
.rdata:00007FF71A6EC0F5 db 52h ; R
.rdata:00007FF71A6EC0F6 db 41h ; A
.rdata:00007FF71A6EC0F7 db 0E2h
.rdata:00007FF71A6EC0F8 db 0DAh
.rdata:00007FF71A6EC0F9 db 0D3h
.rdata:00007FF71A6EC0FA db 0F9h
.rdata:00007FF71A6EC0FB db 14h
.rdata:00007FF71A6EC0FC db 26h ; &
.rdata:00007FF71A6EC0FD db 7Ah ; z
.rdata:00007FF71A6EC0FE db 53h ; S
.rdata:00007FF71A6EC0FF db 9Bh
.rdata:00007FF71A6EC100 db 81h
.rdata:00007FF71A6EC101 db 0CFh
.rdata:00007FF71A6EC102 db 0Ch
.rdata:00007FF71A6EC103 db 35h ; 5
.rdata:00007FF71A6EC104 db 40h ; @
.rdata:00007FF71A6EC105 db 9Eh
.rdata:00007FF71A6EC106 db 0CEh
.rdata:00007FF71A6EC107 db 5Dh ; ]
.rdata:00007FF71A6EC108 db 67h ; g
.rdata:00007FF71A6EC109 db 0C1h
.rdata:00007FF71A6EC10A db 0FCh
.rdata:00007FF71A6EC10B db 6Bh ; k
.rdata:00007FF71A6EC10C db 6Fh ; o
.rdata:00007FF71A6EC10D db 93h
.rdata:00007FF71A6EC10E db 0FBh
.rdata:00007FF71A6EC10F db 9Dh
.rdata:00007FF71A6EC110 db 8Bh
.rdata:00007FF71A6EC111 db 30h ; 0
.rdata:00007FF71A6EC112 db 76h ; v
.rdata:00007FF71A6EC113 db 4Fh ; O
.rdata:00007FF71A6EC114 db 5Ch ;
.rdata:00007FF71A6EC115 db 6Ah ; j
.rdata:00007FF71A6EC116 db 0F0h
.rdata:00007FF71A6EC117 db 1Ah
.rdata:00007FF71A6EC118 db 1
.rdata:00007FF71A6EC119 db 0F2h
.rdata:00007FF71A6EC11A db 0F3h
.rdata:00007FF71A6EC11B db 7Eh ; ~
.rdata:00007FF71A6EC11C db 0C6h
.rdata:00007FF71A6EC11D db 28h ; (
.rdata:00007FF71A6EC11E db 0F5h
.rdata:00007FF71A6EC11F db 0E7h
.rdata:00007FF71A6EC120 db 99h
.rdata:00007FF71A6EC121 db 0F8h
.rdata:00007FF71A6EC122 db 0C7h
.rdata:00007FF71A6EC123 db 74h ; t
.rdata:00007FF71A6EC124 db 0FDh
.rdata:00007FF71A6EC125 db 82h
.rdata:00007FF71A6EC126 db 0E8h
.rdata:00007FF71A6EC127 db 0EEh
.rdata:00007FF71A6EC128 db 9
.rdata:00007FF71A6EC129 db 55h ; U
.rdata:00007FF71A6EC12A db 77h ; w
.rdata:00007FF71A6EC12B db 44h ; D
.rdata:00007FF71A6EC12C db 22h ; "
.rdata:00007FF71A6EC12D db 0AEh
.rdata:00007FF71A6EC12E db 5Eh ; ^
.rdata:00007FF71A6EC12F db 0D8h
.rdata:00007FF71A6EC130 db 12h
.rdata:00007FF71A6EC131 db 4Ch ; L
.rdata:00007FF71A6EC132 db 88h
.rdata:00007FF71A6EC133 db 97h
.rdata:00007FF71A6EC134 db 0E9h
.rdata:00007FF71A6EC135 db 3Fh ; ?
.rdata:00007FF71A6EC136 db 38h ; 8
.rdata:00007FF71A6EC137 db 98h
.rdata:00007FF71A6EC138 db 0DEh
.rdata:00007FF71A6EC139 db 6Ch ; l
.rdata:00007FF71A6EC13A db 0CDh
.rdata:00007FF71A6EC13B db 50h ; P
.rdata:00007FF71A6EC13C db 0E0h
.rdata:00007FF71A6EC13D db 6Dh ; m
.rdata:00007FF71A6EC13E db 32h ; 2
.rdata:00007FF71A6EC13F db 43h ; C
.rdata:00007FF71A6EC140 db 61h ; a
.rdata:00007FF71A6EC141 db 0A1h
.rdata:00007FF71A6EC142 db 0Ah
.rdata:00007FF71A6EC143 db 0B2h
.rdata:00007FF71A6EC144 db 5Fh ; _
.rdata:00007FF71A6EC145 db 0DDh
.rdata:00007FF71A6EC146 db 9Fh
.rdata:00007FF71A6EC147 db 0E4h
.rdata:00007FF71A6EC148 db 7Dh ; }
.rdata:00007FF71A6EC149 db 0B0h
.rdata:00007FF71A6EC14A db 16h
.rdata:00007FF71A6EC14B db 3Dh ; =
.rdata:00007FF71A6EC14C db 2Ch ; ,
.rdata:00007FF71A6EC14D db 0FAh
.rdata:00007FF71A6EC14E db 0C2h
.rdata:00007FF71A6EC14F db 0A4h
.rdata:00007FF71A6EC150 db 0B9h
.rdata:00007FF71A6EC151 db 66h ; f
.rdata:00007FF71A6EC152 db 0BAh
.rdata:00007FF71A6EC153 db 0D0h
.rdata:00007FF71A6EC154 db 92h
.rdata:00007FF71A6EC155 db 0D6h
.rdata:00007FF71A6EC156 db 78h ; x
.rdata:00007FF71A6EC157 db 0DFh
.rdata:00007FF71A6EC158 db 0ABh
.rdata:00007FF71A6EC159 db 0B5h
.rdata:00007FF71A6EC15A db 27h ; '
.rdata:00007FF71A6EC15B db 8Fh
.rdata:00007FF71A6EC15C db 0CCh
.rdata:00007FF71A6EC15D db 4
.rdata:00007FF71A6EC15E db 62h ; b
.rdata:00007FF71A6EC15F db 0D9h
.rdata:00007FF71A6EC160 db 0A5h
.rdata:00007FF71A6EC161 db 0C9h
.rdata:00007FF71A6EC162 db 0BCh
.rdata:00007FF71A6EC163 db 19h
.rdata:00007FF71A6EC164 db 85h
.rdata:00007FF71A6EC165 db 0Dh
.rdata:00007FF71A6EC166 db 80h
.rdata:00007FF71A6EC167 db 5Ah ; Z
.rdata:00007FF71A6EC168 db 3Ah ; :
.rdata:00007FF71A6EC169 db 0F6h
.rdata:00007FF71A6EC16A db 17h
.rdata:00007FF71A6EC16B db 0B6h
.rdata:00007FF71A6EC16C db 0B3h
.rdata:00007FF71A6EC16D db 31h ; 1
.rdata:00007FF71A6EC16E db 0BFh
.rdata:00007FF71A6EC16F db 0E5h
.rdata:00007FF71A6EC170 db 60h ; `
.rdata:00007FF71A6EC171 db 18h
.rdata:00007FF71A6EC172 db 91h
.rdata:00007FF71A6EC173 db 0
.rdata:00007FF71A6EC174 db 0D4h
.rdata:00007FF71A6EC175 db 73h ; s
.rdata:00007FF71A6EC176 db 20h
.rdata:00007FF71A6EC177 db 0C5h
.rdata:00007FF71A6EC178 db 0Fh
.rdata:00007FF71A6EC179 db 90h
.rdata:00007FF71A6EC17A db 57h ; W
.rdata:00007FF71A6EC17B db 4Eh ; N
.rdata:00007FF71A6EC17C db 3
.rdata:00007FF71A6EC17D db 72h ; r
.rdata:00007FF71A6EC17E db 24h ; .rdata:00007FF71A6EC17F db 0A9h
.rdata:00007FF71A6EC180 unk_7FF71A6EC180 db 0 ; DATA XREF: main+3189↑o
.rdata:00007FF71A6EC181 db 0
.rdata:00007FF71A6EC182 db 0
.rdata:00007FF71A6EC183 db 1
.rdata:00007FF71A6EC184 db 0
.rdata:00007FF71A6EC185 db 0
.rdata:00007FF71A6EC186 db 0
.rdata:00007FF71A6EC187 db 2
.rdata:00007FF71A6EC188 db 0
.rdata:00007FF71A6EC189 db 0
.rdata:00007FF71A6EC18A db 0
.rdata:00007FF71A6EC18B db 4
.rdata:00007FF71A6EC18C db 0
.rdata:00007FF71A6EC18D db 0
.rdata:00007FF71A6EC18E db 0
.rdata:00007FF71A6EC18F db 8
.rdata:00007FF71A6EC190 db 0
.rdata:00007FF71A6EC191 db 0
.rdata:00007FF71A6EC192 db 0
.rdata:00007FF71A6EC193 db 10h
.rdata:00007FF71A6EC194 db 0
.rdata:00007FF71A6EC195 db 0
.rdata:00007FF71A6EC196 db 0
.rdata:00007FF71A6EC197 db 20h
.rdata:00007FF71A6EC198 db 0
.rdata:00007FF71A6EC199 db 0
.rdata:00007FF71A6EC19A db 0
.rdata:00007FF71A6EC19B db 40h ; @
.rdata:00007FF71A6EC19C db 0
.rdata:00007FF71A6EC19D db 0
.rdata:00007FF71A6EC19E db 0
.rdata:00007FF71A6EC19F db 80h
.rdata:00007FF71A6EC1A0 db 0
.rdata:00007FF71A6EC1A1 db 0
.rdata:00007FF71A6EC1A2 db 0
.rdata:00007FF71A6EC1A3 db 1Bh
.rdata:00007FF71A6EC1A4 db 0
.rdata:00007FF71A6EC1A5 db 0
.rdata:00007FF71A6EC1A6 db 0
.rdata:00007FF71A6EC1A7 db 36h ; 6
.rdata:00007FF71A6EC1A8 db 0
.rdata:00007FF71A6EC1A9 db 0
.rdata:00007FF71A6EC1AA db 0
.rdata:00007FF71A6EC1AB db 0
.rdata:00007FF71A6EC1AC db 0
.rdata:00007FF71A6EC1AD db 0
.rdata:00007FF71A6EC1AE db 0
.rdata:00007FF71A6EC1AF db 0
.rdata:00007FF71A6EC1B0 db 0
.rdata:00007FF71A6EC1B1 db 0
.rdata:00007FF71A6EC1B2 db 0
.rdata:00007FF71A6EC1B3 db 0
.rdata:00007FF71A6EC1B4 db 0
.rdata:00007FF71A6EC1B5 db 0
.rdata:00007FF71A6EC1B6 db 0
.rdata:00007FF71A6EC1B7 db 0
.rdata:00007FF71A6EC1B8 db 0
.rdata:00007FF71A6EC1B9 db 0
.rdata:00007FF71A6EC1BA db 0
.rdata:00007FF71A6EC1BB db 0
.rdata:00007FF71A6EC1BC db 0
.rdata:00007FF71A6EC1BD db 0
.rdata:00007FF71A6EC1BE db 0
.rdata:00007FF71A6EC1BF db 0
.rdata:00007FF71A6EC1C0 unk_7FF71A6EC1C0 db 0F2h ; DATA XREF: main+7175↑o
.rdata:00007FF71A6EC1C1 db 65h ; e
.rdata:00007FF71A6EC1C2 db 12h
.rdata:00007FF71A6EC1C3 db 0F9h
.rdata:00007FF71A6EC1C4 db 2Fh ; /
.rdata:00007FF71A6EC1C5 db 64h ; d
.rdata:00007FF71A6EC1C6 db 28h ; (
.rdata:00007FF71A6EC1C7 db 7Dh ; }
.rdata:00007FF71A6EC1C8 db 0C0h
.rdata:00007FF71A6EC1C9 db 0D0h
.rdata:00007FF71A6EC1CA db 45h ; E
.rdata:00007FF71A6EC1CB db 5Bh ; [
.rdata:00007FF71A6EC1CC db 25h ; %
.rdata:00007FF71A6EC1CD db 0DAh
.rdata:00007FF71A6EC1CE db 24h ;
.rdata:00007FF71A6EC1CF db 15h
.rdata:00007FF71A6EC1D0 db 0A6h
.rdata:00007FF71A6EC1D1 db 9Ch
.rdata:00007FF71A6EC1D2 db 1Dh
.rdata:00007FF71A6EC1D3 db 0ACh
.rdata:00007FF71A6EC1D4 db 85h
.rdata:00007FF71A6EC1D5 db 42h ; B
.rdata:00007FF71A6EC1D6 db 0ABh
.rdata:00007FF71A6EC1D7 db 28h ; (
.rdata:00007FF71A6EC1D8 db 0D3h
.rdata:00007FF71A6EC1D9 db 4Ch ; L
.rdata:00007FF71A6EC1DA db 2Ch ; ,
.rdata:00007FF71A6EC1DB db 75h ; u
.rdata:00007FF71A6EC1DC db 0DCh
.rdata:00007FF71A6EC1DD db 0DAh
.rdata:00007FF71A6EC1DE db 30h ; 0
.rdata:00007FF71A6EC1DF db 0C7h
.rdata:00007FF71A6EC1E0 aInputFlag db 'input flag: ',0
这是你要的数据
我顺便把这个混淆程序的基本块给你:
.text:00007FF61B781B38 mov rax, cs:__imp___acrt_iob_func
.text:00007FF61B781B3F call rax ; __imp___acrt_iob_func
.text:00007FF61B781B41 mov rdx, rax
.text:00007FF61B781B44 lea rax, [rbp+8F0h+Buffer]
.text:00007FF61B781B4B mov r8, rdx ; Stream
.text:00007FF61B781B4E mov edx, 3E8h ; MaxCount
.text:00007FF61B781B53 mov rcx, rax ; Buffer
.text:00007FF61B781B56 call fgets
.text:00007FF61B781B5B test rax, rax
.text:00007FF61B781B5E setz al
.text:00007FF61B781B61 test al, al
.text:00007FF61B781B63 jz short loc_7FF61B781B7E
.text:00007FF61B781B65 mov [rbp+8F0h+var_944], 0
.text:00007FF61B781B6C mov rax, [rbp+8F0h+var_950]
.text:00007FF61B781B70 xor al, 0FFh
.text:00007FF61B781B72 mov [rbp+8F0h+var_60], rax
.text:00007FF61B781B79 jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B781B7E ; ---------------------------------------------------------------------------
.text:00007FF61B781B7E
.text:00007FF61B781B7E loc_7FF61B781B7E: ; CODE XREF: main+493↑j
.text:00007FF61B781B7E xor eax, eax
.text:00007FF61B781B80 nop
.text:00007FF61B781B81 nop
.text:00007FF61B781B82 nop
.text:00007FF61B781B83 nop
.text:00007FF61B781B84 nop
.text:00007FF61B781B85 nop
.text:00007FF61B781B86 nop
.text:00007FF61B781B87 nop
.text:00007FF61B781B88 mov [rbp+8F0h+var_70], rax
.text:00007FF61B781B8F xor eax, eax
.text:00007FF61B781B91 nop
.text:00007FF61B781B92 nop
.text:00007FF61B781B93 nop
.text:00007FF61B781B94 nop
.text:00007FF61B781B95 nop
.text:00007FF61B781B96 nop
.text:00007FF61B781B97 nop
.text:00007FF61B781B98 nop
.text:00007FF61B781B99 mov [rbp+8F0h+var_68], rax
.text:00007FF61B781BA0 mov rax, [rbp+8F0h+var_950]
.text:00007FF61B781BA4 xor rax, 2
.text:00007FF61B781BA8 mov [rbp+8F0h+var_60], rax
.text:00007FF61B781BAF jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B7865E0 movzx eax, [rbp+8F0h+var_44]
.text:00007FF61B7865E7 test al, al
.text:00007FF61B7865E9 jns short loc_7FF61B7865F2
.text:00007FF61B7865EB mov eax, 1Bh
.text:00007FF61B7865F0 jmp short loc_7FF61B7865F7
.text:00007FF61B7865F2 ; ---------------------------------------------------------------------------
.text:00007FF61B7865F2
.text:00007FF61B7865F2 loc_7FF61B7865F2: ; CODE XREF: main+4F19↑j
.text:00007FF61B7865F2 mov eax, 0
.text:00007FF61B7865F7
.text:00007FF61B7865F7 loc_7FF61B7865F7: ; CODE XREF: main+4F20↑j
.text:00007FF61B7865F7 mov [rbp+8F0h+var_42], al
.text:00007FF61B7865FD xor eax, eax
.text:00007FF61B7865FF nop
.text:00007FF61B786600 nop
.text:00007FF61B786601 nop
.text:00007FF61B786602 nop
.text:00007FF61B786603 nop
.text:00007FF61B786604 nop
.text:00007FF61B786605 nop
.text:00007FF61B786606 nop
.text:00007FF61B786607 mov [rbp+8F0h+var_68], rax
.text:00007FF61B78660E mov rax, [rbp+8F0h+var_950]
.text:00007FF61B786612 xor rax, 322h
.text:00007FF61B786618 mov [rbp+8F0h+var_60], rax
.text:00007FF61B78661F jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B781D20 cmp dword ptr [rbp+8F0h+Size], 0
.text:00007FF61B781D27 jz short loc_7FF61B781D4E
.text:00007FF61B781D29 xor eax, eax
.text:00007FF61B781D2B nop
.text:00007FF61B781D2C nop
.text:00007FF61B781D2D nop
.text:00007FF61B781D2E nop
.text:00007FF61B781D2F nop
.text:00007FF61B781D30 nop
.text:00007FF61B781D31 nop
.text:00007FF61B781D32 nop
.text:00007FF61B781D33 mov [rbp+8F0h+var_68], rax
.text:00007FF61B781D3A mov rax, [rbp+8F0h+var_950]
.text:00007FF61B781D3E xor rax, 4
.text:00007FF61B781D42 mov [rbp+8F0h+var_60], rax
.text:00007FF61B781D49 jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B781D4E ; ---------------------------------------------------------------------------
.text:00007FF61B781D4E
.text:00007FF61B781D4E loc_7FF61B781D4E: ; CODE XREF: main+657↑j
.text:00007FF61B781D4E xor eax, eax
.text:00007FF61B781D50 nop
.text:00007FF61B781D51 nop
.text:00007FF61B781D52 nop
.text:00007FF61B781D53 nop
.text:00007FF61B781D54 nop
.text:00007FF61B781D55 nop
.text:00007FF61B781D56 nop
.text:00007FF61B781D57 nop
.text:00007FF61B781D58 mov [rbp+8F0h+var_68], rax
.text:00007FF61B781D5F mov rax, [rbp+8F0h+var_950]
.text:00007FF61B781D63 xor rax, 6
.text:00007FF61B781D67 mov [rbp+8F0h+var_60], rax
.text:00007FF61B781D6E jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B78685B rep movzx eax, [rbp+8F0h+var_45]
.text:00007FF61B786863 test al, al
.text:00007FF61B786865 jns short loc_7FF61B78686E
.text:00007FF61B786867 mov eax, 1Bh
.text:00007FF61B78686C jmp short loc_7FF61B786873
.text:00007FF61B78686E ; ---------------------------------------------------------------------------
.text:00007FF61B78686E
.text:00007FF61B78686E loc_7FF61B78686E: ; CODE XREF: main+5195↑j
.text:00007FF61B78686E mov eax, 0
.text:00007FF61B786873
.text:00007FF61B786873 loc_7FF61B786873: ; CODE XREF: main+519C↑j
.text:00007FF61B786873 mov [rbp+8F0h+var_42], al
.text:00007FF61B786879 xor eax, eax
.text:00007FF61B78687B nop
.text:00007FF61B78687C nop
.text:00007FF61B78687D nop
.text:00007FF61B78687E nop
.text:00007FF61B78687F nop
.text:00007FF61B786880 nop
.text:00007FF61B786881 nop
.text:00007FF61B786882 nop
.text:00007FF61B786883 mov [rbp+8F0h+var_68], rax
.text:00007FF61B78688A mov rax, [rbp+8F0h+var_950]
.text:00007FF61B78688E xor rax, 325h
.text:00007FF61B786894 mov [rbp+8F0h+var_60], rax
.text:00007FF61B78689B jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B7816D0 main proc near ; CODE XREF: sub_7FF61B781154+1E7↑p
.text:00007FF61B7816D0 ; DATA XREF: .pdata:00007FF61B79009C↓o
.text:00007FF61B7816D0
.text:00007FF61B7816D0 var_970 = qword ptr -970h
.text:00007FF61B7816D0 var_950 = qword ptr -950h
.text:00007FF61B7816D0 var_944 = dword ptr -944h
.text:00007FF61B7816D0 var_940 = byte ptr -940h
.text:00007FF61B7816D0 var_938 = qword ptr -938h
.text:00007FF61B7816D0 var_930 = qword ptr -930h
.text:00007FF61B7816D0 var_927 = byte ptr -927h
.text:00007FF61B7816D0 var_926 = byte ptr -926h
.text:00007FF61B7816D0 var_925 = byte ptr -925h
.text:00007FF61B7816D0 var_923 = byte ptr -923h
.text:00007FF61B7816D0 var_922 = byte ptr -922h
.text:00007FF61B7816D0 var_921 = byte ptr -921h
.text:00007FF61B7816D0 var_920 = dword ptr -920h
.text:00007FF61B7816D0 var_8CB = byte ptr -8CBh
.text:00007FF61B7816D0 var_8C9 = byte ptr -8C9h
.text:00007FF61B7816D0 var_870 = qword ptr -870h
.text:00007FF61B7816D0 var_868 = qword ptr -868h
.text:00007FF61B7816D0 Buffer = byte ptr -860h
.text:00007FF61B7816D0 Buf1 = byte ptr -470h
.text:00007FF61B7816D0 var_70 = qword ptr -70h
.text:00007FF61B7816D0 var_68 = qword ptr -68h
.text:00007FF61B7816D0 var_60 = qword ptr -60h
.text:00007FF61B7816D0 var_54 = dword ptr -54h
.text:00007FF61B7816D0 var_4F = byte ptr -4Fh
.text:00007FF61B7816D0 var_4D = byte ptr -4Dh
.text:00007FF61B7816D0 var_4C = byte ptr -4Ch
.text:00007FF61B7816D0 var_4B = byte ptr -4Bh
.text:00007FF61B7816D0 var_4A = byte ptr -4Ah
.text:00007FF61B7816D0 var_49 = byte ptr -49h
.text:00007FF61B7816D0 var_48 = byte ptr -48h
.text:00007FF61B7816D0 var_47 = byte ptr -47h
.text:00007FF61B7816D0 var_46 = byte ptr -46h
.text:00007FF61B7816D0 var_45 = byte ptr -45h
.text:00007FF61B7816D0 var_44 = byte ptr -44h
.text:00007FF61B7816D0 var_43 = byte ptr -43h
.text:00007FF61B7816D0 var_42 = byte ptr -42h
.text:00007FF61B7816D0 var_41 = byte ptr -41h
.text:00007FF61B7816D0 var_40 = dword ptr -40h
.text:00007FF61B7816D0 var_3C = dword ptr -3Ch
.text:00007FF61B7816D0 var_38 = dword ptr -38h
.text:00007FF61B7816D0 var_34 = dword ptr -34h
.text:00007FF61B7816D0 var_30 = dword ptr -30h
.text:00007FF61B7816D0 var_2C = dword ptr -2Ch
.text:00007FF61B7816D0 Size = qword ptr -28h
.text:00007FF61B7816D0 var_20 = dword ptr -20h
.text:00007FF61B7816D0 var_1C = dword ptr -1Ch
.text:00007FF61B7816D0 var_18 = dword ptr -18h
.text:00007FF61B7816D0 var_14 = dword ptr -14h
.text:00007FF61B7816D0 arg_30FFF708 = dword ptr 30FFF718h
.text:00007FF61B7816D0
.text:00007FF61B7816D0 push rbp
.text:00007FF61B7816D1 push rdi
.text:00007FF61B7816D2 sub rsp, 968h
.text:00007FF61B7816D9 lea rbp, [rsp+80h]
.text:00007FF61B7816E1 call sub_7FF61B788A67
.text:00007FF61B7816E6 lea rdx, [rbp+8F0h+Buf1]
.text:00007FF61B7816ED mov eax, 0
.text:00007FF61B7816F2 mov ecx, 80h
.text:00007FF61B7816F7 mov rdi, rdx
.text:00007FF61B7816FA rep stosq
.text:00007FF61B7816FD mov rax, 706050403020100h
.text:00007FF61B781707 mov rdx, 0F0E0D0C0B0A0908h
.text:00007FF61B781711 mov [rbp+8F0h+var_870], rax
.text:00007FF61B781718 mov [rbp+8F0h+var_868], rdx
.text:00007FF61B78171F mov [rbp+8F0h+var_14], 0
.text:00007FF61B781729 mov [rbp+8F0h+var_18], 0
.text:00007FF61B781733 mov [rbp+8F0h+var_1C], 0
.text:00007FF61B78173D mov [rbp+8F0h+var_20], 0
.text:00007FF61B781747 mov [rbp+8F0h+Size], 0
.text:00007FF61B781752 mov [rbp+8F0h+var_2C], 0
.text:00007FF61B78175C mov [rbp+8F0h+var_30], 0
.text:00007FF61B781766 mov [rbp+8F0h+var_944], 0
.text:00007FF61B78176D lea rcx, [rbp+8F0h+var_944]
.text:00007FF61B781771 xor eax, eax
.text:00007FF61B781773 nop
.text:00007FF61B781774 nop
.text:00007FF61B781775 nop
.text:00007FF61B781776 nop
.text:00007FF61B781777 nop
.text:00007FF61B781778 nop
.text:00007FF61B781779 nop
.text:00007FF61B78177A nop
.text:00007FF61B78177B xor rax, rcx
.text:00007FF61B78177E mov [rbp+8F0h+var_950], rax
.text:00007FF61B781782 mov rax, [rbp+8F0h+var_950]
.text:00007FF61B781786 mov [rbp+8F0h+var_60], rax
.text:00007FF61B78178D mov [rbp+8F0h+var_68], 0
.text:00007FF61B781798 xor eax, eax
.text:00007FF61B78179A nop
.text:00007FF61B78179B nop
.text:00007FF61B78179C nop
.text:00007FF61B78179D nop
.text:00007FF61B78179E nop
.text:00007FF61B78179F nop
.text:00007FF61B7817A0 nop
.text:00007FF61B7817A1 nop
.text:00007FF61B7817A2 mov [rbp+8F0h+var_70], rax
.text:00007FF61B7817A9 jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
lea eax, aInputFlag ; "input flag: "
mov rcx, rax
call sub_7FF61B78A090
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 1
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B781E0A rep mov rax, [rbp+8F0h+Size]
.text:00007FF61B781E12 sub rax, 1
.text:00007FF61B781E16 movzx eax, [rbp+rax+8F0h+Buffer]
.text:00007FF61B781E1E cmp al, 0Ah
.text:00007FF61B781E20 jnz short loc_7FF61B781E47
.text:00007FF61B781E22 xor eax, eax
.text:00007FF61B781E24 nop
.text:00007FF61B781E25 nop
.text:00007FF61B781E26 nop
.text:00007FF61B781E27 nop
.text:00007FF61B781E28 nop
.text:00007FF61B781E29 nop
.text:00007FF61B781E2A nop
.text:00007FF61B781E2B nop
.text:00007FF61B781E2C mov [rbp+8F0h+var_68], rax
.text:00007FF61B781E33 mov rax, [rbp+8F0h+var_950]
.text:00007FF61B781E37 xor rax, 5
.text:00007FF61B781E3B mov [rbp+8F0h+var_60], rax
.text:00007FF61B781E42 jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B781E47 ; ---------------------------------------------------------------------------
.text:00007FF61B781E47
.text:00007FF61B781E47 loc_7FF61B781E47: ; CODE XREF: main+750↑j
.text:00007FF61B781E47 xor eax, eax
.text:00007FF61B781E49 nop
.text:00007FF61B781E4A nop
.text:00007FF61B781E4B nop
.text:00007FF61B781E4C nop
.text:00007FF61B781E4D nop
.text:00007FF61B781E4E nop
.text:00007FF61B781E4F nop
.text:00007FF61B781E50 nop
.text:00007FF61B781E51 mov [rbp+8F0h+var_68], rax
.text:00007FF61B781E58 mov rax, [rbp+8F0h+var_950]
.text:00007FF61B781E5C xor rax, 6
.text:00007FF61B781E60 mov [rbp+8F0h+var_60], rax
.text:00007FF61B781E67 jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B786AD8 movzx eax, [rbp+8F0h+var_46]
.text:00007FF61B786ADF test al, al
.text:00007FF61B786AE1 jns short loc_7FF61B786AEA
.text:00007FF61B786AE3 mov eax, 1Bh
.text:00007FF61B786AE8 jmp short loc_7FF61B786AEF
.text:00007FF61B786AEA ; ---------------------------------------------------------------------------
.text:00007FF61B786AEA
.text:00007FF61B786AEA loc_7FF61B786AEA: ; CODE XREF: main+5411↑j
.text:00007FF61B786AEA mov eax, 0
.text:00007FF61B786AEF
.text:00007FF61B786AEF loc_7FF61B786AEF: ; CODE XREF: main+5418↑j
.text:00007FF61B786AEF mov [rbp+8F0h+var_42], al
.text:00007FF61B786AF5 xor eax, eax
.text:00007FF61B786AF7 nop
.text:00007FF61B786AF8 nop
.text:00007FF61B786AF9 nop
.text:00007FF61B786AFA nop
.text:00007FF61B786AFB nop
.text:00007FF61B786AFC nop
.text:00007FF61B786AFD nop
.text:00007FF61B786AFE nop
.text:00007FF61B786AFF mov [rbp+8F0h+var_68], rax
.text:00007FF61B786B06 mov rax, [rbp+8F0h+var_950]
.text:00007FF61B786B0A xor rax, 328h
.text:00007FF61B786B10 mov [rbp+8F0h+var_60], rax
.text:00007FF61B786B17 jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep lea rax, [rbp+8F0h+Buffer]
mov rcx, rax ; Str
call strlen
mov [rbp+8F0h+Size], rax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 3
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B782810 cmp [rbp+8F0h+var_14], 3
.text:00007FF61B782817 jg short loc_7FF61B78283E
.text:00007FF61B782819 xor eax, eax
.text:00007FF61B78281B nop
.text:00007FF61B78281C nop
.text:00007FF61B78281D nop
.text:00007FF61B78281E nop
.text:00007FF61B78281F nop
.text:00007FF61B782820 nop
.text:00007FF61B782821 nop
.text:00007FF61B782822 nop
.text:00007FF61B782823 mov [rbp+8F0h+var_68], rax
.text:00007FF61B78282A mov rax, [rbp+8F0h+var_950]
.text:00007FF61B78282E xor rax, 16h
.text:00007FF61B782832 mov [rbp+8F0h+var_60], rax
.text:00007FF61B782839 jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B78283E ; ---------------------------------------------------------------------------
.text:00007FF61B78283E
.text:00007FF61B78283E loc_7FF61B78283E: ; CODE XREF: main+1147↑j
.text:00007FF61B78283E xor eax, eax
.text:00007FF61B782840 nop
.text:00007FF61B782841 nop
.text:00007FF61B782842 nop
.text:00007FF61B782843 nop
.text:00007FF61B782844 nop
.text:00007FF61B782845 nop
.text:00007FF61B782846 nop
.text:00007FF61B782847 nop
.text:00007FF61B782848 mov [rbp+8F0h+var_68], rax
.text:00007FF61B78284F mov rax, [rbp+8F0h+var_950]
.text:00007FF61B782853 xor rax, 32h
.text:00007FF61B782857 mov [rbp+8F0h+var_60], rax
.text:00007FF61B78285E jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B786D53 rep movzx eax, [rbp+8F0h+var_47]
.text:00007FF61B786D5B test al, al
.text:00007FF61B786D5D jns short loc_7FF61B786D66
.text:00007FF61B786D5F mov eax, 1Bh
.text:00007FF61B786D64 jmp short loc_7FF61B786D6B
.text:00007FF61B786D66 ; ---------------------------------------------------------------------------
.text:00007FF61B786D66
.text:00007FF61B786D66 loc_7FF61B786D66: ; CODE XREF: main+568D↑j
.text:00007FF61B786D66 mov eax, 0
.text:00007FF61B786D6B
.text:00007FF61B786D6B loc_7FF61B786D6B: ; CODE XREF: main+5694↑j
.text:00007FF61B786D6B mov [rbp+8F0h+var_42], al
.text:00007FF61B786D71 xor eax, eax
.text:00007FF61B786D73 nop
.text:00007FF61B786D74 nop
.text:00007FF61B786D75 nop
.text:00007FF61B786D76 nop
.text:00007FF61B786D77 nop
.text:00007FF61B786D78 nop
.text:00007FF61B786D79 nop
.text:00007FF61B786D7A nop
.text:00007FF61B786D7B mov [rbp+8F0h+var_68], rax
.text:00007FF61B786D82 mov rax, [rbp+8F0h+var_950]
.text:00007FF61B786D86 xor rax, 32Bh
.text:00007FF61B786D8C mov [rbp+8F0h+var_60], rax
.text:00007FF61B786D93 jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B782E03 rep cmp [rbp+8F0h+var_14], 2Bh ; '+'
.text:00007FF61B782E0B jg short loc_7FF61B782E32
.text:00007FF61B782E0D xor eax, eax
.text:00007FF61B782E0F nop
.text:00007FF61B782E10 nop
.text:00007FF61B782E11 nop
.text:00007FF61B782E12 nop
.text:00007FF61B782E13 nop
.text:00007FF61B782E14 nop
.text:00007FF61B782E15 nop
.text:00007FF61B782E16 nop
.text:00007FF61B782E17 mov [rbp+8F0h+var_68], rax
.text:00007FF61B782E1E mov rax, [rbp+8F0h+var_950]
.text:00007FF61B782E22 xor rax, 33h
.text:00007FF61B782E26 mov [rbp+8F0h+var_60], rax
.text:00007FF61B782E2D jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B782E32 ; ---------------------------------------------------------------------------
.text:00007FF61B782E32
.text:00007FF61B782E32 loc_7FF61B782E32: ; CODE XREF: main+173B↑j
.text:00007FF61B782E32 xor eax, eax
.text:00007FF61B782E34 nop
.text:00007FF61B782E35 nop
.text:00007FF61B782E36 nop
.text:00007FF61B782E37 nop
.text:00007FF61B782E38 nop
.text:00007FF61B782E39 nop
.text:00007FF61B782E3A nop
.text:00007FF61B782E3B nop
.text:00007FF61B782E3C mov [rbp+8F0h+var_68], rax
.text:00007FF61B782E43 mov rax, [rbp+8F0h+var_950]
.text:00007FF61B782E47 xor rax, 190h
.text:00007FF61B782E4D mov [rbp+8F0h+var_60], rax
.text:00007FF61B782E54 jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B782FC2 rep mov eax, [rbp+8F0h+var_14]
.text:00007FF61B782FC9 and eax, 3
.text:00007FF61B782FCC test eax, eax
.text:00007FF61B782FCE jnz short loc_7FF61B782FF5
.text:00007FF61B782FD0 xor eax, eax
.text:00007FF61B782FD2 nop
.text:00007FF61B782FD3 nop
.text:00007FF61B782FD4 nop
.text:00007FF61B782FD5 nop
.text:00007FF61B782FD6 nop
.text:00007FF61B782FD7 nop
.text:00007FF61B782FD8 nop
.text:00007FF61B782FD9 nop
.text:00007FF61B782FDA mov [rbp+8F0h+var_68], rax
.text:00007FF61B782FE1 mov rax, [rbp+8F0h+var_950]
.text:00007FF61B782FE5 xor rax, 64h
.text:00007FF61B782FE9 mov [rbp+8F0h+var_60], rax
.text:00007FF61B782FF0 jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B782FF5 ; ---------------------------------------------------------------------------
.text:00007FF61B782FF5
.text:00007FF61B782FF5 loc_7FF61B782FF5: ; CODE XREF: main+18FE↑j
.text:00007FF61B782FF5 xor eax, eax
.text:00007FF61B782FF7 nop
.text:00007FF61B782FF8 nop
.text:00007FF61B782FF9 nop
.text:00007FF61B782FFA nop
.text:00007FF61B782FFB nop
.text:00007FF61B782FFC nop
.text:00007FF61B782FFD nop
.text:00007FF61B782FFE nop
.text:00007FF61B782FFF mov [rbp+8F0h+var_68], rax
.text:00007FF61B783006 mov rax, [rbp+8F0h+var_950]
.text:00007FF61B78300A xor al, 0C8h
.text:00007FF61B78300C mov [rbp+8F0h+var_60], rax
.text:00007FF61B783013 jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov rax, [rbp+8F0h+Size]
sub rax, 1
mov [rbp+rax+8F0h+Buffer], 0
sub [rbp+8F0h+Size], 1
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 6
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B7852EB rep cmp [rbp+8F0h+var_18], 3
.text:00007FF61B7852F3 jg short loc_7FF61B78531C
.text:00007FF61B7852F5 xor eax, eax
.text:00007FF61B7852F7 nop
.text:00007FF61B7852F8 nop
.text:00007FF61B7852F9 nop
.text:00007FF61B7852FA nop
.text:00007FF61B7852FB nop
.text:00007FF61B7852FC nop
.text:00007FF61B7852FD nop
.text:00007FF61B7852FE nop
.text:00007FF61B7852FF mov [rbp+8F0h+var_68], rax
.text:00007FF61B785306 mov rax, [rbp+8F0h+var_950]
.text:00007FF61B78530A xor rax, 19Ch
.text:00007FF61B785310 mov [rbp+8F0h+var_60], rax
.text:00007FF61B785317 jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B78531C ; ---------------------------------------------------------------------------
.text:00007FF61B78531C
.text:00007FF61B78531C loc_7FF61B78531C: ; CODE XREF: main+3C23↑j
.text:00007FF61B78531C xor eax, eax
.text:00007FF61B78531E nop
.text:00007FF61B78531F nop
.text:00007FF61B785320 nop
.text:00007FF61B785321 nop
.text:00007FF61B785322 nop
.text:00007FF61B785323 nop
.text:00007FF61B785324 nop
.text:00007FF61B785325 nop
.text:00007FF61B785326 mov [rbp+8F0h+var_68], rax
.text:00007FF61B78532D mov rax, [rbp+8F0h+var_950]
.text:00007FF61B785331 xor rax, 1A4h
.text:00007FF61B785337 mov [rbp+8F0h+var_60], rax
.text:00007FF61B78533E jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov rcx, [rbp+8F0h+Size]
lea rdx, [rbp+8F0h+Buffer] ; Src
lea rax, [rbp+8F0h+Buf1]
mov r8, rcx ; Size
mov rcx, rax ; void *
call memcpy
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 0Ah
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B785668 rep cmp [rbp+8F0h+var_1C], 0Ah
.text:00007FF61B785670 jg short loc_7FF61B785699
.text:00007FF61B785672 xor eax, eax
.text:00007FF61B785674 nop
.text:00007FF61B785675 nop
.text:00007FF61B785676 nop
.text:00007FF61B785677 nop
.text:00007FF61B785678 nop
.text:00007FF61B785679 nop
.text:00007FF61B78567A nop
.text:00007FF61B78567B nop
.text:00007FF61B78567C mov [rbp+8F0h+var_68], rax
.text:00007FF61B785683 mov rax, [rbp+8F0h+var_950]
.text:00007FF61B785687 xor rax, 1F4h
.text:00007FF61B78568D mov [rbp+8F0h+var_60], rax
.text:00007FF61B785694 jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B785699 ; ---------------------------------------------------------------------------
.text:00007FF61B785699
.text:00007FF61B785699 loc_7FF61B785699: ; CODE XREF: main+3FA0↑j
.text:00007FF61B785699 xor eax, eax
.text:00007FF61B78569B nop
.text:00007FF61B78569C nop
.text:00007FF61B78569D nop
.text:00007FF61B78569E nop
.text:00007FF61B78569F nop
.text:00007FF61B7856A0 nop
.text:00007FF61B7856A1 nop
.text:00007FF61B7856A2 nop
.text:00007FF61B7856A3 mov [rbp+8F0h+var_68], rax
.text:00007FF61B7856AA mov rax, [rbp+8F0h+var_950]
.text:00007FF61B7856AE xor rax, 76Ch
.text:00007FF61B7856B4 mov [rbp+8F0h+var_60], rax
.text:00007FF61B7856BB jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov rax, [rbp+8F0h+Size]
and eax, 0Fh
mov [rbp+8F0h+var_40], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 0Bh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B785820 rep cmp [rbp+8F0h+var_18], 0Fh
.text:00007FF61B785828 jg short loc_7FF61B785851
.text:00007FF61B78582A xor eax, eax
.text:00007FF61B78582C nop
.text:00007FF61B78582D nop
.text:00007FF61B78582E nop
.text:00007FF61B78582F nop
.text:00007FF61B785830 nop
.text:00007FF61B785831 nop
.text:00007FF61B785832 nop
.text:00007FF61B785833 nop
.text:00007FF61B785834 mov [rbp+8F0h+var_68], rax
.text:00007FF61B78583B mov rax, [rbp+8F0h+var_950]
.text:00007FF61B78583F xor rax, 1F6h
.text:00007FF61B785845 mov [rbp+8F0h+var_60], rax
.text:00007FF61B78584C jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B785851 ; ---------------------------------------------------------------------------
.text:00007FF61B785851
.text:00007FF61B785851 loc_7FF61B785851: ; CODE XREF: main+4158↑j
.text:00007FF61B785851 xor eax, eax
.text:00007FF61B785853 nop
.text:00007FF61B785854 nop
.text:00007FF61B785855 nop
.text:00007FF61B785856 nop
.text:00007FF61B785857 nop
.text:00007FF61B785858 nop
.text:00007FF61B785859 nop
.text:00007FF61B78585A nop
.text:00007FF61B78585B mov [rbp+8F0h+var_68], rax
.text:00007FF61B785862 mov rax, [rbp+8F0h+var_950]
.text:00007FF61B785866 xor rax, 258h
.text:00007FF61B78586C mov [rbp+8F0h+var_60], rax
.text:00007FF61B785873 jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, 10h
sub eax, [rbp+8F0h+var_40]
mov [rbp+8F0h+var_2C], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 0Ch
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B785E4B rep cmp [rbp+8F0h+var_1C], 9
.text:00007FF61B785E53 jg short loc_7FF61B785E7C
.text:00007FF61B785E55 xor eax, eax
.text:00007FF61B785E57 nop
.text:00007FF61B785E58 nop
.text:00007FF61B785E59 nop
.text:00007FF61B785E5A nop
.text:00007FF61B785E5B nop
.text:00007FF61B785E5C nop
.text:00007FF61B785E5D nop
.text:00007FF61B785E5E nop
.text:00007FF61B785E5F mov [rbp+8F0h+var_68], rax
.text:00007FF61B785E66 mov rax, [rbp+8F0h+var_950]
.text:00007FF61B785E6A xor rax, 2BDh
.text:00007FF61B785E70 mov [rbp+8F0h+var_60], rax
.text:00007FF61B785E77 jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B785E7C ; ---------------------------------------------------------------------------
.text:00007FF61B785E7C
.text:00007FF61B785E7C loc_7FF61B785E7C: ; CODE XREF: main+4783↑j
.text:00007FF61B785E7C xor eax, eax
.text:00007FF61B785E7E nop
.text:00007FF61B785E7F nop
.text:00007FF61B785E80 nop
.text:00007FF61B785E81 nop
.text:00007FF61B785E82 nop
.text:00007FF61B785E83 nop
.text:00007FF61B785E84 nop
.text:00007FF61B785E85 nop
.text:00007FF61B785E86 mov [rbp+8F0h+var_68], rax
.text:00007FF61B785E8D mov rax, [rbp+8F0h+var_950]
.text:00007FF61B785E91 xor rax, 5DCh
.text:00007FF61B785E97 mov [rbp+8F0h+var_60], rax
.text:00007FF61B785E9E jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
or [rax], al
add [rcx-3B7A743Eh], cl
or [rax], al
add [rcx], al
ror byte ptr [rcx+8C085h], 1
add [rcx], dh
rcl byte ptr [rax-6F6F6F70h], 90h
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 0Dh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B786003 rep cmp [rbp+8F0h+var_18], 3
.text:00007FF61B78600B jg short loc_7FF61B786034
.text:00007FF61B78600D xor eax, eax
.text:00007FF61B78600F nop
.text:00007FF61B786010 nop
.text:00007FF61B786011 nop
.text:00007FF61B786012 nop
.text:00007FF61B786013 nop
.text:00007FF61B786014 nop
.text:00007FF61B786015 nop
.text:00007FF61B786016 nop
.text:00007FF61B786017 mov [rbp+8F0h+var_68], rax
.text:00007FF61B78601E mov rax, [rbp+8F0h+var_950]
.text:00007FF61B786022 xor rax, 2C6h
.text:00007FF61B786028 mov [rbp+8F0h+var_60], rax
.text:00007FF61B78602F jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B786034 ; ---------------------------------------------------------------------------
.text:00007FF61B786034
.text:00007FF61B786034 loc_7FF61B786034: ; CODE XREF: main+493B↑j
.text:00007FF61B786034 xor eax, eax
.text:00007FF61B786036 nop
.text:00007FF61B786037 nop
.text:00007FF61B786038 nop
.text:00007FF61B786039 nop
.text:00007FF61B78603A nop
.text:00007FF61B78603B nop
.text:00007FF61B78603C nop
.text:00007FF61B78603D nop
.text:00007FF61B78603E mov [rbp+8F0h+var_68], rax
.text:00007FF61B786045 mov rax, [rbp+8F0h+var_950]
.text:00007FF61B786049 xor rax, 578h
.text:00007FF61B78604F mov [rbp+8F0h+var_60], rax
.text:00007FF61B786056 jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
xrelease mov [rbp+8F0h+var_14], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 0Eh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B788158 rep cmp [rbp+8F0h+var_18], 3
.text:00007FF61B788160 jg short loc_7FF61B788189
.text:00007FF61B788162 xor eax, eax
.text:00007FF61B788164 nop
.text:00007FF61B788165 nop
.text:00007FF61B788166 nop
.text:00007FF61B788167 nop
.text:00007FF61B788168 nop
.text:00007FF61B788169 nop
.text:00007FF61B78816A nop
.text:00007FF61B78816B nop
.text:00007FF61B78816C mov [rbp+8F0h+var_68], rax
.text:00007FF61B788173 mov rax, [rbp+8F0h+var_950]
.text:00007FF61B788177 xor rax, 642h
.text:00007FF61B78817D mov [rbp+8F0h+var_60], rax
.text:00007FF61B788184 jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B788189 ; ---------------------------------------------------------------------------
.text:00007FF61B788189
.text:00007FF61B788189 loc_7FF61B788189: ; CODE XREF: main+6A90↑j
.text:00007FF61B788189 xor eax, eax
.text:00007FF61B78818B nop
.text:00007FF61B78818C nop
.text:00007FF61B78818D nop
.text:00007FF61B78818E nop
.text:00007FF61B78818F nop
.text:00007FF61B788190 nop
.text:00007FF61B788191 nop
.text:00007FF61B788192 nop
.text:00007FF61B788193 mov [rbp+8F0h+var_68], rax
.text:00007FF61B78819A mov rax, [rbp+8F0h+var_950]
.text:00007FF61B78819E xor rax, 6A4h
.text:00007FF61B7881A4 mov [rbp+8F0h+var_60], rax
.text:00007FF61B7881AB jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
test esp, ebx
or [rax], al
add [rbx], bh
test esp, eax
or [rax], al
add [rbp+8F0h+var_8CB], bh
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 0Fh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B788688 rep cmp [rbp+8F0h+var_30], 20h ; ' '
.text:00007FF61B788690 jz short loc_7FF61B7886B9
.text:00007FF61B788692 xor eax, eax
.text:00007FF61B788694 nop
.text:00007FF61B788695 nop
.text:00007FF61B788696 nop
.text:00007FF61B788697 nop
.text:00007FF61B788698 nop
.text:00007FF61B788699 nop
.text:00007FF61B78869A nop
.text:00007FF61B78869B nop
.text:00007FF61B78869C mov [rbp+8F0h+var_68], rax
.text:00007FF61B7886A3 mov rax, [rbp+8F0h+var_950]
.text:00007FF61B7886A7 xor rax, 7DAh
.text:00007FF61B7886AD mov [rbp+8F0h+var_60], rax
.text:00007FF61B7886B4 jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B7886B9 ; ---------------------------------------------------------------------------
.text:00007FF61B7886B9
.text:00007FF61B7886B9 loc_7FF61B7886B9: ; CODE XREF: main+6FC0↑j
.text:00007FF61B7886B9 xor eax, eax
.text:00007FF61B7886BB nop
.text:00007FF61B7886BC nop
.text:00007FF61B7886BD nop
.text:00007FF61B7886BE nop
.text:00007FF61B7886BF nop
.text:00007FF61B7886C0 nop
.text:00007FF61B7886C1 nop
.text:00007FF61B7886C2 nop
.text:00007FF61B7886C3 mov [rbp+8F0h+var_68], rax
.text:00007FF61B7886CA mov rax, [rbp+8F0h+var_950]
.text:00007FF61B7886CE xor rax, 7E4h
.text:00007FF61B7886D4 mov [rbp+8F0h+var_60], rax
.text:00007FF61B7886DB jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 14h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B788838 lea rax, [rbp+8F0h+Buf1]
.text:00007FF61B78883F mov r8d, 20h ; ' ' ; Size
.text:00007FF61B788845 lea rdx, unk_7FF61B78C1C0 ; Buf2
.text:00007FF61B78884C mov rcx, rax ; Buf1
.text:00007FF61B78884F call memcmp
.text:00007FF61B788854 test eax, eax
.text:00007FF61B788856 jnz short loc_7FF61B78887F
.text:00007FF61B788858 xor eax, eax
.text:00007FF61B78885A nop
.text:00007FF61B78885B nop
.text:00007FF61B78885C nop
.text:00007FF61B78885D nop
.text:00007FF61B78885E nop
.text:00007FF61B78885F nop
.text:00007FF61B788860 nop
.text:00007FF61B788861 nop
.text:00007FF61B788862 mov [rbp+8F0h+var_68], rax
.text:00007FF61B788869 mov rax, [rbp+8F0h+var_950]
.text:00007FF61B78886D xor rax, 7EEh
.text:00007FF61B788873 mov [rbp+8F0h+var_60], rax
.text:00007FF61B78887A jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
.text:00007FF61B78887F ; ---------------------------------------------------------------------------
.text:00007FF61B78887F
.text:00007FF61B78887F loc_7FF61B78887F: ; CODE XREF: main+7186↑j
.text:00007FF61B78887F xor eax, eax
.text:00007FF61B788881 nop
.text:00007FF61B788882 nop
.text:00007FF61B788883 nop
.text:00007FF61B788884 nop
.text:00007FF61B788885 nop
.text:00007FF61B788886 nop
.text:00007FF61B788887 nop
.text:00007FF61B788888 nop
.text:00007FF61B788889 mov [rbp+8F0h+var_68], rax
.text:00007FF61B788890 mov rax, [rbp+8F0h+var_950]
.text:00007FF61B788894 xor rax, 7DAh
.text:00007FF61B78889A mov [rbp+8F0h+var_60], rax
.text:00007FF61B7888A1 jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
mov eax, dword ptr [rbp+8F0h+Size]
mov edx, eax
mov eax, [rbp+8F0h+var_14]
add eax, edx
mov [rbp+8F0h+var_40], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 10h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_2C]
mov edx, eax
mov eax, [rbp+8F0h+var_40]
mov [rbp+rax+8F0h+Buf1], dl
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 11h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
or [rax], al
add [rcx], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 0Eh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
xrelease mov [rbp+8F0h+var_14], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 15h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_14]
shl eax, 2
cdqe
movzx eax, byte ptr [rbp+rax+8F0h+var_870]
movzx eax, al
mov [rbp+8F0h+var_34], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 17h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_14]
shl eax, 2
add eax, 1
cdqe
movzx eax, byte ptr [rbp+rax+8F0h+var_870]
movzx eax, al
shl eax, 8
or [rbp+8F0h+var_34], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 18h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_14]
shl eax, 2
add eax, 2
cdqe
movzx eax, byte ptr [rbp+rax+8F0h+var_870]
movzx eax, al
shl eax, 10h
or [rbp+8F0h+var_34], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 19h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
shl eax, 2
add eax, 3
cdqe
movzx eax, byte ptr [rbp+rax+8F0h+var_870]
movzx eax, al
shl eax, 18h
or [rbp+8F0h+var_34], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 1Ah
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_14]
cdqe
mov edx, [rbp+8F0h+var_34]
mov [rbp+rax*4+8F0h+var_920], edx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 1Bh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
add [rbp+8F0h+var_14], 1
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 15h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255add [rbp+8F0h+var_14], 1
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 15h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_14]
sub eax, 1
cdqe
mov eax, [rbp+rax*4+8F0h+var_920]
mov [rbp+8F0h+var_3C], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 34h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
mov eax, [rbp+8F0h+var_3C]
shr eax, 8
mov [rbp+8F0h+var_34], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 65h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_3C]
movzx eax, al
mov [rbp+8F0h+var_38], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 66h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
shl [rbp+8F0h+var_38], 18h
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 67h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_34]
or eax, [rbp+8F0h+var_38]
mov [rbp+8F0h+var_3C], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 6Eh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_3C]
mov [rbp+8F0h+var_34], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 6Fh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep and [rbp+8F0h+var_34], 0FFh
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 70h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_34]
lea rdx, unk_7FF61B78C080
movzx eax, byte ptr [rax+rdx]
mov [rbp+8F0h+var_41], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 71h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
mov dh, 85h
scasd
or [rax], al
add [rcx+8B885h], cl
add [rcx], dh
rcl byte ptr [rax-6F6F6F70h], 90h
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 72h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 73h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
mov eax, 89000008h
test [rax+rcx-3FCF0000h], edi
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 78h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
test [rax+rcx-173F0000h], esi
or [rcx+8B885h], cl
add [rcx], dh
rcl byte ptr [rax-6F6F6F70h], 90h
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 79h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep and [rbp+8F0h+var_38], 0FFh
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 7Ah
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
lea rdx, unk_7FF61B78C080
movzx eax, byte ptr [rax+rdx]
mov [rbp+8F0h+var_41], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 7Bh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
test [rdi-76FFFFF8h], ebp
test [rax+31000008h], edi
rcl byte ptr [rax-6F6F6F70h], 90h
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 7Ch
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
shl [rbp+8F0h+var_38], 8
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 7Dh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_38]
or [rbp+8F0h+var_34], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 82h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_3C]
shr eax, 10h
mov [rbp+8F0h+var_38], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 83h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep and [rbp+8F0h+var_38], 0FFh
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 84h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
lea rdx, unk_7FF61B78C080
movzx eax, byte ptr [rax+rdx]
mov [rbp+8F0h+var_41], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 85h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
or [rax], al
add [rcx+8B885h], cl
add [rcx], dh
rcl byte ptr [rax-6F6F6F70h], 90h
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 86h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep shl [rbp+8F0h+var_38], 10h
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 87h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
mov eax, 9000008h
test [rax+rcx-3FCF0000h], edi
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 8Ch
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_3C]
shr eax, 18h
mov [rbp+8F0h+var_38], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 8Dh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep and [rbp+8F0h+var_38], 0FFh
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 8Eh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_38]
lea rdx, unk_7FF61B78C080
movzx eax, byte ptr [rax+rdx]
mov [rbp+8F0h+var_41], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 8Fh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
test [rdi-76FFFFF8h], ebp
test [rax+31000008h], edi
rcl byte ptr [rax-6F6F6F70h], 90h
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 90h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
mov eax, 18000008h
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 91h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
mov eax, [rbp+8F0h+var_38]
or [rbp+8F0h+var_34], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 96h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_34]
mov [rbp+8F0h+var_3C], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 0A0h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_14]
lea edx, [rax+3]
test eax, eax
cmovs eax, edx
sar eax, 2
sub eax, 1
mov [rbp+8F0h+var_40], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 0A1h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_40]
lea rdx, ds:0[rax*4]
lea rax, unk_7FF61B78C180
mov eax, [rdx+rax]
mov [rbp+8F0h+var_38], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 0A2h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_38]
shl eax, 18h
mov [rbp+8F0h+var_34], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 0A3h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_38]
shl eax, 8
and eax, 0FF0000h
or [rbp+8F0h+var_34], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 0A4h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_38]
shr eax, 8
and eax, 0FF00h
or [rbp+8F0h+var_34], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 0A5h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_38]
shr eax, 18h
or [rbp+8F0h+var_34], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 0A6h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
mov esp, 31000008h
test [rax+rcx-3FCF0000h], esi
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 0C8h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
or [rax], al
add [rbx-67B7FB18h], al
mov eax, [rbp+rax*4+8F0h+var_920]
mov [rbp+8F0h+var_34], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 0C9h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
or [rax], al
add [rbx], dh
test [rax+rcx-3D770000h], esi
mov eax, [rbp+8F0h+var_14]
cdqe
mov [rbp+rax*4+8F0h+var_920], edx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor al, 0CAh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
add [rcx], esi
rcl byte ptr [rax-6F6F6F70h], 90h
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 32h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
xrelease mov [rbp+8F0h+var_20], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 191h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
test eax, edx
or [rax], al
add [rbx], bh
test eax, eax
or [rax], al
add [rbp+8F0h+var_8C9], bh
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 192h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 7D0h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep lea rdx, [rbp+8F0h+Buf1]
mov eax, [rbp+8F0h+var_20]
cdqe
add rax, rdx
mov rdx, [rax+8]
mov rax, [rax]
mov [rbp+8F0h+var_930], rax
mov [rbp-38h], rdx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 19Ah
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
xrelease mov [rbp+8F0h+var_18], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 19Bh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_18]
cdqe
lea rdx, ds:0[rax4]
lea rax, [rbp+8F0h+var_930]
add rax, rdx
mov ecx, [rax]
mov eax, [rbp+8F0h+var_18]
cdqe
mov edx, [rbp+rax4+8F0h+var_920]
mov eax, [rbp+8F0h+var_18]
cdqe
lea r8, ds:0[rax*4]
lea rax, [rbp+8F0h+var_930]
add rax, r8
xor edx, ecx
mov [rax], edx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 19Dh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
add [rcx], esi
rcl byte ptr [rax-6F6F6F70h], 90h
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 19Bh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
xrelease mov [rbp+8F0h+var_1C], 1
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 1A5h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
xrelease mov [rbp+8F0h+var_18], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 1F5h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
mov eax, [rbp+8F0h+var_18]
cdqe
movzx eax, byte ptr [rbp+rax+8F0h+var_930]
mov [rbp+8F0h+var_41], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 1F7h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep movzx eax, [rbp+8F0h+var_41]
cdqe
lea rdx, unk_7FF61B78C080
movzx edx, byte ptr [rax+rdx]
mov eax, [rbp+8F0h+var_18]
cdqe
mov byte ptr [rbp+rax+8F0h+var_930], dl
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 1F8h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep add [rbp+8F0h+var_18], 1
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 1F5h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
mov dh, 45h ; 'E'
ror dword ptr [rax+8AF85h], 0
movzx eax, byte ptr [rbp+8F0h+var_930+5]
mov byte ptr [rbp+8F0h+var_930+1], al
movzx eax, [rbp+8F0h+var_927]
mov byte ptr [rbp+8F0h+var_930+5], al
movzx eax, [rbp+8F0h+var_923]
mov [rbp+8F0h+var_927], al
movzx eax, [rbp+8F0h+var_41]
mov [rbp+8F0h+var_923], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 259h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep movzx eax, byte ptr [rbp+8F0h+var_930+2]
mov [rbp+8F0h+var_41], al
movzx eax, byte ptr [rbp+8F0h+var_930+6]
mov [rbp+8F0h+var_42], al
movzx eax, [rbp+8F0h+var_926]
mov byte ptr [rbp+8F0h+var_930+2], al
movzx eax, [rbp+8F0h+var_922]
mov byte ptr [rbp+8F0h+var_930+6], al
movzx eax, [rbp+8F0h+var_41]
mov [rbp+8F0h+var_926], al
movzx eax, [rbp+8F0h+var_42]
mov [rbp+8F0h+var_922], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 25Ah
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
mov [rbp+8F0h+var_41], al
movzx eax, [rbp+8F0h+var_925]
mov [rbp+8F0h+var_921], al
movzx eax, byte ptr [rbp+8F0h+var_930+7]
mov [rbp+8F0h+var_925], al
movzx eax, byte ptr [rbp+8F0h+var_930+3]
mov byte ptr [rbp+8F0h+var_930+7], al
movzx eax, [rbp+8F0h+var_41]
mov byte ptr [rbp+8F0h+var_930+3], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 2BCh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
xrelease mov [rbp+8F0h+var_18], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 2BEh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_18]
shl eax, 2
mov [rbp+8F0h+var_54], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 2C7h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_54]
cdqe
movzx eax, byte ptr [rbp+rax+8F0h+var_930]
mov [rbp+8F0h+var_44], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 2C8h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_54]
add eax, 1
cdqe
movzx eax, byte ptr [rbp+rax+8F0h+var_930]
mov [rbp+8F0h+var_45], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 2C9h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
mov eax, [rbp+8F0h+var_54]
add eax, 2
cdqe
movzx eax, byte ptr [rbp+rax+8F0h+var_930]
mov [rbp+8F0h+var_46], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 2CAh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
or [rax], al
add [rbx-67B7FC40h], al
movzx eax, byte ptr [rbp+rax+8F0h+var_930]
mov [rbp+8F0h+var_47], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 320h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep movzx eax, [rbp+8F0h+var_44]
add eax, eax
mov [rbp+8F0h+var_41], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 321h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
or [rax], al
add [rdx], dh
test [rsi-77FFFFF8h], ebp
test [rax+31000008h], ebp
rcl byte ptr [rax-6F6F6F70h], 90h
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 323h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
test [rbx+1000008h], ebp
ror byte ptr [rax+8AF85h], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 324h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
movzx eax, [rbp+8F0h+var_41]
xor al, [rbp+8F0h+var_42]
mov [rbp+8F0h+var_49], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 326h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep movzx eax, [rbp+8F0h+var_46]
add eax, eax
mov [rbp+8F0h+var_41], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 327h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
or [rax], al
add [rdx], dh
test [rsi-77FFFFF8h], ebp
test [rsi+31000008h], esp
rcl byte ptr [rax-6F6F6F70h], 90h
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 329h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
test [rcx+1000008h], ebp
ror byte ptr [rax+8AF85h], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 32Ah
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
movzx eax, [rbp+8F0h+var_41]
xor al, [rbp+8F0h+var_42]
mov [rbp+8F0h+var_4B], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 334h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep movzx eax, [rbp+8F0h+var_48]
xor al, [rbp+8F0h+var_44]
mov [rbp+8F0h+var_4C], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 335h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
or [rax], al
add [rdx], dh
test [rbx-77FFFFF8h], ebp
test [rbx+31000008h], esp
rcl byte ptr [rax-6F6F6F70h], 90h
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 336h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
test [rsi+32000008h], esp
test [rdx-77FFFFF8h], ebp
test [rdx+31000008h], esp
rcl byte ptr [rax-6F6F6F70h], 90h
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 337h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
movzx eax, [rbp+8F0h+var_4B]
xor al, [rbp+8F0h+var_47]
mov [rbp+8F0h+var_4F], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 384h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep movzx eax, [rbp+8F0h+var_48]
xor al, [rbp+8F0h+var_4D]
mov [rbp+8F0h+var_43], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 385h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
or [rax], al
add [rax], dh
test [rbp+8F0h+arg_30FFF708], ebp
rcl byte ptr [rax-6F6F6F70h], 90h
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 386h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
movzx eax, [rbp+8F0h+var_43]
xor al, [rbp+8F0h+var_47]
mov edx, eax
mov eax, [rbp+8F0h+var_54]
cdqe
mov [rbp+rax+8F0h+var_940], dl
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 38Eh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep movzx eax, [rbp+8F0h+var_44]
xor al, [rbp+8F0h+var_49]
mov [rbp+8F0h+var_43], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 38Fh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
or [rax], al
add [rax], dh
test [rbp+8F0h+arg_30FFF708], ebp
rcl byte ptr [rax-6F6F6F70h], 90h
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 390h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
mov eax, [rbp+8F0h+var_54]
lea ecx, [rax+1]
movzx eax, [rbp+8F0h+var_43]
xor al, [rbp+8F0h+var_47]
mov edx, eax
movsxd rax, ecx
mov [rbp+rax+8F0h+var_940], dl
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 398h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
test [rax+rcx-7ACE0000h], ebp
stosd
or [rax], al
add [rax+8AD85h], cl
add [rcx], dh
rcl byte ptr [rax-6F6F6F70h], 90h
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 399h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
movzx eax, [rbp+8F0h+var_4A]
xor [rbp+8F0h+var_43], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 39Ah
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep mov eax, [rbp+8F0h+var_54]
lea ecx, [rax+2]
movzx eax, [rbp+8F0h+var_43]
xor al, [rbp+8F0h+var_4F]
mov edx, eax
movsxd rax, ecx
mov [rbp+rax+8F0h+var_940], dl
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 3A2h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep movzx eax, [rbp+8F0h+var_4C]
xor al, [rbp+8F0h+var_45]
mov [rbp+8F0h+var_43], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 3A3h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
or [rax], al
add [rax], dh
test [rbp+8F0h+arg_30FFF708], ebp
rcl byte ptr [rax-6F6F6F70h], 90h
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 3A4h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
mov eax, [rbp+8F0h+var_54]
lea ecx, [rax+3]
movzx eax, [rbp+8F0h+var_43]
xor al, [rbp+8F0h+var_4B]
mov edx, eax
movsxd rax, ecx
mov [rbp+rax+8F0h+var_940], dl
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 3B6h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep add [rbp+8F0h+var_18], 1
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 2BEh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
mov rdx, [rbp+8F0h+var_938]
mov [rbp+8F0h+var_930], rax
mov [rbp-38h], rdx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 5DCh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
test [rdi+0F000008h], ebp
mov dh, 45h ; 'E'
korw k0, k6, k1
movzx eax, [rbp+8F0h+var_927]
mov byte ptr [rbp+8F0h+var_930+5], al
movzx eax, [rbp+8F0h+var_923]
mov [rbp+8F0h+var_927], al
movzx eax, [rbp+8F0h+var_41]
mov [rbp+8F0h+var_923], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 5DDh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep movzx eax, byte ptr [rbp+8F0h+var_930+2]
mov [rbp+8F0h+var_41], al
movzx eax, byte ptr [rbp+8F0h+var_930+6]
mov [rbp+8F0h+var_42], al
movzx eax, [rbp+8F0h+var_926]
mov byte ptr [rbp+8F0h+var_930+2], al
movzx eax, [rbp+8F0h+var_922]
mov byte ptr [rbp+8F0h+var_930+6], al
movzx eax, [rbp+8F0h+var_41]
mov [rbp+8F0h+var_926], al
movzx eax, [rbp+8F0h+var_42]
mov [rbp+8F0h+var_922], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 5DEh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
movzx eax, [rbp+8F0h+var_921]
mov [rbp+8F0h+var_41], al
movzx eax, [rbp+8F0h+var_925]
mov [rbp+8F0h+var_921], al
movzx eax, byte ptr [rbp+8F0h+var_930+7]
mov [rbp+8F0h+var_925], al
movzx eax, byte ptr [rbp+8F0h+var_930+3]
mov byte ptr [rbp+8F0h+var_930+7], al
movzx eax, [rbp+8F0h+var_41]
mov byte ptr [rbp+8F0h+var_930+3], al
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 640h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
xrelease mov [rbp+8F0h+var_18], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 641h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
mov eax, [rbp+8F0h+var_18]
cdqe
lea rdx, ds:0[rax4]
lea rax, [rbp+8F0h+var_930]
add rax, rdx
mov ecx, [rax]
mov eax, [rbp+8F0h+var_1C]
lea edx, ds:0[rax4]
mov eax, [rbp+8F0h+var_18]
add eax, edx
cdqe
mov edx, [rbp+rax4+8F0h+var_920]
mov eax, [rbp+8F0h+var_18]
cdqe
lea r8, ds:0[rax4]
lea rax, [rbp+8F0h+var_930]
add rax, r8
xor edx, ecx
mov [rax], edx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 643h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep add [rbp+8F0h+var_18], 1
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 641h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep add [rbp+8F0h+var_1C], 1
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 1A5h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep lea rdx, [rbp+8F0h+Buf1]
mov eax, [rbp+8F0h+var_20]
cdqe
lea rcx, [rdx+rax]
mov rax, [rbp+8F0h+var_930]
mov rdx, [rbp-38h]
mov [rcx], rax
mov [rcx+8], rdx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 76Dh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep add [rbp+8F0h+var_20], 10h
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov [rbp+8F0h+var_68], rax
mov rax, [rbp+8F0h+var_950]
xor rax, 191h
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
lea rax, Buffer ; "wrong"
mov rcx, rax ; Buffer
call puts
mov [rbp+8F0h+var_944], 0
mov rax, [rbp+8F0h+var_950]
xor al, 0FFh
mov [rbp+8F0h+var_60], rax
jmp loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255
rep lea rax, aRight ; "right"
mov rcx, rax ; Buffer
call puts
mov [rbp+8F0h+var_944], 0
mov rax, [rbp+8F0h+var_950]
xor al, 0FFh
mov [rbp+8F0h+var_60], rax
jmp short loc_7FF61B788983 ; jumptable 00007FF61B7819BC case 255