L0040A214() { char _v16; // _cfa_fffffff0 _unknown_ __ebp; // r6 _unknown_ _t2; // _t2 _unknown_ _t5; // _t5 _unknown_ _t6; // _t6 *4244401 = 1349280117; *4244380 = 842230885; *4244405 = 1702129522; *4244397 = 1953655126; *4244376 = 1852990827; _t5 = *4243568 + 8; _push(_t5); L0040A1FC(_t2, 4244376, 4244397); _push(_t2); _pop(__ebx); _pop(__ecx); _push( &_v16); _push(64); _push(_t5); _push(4198400); *__ebx(); L0040A196(0x401008, *4243568, 4243572); return; }
void VCPU::leave() { // 修正栈,恢复现场 esp = ebp; _pop( ebp ); _pop( eip ); }
L004017A8( signed int __ebx, // r1 _unknown_ __edx, // r3 _unknown_ __edi, // r4 signed int __esi // r5 ) { intOrPtr _v84; // _cfa_ffffffac signed int _v140; // _cfa_ffffff74 _unknown_ __ebp; // r6 _unknown_ _t7; // _t7 _unknown_ _t8; // _t8 void* _t9; // _t9 _unknown_ _t10; // _t10 signed int _t11; // _t11 _unknown_ _t12; // _t12 _unknown_ _t13; // _t13 _unknown_ _t14; // _t14 _unknown_ _t15; // _t15 _unknown_ _t16; // _t16 _unknown_ _t17; // _t17 _unknown_ _t18; // _t18 __esi = __esi; __edi = __edi; _t15 = __edx; _t11 = __ebx; _push(_t17); _t18 = __esp; __esp = __esp - 264; _push(4208748); _t8 = L00401530(4208748, _t11, _t13, _t15, __edi, __esi, *((intOrPtr*)(0x403a34))); _pop(__eax); _v84 = 1632523144; _push(_t8); _t9 = GetCurrentProcess(); _pop(__eax); _t14 = 0; while(1) { _t15 = _t15 + __esi; __esi = __esi & _v140; _t14 = _t14 + 1; if(_t14 == 5) { break; } } _t9[0x33] = _t9[0x33] | __esi; _push(_t9); GetCommandLineA(); _pop(__eax); __esp = _t18; _pop(__ebp); return; }
L080483B6() { _unknown_ _t2; // _t2 _unknown_ _t3; // _t3 _unknown_ _t4; // _t4 _pop(__ebx); @rec __do_global_dtors_aux@__do_global_dtors_aux@(); __esp = __ebp; _pop(__ebp); return; }
L080482A6() { _unknown_ _t3; // _t3 _unknown_ _t5; // _t5 _pop(__ebx); __eax = *((intOrPtr*)(_t3 + 0x123a)); if(__eax != 0) { *__eax(); } _pop(__ebp); return; }
L00401608() { intOrPtr _v12; // _cfa_fffffff4 intOrPtr _v16; // _cfa_fffffff0 intOrPtr _v120; // _cfa_ffffff88 intOrPtr _v124; // _cfa_ffffff84 _unknown_ __ebp; // r6 struct HWND__* _t13; // _t13 _unknown_ _t14; // _t14 _unknown_ _t15; // _t15 _unknown_ _t16; // _t16 _push(_t15); goto L2; do { L2: _t16 = __esp; __esp = __esp - 148; __ecx = 4209432; *((intOrPtr*)(__ecx + -640)) = *((intOrPtr*)(__ecx + -640)) - __ecx; _v12 = _v12 - 240; _push(__ecx); _t13 = GetForegroundWindow(); _pop(__ecx); _v124 = 0; while(1) { *(__ecx + -212) = *(__ecx + -212) ^ 169; asm("sbb dword [ecx+0xfffffcd8], 0xca"); _v120 = _v120 + 1; if(_v120 == 5) { break; } } __edi = __edi + -113; _push(__ecx); _push(_v16); _push(_t13); _push(__esi); _push( *((intOrPtr*)(__ecx + 924))); L004017FC(); _pop(__ecx); } while(__ecx == 55273); _push(__ecx); GetCommandLineA(); _pop(__ecx); __esp = _t16; _pop(__ebp); return; }
L004016CC( signed int __ecx, // r2 signed int __edi, // r4 signed int __esi // r5 ) { _unknown_ __ebp; // r6 _unknown_ _t8; // _t8 CHAR* _t9; // _t9 _unknown_ _t10; // _t10 signed int _t11; // _t11 _unknown_ _t12; // _t12 __esi = __esi; __edi = __edi; _t11 = __ecx; goto L1; do { L1: __ebp = __esp; __esp = __esp - 48; _push(4208928); _push( *((intOrPtr*)(0x403a40))); _push(__edx); _push( *((intOrPtr*)(0x403ac0))); _push( *((intOrPtr*)(0x403ef8))); L0040145C(); _pop(__eax); asm("adc esi, [ebp-0x2c]"); _t11 = _t11 | 4208928; _push(4208928); _t9 = GetCommandLineA(); _pop(__eax); _t9[0x1c4] = 0; while(_t9[0x1c4] != 5) { _t9[0x1c4] = _t9[0x1c4] + 1; __esi = __esi ^ 243943651; __edi = __edi ^ 20; } asm("adc ecx, [eax+0xb0]"); } while(_t9 <= 31376); _push(_t9); _push(866); IsValidCodePage(); _pop(__eax); __esp = __ebp; return; }
L00401608( _unknown_ __ecx, // r2 _unknown_ __edx // r3 ) { _unknown_ _v256; // _cfa_ffffff00 _unknown_ __ebp; // r6 _unknown_ _t2; // _t2 _unknown_ _t5; // _t5 _unknown_ _t6; // _t6 _unknown_ _t7; // _t7 _unknown_ _t10; // _t10 _unknown_ _t11; // _t11 _unknown_ _t12; // _t12 _unknown_ _t14; // _t14 _unknown_ _t15; // _t15 _unknown_ _t20; // _t20 _unknown_ _t21; // _t21 _unknown_ _t22; // _t22 _push(_t21); _t22 = __esp; __esp = __esp - 784; IsWindow(1706949468); OpenThreadToken(0, &_v256 & 0, 0, _t3); ResumeThread(6); __esp = _t22; _pop(__ebp); return; }
void destroy_stack() { while(!is_stack_empty()) { _pop(); } }
object_t open(String path,int mode){ object_t o = 0; void *buff = _push(path,strlen(path) + 1); o = run(FS_PID,OPEN,.mode = mode,.buffer = buff); _pop(buff); return o; }
void scheduler::local::_do_switch() { if (unlikely(!scheduler::ready())) { return; } if (_core == processor::id()) { _timer.cancel(); screen::debug("\nRescheduling on core #", _core); if (_top.size() > 1 || (!_top.size() && _normal.size() > 1) || (!_top.size() && !_normal.size() && _background.size() > 1)) { _timer = time::preemption_timer()->one_shot(5_ms, [](uint64_t scheduler) { ((local *)scheduler)->_timer.device = nullptr; ((local *)scheduler)->do_switch(); }, (uint64_t)this); } processor::set_current_thread(_pop()); } else { processor::smp::parallel_execute(processor::smp::policies::specific_no_wait, [](uint64_t scheduler) { ((local *)scheduler)->do_switch(); }, (uint64_t)this, _core); } }
static bool exchange_with_empty(object_depot* depot, DepotMagazine*& magazine, DepotMagazine*& freeMagazine) { ASSERT(magazine == NULL || magazine->IsFull()); SpinLocker _(depot->inner_lock); if (depot->empty == NULL) return false; depot->empty_count--; if (magazine != NULL) { if (depot->full_count < depot->max_count) { _push(depot->full, magazine); depot->full_count++; freeMagazine = NULL; } else freeMagazine = magazine; } magazine = _pop(depot->empty); return true; }
frame_dummy() {// addr = 0x080481F0 _unknown_ _v12; _unknown_ _v16; _unknown_ _v20; intOrPtr* r6; _unknown_ _t6; _unknown_ _t7; __ebp = __esp; __esp = __esp - 24; L1(); _pop(__edx); _t7 = _t6 + 679520; if(L08056750 != 0) { L08056750( &M080E2954, &object.5273, 0, _t7); } _t5 = M080EE028; if(M080EE028 != 0) { _t5 = 0; if(_t5 != 0) { *__esp = &M080EE028; *_t5(); } } __esp = __ebp; return; goto L7; L7: }
L004018EC( _unknown_ __eax // r0 ) { intOrPtr _v44; // _cfa_ffffffd4 _unknown_ __ebp; // r6 _unknown_ _t11; // _t11 _unknown_ _t13; // _t13 _unknown_ _t16; // _t16 _unknown_ _t17; // _t17 __ebx = 4208156; _push(4208156); L0040159C(__edi, _t13 + -1424449641, __eax, _t16, *((intOrPtr*)(__ebx + 276))); _pop(__ebx); GetDriveTypeA(0); _v44 = 3; while(_v44 != 0) { _v44 = _v44 - 1; asm("adc edi, [ebp-0x10]"); asm("sbb ecx, edx"); } _v44 = _v44 + __edi; __esi = __ebx + -1564; while(1) { asm("stc "); asm("invalid "); if(LoadLibraryA(__esi) == 0) { break; } } return; }
L0040159C( intOrPtr __edi // r4 ) { intOrPtr _v80; // _cfa_ffffffb0 intOrPtr _v156; // _cfa_ffffff64 signed int _v236; // _cfa_ffffff14 _unknown_ __ebp; // r6 _unknown_ _t12; // _t12 _unknown_ _t13; // _t13 _unknown_ _t14; // _t14 intOrPtr _t15; // _t15 _unknown_ _t16; // _t16 _unknown_ _t17; // _t17 _unknown_ _t18; // _t18 _t15 = __edi; _push(_t17); _t18 = __esp; __esp = __esp - 256; __edx = __ebx + 244; *((intOrPtr*)(__edx + -144)) = _t15; _v156 = -386605051; _push(__edx); GetActiveWindow(); _pop(__edx); _v80 = 5; while(1) { asm("sbb esi, edi"); _v80 = _v80 - 1; if(_v80 == 0) { break; } } _push(__edx); _push(_t15); _push( *((intOrPtr*)(__edx + 1208))); L00401950(); _pop(__edx); _v236 = _v236 | -46; _push(__edx); GetThreadPriority(-2); _pop(__edx); __esp = _t18; _pop(__ebp); return; }
L004125C7() { void* _t13; // _t13 _unknown_ _t14; // _t14 void* _t16; // _t16 _unknown_ _t17; // _t17 _unknown_ _t20; // _t20 _unknown_ _t22; // _t22 _unknown_ _t23; // _t23 _unknown_ _t24; // _t24 signed int _t28; // _t28 _unknown_ _t29; // _t29 _unknown_ _t31; // _t31 void* _t32; // _t32 _unknown_ _t34; // _t34 _unknown_ _t36; // _t36 _unknown_ _t38; // _t38 _t32 = 0; while(1) { _t28 = (GetProcessTimes(0, 9, 7, 23, 8) | 255) & 236; _t32 = _t32 + _t28; _push(_t28); _t13 = MapViewOfFileEx(0, 8771135, 7, 16775164, 5385011, 21); _pop(__ebx); if(_t32 >= 138331879 || _t13 != 0) { _push(_t28); _push(64); __esp = __esp - 4; *__esp = 12288; _push(0x15393); _push(0); _t16 = VirtualAlloc(); _pop(__ecx); __edi = _t16; _t34 = *__esp + 263; _push(_t16); _t23 = 482; _t29 = 1219797558; _t36 = 0; goto L4; } else { continue; } } }
void pop() { if (is_stack_empty()) { return; } _pop(); }
void* object_cache_alloc(object_cache* cache, uint32 flags) { if (!(cache->flags & CACHE_NO_DEPOT)) { void* object = object_depot_obtain(&cache->depot); if (object) { T(Alloc(cache, flags, object)); return object; } } MutexLocker _(cache->lock); slab* source = NULL; while (true) { source = cache->partial.Head(); if (source != NULL) break; source = cache->empty.RemoveHead(); if (source != NULL) { cache->empty_count--; cache->partial.Add(source); break; } if (object_cache_reserve_internal(cache, 1, flags) != B_OK) { T(Alloc(cache, flags, NULL)); return NULL; } cache->pressure++; } ParanoiaChecker _2(source); object_link* link = _pop(source->free); source->count--; cache->used_count++; if (cache->total_objects - cache->used_count < cache->min_object_reserve) increase_object_reserve(cache); REMOVE_PARANOIA_CHECK(PARANOIA_SUSPICIOUS, source, &link->next, sizeof(void*)); TRACE_CACHE(cache, "allocate %p (%p) from %p, %lu remaining.", link_to_object(link, cache->object_size), link, source, source->count); if (source->count == 0) { cache->partial.Remove(source); cache->full.Add(source); } void* object = link_to_object(link, cache->object_size); T(Alloc(cache, flags, object)); return object; }
L004011C4() { _unknown_ _v40; // _cfa_ffffffd8 intOrPtr _v52; // _cfa_ffffffcc intOrPtr _v56; // _cfa_ffffffc8 _unknown_ __ebp; // r6 _unknown_ _t10; // _t10 _unknown_ _t11; // _t11 _unknown_ _t12; // _t12 _unknown_ _t13; // _t13 _unknown_ _t14; // _t14 _unknown_ _t15; // _t15 goto L1; do { while(1) { L1: __ebp = __esp; __esp = __esp - 64; __ecx = _t12 + 480; if(__ecx > 36760) { break; } } _push(__ecx); IsValidCodePage(866); _v56 = 0; while(_v56 != 4) { _v56 = _v56 + 1; asm("adc [ecx+0xd0], eax"); asm("sbb dword [ebp-0x20], 0x14"); } _push(__ecx); _push( *((intOrPtr*)(__ecx + 1136))); _push(_v52); _push(_v56); L004017A8(866, _t15 - 866, __edi, __esi); _pop(__ecx); } while(__ecx == 62068); _push(__ecx); Sleep(16); _pop(__ecx); __esp = __ebp; return; }
void object_depot_make_empty(object_depot* depot, uint32 flags) { WriteLocker writeLocker(depot->outer_lock); // collect the store magazines DepotMagazine* storeMagazines = NULL; int cpuCount = smp_get_num_cpus(); for (int i = 0; i < cpuCount; i++) { depot_cpu_store& store = depot->stores[i]; if (store.loaded) { _push(storeMagazines, store.loaded); store.loaded = NULL; } if (store.previous) { _push(storeMagazines, store.previous); store.previous = NULL; } } // detach the depot's full and empty magazines DepotMagazine* fullMagazines = depot->full; depot->full = NULL; DepotMagazine* emptyMagazines = depot->empty; depot->empty = NULL; writeLocker.Unlock(); // free all magazines while (storeMagazines != NULL) empty_magazine(depot, _pop(storeMagazines), flags); while (fullMagazines != NULL) empty_magazine(depot, _pop(fullMagazines), flags); while (emptyMagazines) free_magazine(_pop(emptyMagazines), flags); }
L004017FC() { intOrPtr _v44; // _cfa_ffffffd4 _unknown_ __ebp; // r6 struct HINSTANCE__* _t8; // _t8 _unknown_ _t9; // _t9 signed int _t10; // _t10 signed int _t11; // _t11 _unknown_ _t12; // _t12 _unknown_ _t13; // _t13 _unknown_ _t14; // _t14 _unknown_ _t15; // _t15 _unknown_ _t16; // _t16 _push(_t15); _t16 = __esp; __esp = __esp - 132; _t8 = 4208056; asm("adc dword [ebp-0x68], 0xbefbafe0"); _push(_t8); L0040129C(__ebx, _t10, __edi, _t13); _pop(__eax); _t11 = _t10 | -352470273; _push(_t8); while(1) { _t8 = LoadLibraryA(_t8 + -1464); if(_t8 == 0) { break; } } _pop(__eax); _push(3); _pop(_v44); while(_v44 != 0) { _v44 = _v44 - 1; __edi = __edi ^ _t11; *((intOrPtr*)(_t8 + 416)) = *((intOrPtr*)(_t8 + 416)) + -442950007; } _push(_t8); GetCurrentProcess(); _pop(__eax); __esp = _t16; _pop(__ebp); return; }
int tsrb_get_one(tsrb_t *rb) { if (!tsrb_empty(rb)) { return _pop(rb); } else { return -1; } }
int tsrb_get(tsrb_t *rb, char *dst, size_t n) { size_t tmp = n; while (tmp && !tsrb_empty(rb)) { *dst++ = _pop(rb); tmp--; } return (n - tmp); }
_start( _unknown_ __eax, // r0 _unknown_ __ebx, // r1 _unknown_ __edx // r3 ) {// addr = 0x08048278 _unknown_ _v8; // _cfa_fffffff8 _unknown_ _t3; // _t3 intOrPtr* _t4; // _t4 _unknown_ _t5; // _t5 _unknown_ _t7; // _t7 _unknown_ _t8; // _t8 signed int _t9; // _t9 __edx = __edx; _t5 = __ebx; _t3 = __eax; _pop(__esi); __ecx = __esp; __esp = __esp & 240; _push(_t3); _push(__esp); _push(__edx); _push(_fini); _push(_init); _push(__ecx); _push(__esi); _push(main); __libc_start_main(); asm("hlt "); _push(0); _t9 = __esp; _push(_t5); _push(_t3); L2(); _pop(__ebx); _t4 = *((intOrPtr*)(_t5 + 0x123a)); if(_t4 != 0) { *_t4(); } __esp = _t9; _pop(__ebp); return; }
__libc_csu_fini( _unknown_ __eax, // r0 _unknown_ __ebx, // r1 signed int __edx // r3 ) {// addr = 0x08048388 intOrPtr _v8; // _cfa_fffffff8 _unknown_ _v12; // _cfa_fffffff4 _unknown_ __ebp; // r6 _unknown_ _t7; // _t7 signed int _t9; // _t9 signed int _t11; // _t11 intOrPtr _t12; // _t12 _unknown_ _t13; // _t13 _unknown_ _t14; // _t14 _unknown_ _t15; // _t15 _unknown_ _t16; // _t16 __edx = __edx; _push(__ebx); _push(__eax); _t9 = 0 >> 2; _t11 = _t9 - 1; if(_t9 != 0) { while(1) { *((intOrPtr*)(134517780 + _t11 * 4))(); __edx = _t11; _t11 = _t11 - 1; if(__edx == 0) { break; } } } _t12 = _v8; __esp = _t15; _pop(__ebp); _push(_t15); _push(_t12); _push(__edx); L5(); _pop(__ebx); __do_global_dtors_aux(); return; }
L00401068() { intOrPtr _v20; // _cfa_ffffffec intOrPtr _v44; // _cfa_ffffffd4 intOrPtr _v56; // _cfa_ffffffc8 _unknown_ __ebp; // r6 _unknown_ _t13; // _t13 _unknown_ _t14; // _t14 _unknown_ _t15; // _t15 _unknown_ _t16; // _t16 _unknown_ _t17; // _t17 while(1) { __ebp = __esp; __esp = __esp - 112; __edx = 4209408; _push(__edx); _push(_v44); _push( *((intOrPtr*)(__edx + 652))); _push( *((intOrPtr*)(__edx + 316))); L00401234(); _pop(__edx); *(__edx + 16) = *(__edx + 16) | 1730769190; if(__edx > 28879) { break; } } _push(__edx); GetCommandLineA(); _pop(__edx); _v20 = 5; while(1) { _v56 = _v56 - -1475381619; _v20 = _v20 - 1; if(_v20 == 0) { break; } } _push(__edx); DeleteFileA(0); _pop(__edx); __esp = __ebp; return; }
L004160FA( _unknown_ __ebx, // r1 _unknown_ __ecx, // r2 _unknown_ __edx // r3 ) { _unknown_ _t49; // _t49 _unknown_ _t51; // _t51 intOrPtr _t52; // _t52 _unknown_ _t54; // _t54 _unknown_ _t55; // _t55 __edx = __edx; __ecx = __ecx; _pop(__ebp); _t52 = *((intOrPtr*)(_t55 - 190 + 24)); __esi = _t52 + 77286; asm("cld "); while(1) { asm("lodsd "); __eflags = _t49; if(__eflags == 0) { break; } _push(_t49); __ecx = _t49; asm("lodsd "); _push(__esi); _push(_t52 + _t49); _t54 = __esi; L00416290(_t49, __eflags); _pop(__edi); _pop(__esi); _t49 = L00416186(_t54, __esp); _pop(__eax); __esi = __esi + _t49; } *((intOrPtr*)(_t52 + 52712))(); asm("popad "); _push(4199026); return; }
ssize_t write(int fd,const void *buffer,size_t count){ ssize_t len; void *buff = _push(buffer,count); len = run(fd,IF_WRITE,buff,count,0); if(len < 0) { errno = -len; len = -1; } _pop(buff); return len; }
L00401234() { signed int _v92; // _cfa_ffffffa4 intOrPtr _v168; // _cfa_ffffff58 _unknown_ __ebp; // r6 _unknown_ _t9; // _t9 _unknown_ _t10; // _t10 _unknown_ _t11; // _t11 _unknown_ _t12; // _t12 _unknown_ _t13; // _t13 _push(_t12); goto L2; do { L2: _t13 = __esp; __esp = __esp - 216; __esi = 4207956; asm("sbb edx, [ebp+0xffffff30]"); GetCommandLineA(); *((intOrPtr*)(__esi + 792)) = 0; while(1) { __edx = __edx | _v92; __edi = __edi & __esi; *((intOrPtr*)(__esi + 792)) = *((intOrPtr*)(__esi + 792)) + 1; if( *((intOrPtr*)(__esi + 792)) == 5) { break; } } } while(__esi <= 58462); _push(__esi); L00401144(__ebx, __edx, _v168, *((intOrPtr*)(__esi + 72)), __edx, *((intOrPtr*)(__esi + 92))); _pop(__esi); asm("adc eax, esi"); Sleep(17); __esp = _t13; _pop(__ebp); return; }
L004019B4() { intOrPtr _v24; // _cfa_ffffffe8 intOrPtr _v32; // _cfa_ffffffe0 intOrPtr _v40; // _cfa_ffffffd8 intOrPtr _v96; // _cfa_ffffffa0 signed int _v204; // _cfa_ffffff34 _unknown_ __ebp; // r6 _unknown_ _t15; // _t15 _unknown_ _t17; // _t17 signed int _t18; // _t18 signed int _t19; // _t19 __ecx = 4208208; _t19 = _t18 & 310591763; _push(__ecx); L004018EC(_t15, *((intOrPtr*)(__ecx + 1184)), _v24, _v96); _pop(__ecx); _v32 = _v32 - -1145689430; _push(__ecx); while(LoadLibraryA(__ecx + -1616) != 0) { } _pop(__ecx); _v40 = 3; while(1) { *(__ecx + 736) = *(__ecx + 736) ^ 119; asm("adc dword [ecx+0xc4], 0x3000e5fd"); _v40 = _v40 - 1; if(_v40 == 0) { break; } } _v204 = _v204 ^ _t19; _push(__ecx); GetCurrentThread(); _pop(__ecx); return; }