Meu objetivo é fazer a decompilação completa deste projeto, para que eu consiga reconstruir/refatorar em um novo projeto para que meu novo projeto mantenha todo funcionamento e compatibilidade com o cliente original (será para basicamente criar um emulador deste servidor)
Call ghidra_open_server
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe"}
Tool result
{"result":"compilerID: windows\nimports[3]:\n - functions[31]: Ordinal_15,Ordinal_111,Ordinal_115,Ordinal_52,Ordinal_23,Ordinal_9,Ordinal_3,Ordinal_116,Ordinal_21,Ordinal_22,Ordinal_11,Ordinal_4,Ordinal_19,Ordinal_16,Ordinal_55,Ordinal_57,Ordinal_8,Ordinal_2,WSACreateEvent,WSAEventSelect,WSAEnumNetworkEvents,Ordinal_17,Ordinal_20,WSACloseEvent,Ordinal_13,Ordinal_1,Ordinal_12,WSAIoctl,WSASend,Ordinal_5,WSARecv\n name: WS2_32.DLL\n - functions[123]: ExitThread,ExitProcess,RtlUnwind,EnterCriticalSection,ReleaseSemaphore,LeaveCriticalSection,GetLastError,DeleteCriticalSection,InitializeCriticalSection,GetVersionExA,InterlockedExchange,GetThreadLocale,GetLocaleInfoA,GetACP,GetPrivateProfileStringA,GetPrivateProfileIntA,GetPrivateProfileSectionA,GetSystemTimeAsFileTime,GetSystemInfo,CreateWaitableTimerA,SetWaitableTimer,CreateTimerQueueTimer,WaitForMultipleObjects,DeleteTimerQueueTimer,CloseHandle,SetEvent,CreateEventA,WaitForSingleObject,lstrcpynA,FindResourceA,WideCharToMultiByte,ResumeThread,GetTickCount,GetCurrentThreadId,ResetEvent,CreateFileA,SetFilePointer,WriteFile,FindResourceExA,LoadResource,LockResource,SizeofResource,UnregisterWaitEx,Sleep,ReadFile,WritePrivateProfileStringA,DeleteFileA,FormatMessageA,LocalFree,GetModuleHandleA,GetModuleFileNameA,GetFullPathNameA,SetConsoleCtrlHandler,CreateSemaphoreA,WaitForMultipleObjectsEx,WaitNamedPipeA,SetNamedPipeHandleState,TlsAlloc,TlsFree,TlsGetValue,TlsSetValue,GetWindowsDirectoryA,InterlockedIncrement,HeapDestroy,RaiseException,InterlockedDecrement,GetTimeFormatA,HeapAlloc,HeapFree,CreateThread,VirtualQuery,VirtualAlloc,VirtualProtect,GetProcAddress,GetCurrentProcess,TerminateProcess,GetCommandLineA,GetTimeZoneInformation,MultiByteToWideChar,GetFileAttributesA,HeapReAlloc,LCMapStringW,LCMapStringA,GetCPInfo,HeapSize,SetLastError,HeapCreate,VirtualFree,FlushFileBuffers,GetOEMCP,UnhandledExceptionFilter,GetStartupInfoA,GetFileType,GetStdHandle,SetHandleCount,GetStringTypeW,GetStringTypeA,GetEnvironmentStringsW,FreeEnvironmentStringsW,GetEnvironmentStrings,FreeEnvironmentStringsA,SetEnvironmentVariableW,SetEnvironmentVariableA,GetUserDefaultLCID,EnumSystemLocalesA,IsValidCodePage,IsValidLocale,GetCurrentProcessId,QueryPerformanceCounter,IsBadReadPtr,IsBadWritePtr,IsBadCodePtr,SetStdHandle,LoadLibraryA,CompareStringW,CompareStringA,GetLocaleInfoW,SetEndOfFile,GetDriveTypeA,GetCurrentDirectoryA,SetUnhandledExceptionFilter,GetProcessHeap,GetDateFormatA\n name: KERNEL32.DLL\n - name: truncated... (more than 100 imports found)\n functions[1]: truncated\nexports[1]{address,name}:\n 0044e3ab,entry\nformat: Portable Executable (PE)\nlanguageID: "x86:LE:32:default"\nprocessor: x86\nendianess: Little Endian\nsegments[6]{name,start,end}:\n Headers,"00400000",004003ff\n .text,"00401000",0045e7ff\n .rdata,0045f000,00470fff\n .data,"00471000",004a1b3f\n .tls,004a2000,004a21ff\n tdb,ffdff000,ffdfffff\naddressSize: 32 bit\nimageBase: "00400000"\nnamedFunctions[101]{address,name}:\n 0044e56b,__getenv_lk\n 0045d85d,Unwind@0045d85d\n "0045e381",Unwind@0045e381\n 00459ac8,siglookup\n 0045e2d1,Unwind@0045e2d1\n 0044b798,__onexit_lk\n 0044a965,operator_new\n 0045d550,Unwind@0045d550\n 0045dd60,Unwind@0045dd60\n 0045d2d8,Unwind@0045d2d8\n "004520e5",_abort\n 0044c5cb,_strtok\n 00451b9e,BuildCatchObject\n 0045de98,Unwind@0045de98\n 0044aa74,runtime_error\n 0044d7e7,__itoa\n 0044e2de,__cexit\n 0045da30,Unwind@0045da30\n 00451d81,FindHandlerForForeignException\n 0045ddd0,Unwind@0045ddd0\n "004531e0",___ascii_stricmp\n "00449901","operator[]"\n 0045d700,Unwind@0045d700\n 0045e3b8,Unwind@0045e3b8\n 0045c089,__sptype\n 00459efc,__CopyMan\n 0044b31f,_Locinfo\n 00459f30,__ShrMan\n "0045e009",Unwind@0045e009\n 0045d7a0,Unwind@0045d7a0\n "00423659",Catch@00423659\n 0044cd73,_fclose\n 0040abbf,Catch@0040abbf\n 0045dd92,Unwind@0045dd92\n 0044c964,__fseek_lk\n 0045db60,Unwind@0045db60\n 0044b840,__onexit\n 0045a91c,__alloc_osfhnd\n 0044fe01,strtoxl\n 0044dd8a,__ismbcspace\n 0045dcd0,Unwind@0045dcd0\n 0044fa7a,__lock_file\n 0044f147,___updatetlocinfo\n 0045b469,__wcsdup\n 0045a16c,"FID_conflict:__atodbl"\n 0045bea5,__umatherr\n 0045be50,__set_errno\n 0045e31e,Unwind@0045e31e\n "00422e37",Catch@00422e37\n 00452b14,___isctype_mt\n "0045e140",Unwind@0045e140\n 0045e3c3,Unwind@0045e3c3\n 0044cdd5,exception\n 0045d7d7,Unwind@0045d7d7\n 0045b5f7,__strnicmp\n 0044facc,__unlock_file\n 00452dab,__mtinit\n "00452216",write_char\n 00456dfc,wfindenv\n 00455ce0,__aulldvrm\n 00450c9e,TranslatorGuardHandler\n 0045895c,__fassign\n 0044d748,_rand\n 0045d36e,Unwind@0045d36e\n "004587e0",_strpbrk\n 0045dcee,Unwind@0045dcee\n "004532e1",___sbh_find_block\n 0044ae72,__Tolower\n "00455235",__ftelli64\n 0045da10,Unwind@0045da10\n 0044ccb2,_fflush\n 004599dd,___crtInitCritSecNoSpinCount@8\n 004507a0,_memcpy\n 0045d363,Unwind@0045d363\n 0045d220,__alldiv\n 0045d5fb,Unwind@0045d5fb\n 0045aa98,___tolower_mt\n "00451828",TypeMatch\n 0045e2a5,Unwind@0045e2a5\n 0040b6ae,Catch@0040b6ae\n 00422f09,Catch@00422f09\n 00459ab0,_ValidateExecute\n 0044d7a9,xtoa\n 0044d61b,eh_vector_constructor_iterator'\n 0045d67d,Unwind@0045d67d\n 0045dacd,Unwind@0045dacd\n 0045e20b,Unwind@0045e20b\n 00452ee0,_strcmp\n \"0044e135\",___crtExitProcess\n 0045d890,Unwind@0045d890\n 0045af13,___crtMessageBoxA\n 0045deb0,Unwind@0045deb0\n 0044defb,_isspace\n 0044b878,_atexit\n 0044c9f3,_fseek\n 00456e4d,copy_environ\n 0045de30,Unwind@0045de30\n 0045d3f0,Unwind@0045d3f0\n \"00451963\",___DestructExceptionObject\n \"0045e070\",Unwind@0045e070\n truncated,truncated... (more than 100 named functions found)\nstrings[101]{address,value}:\n 004823cc,invalid bit length repeat\n 004822dc,unknown compression method\n \"00462350\",\"A buffer overrun has been detected which has corrupted the program's\\\\ninternal state. The program cannot safely continue execution and must\\\\nnow be terminated.\\\\n\"\n \"00463040\",\"CDynqQueue2::Push failed: %s\\\\n\"\n 0046b89c,SELECT Item FROM Chest WHERE No=%d\n 00463cb8,EventTreatAsIndex2\n \"00462718\",1#SNAN\n 00463b50,AdminDB2_DB\n 00470d6a,GetStringTypeW\n 004706a4,CreateWaitableTimerA\n 0046bce8,\"SELECT Sender,ReceiptGiftNo,Acquisition FROM GiftItem WHERE No=%d and Receiver='%s'\"\n 004706d0,CreateTimerQueueTimer\n 00470b7a,GetDateFormatA\n \"00462734\",\"CCacheHeap<>::Delete() removing %I64d units\\\\n\"\n 0046a858,\"CGameRoomManager::PlayEndJewel(...) called but it's not jewel-mode(%08X)\\\\n\"\n 004717a8,Error in server handshake\n 004637b0,Accept\n \"00463978\",ItemDB_DB\n \"00471224\",ssl-ca\n 004695f0,\"CSvcComm<>::SetSocketOption() - setsockopt(SO_RCVBUF) failed with %d\\\\n\"\n 0047235c,Can't create symlink '%s' pointing at '%s' (Error %d)\n 00460e3c,(null)\n 0046dcb0,SELECT Cash FROM Cash WHERE Id='%s'\n 0046dc6c,\"Password : \"\n 0046af90,\"SELECT u.Nickname, g.ScoreOnCalc, g.Rank, g.RankOld, g.Win, g.Lose FROM GrandPrix_Personal AS g INNER JOIN GunWCUser AS u ON g.User=u.Id WHERE g.Rank > 0 ORDER BY g.Rank DESC LIMIT %d\"\n 0046de68,\"UserDB] UDBIN_CASH_DECREASE\\\\n\"\n \"00460304\",Thursday\n 00470c9e,SetLastError\n \"00471600\",Got packet bigger than 'max_allowed_packet'\n 0047122c,ssl-cert\n 0046b7f0,\"SELECT Id, Nickname FROM GunWcUser WHERE Id IN (\"\n \"00470638\",SetEvent\n 0046032c,Sunday\n 0046d99c,\"Service Request: SVC_USER_ID(%08X)\\\\n\"\n 0046c8e8,Delete\n 00462b00,\"INSERT DELAYED INTO AbnormalUpdate SET Master='%s', Id='%s', ScoreDelta=%d, MoneyDelta=%d, Time=NOW()\"\n 0046a5cc,\" (slot=%d,grade=%d)\"\n 0046c8fc,ForceRemove\n 0046dd3c,\", u.User_Level\"\n 004637b8,\"udp WSAEventSelect failed with %d\\\\n\"\n \"0046e048\",\"CreateService failed - %s\\\\n\"\n \"00461310\",\"R6009\\\\r\\\\n- not enough space for environment\\\\r\\\\n\"\n \"00482378\",file error\n \"00462768\",\"CCacheHeap<>::New() -> failed to allocate memory with %d (total=%I64d, allocated=%I64d\\\\n\"\n 004636a4,\"APP.UdpReceiption.ReloadCash\\\\n\"\n 0046c9a0,\"ADMIN>> Room not found\\\\n\"\n 0046d380,\"Service Request: SVC_POLICE_ACCUSE(%08X)\\\\n\"\n \"004629e0\",Evidence='\n \"00460270\",October\n 0046400c,qsman\n 0046d7c8,\"Service Request: SVC_ROOM_SORTED_LIST(%08X)\\\\n\"\n 004620a0,english-south africa\n 004705a4,DeleteCriticalSection\n \"004705e0\",SetFilePointer\n 00463df4,\"EventTrigger:?\"\n 004708a8,FormatMessageA\n 004713f4,\"SYSTEM\\\\CurrentControlSet\\\\Services\\\\Winsock2\\\\Parameters\"\n 0046d698,\"Service Request: SVC_ROOM_CHANGE_STAGE(%08X)\\\\n\"\n \"004619e8\",Finnish\n 00463f0c,\"GrandPrix:QueryCategory\"\n 004708da,GetModuleFileNameA\n 0046ba70,\"INSERT INTO ReceiptConsume SET Id='%s', Item=%d, Volume=%u, Recovered=%d, Refund=%u, Time=NOW(), ExpireType='%c', Expire=%d\"\n 0046d948,\"Service Request: SVC_GRANDPRIX_LIST(%08X)\\\\n\"\n 004704d2,GetLastError\n 0046d1dc,\"Service Request: SVC_CMD_SET_ALLOWEDGUILD(%08X)\\\\n\"\n 0046dc50,\"User \"\n \"00463400\",\"CCommEventSink<>::OnConnectFail(%d, %08X) called\\\\n\"\n 0046b824,\"GunWcUserDB] WCDBIN_NICK\\\\n\"\n 0046b3b0,ClientData='$'\n \"00471238\",ssl-key\n 0046c498,\"INSERT INTO UserCount (SerialNo, ServerIp, ServerPort, Time, UserCount) VALUES (%u, %u, %u, NOW(), %d)\"\n 0046a1a8,\"CGameRoomManager::KickUser(...) invalid room-index(%d) or invalid slot(%d)\\\\n\"\n 0046b1ac,UPDATE Game SET NoRankUpdate=1 WHERE Id='%s'\n 0046133c,\"R6008\\\\r\\\\n- not enough space for arguments\\\\r\\\\n\"\n \"00460e78\",FlsSetValue\n \"00469e60\",\"CGameRoomManager::ChangeUserTeam(...) invalid room-index(%d) or slot(%d)\\\\n\"\n \"00463720\",\"APP.UdpReceiption.ProcInitialUdpRecv\\\\n\"\n \"00470496\",WSACloseEvent\n 0046cf48,\"Service Request: SVC_CASH(%08X)\\\\n\"\n 00470a7c,CloseServiceHandle\n \"00462060\",english-usa\n 0046c340,\"SELECT No, MenuId, Sender, UNIX_TIMESTAMP(SentTime), Msg, MsgType, ExpireType, GiftItemNo FROM GiftMsg WHERE Receiver='%s'\"\n 00462c08,EndTime=FROM_UNIXTIME(\n 00470f04,SetEndOfFile\n 0046a550,\"Random Tank %d selected for 1st tank of slot %d\\\\n\"\n \"00462110\",english-aus\n 00463bb0,AdminDB_DB\n 00470b30,HeapFree\n \"00472488\",\"Disk is full writing '%s' (Errcode: %d). Waiting for someone to free space... Retry in %d secs\"\n 00470ee2,LoadLibraryA\n 0046d82c,\"Service Request: SVC_ROOM_GRANDPRIX_BEGIN(%08X)\\\\n\"\n 0046955c,\"DoProcessStream<>(...) failed because OnMsg() returned false\\\\n\"\n \"00463e38\",StageEvent\n 004602ac,February\n \"00472291\",null)\n 0046d270,\"Service Request: SVC_CMD_GRADELIMIT(%08X)\\\\n\"\n 0046e0d8,\"This may take several seconds. Please wait...\\\\n\"\n 00463fc0,server\n 0046de88,\"UserDB] UDBIN_CASH\\\\n\"\n 004708c6,GetModuleHandleA\n truncated... (more than 100 strings found),truncated\nfileSize: 542720 bytes\nentryPoint: 0044e3ab"}</code></pre></details>_Call ghidra_list_methods
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "limit": 200}
Tool result
{"result":["FUN_00401000 @ 00401000","FUN_00401030 @ 00401030","FUN_00401060 @ 00401060","FUN_00401090 @ 00401090","FUN_004010c0 @ 004010c0","FUN_004010f0 @ 004010f0","FUN_00401120 @ 00401120","FUN_00401150 @ 00401150","FUN_004011c0 @ 004011c0","FUN_00401270 @ 00401270","FUN_00401280 @ 00401280","FUN_00401c60 @ 00401c60","FUN_00401e60 @ 00401e60","FUN_00401f40 @ 00401f40","FUN_00401f60 @ 00401f60","FUN_00401fe0 @ 00401fe0","FUN_00402000 @ 00402000","FUN_00402060 @ 00402060","FUN_00402070 @ 00402070","FUN_004020c0 @ 004020c0","FUN_00402140 @ 00402140","FUN_00402160 @ 00402160","FUN_00402230 @ 00402230","FUN_00402290 @ 00402290","thunk_FUN_00402400 @ 004022e0","FUN_004022f0 @ 004022f0","thunk_FUN_00402840 @ 00402320","FUN_00402330 @ 00402330","FUN_00402400 @ 00402400","FUN_00402590 @ 00402590","FUN_00402600 @ 00402600","FUN_00402610 @ 00402610","FUN_00402630 @ 00402630","FUN_004026b0 @ 004026b0","FUN_004026d0 @ 004026d0","FUN_00402750 @ 00402750","FUN_004027d0 @ 004027d0","FUN_004027e0 @ 004027e0","FUN_00402840 @ 00402840","FUN_004028b0 @ 004028b0","FUN_00402950 @ 00402950","FUN_00402990 @ 00402990","FUN_004029c0 @ 004029c0","FUN_004029e0 @ 004029e0","FUN_00402a10 @ 00402a10","FUN_00402a40 @ 00402a40","FUN_00402a70 @ 00402a70","FUN_00402a90 @ 00402a90","FUN_00402b10 @ 00402b10","FUN_00402b90 @ 00402b90","FUN_00402c20 @ 00402c20","FUN_00402c50 @ 00402c50","FUN_00402d40 @ 00402d40","FUN_00403190 @ 00403190","FUN_004031c0 @ 004031c0","FUN_004031f0 @ 004031f0","FUN_00403440 @ 00403440","FUN_00403510 @ 00403510","FUN_00405f30 @ 00405f30","FUN_00405f50 @ 00405f50","FUN_00406320 @ 00406320","FUN_00406470 @ 00406470","FUN_00406640 @ 00406640","FUN_00406660 @ 00406660","FUN_00406700 @ 00406700","FUN_00406740 @ 00406740","FUN_00406820 @ 00406820","FUN_004068a0 @ 004068a0","FUN_00406940 @ 00406940","FUN_00406a00 @ 00406a00","FUN_00406b70 @ 00406b70","FUN_00406bd0 @ 00406bd0","FUN_00406c60 @ 00406c60","FUN_00406e60 @ 00406e60","FUN_00406f00 @ 00406f00","FUN_00406f50 @ 00406f50","FUN_00407110 @ 00407110","FUN_00407250 @ 00407250","FUN_004073b0 @ 004073b0","FUN_00407400 @ 00407400","FUN_00407570 @ 00407570","FUN_00407600 @ 00407600","FUN_00407650 @ 00407650","FUN_004076b0 @ 004076b0","FUN_00407780 @ 00407780","FUN_00407830 @ 00407830","Catch@00407932 @ 00407932","FUN_00407964 @ 00407964","FUN_004079d0 @ 004079d0","FUN_00407ac0 @ 00407ac0","FUN_00407b50 @ 00407b50","FUN_00407cb0 @ 00407cb0","FUN_00407d00 @ 00407d00","FUN_00407d60 @ 00407d60","FUN_00407d80 @ 00407d80","FUN_00407e20 @ 00407e20","FUN_00407e40 @ 00407e40","FUN_00407f00 @ 00407f00","FUN_00407f40 @ 00407f40","FUN_00407fa0 @ 00407fa0","FUN_00408060 @ 00408060","FUN_00408120 @ 00408120","FUN_004081e0 @ 004081e0","FUN_00408250 @ 00408250","FUN_00408320 @ 00408320","FUN_00408380 @ 00408380","FUN_004083c0 @ 004083c0","FUN_00408680 @ 00408680","FUN_004086c0 @ 004086c0","FUN_00408980 @ 00408980","FUN_004089e0 @ 004089e0","FUN_00408a20 @ 00408a20","FUN_00408a80 @ 00408a80","FUN_00408aa0 @ 00408aa0","FUN_00408ac0 @ 00408ac0","FUN_00408b20 @ 00408b20","FUN_00408b60 @ 00408b60","FUN_00408bc0 @ 00408bc0","FUN_00408be0 @ 00408be0","FUN_00408c00 @ 00408c00","FUN_00408c60 @ 00408c60","FUN_00408cc0 @ 00408cc0","FUN_00408d20 @ 00408d20","FUN_00408d60 @ 00408d60","FUN_00408da0 @ 00408da0","FUN_00408e10 @ 00408e10","FUN_00408fa0 @ 00408fa0","FUN_00408fb0 @ 00408fb0","FUN_00408fe0 @ 00408fe0","FUN_004090c0 @ 004090c0","FUN_00409140 @ 00409140","FUN_004091b0 @ 004091b0","FUN_004091f0 @ 004091f0","FUN_00409270 @ 00409270","FUN_00409450 @ 00409450","FUN_004094c0 @ 004094c0","FUN_00409540 @ 00409540","FUN_004095c0 @ 004095c0","FUN_00409690 @ 00409690","FUN_004098e0 @ 004098e0","FUN_004099b0 @ 004099b0","FUN_004099d0 @ 004099d0","Catch@00409b5e @ 00409b5e","FUN_00409b8a @ 00409b8a","FUN_00409c50 @ 00409c50","FUN_00409d60 @ 00409d60","FUN_00409d80 @ 00409d80","FUN_00409ea0 @ 00409ea0","FUN_00409ee0 @ 00409ee0","FUN_00409f10 @ 00409f10","FUN_00409f70 @ 00409f70","FUN_00409fa0 @ 00409fa0","FUN_0040a010 @ 0040a010","FUN_0040a090 @ 0040a090","FUN_0040a140 @ 0040a140","FUN_0040a1f0 @ 0040a1f0","FUN_0040a290 @ 0040a290","FUN_0040a440 @ 0040a440","FUN_0040a4b0 @ 0040a4b0","FUN_0040a530 @ 0040a530","FUN_0040a610 @ 0040a610","FUN_0040a880 @ 0040a880","FUN_0040a900 @ 0040a900","thunk_FUN_0040a980 @ 0040a970","FUN_0040a980 @ 0040a980","FUN_0040a990 @ 0040a990","Catch@0040aa0e @ 0040aa0e","FUN_0040aa1d @ 0040aa1d","FUN_0040aad0 @ 0040aad0","Catch@0040abbf @ 0040abbf","FUN_0040abe0 @ 0040abe0","FUN_0040aca0 @ 0040aca0","FUN_0040ae30 @ 0040ae30","FUN_0040ae90 @ 0040ae90","FUN_0040afd0 @ 0040afd0","FUN_0040b310 @ 0040b310","FUN_0040b440 @ 0040b440","FUN_0040b4a0 @ 0040b4a0","FUN_0040b630 @ 0040b630","Catch@0040b6ae @ 0040b6ae","FUN_0040b6bd @ 0040b6bd","FUN_0040b770 @ 0040b770","FUN_0040b810 @ 0040b810","FUN_0040b990 @ 0040b990","FUN_0040ba40 @ 0040ba40","FUN_0040baa0 @ 0040baa0","Catch@0040bae9 @ 0040bae9","FUN_0040bb20 @ 0040bb20","Catch@0040bb9e @ 0040bb9e","FUN_0040bbad @ 0040bbad","FUN_0040bc60 @ 0040bc60","FUN_0040bd10 @ 0040bd10","FUN_0040bd40 @ 0040bd40","FUN_0040bdf0 @ 0040bdf0","FUN_0040be60 @ 0040be60","FUN_0040bf20 @ 0040bf20","FUN_0040c070 @ 0040c070","FUN_0040c330 @ 0040c330","FUN_0040c370 @ 0040c370","FUN_0040c3b0 @ 0040c3b0"]}Call ghidra_list_strings
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "limit": 500}
Tool result
{"result":["0045f2ce: "?@ deflate 1.1.4 Copyright 1995-2002 Jean-loup Gailly "","0045fe10: " inflate 1.1.4 Copyright 1995-2002 Mark Adler "","004600a0: "ios_base::eofbit set"","004600b8: "ios_base::failbit set"","004600d0: "ios_base::badbit set"","0046010c: "invalid string position"","00460124: "string too long"","004601ec: "bad allocation"","00460224: "HH:mm:ss"","00460230: "dddd, MMMM dd, yyyy"","00460244: "MM/dd/yy"","00460258: "December"","00460264: "November"","00460270: "October"","00460278: "September"","00460284: "August"","0046029c: "April"","004602a4: "March"","004602ac: "February"","004602b8: "January"","004602f0: "Saturday"","004602fc: "Friday"","00460304: "Thursday"","00460310: "Wednesday"","0046031c: "Tuesday"","00460324: "Monday"","0046032c: "Sunday"","00460354: "am/pm"","00460430: "Unknown exception"","004604bc: "CorExitProcess"","004604cc: "mscoree.dll"","004606e8: "LC_TIME"","004606f0: "LC_NUMERIC"","004606fc: "LC_MONETARY"","00460708: "LC_CTYPE"","00460714: "LC_COLLATE"","00460720: "LC_ALL"","00460e2e: "null)"","00460e3c: "(null)"","00460e70: "FlsFree"","00460e78: "FlsSetValue"","00460e84: "FlsGetValue"","00460e90: "FlsAlloc"","00460e9c: "kernel32.dll"","00460eac: "SunMonTueWedThuFriSat"","00460ec4: "JanFebMarAprMayJunJulAugSepOctNovDec"","00460fec: "runtime error "","00460ffc: "TLOSS error\r\n"","0046100c: "SING error\r\n"","0046101c: "DOMAIN error\r\n"","00461030: "R6029\r\n- This application cannot run using the active version of the Microsoft .NET Runtime\nPlease contact the application's support team for more information.\r\n"","004610d4: "R6028\r\n- unable to initialize heap\r\n"","004610fc: "R6027\r\n- not enough space for lowio initialization\r\n"","00461134: "R6026\r\n- not enough space for stdio initialization\r\n"","0046116c: "R6025\r\n- pure virtual function call\r\n"","00461194: "R6024\r\n- not enough space for _onexit/atexit table\r\n"","004611cc: "R6019\r\n- unable to open console device\r\n"","004611f8: "R6018\r\n- unexpected heap error\r\n"","0046121c: "R6017\r\n- unexpected multithread lock error\r\n"","0046124c: "R6016\r\n- not enough space for thread data\r\n"","00461278: "\r\nThis application has requested the Runtime to terminate it in an unusual way.\nPlease contact the application's support team for more information.\r\n"","00461310: "R6009\r\n- not enough space for environment\r\n"","0046133c: "R6008\r\n- not enough space for arguments\r\n"","00461368: "R6002\r\n- floating point not loaded\r\n"","00461390: "Microsoft Visual C++ Runtime Library"","004613bc: "Runtime Error!\n\nProgram: "","004613dc: ""","0046189c: "Paraguay"","004618b0: "Chile"","004618b8: "Ecuador"","004618c0: "Argentina"","004618d4: "Colombia"","004618e0: "Venezuela"","004618ec: "Dominican Republic"","00461900: "South Africa"","00461910: "Panama"","00461918: "Luxembourg"","00461924: "Costa Rica"","00461930: "Switzerland"","0046193c: "Guatemala"","00461948: "Canada"","00461950: "Spanish - Modern Sort"","00461968: "Australia"","00461974: "English"","0046197c: "Austria"","00461984: "German"","0046198c: "Belgium"","00461994: "Mexico"","0046199c: "Spanish"","004619a4: "Basque"","004619ac: "Sweden"","004619b4: "Swedish"","004619bc: "Iceland"","004619c4: "Icelandic"","004619d0: "France"","004619d8: "French"","004619e0: "Finland"","004619e8: "Finnish"","004619f0: "Spain"","004619f8: "Spanish - Traditional Sort"","00461ae0: "united-states"","00461af0: "united-kingdom"","00461b00: "trinidad & tobago"","00461b14: "south-korea"","00461b20: "south-africa"","00461b30: "south korea"","00461b3c: "south africa"","00461b4c: "slovak"","00461b54: "puerto-rico"","00461b60: "pr-china"","00461b6c: "pr china"","00461b7c: "new-zealand"","00461b88: "hong-kong"","00461b94: "holland"","00461b9c: "great britain"","00461bac: "england"","00461bbc: "china"","00461bc4: "britain"","00461bcc: "america"","00461dec: "swiss"","00461df4: "swedish-finland"","00461e04: "spanish-venezuela"","00461e18: "spanish-uruguay"","00461e28: "spanish-puerto rico"","00461e3c: "spanish-peru"","00461e4c: "spanish-paraguay"","00461e60: "spanish-panama"","00461e70: "spanish-nicaragua"","00461e84: "spanish-modern"","00461e94: "spanish-mexican"","00461ea4: "spanish-honduras"","00461eb8: "spanish-guatemala"","00461ecc: "spanish-el salvador"","00461ee0: "spanish-ecuador"","00461ef0: "spanish-dominican republic"","00461f0c: "spanish-costa rica"","00461f20: "spanish-colombia"","00461f34: "spanish-chile"","00461f44: "spanish-bolivia"","00461f54: "spanish-argentina"","00461f68: "portuguese-brazilian"","00461f80: "norwegian-nynorsk"","00461f94: "norwegian-bokmal"","00461fa8: "norwegian"","00461fb4: "italian-swiss"","00461fc4: "irish-english"","00461fd4: "german-swiss"","00461fe4: "german-luxembourg"","00461ff8: "german-lichtenstein"","0046200c: "german-austrian"","0046201c: "french-swiss"","0046202c: "french-luxembourg"","00462040: "french-canadian"","00462050: "french-belgian"","00462060: "english-usa"","0046206c: "english-us"","00462078: "english-uk"","00462084: "english-trinidad y tobago"","004620a0: "english-south africa"","004620b8: "english-nz"","004620c4: "english-jamaica"","004620d4: "english-ire"","004620e0: "english-caribbean"","004620f4: "english-can"","00462100: "english-belize"","00462110: "english-aus"","0046211c: "english-american"","00462130: "dutch-belgian"","00462140: "chinese-traditional"","00462154: "chinese-singapore"","00462168: "chinese-simplified"","0046217c: "chinese-hongkong"","00462190: "chinese"","004621a0: "canadian"","004621ac: "belgian"","004621b4: "australian"","004621c0: "american-english"","004621d4: "american english"","004621e8: "american"","004621fc: "Norwegian-Nynorsk"","00462228: "e+000"","00462246: "GAIsProcessorFeaturePresent"","00462264: "KERNEL32"","004622e8: "floor"","00462300: "exp10"","00462318: "log10"","00462334: "AuthenticAMD"","00462344: "Program: "","00462350: "A buffer overrun has been detected which has corrupted the program's\ninternal state. The program cannot safely continue execution and must\nnow be terminated.\n"","004623f0: "Buffer overrun detected!"","00462410: "A security error of unknown cause has been detected which has\ncorrupted the program's internal state. The program cannot safely\ncontinue execution and must now be terminated.\n"","004624c4: "Unknown security failure detected!"","00462504: "InitializeCriticalSectionAndSpinCount"","004625a4: "GetProcessWindowStation"","004625bc: "GetUserObjectInformationA"","004625d8: "GetLastActivePopup"","004625ec: "GetActiveWindow"","004625fc: "MessageBoxA"","00462608: "user32.dll"","00462630: "_nextafter"","00462700: "1#QNAN"","00462708: "1#INF"","00462710: "1#IND"","00462718: "1#SNAN"","00462734: "CCacheHeap<>::Delete() removing %I64d units\n"","00462768: "CCacheHeap<>::New() -> failed to allocate memory with %d (total=%I64d, allocated=%I64d\n"","004627c0: "CDynaQueue<>::Increase(%d) -> malloc(%d) failed with %d\n"","00462800: "%08X "","00462808: "(%y/%m/%d %H:%M:%S) "","00462820: "First error is '%s' trying mysql_ping()"","00462848: "QueueAPC() failed with %d\n"","00462864: "APC Parameter Heap failed to allocate a space\n"","00462898: "SELECT Allow FROM %s WHERE (0x%08X & Mask) = Ip ORDER BY Mask DESC Limit 1"","004628e4: "IpBlock"","004628ec: "AdminDB] ADBIN_CHECK_IP\n"","00462908: "SELECT Reason FROM BanLog WHERE Id = '%s' ORDER BY StartTime DESC LIMIT 1"","00462954: "AdminDB] ADBIN_BANREASON\n"","00462978: "INSERT DELAYED INTO BanLog SET Id='%s', StartTime=NOW(), Duration=%d, Reason='"","004629c8: "AdminDB] ADBIN_BANLOG\n"","004629e0: "Evidence='"","004629f0: "INSERT DELAYED INTO Accuse SET Accuse='%s', ServerIp=%u, ServerPort=%u, Accused='%s', Time=NOW(), Complaint='"","00462a60: "AdminDB] ADBIN_ACCUSE\n"","00462a78: "INSERT DELAYED INTO EventLog SET Id='%s', Code=%u, AcquiredScore=%d, Time=NOW(), ServerIp=%u, ServerPort=%u"","00462ae4: "AdminDB] ADBIN_EVENTLOG\n"","00462b00: "INSERT DELAYED INTO AbnormalUpdate SET Master='%s', Id='%s', ScoreDelta=%d, MoneyDelta=%d, Time=NOW()"","00462b68: "AdminDB] ADBIN_ABNORMALUPDATELOG\n"","00462b8c: "_DeadTime=FROM_UNIXTIME("","00462ba8: "_MoneyDelta="","00462bb8: "_ScoreDelta="","00462bc8: "_DeadCause="","00462bd4: "_TeamID="","00462be0: "_ID='"","00462be8: "WinTeamOrPlayer="","00462bfc: "GameOption="","00462c08: "EndTime=FROM_UNIXTIME("","00462c24: "StartTime=FROM_UNIXTIME("","00462c44: "GameRoomTitle='"","00462c54: "GameRoomID="","00462c60: "ServerIP="","00462c6c: "INSERT DELAYED INTO PlayLog SET "","00462c90: "AdminDB] ADBIN_PLAYLOG\n"","00462ca8: "INSERT DELAYED INTO DropLog SET Id='%s', Dropper='%s', Time=NOW()"","00462cec: "AdminDB] ADBIN_DROPLOG\n"","00462d08: "INSERT DELAYED INTO LoginLog (Id, Ip, Ip_v, Port, Port_v, Time, ServerIp, ServerPort) VALUES ('%s', %u, %u, %u, %u, NOW(), %u, %u)"","00462d8c: "AdminDB] ADBIN_LOGINLOG\n"","00462da8: "ErrNo=%d, Error=%s"","00462e40: "bad cast"","0046302c: "deque too long"","00463040: "CDynqQueue2::Push failed: %s\n"","00463060: "CSvcComm<>::DoRecv(...) failed with %d\n"","00463088: "SvcComm<>::DoRecv(...) failed because buffer is full. msg-filled=%d, buffer=%d\n"","004630d8: "CSvcComm<>::AllocSession(...) failed because CHeap<>::Alloc() failed\n"","00463120: "Generated Uniq Value is 0x%08x\n"","00463140: "dbthread ended. (thread=%d, request=%d)\n"","0046316c: "Terminating Thread by Error"","00463188: "dbthread started. (thread=%d, request=%d)\n"","004631b4: "CSigDynaQueue2::Push() ReleaseSemaphore() failed: err=%d\n"","004631f0: "CSvcDatabase<>::BeginDbThread() >> _beginthreadex failed with %d\n"","00463234: "socket successfully accpted but no registered thread exist.\n"","00463274: "socket accepted from %s\n"","00463290: "socket accepted from %s, but accept denied (from deny-all)\n"","004632d0: "socket accepted from %s, but accept denied (from accept-except list)\n"","00463318: "too much connection: %s\n"","00463334: "non tcp socket acccepted\n"","00463350: "CSvcComm<>::ListenWaitComplete(...) WSAEnumNetworkEvents() failed with %d\n"","0046339c: "CThreadLauncher<>::BeginEx - _beginthreadex failed with %d\n"","004633d8: "CCommEventSink<>::OnClose(%08X) called\n"","00463400: "CCommEventSink<>::OnConnectFail(%d, %08X) called\n"","00463434: "CCommEventSink<>::OnConnect(%08X/%08X) called\n"","00463464: "CSvcDatabase<>::ExecSQL(...) m_Request.Push. err=%d"","00463498: "CSvcDatabase<>::ExecSQL(...) request queue is full. thread=%d, request=%d"","004634e4: "CSvcComm<>::DoListen() - listen(...) failed with %d\n"","0046351c: "CSvcComm<>::DoListen() - WSAEventSelect(...) failed with %d\n"","0046355c: "CSvcComm<>::DoListen() - WSACreateEvent() failed with %d\n"","00463598: "CSvcComm<>::DoListen() - bind(...) failed with %d\n"","004635cc: "CSvcComm<>::DoListen() - socket(...) failed with %d\n"","00463604: "invalid map/set iterator"","00463620: "AllowedGuild.txt"","00463634: "APP.Error=%d\n"","00463644: "APP.Stop.End\n"","00463654: "APP.Stop\n"","00463660: "APP.IdleRoomCheck.End\n"","00463678: "APP.IdleRoomCheck\n"","0046368c: "APP.UdpReceiption.End\n"","004636a4: "APP.UdpReceiption.ReloadCash\n"","004636c4: "APP.UdpReceiption.GiftTransfer\n"","004636e4: "APP.UdpReceiption.ForceLogout\n"","00463704: "APP.UdpReceiption.GetState\n"","00463720: "APP.UdpReceiption.ProcInitialUdpRecv\n"","00463748: "\tUDP-RECV [FROM=%d.%d.%d.%d:%d Accept=%d] %s \n"","00463778: "APP.UdpReceiption\n"","0046378c: "m_PAgent BeginThread failed\n"","004637b0: "Accept"","004637b8: "udp WSAEventSelect failed with %d\n"","004637dc: "udp bind failed with %d\n"","004637f8: "udp socket failed with %d\n"","00463814: "SingleSourceMonitor"","00463828: "MaxConnectionPerSource"","00463840: "BanOverSingleSourceLimitation"","00463860: "BanOverMaxConnection"","00463878: "Service Listen failed with %d\n"","00463898: "QuickStartMan"","004638a8: "QuickStartOption"","004638bc: "RoomCloseMsg"","004638cc: "RoomCloseWarnMsg"","004638e0: "VersionLast"","004638ec: "VersionFirst"","004638fc: "SqlErr-PartnerAgentDB.txt"","00463918: "PartnerAgent"","00463928: "127.0.0.1"","0046395c: "SqlErr-Item.txt"","0046396c: "ItemDB_Port"","00463978: "ItemDB_DB"","00463984: "ItemDB_Pwd"","00463990: "ItemDB_User"","0046399c: "ItemDB_Host"","004639a8: "SqlErr-Record.txt"","004639bc: "RecordDB_Port"","004639cc: "RecordDB_DB"","004639d8: "RecordDB_Pwd"","004639e8: "RecordDB_User"","004639f8: "RecordDB_Host"","00463a08: "SqlErr-Gunbound.txt"","00463a1c: "GunboundDB_Port"","00463a2c: "GunboundDB_DB"","00463a3c: "GunboundDB_Pwd"","00463a4c: "GunboundDB_User"","00463a5c: "GunboundDB_Host"","00463a6c: "SqlErr-GunWcUser.txt"","00463a84: "GunWcUserDB_Port"","00463a98: "GunWcUserDB_DB"","00463aa8: "GunWcUserDB_Pwd"","00463ab8: "GunWcUserDB_User"","00463acc: "GunWcUserDB_Host"","00463ae0: "SqlErr-User.txt"","00463af0: "UserDB_Port"","00463afc: "UserDB_DB"","00463b08: "UserDB_Pwd"","00463b14: "UserDB_User"","00463b20: "UserDB_Host"","00463b2c: "SqlErr-Admin2.txt"","00463b40: "AdminDB2_Port"","00463b50: "AdminDB2_DB"","00463b5c: "AdminDB2_Pwd"","00463b6c: "AdminDB2_User"","00463b7c: "AdminDB2_Host"","00463b8c: "SqlErr-Admin.txt"","00463ba0: "AdminDB_Port"","00463bb0: "AdminDB_DB"","00463bbc: "AdminDB_Pwd"","00463bc8: "AdminDB_User"","00463bd8: "AdminDB_Host"","00463be8: " \r\n\t,"","00463bf0: "Rand_stage_pos.txt"","00463c04: "Mix_stage_pos.txt"","00463c18: "EvsW_stage_pos.txt"","00463c2c: "ANU_DROP_GP_NEG"","00463c3c: "ANU_DROP_GOLD_NEG"","00463c50: "ANU_DROP_GP"","00463c5c: "ANU_DROP_GOLD"","00463c6c: "ANU_WRITELOG_GP"","00463c7c: "ANU_WRITELOG_GOLD"","00463c90: "PassableAuthority"","00463ca4: "EventTreatAsIndex3"","00463cb8: "EventTreatAsIndex2"","00463ccc: "EventTreatAsIndex1"","00463ce0: "EventTreatAsIndex0"","00463cf4: "EventWriteToLog3"","00463d08: "EventWriteToLog2"","00463d1c: "EventWriteToLog1"","00463d30: "EventWriteToLog0"","00463d44: "EventActProp3"","00463d54: "EventActProp2"","00463d64: "EventActProp1"","00463d74: "EventActProp0"","00463d84: "NoRoomCreate"","00463d94: "GoldFactor"","00463da0: "ScoreFactor"","00463dac: "FuncRestrict"","00463dbc: "GuildMarkLimit"","00463dcc: "GradeLimitLast"","00463ddc: "GradeLimitFirst"","00463df4: "EventTrigger:?"","00463e04: "Tank.Hidden.Ratio"","00463e18: "ProductVersion"","00463e28: "SuperUserItem"","00463e38: "StageEvent"","00463e44: "IdleRoomWarnTime"","00463e58: "IdleRoomCloseTime"","00463e6c: "RecommendedMan"","00463e7c: "LoadAuthIndex failed\n"","00463e94: "CSAuth.idx"","00463ea0: "LoadAuthTable failed\n"","00463eb8: "CSAuth.tab"","00463ec4: "WSAStartup failed with %d\n"","00463ee8: "Query.dat"","00463ef4: "room_ment.txt"","00463f04: "MaxRoom"","00463f0c: "GrandPrix:QueryCategory"","00463f24: "GrandPrix:PersonalScoreDefault"","00463f44: "STAGE_0_SELECT_PROBABILITY"","00463f70: "GunBoundXPServ"","00463f80: "GunBoundXPServ[%d]"","00463f94: "Setting.txt"","00463fc0: "server"","00463fd0: "disconnect"","00463fdc: "close"","00463ff4: "version"","00463ffc: "limit"","0046400c: "qsman"","00464014: "qsopt"","004692cc: "map/set too long"","004692e0: "CQueue<>::Push(...) failed because queue is full\n"","00469314: "CChannelManager::Chat( %d, %d ) failed\n"","00469340: "CChannelManager::Leave( %d, %d ) failed because valid-slot.findany failed\n"","0046938c: "CChannelManager::Leave( %d, %d ) failed\n"","004693b8: "CChannelManager::SetMent(...) ment length is too long: %d\n"","004693f4: "channel_ment.txt"","00469438: "Inactive Session %08X is closed\n"","0046945c: "CSvcComm<>::RealSend(...) failed with %d\n"","00469488: "CSvcComm<>::InactiveChkThread() ] SetWaitableTimer failed with %d\n"","004694d0: "CSvcComm<>::InactiveChkThread() ] CreateWaitableTimer failed with %d\n"","00469518: "CSvcComm<>::AllocSendHeap(len=%d) failed because packet is too big\n"","0046955c: "DoProcessStream<>(...) failed because OnMsg() returned false\n"","004695a0: "CSvcComm<>::SetSocketOption() - setsockopt(SO_KEEPALIVE enable) failed with %d\n"","004695f0: "CSvcComm<>::SetSocketOption() - setsockopt(SO_RCVBUF) failed with %d\n"","00469638: "CSvcComm<>::SetSocketOption() - setsockopt(SO_SNDBUF) failed with %d\n"","00469680: "CSvcComm<>::EnableInactiveCheck() >> beginthreadex failed with %d\n)"","004696c8: "CS authorization for session %08X was not done for %d seconds\n"","00469708: "\tSEND>> [SS=%08X SQ=%04X CD=%04X] %s\n"","00469730: "\tSEND>> [SS=%08X SQ=%04X CD=%04X RTC=%04X] %s\n"","00469760: "\tSEND>> [SS=%08X SQ=%04X CD=%04X RTC=%04X]\n"","0046978c: "\tSEND>> [SS=%08X SQ=%04X CD=%04X]\n"","004697b0: "SetKeepAliveTime(%d) - WSAIoctl( SIO_KEEPALIVE_VALS -- set ) failed with %d\n"","00469800: "vector too long"","00469818: "CGameRoomManager::UnregisterNotify(...) failed because room-index(%d) is invalid\n"","00469870: "CGameRoomManager::RegisterNotify(...) failed because room-index(%d) is invalid\n"","004698c0: "CGameRoomManager::Leave(...) failed because slot=%d, session=%08X is invalid\n"","00469910: "CGameRoomManager::Leave(...) not-in-used room(%d)\n"","00469948: "CGameRoomManager::Leave(...) failed because room-index(%d) or slot(%d) is invalid\n"","004699a0: "CGameRoomManager::Join(...) invalid room Quick Param(%d) or state\n"","004699e4: "CGameRoomManager::Join(...) invalid room index(%d) or state\n"","00469a28: "CGameRoomManager::Create(...) invalid name-len(%d) or limit(%d)\n"","00469a6c: "CGameRoomManager::SetMent(...) ment length is too long: %d\n"","00469aa8: "GrandPrix:BigRankDifference"","00469ac4: "GrandPrix:GroupLoseScore_Big_Higher"","00469ae8: "GrandPrix:GroupWinScore_Big_Higher"","00469b0c: "GrandPrix:GroupLoseScore_Big_Lower"","00469b30: "GrandPrix:GroupWinScore_Big_Lower"","00469b54: "GrandPrix:GroupLoseScore_Small"","00469b74: "GrandPrix:GroupWinScore_Small"","00469b94: "GrandPrix:PersonalLoseScore"","00469bb0: "GrandPrix:PersonalWinScore"","00469bcc: "GrandPrix:Stage"","00469bdc: "GrandPrix:GameOption"","00469bf4: "GrandPrix:BattlePlayerCount"","00469c10: "GrandPrixRoom"","00469c20: "CGameRoomManager::CalcInitialPos(...) Unknown position type - %d\n"","00469c68: "CGameRoomManager::ChangeUserState(...) failed because slot=%d, session=%08X is invalid\n"","00469cc0: "CGameRoomManager::ChangeUserState(...) not-in-used room(%d) or already playing(%d)\n"","00469d18: "CGameRoomManager::ChangeUserStatae(...) invalid room-index(%d) or slot(%d)\n"","00469d68: "CGameRoomManager::LeaveWaitGameroom(...) invalid room-index(%d)\n"","00469db0: "CGameRoomManager::ChangeUserTeam(...) failed because slot=%d, session=%08X is invalid\n"","00469e08: "CGameRoomManager::ChangeUserTeam(...) not-in-used room(%d) or already playing(%d)\n"","00469e60: "CGameRoomManager::ChangeUserTeam(...) invalid room-index(%d) or slot(%d)\n"","00469eb0: "CGameRoomManager::ChangeUserTank(...) failed because slot=%d, session=%08X is invalid\n"","00469f08: "CGameRoomManager::ChangeUserTank(...) not-in-used room(%d) or already playing(%d)\n"","00469f60: "CGameRoomManager::ChangeUserTank(...) invalid room-index(%d) or slot(%d)\n"","00469fb0: "CGameRoomManager::KickUser(...) failed because caller slot=%d, session=%08X is invalid\n"","0046a008: "CGameRoomManager::KickUser(...) not-in-used room(%d)\n"","0046a040: "CGameRoomManager::DropSlot(...) invalid room-index(%d) or invalid slot(%d,%d)\n"","0046a090: "CGameRoomManager::KickUser(...) can't kick admin(%d)\n"","0046a0c8: "CGameRoomManager::KickUser(...) can't kick master(%d)\n"","0046a100: "CGameRoomManager::KickUser(...) failed because slot=%d, session=%08X is invalid\n"","0046a158: "CGameRoomManager::KickUser(...) not-in-used room(%d) or already playing(%d)\n"","0046a1a8: "CGameRoomManager::KickUser(...) invalid room-index(%d) or invalid slot(%d)\n"","0046a1f8: "CGameRoomManager::ChangeTitle(...) not-in-used room(%d) or already playing(%d)\n"","0046a248: "CGameRoomManager::ChangeTitle(...) invalid room-index(%d) or long title-length(%d)\n"","0046a2a0: "CGameRoomManager::ChangeMaxMen(...) not-in-used room(%d) or already playing(%d)\n"","0046a2f8: "CGameRoomManager::ChangeMaxMen(...) invalid room-index(%d) or max-men(%d)\n"","0046a348: "CGameRoomManager::ChangeUseItem(...) not-in-used room(%d) or already playing(%d)\n"","0046a39c: "CGameRoomManager::ChangeUseItem(...) invalid room-index(%d)\n"","0046a3dc: "CGameRoomManager::ChangeOption(...) invalid room-index(%d)\n"","0046a418: "CGameRoomManager::ChangeStage(...) invalid stage(%d) or room-index(%d)\n"","0046a460: "StartGame Result=%d"","0046a474: "Event %d is activated at room %d\n"","0046a498: "MapSlot %d selected for UserSlot %d\n"","0046a4c0: "(SmallMode) MapSlot %d selected for UserSlot %d,OPTION(%d), SIDE(%d) Pos(%d,%d),Team(%d)\n"","0046a51c: "Random Tank %d selected for 2nd tank of slot %d\n"","0046a550: "Random Tank %d selected for 1st tank of slot %d\n"","0046a584: "Normal Random Stage <%d> is selected \n"","0046a5ac: "Random Stage Zero is selected \n"","0046a5cc: " (slot=%d,grade=%d)"","0046a5e0: "CGameRoomManager::StartGame(...) room is already playing\n"","0046a61c: "CGameRoomManager::StartGame(...) invalid option: %08X\n"","0046a654: "CGameRoomManager::StartGame(...) room is not in-use\n"","0046a68c: "CGameRoomManager::StartGame(...) invalid room index(%d)\n"","0046a6c8: "CGameRoomManager::SaveResult(...) specified unused slot %d\n"","0046a704: "CGameRoomManager::SaveResult(...) invalid slot at %d: %d\n"","0046a740: "CGameRoomManager::SaveResult(...) not-in-used room(%d) or is not playing(%d)\n""]}Call ghidra_list_strings
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "limit": 500, "offset": 500}
Tool result
{"result":["0046a790: "CGameRoomManager::SaveResult(...) invalid room-index(%d) or slot(%d) or number-of-slot(%d)\n"","0046a7f0: "CGameRoomManager::SendTunnelPacket(...) invalid room-index(%d) or sender(%d) or number-of-slot(%d)\n"","0046a858: "CGameRoomManager::PlayEndJewel(...) called but it's not jewel-mode(%08X)\n"","0046a8a4: "CGameRoomManager::PlayEndJewel(...) invalid room-index(%d)\n"","0046a8e0: "CGameRoomManager::CheckPlayEnd(...) room(%d) is not playing.\n"","0046a920: "CGameRoomManager::Resurrect(...) failed because user is not dead(%08X)\n"","0046a968: "CGameRoomManager::Resurrect(...) failed because it(%d) is not in score nor jewel mode(%08X)\n"","0046a9c8: "CGameRoomManager::Resurrect(...) failed because slot=%d, session=%08X is invalid\n"","0046aa20: "CGameRoomManager::Resurrect(...) not-in-used room(%d) or not playing(%d)\n"","0046aa70: "CGameRoomManager::Resurrect(...) invalid room-index(%d) or slot(%d)\n"","0046aab8: "CGameRoomManager::DeadUser(...) user(slot=%d, status=%d) is already dead.\n"","0046ab08: "CGameRoomManager::DeadUser(...) failed because slot=%d, session=%08X is invalid\n"","0046ab60: "CGameRoomManager::DeadUser(...) not-in-used room(%d) or not playing(%d)\n"","0046abb0: "CGameRoomManager::DeadUser(...) invalid room-index(%d) or slot(%d)\n"","0046abf4: "QuickStartRoom"","0046ac04: "list too long"","0046ac18: "QuickStart Room List"","0046ac38: "SELECT Context, ServerIP, ServerPort FROM CurrentUser WHERE Id='%s'"","0046ac84: "INSERT INTO Collection SET %d=1, User='%s'"","0046acb0: "UPDATE Collection SET %d=%d+1 WHERE User='%s'"","0046ace0: "GunboundDB] GDBIN_COLLECT_EVENT\n"","0046ad04: "INSERT INTO GrandPrix_Personal SET Score=%d, Lose=1, User='%s'"","0046ad44: "INSERT INTO GrandPrix_Personal SET Score=%d, Win=1, User='%s'"","0046ad88: "UPDATE GrandPrix_Personal SET Score=Score+%d, Lose=Lose+1 WHERE User='%s'"","0046add8: "UPDATE GrandPrix_Personal SET Score=Score+%d, Win=Win+1 WHERE User='%s'"","0046ae20: "GunboundDB] GDBIN_GRANDPRIX_PERSONAL_UPDATE\n"","0046ae50: "UPDATE GrandPrix_Group SET Score=Score+%d, Lose=Lose+1 WHERE Category=%d"","0046aea0: "UPDATE GrandPrix_Group SET Score=Score+%d, Win=Win+1 WHERE Category=%d"","0046aee8: "GunboundDB] GDBIN_GRANDPRIX_GROUP_UPDATE\n"","0046af18: "SELECT Score, Rank, RankOld, Win, Lose FROM GrandPrix_Personal WHERE User='%s'"","0046af68: "GunboundDB] GDBIN_GRANDPRIX_MINE\n"","0046af90: "SELECT u.Nickname, g.ScoreOnCalc, g.Rank, g.RankOld, g.Win, g.Lose FROM GrandPrix_Personal AS g INNER JOIN GunWCUser AS u ON g.User=u.Id WHERE g.Rank > 0 ORDER BY g.Rank DESC LIMIT %d"","0046b048: "SELECT Category, ScoreOnCalc, Rank, RankOld, Win, Lose FROM GrandPrix_Group WHERE Rank > 0 ORDER BY Rank DESC"","0046b0b8: "GunboundDB] GDBIN_GRANDPRIX_RANKERS\n"","0046b0e0: "UPDATE Game SET EventScore%d = EventScore%d + %d WHERE Id='%s'"","0046b120: "GunboundDB] GDBIN_EVENT_DELTA\n"","0046b140: "DELETE FROM CurrentUser WHERE ServerIP=%d AND ServerPort=%d"","0046b184: "GunboundDB] GDBIN_RESET_CURRENT_USER\n"","0046b1ac: "UPDATE Game SET NoRankUpdate=1 WHERE Id='%s'"","0046b1dc: "GunboundDB] GDBIN_BAN\n"","0046b1f4: "GunboundDB] GDBIN_KICK\n"","0046b20c: "GunboundDB] GDBIN_NOTIFY_GIFT\n"","0046b22c: " WHERE Id='"","0046b238: "GunboundDB] GDBIN_GOLD_SCORE_CHANGE\n"","0046b260: " , LastUpdateTime=NOW() WHERE Id='"","0046b284: "GunboundDB] GDBIN_UPDATE_CLIENTDATA\n"","0046b2ac: "SELECT ClientData FROM Game WHERE Id='%s'"","0046b2d8: "GunboundDB] GBIN_CLIENTDATA\n"","0046b2f8: "GunboundDB] UDBIN_GOLD_FOR_GIFT_BUY\n"","0046b320: "SELECT Money FROM Game WHERE Id='%s'"","0046b348: "UPDATE Game SET Money=Money+%d WHERE Id='%s'"","0046b378: "GunboundDB] GDBIN_GOLD\n"","0046b390: "LastUpdateTime=NOW() WHERE Id='"","0046b3b0: "ClientData='$'"","0046b3c0: "ClientData='"","0046b3d0: "AccumDamage=AccumDamage+"","0046b3ec: "AccumShot=AccumShot+"","0046b404: ",SeasonScore=SeasonScore+"","0046b420: "TotalScore=TotalScore+"","0046b438: "Money=Money+"","0046b448: "UPDATE Game SET "","0046b45c: "DELETE FROM CurrentUser WHERE Id='%s' AND Context=%d"","0046b49c: "GunboundDB] GDBIN_LOGOUT\n"","0046b4b8: "REPLACE CurrentUser SET Id='%s', Context=%d, ServerIP=%d, ServerPort=%d, LoggingTime=NOW()"","0046b520: "INSERT INTO CurrentUser SET Id='%s', Context=%d, ServerIP=%d, ServerPort=%d, LoggingTime=NOW()"","0046b588: "insert into Game set id='%s', TotalGrade=19, SeasonGrade = 19, TotalScore=1000, Money=200000 "","0046b5e8: "SELECT Guild, TotalGrade, SeasonGrade, MemberCount, TotalRank, SeasonRank, GuildRank, AccumShot, AccumDamage, TotalScore, SeasonScore, Money, EventScore0, EventScore1, EventScore2, EventScore3, UNIX_TIMESTAMP(GiftProhibitTime),ClientData, Country, CountryGrade, CountryRank FROM Game WHERE Id='%s'"","0046b714: "GunboundDB] GDBIN_LOGIN\n"","0046b738: "UPDATE GunWcUser SET RestrictTime=NOW()+INTERVAL %d SECOND WHERE Id='%s'"","0046b788: "UPDATE GunWcUser SET AuthorityBackup=Authority, Authority=%d WHERE Id='%s'"","0046b7d4: "GunWcUserDB] WCDBIN_BAN\n"","0046b7f0: "SELECT Id, Nickname FROM GunWcUser WHERE Id IN ("","0046b824: "GunWcUserDB] WCDBIN_NICK\n"","0046b840: " LIMIT "","0046b848: "SELECT Id, Nickname FROM gunwcuser WHERE Nickname IN ("","0046b880: "GunWcUserDB] WCDBIN_ID\n"","0046b89c: "SELECT Item FROM Chest WHERE No=%d"","0046b8c0: "INSERT INTO ReceiptGift (Id, Item, Expire, Volume, Receiver, ReceiverNick, Time) SELECT '%s', Item, Expire, Volume, Owner, '%s', NOW() FROM Chest WHERE No=%d"","0046b960: "INSERT INTO GiftMsg SET Receiver='%s', ItemId=%d, Sender='%s', SentTime=NOW(), Msg='%s'"","0046b9b8: "UPDATE Chest SET Owner='%s', Wearing=0, Acquisition='T', PlaceOrder=NULL WHERE No=%d AND Owner='%s' AND (Acquisition='C' OR Acquisition='G') AND Recovered=0"","0046ba58: "ItemDB] IDBIN_GIFT\n"","0046ba70: "INSERT INTO ReceiptConsume SET Id='%s', Item=%d, Volume=%u, Recovered=%d, Refund=%u, Time=NOW(), ExpireType='%c', Expire=%d"","0046baec: "UPDATE Chest SET Volume=Volume-%d WHERE No=%d AND Owner='%s'"","0046bb2c: "SELECT Refund%c FROM Item WHERE No=%d"","0046bb58: "SELECT Item, Acquisition, Volume, Recovered, ExpireType, UNIX_TIMESTAMP(Expire)-UNIX_TIMESTAMP() FROM Chest WHERE No=%d AND Owner='%s'"","0046bbe0: "ItemDB] IDBIN_CONSUME (Item=%d, Volume=%d)\n"","0046bc10: "UPDATE ReceiptGift Set Result='%c',ConfirmTime=Now() WHERE No=%d and Id='%s'"","0046bc60: "DELETE FROM GiftItem WHERE No=%d"","0046bc88: "UPDATE GiftMsg Set MsgType='%c',Receiver='%s',Sender='%s' WHERE No=%d"","0046bcd0: ",Acquisition='T'"","0046bce8: "SELECT Sender,ReceiptGiftNo,Acquisition FROM GiftItem WHERE No=%d and Receiver='%s'"","0046bd40: "SELECT No,MenuId,ExpireType FROM GiftMsg WHERE Receiver='%s' and GiftItemNo = %d"","0046bd94: "ItemDB] GDBIN_GIFT_CONFIRM ID=%s,GiftItemNo=%d\n"","0046bdc4: "UPDATE ReceiptBuy Set ReceiptGiftNo=%d where No=%d"","0046bdf8: "INSERT INTO ReceiptBuy SET Id='%s', MenuId=%d, %sChecked=%d, BuyType='G', Time=NOW(), ExpireType='%c'"","0046be60: "UPDATE GiftItem Set ReceiptGiftNo=%d where No=%d"","0046be98: "INSERT INTO ReceiptGift (Id, MenuId, Volume, Receiver, ReceiverNick, Time, Result, ExpireType) SELECT '%s', %d, Volume1, '%s', '%s', NOW(), 'R', '%c' FROM Menu WHERE No=%d"","0046bf48: "INSERT INTO GiftMsg SET Receiver='%s', MenuId=%d, GiftItemNo=%d, Sender='%s', ExpireType='%c', SentTime=NOW(), Msg='%s', MsgType='G'"","0046bfd0: ",Receiver='"","0046bfdc: ",MenuId="","0046bfe8: "Sender='"","0046bff4: "INSERT INTO GiftItem SET "","0046c010: "ItemDB] IDBIN_ITEM_GIFT_BUY\n"","0046c030: "INSERT INTO ReceiptBuy SET Id='%s', MenuId=%d, %sChecked=%d, Time=NOW(), BuyType='S', ExpireType='%c'"","0046c0a8: ",Volume="","0046c0b4: " SECOND"","0046c0bc: ",Expire=NOW()+INTERVAL "","0046c0d4: ",ExpireType='"","0046c0e4: ",Acquisition='"","0046c0f4: ",Item="","0046c0fc: "Owner='"","0046c104: "INSERT INTO Chest SET "","0046c120: "SELECT Item1, Period1, Volume1, Item2, Period2, Volume2, Item3, Period3, Volume3, Item4, Period4, Volume4, Item5, Period5, Volume5, %s%c FROM Menu WHERE No=%d"","0046c1c0: "PriceByGoldFor"","0046c1d0: "PriceByCashFor"","0046c1e0: "ItemDB] IDBIN_BUY\n"","0046c1f4: "SELECT Item FROM Chest WHERE Owner='%s' AND Wearing=1 "","0046c22c: "UPDATE Chest SET Wearing=%d WHERE No=%d AND Owner='%s'"","0046c264: "ItemDB] IDBIN_WEAR\n"","0046c278: "UPDATE Chest SET PlaceOrder=%u WHERE No=%d AND Owner='%s'"","0046c2b4: "ItemDB] IDBIN_ITEM_LOCATION\n"","0046c2d4: "Gift Msg on(%s)\n"","0046c2e8: "DELETE FROM GiftMsg WHERE No IN ("","0046c30c: "IDBIN_GIFT_MSG : DBR_SUCCESS\n"","0046c32c: "Gift Msg Fail(%s)\n"","0046c340: "SELECT No, MenuId, Sender, UNIX_TIMESTAMP(SentTime), Msg, MsgType, ExpireType, GiftItemNo FROM GiftMsg WHERE Receiver='%s'"","0046c3bc: "ItemDB] IDBIN_GIFT_MSG\n"","0046c3d4: "DELETE FROM Chest WHERE No IN ("","0046c3f8: "SELECT No, Item, Wearing, Acquisition, UNIX_TIMESTAMP(Expire)-UNIX_TIMESTAMP(), Volume, PlaceOrder, Recovered FROM Chest WHERE Owner='%s'"","0046c484: "ItemDB] IDBIN_ITEM\n"","0046c498: "INSERT INTO UserCount (SerialNo, ServerIp, ServerPort, Time, UserCount) VALUES (%u, %u, %u, NOW(), %d)"","0046c500: "INSERT INTO ServiceStatus (SerialNo, Time, ServerIp, ServerPort, Status) VALUES (%u, NOW(), %u, %u, 'T')"","0046c570: "INSERT INTO ServiceStatus (SerialNo, Time, ServerIp, ServerPort, Status) VALUES (%u, NOW(), %u, %u, 'S')"","0046c5dc: "mysql_real_connect(PartnerAgent)"","0046c608: "INSERT INTO BuyInfo (SerialNo, MenuNo, Price, Asset, BuyType,Time) VALUES (%u, %d, %d, %d, '%c', NOW())"","0046c670: "CPartnerAgentDB] PAIN_ITEM_BUY\n"","0046c690: "INSERT INTO BuyInfo (SerialNo, MenuNo, Price, Asset, BuyType,Time) VALUES (%u, %d, %d, %d, '%c', '%s')\n"","0046c6f8: "%Y-%m-%d %H:%M:%S"","0046c720: "INSERT INTO MobileRecord SET Win=%d, Lose=%d, Id='%s', Mobile=%d"","0046c768: "UPDATE MobileRecord SET Win=Win+%d, Lose=Lose+%d WHERE Id='%s' AND Mobile=%d"","0046c7b8: "INSERT INTO StageRecord SET Win=%d, Lose=%d, Id='%s', Stage=%d"","0046c7f8: "UPDATE StageRecord SET Win=Win+%d, Lose=Lose+%d WHERE Id='%s' AND Stage=%d"","0046c844: "RecordDB] RDBIN_SAVE\n"","0046c85c: "SELECT Mobile, Win, Lose FROM MobileRecord WHERE Id='%s'"","0046c898: "SELECT Stage, Win, Lose FROM StageRecord WHERE Id='%s'"","0046c8d0: "RecordDB] RDBIN_LOAD\n"","0046c8e8: "Delete"","0046c8f0: "NoRemove"","0046c8fc: "ForceRemove"","0046c91c: "ADMIN>> Syntax Error\n"","0046c934: "ADMIN>> Failed to query matching id for nickname '%s'\n"","0046c96c: "ID: %s NICKNAME: %s\n"","0046c984: "ADMIN>> Server time is %c"","0046c9a0: "ADMIN>> Room not found\n"","0046c9b8: "- Function restrict : %08X\n"","0046c9dc: "- Individual guild restrict : no"","0046ca00: "- Individual guild restrict : allowed guild only"","0046ca34: "- Guild restrict : not having one only\n"","0046ca68: "- Guild restrict : having one only\n"","0046ca98: "- Guild restrict : no\n"","0046cabc: "- Grade restrict : %d -> %d\n"","0046cae4: "- First valid version : %d\n- Last valid version : %d\n"","0046cb1c: "ADMIN>> Channel motd is changed successfully by %s\n"","0046cb50: "ADMIN>> Room motd is changed successfully by %s\n"","0046cb84: "ADMIN>> Room %d is successfully broken by %s\n"","0046cbb4: "ADMIN>> Room number is invalid\n"","0046cbd4: "ADMIN>> failed to kick thru gunbound database\n"","0046cc04: "ADMIN>> user '%s' is about to be disconnected by '%s'\n"","0046cc3c: "ADMIN>> User '%s' is successfully banned forever by '%s'\n"","0046cc78: "ADMIN>> User '%s' is successfully banned for %d hours by '%s'\n"","0046ccb8: "ADMIN>> Failed to update Admin database while banning '%s'\n"","0046ccf4: "ADMIN>> Failed to update Gunbound database while banning '%s'\n"","0046cd34: "ADMIN>> Failed to update User database while banning '%s'\n"","0046cd70: "Change QuickStart Jewel Mode"","0046cd90: "Change QuickStart Score Mode"","0046cdb0: "Change QuickStart Tag Mode"","0046cdcc: "Change QuickStart Solo Mode"","0046cde8: "- Current Quick Start Man : %d\n- New Quick Start Man : %d\n"","0046ce24: "ADMIN>> Message broadcasted successfully from '%s' to %d: %s\n"","0046ce68: "- Connection : %d\n- User count : %d\n- Room count : %d\n- User count in room : %d\n- User count in channel : %d\n"","0046cefc: "Unknown Service Request: %04X(%08X)\n"","0046cf24: "Service Request: SVC_GOLD(%08X)\n"","0046cf48: "Service Request: SVC_CASH(%08X)\n"","0046cf6c: "Service Request: SVC_ITEM_GIFT(%08X)\n"","0046cf94: "Service Request: SVC_ITEM_CONSUME(%08X)\n"","0046cfc0: "Service Request: SVC_ITEM_BUY(%08X)\n"","0046cfe8: "Service Request: SVC_ITEM_GIFT_CONFIRM(%08X)\n"","0046d018: "Sender=%s,Receiver=%s,Receiver Nick=%s"","0046d040: "Service Request: SVC_ITEM_GIFT_BUY(%08X)\n"","0046d06c: "Service Request: SVC_ITEM_WEAR(%08X)\n"","0046d094: "Service Request: SVC_ITEM_LOCATION(%08X)\n"","0046d0c0: "Service Request: SVC_ITEM_GIFT_MSG(%08X)\n"","0046d0ec: "Service Request: SVC_ITEM(%08X)\n"","0046d110: "Service Request: SVC_CMD_SET_FACTOR(%08X)\n"","0046d13c: "Service Request: SVC_CMD_SET_PASSABLE_AUTH(%08X)\n"","0046d170: "EventTreatAsIndex%d"","0046d184: "EventWriteToLog%d"","0046d198: "EventActProp%d"","0046d1a8: "Service Request: SVC_CMD_SET_EVENTACTPROB(%08X)\n"","0046d1dc: "Service Request: SVC_CMD_SET_ALLOWEDGUILD(%08X)\n"","0046d210: "Service Request: SVC_CMD_FUNCTION_RESTRICT(%08X)\n"","0046d244: "Service Request: SVC_CMD_GUILDLIMIT(%08X)\n"","0046d270: "Service Request: SVC_CMD_GRADELIMIT(%08X)\n"","0046d29c: "Service Request: SVC_CMD_SETVERSION(%08X)\n"","0046d2c8: "Service Request: SVC_CMD_BCM(%08X)\n"","0046d2ec: "Service Request: SVC_CMD_MOTD(%08X)\n"","0046d314: "Service Request: SVC_CMD_STATUS(%08X)\n"","0046d33c: "Service Request: SVC_COMMAND(%08X)\n"","0046d360: "Service Request: SVC_BCM(%08X)\n"","0046d380: "Service Request: SVC_POLICE_ACCUSE(%08X)\n"","0046d3ac: "Service Request: SVC_TUNNEL(%08X)\n"","0046d3d0: "Service Request: SVC_PLAY_RESULT(%08X)\n"","0046d3f8: "Service Request: SVC_PLAY_END_JEWEL(%08X)\n"","0046d424: "Service Request: SVC_PLAY_RESURRECT(%08X)\n"","0046d450: "Service Request: SVC_PLAY_USER_DEAD(%08X)\n"","0046d47c: "Service Request: SVC_PLAY_DROP_USER(%08X)\n"","0046d4a8: "Service Request: SVC_START_GAME(%08X)\n"","0046d4d0: "Service Request: SVC_ROOM_RETURN_RESULT(%08X)\n"","0046d500: "Service Request: SVC_ROOM_USER_READY(%08X)\n"","0046d52c: "Service Request: SVC_ROOM_SELECT_TEAM(%08X)\n"","0046d55c: "'%s' selected hidden mobile\n"","0046d57c: "Service Request: SVC_ROOM_SELECT_TANK(%08X)\n"","0046d5ac: "Service Request: SVC_ROOM_KICK_USER(%08X)\n"","0046d5d8: "Service Request: SVC_ROOM_CHANGE_TITLE(%08X)\n"","0046d608: "Service Request: SVC_ROOM_CHANGE_MAXMEN(%08X)\n"","0046d638: "Service Request: SVC_ROOM_CHANGE_USEITEM(%08X)\n"","0046d668: "Service Request: SVC_ROOM_CHANGE_OPTION(%08X)\n"","0046d698: "Service Request: SVC_ROOM_CHANGE_STAGE(%08X)\n"","0046d6c8: "Service Request: SVC_ROOM_JOIN(%08X)\n"","0046d6f0: "Service Request: SVC_ROOM_CREATE(%08X)\n"","0046d718: "Service Request: SVC_QUICKSTART(%08X)\n"","0046d740: "Service Request: SVC_ROOM_DETAIL(%08X)\n"","0046d768: "Service Request: SVC_ROOM_SPECIFIC_LIST(%08X)\n"","0046d798: "nSort=%d, wOffset=%d, wRows=%d, nRoomCount=%d\n"","0046d7c8: "Service Request: SVC_ROOM_SORTED_LIST(%08X)\n"","0046d7f8: "Service Request: SVC_ROOM_GRANDPRIX_CANCEL(%08X)\n"","0046d82c: "Service Request: SVC_ROOM_GRANDPRIX_BEGIN(%08X)\n"","0046d860: "Service Request: SVC_CHANNEL_MONITOR_STOP(%08X)\n"","0046d894: "Service Request: SVC_CHANNEL_MONITOR(%08X)\n"","0046d8c0: "Service Request: SVC_CHANNEL_CHAT(%08X)\n"","0046d8ec: "Service Request: SVC_LEAVE_WAIT_GAMEROOM(%08X)\n"","0046d91c: "Service Request: SVC_CHANNEL_JOIN(%08X)\n"","0046d948: "Service Request: SVC_GRANDPRIX_LIST(%08X)\n"","0046d974: "Service Request: SVC_USER_NICK(%08X)\n"","0046d99c: "Service Request: SVC_USER_ID(%08X)\n"","0046d9c0: "SVC_REP_AUTHDWORD: CheckAuthDword(code=%p) failed\n"","0046d9f4: "SVC_REP_AUTHDWORD: decryption failed\n"","0046da1c: "SVC_REP_AUTHDWORD: User is not signed in\n"","0046da48: "Service Request: SVC_REP_AUTHDWORD(%08X)\n"","0046da74: "Service Request: SVC_LOGIN/ADMIN(%08X)\n"","0046daa0: "CSvcThread::OnMessage(...) failed because sequence(%04X) is not matching\n"","0046daec: "\tRECV>> [SS=%08X SQ=%04X CD=%04X] %s\n"","0046db14: "CSvcThread::OnClose(%08X)\n"","0046db30: "CSvcThread::OnConnect(%08X/%08X)\n"","0046db58: "CGameRoomManager::IsRoomMaster(...) failed because room-index(%d) is invalid\n"","0046dba8: "ADMIN>> Failed to query matching id for nickname (code=%d)\n"","0046dbe4: "Gift Accept msg\n"","0046dbf8: "Gift Msg Sucess(%d)\n"","0046dc10: "Recv ProductVersion(%d)"","0046dc28: "Recv Version(%d)"","0046dc3c: " (Team:"","0046dc44: " : "","0046dc50: "User "","0046dc5c: "Waiting time : "","0046dc6c: "Password : "","0046dc7c: "Title : "","0046dc8c: "User count : "","0046dc9c: "Index : "","0046dcb0: "SELECT Cash FROM Cash WHERE Id='%s'"","0046dcd8: " FROM User AS u INNER JOIN gunbound.GunWcUser AS g USING (Id) WHERE u.Id = '"","0046dd2c: ", g.Authority2"","0046dd3c: ", u.User_Level"","0046dd50: "SELECT g.Authority, UNIX_TIMESTAMP(g.RestrictTime), u.Gender, u.Password, g.Nickname "","0046dda8: "UserDB] UDBIN_LOGININFO\n"","0046ddc4: "SELECT Gender FROM User WHERE Id='%s'"","0046ddec: "UserDB] UDBIN_GIFT_GET_GENDER\n"","0046de0c: "UserDB] UDBIN_CASH_FOR_GIFT_BUY\n"","0046de30: "UPDATE Cash SET Cash=Cash-%d WHERE Id='%s' AND Cash>=%d"","0046de68: "UserDB] UDBIN_CASH_DECREASE\n"","0046de88: "UserDB] UDBIN_CASH\n"","0046de9c: "\r\n\r\n\t\tSTOPPING LOG\r\n\r\n"","0046deb4: "\r\n\r\n\t\tSTARTING LOG\r\n\r\n"","0046decc: "%s%s.txt"","0046ded8: "%Y-%m-%d %H.%M.%S"","0046deec: ">> MySQL Deinitialized\n"","0046df04: ">> MySQL Initialized\n"","0046df64: "Stopping debugging service %s with event:%d\n"","0046df94: "Debugging %s (%s).\n"","0046dfa8: "OpenService failed - %s\n"","0046dfc4: "DeleteService failed - %s\n"","0046dfe0: "%s removed.\n"","0046dff0: "\n%s failed to stop.\n"","0046e008: "\n%s stopped.\n"","0046e01c: "Stopping %s."","0046e02c: "OpenSCManager failed - %s\n"","0046e048: "CreateService failed - %s\n"","0046e064: "%s installed.\n"","0046e074: "Unable to install %s -%s\n"","0046e090: "%s error: %d"","0046e0a0: "SetServiceStatus"","0046e0b4: "StartServiceCtrlDispatcher failed."","0046e0d8: "This may take several seconds. Please wait...\n"","0046e108: "\nStartServiceCtrlDispatcher being called.\n"","0046e134: "%s -debug to run as a console app for debugging\n"","0046e170: "%s -remove to remove the service\n"","0046e19c: "%s -install to install the service\n"","0046e1c8: "debug"","0046e1d0: "remove"","0046e1d8: "install"","0046e1e8: "%s (0x%X)"","0046e208: "SHA part of OpenSSL 0.9.6b 9 Jul 2001"","0047045a: "WSACreateEvent"","0047046c: "WSAEventSelect"","0047047e: "WSAEnumNetworkEvents"","00470496: "WSACloseEvent"","004704a6: "WSARecv"","004704b0: "WSAIoctl"","004704bc: "WSASend"","004704c4: "WS2_32.dll"","004704d2: "GetLastError"","004704e2: "InterlockedExchange"","004704f8: "GetACP"","00470502: "GetLocaleInfoA"","00470514: "GetThreadLocale"","00470526: "GetVersionExA"","00470536: "EnterCriticalSection"","0047054e: "ReleaseSemaphore"","00470562: "LeaveCriticalSection"","0047057a: "InitializeCriticalSection"","00470596: "CloseHandle"","004705a4: "DeleteCriticalSection"","004705bc: "WaitForSingleObject"","004705d2: "CreateFileA"","004705e0: "SetFilePointer"","004705f2: "GetCurrentThreadId"","00470608: "WriteFile"","00470614: "CreateSemaphoreA"","00470628: "CreateEventA"","00470638: "SetEvent"","00470644: "GetPrivateProfileIntA"","0047065c: "GetPrivateProfileStringA"","00470678: "GetPrivateProfileSectionA"","00470694: "GetSystemInfo"","004706a4: "CreateWaitableTimerA"","004706bc: "SetWaitableTimer"","004706d0: "CreateTimerQueueTimer"","004706e8: "WaitForMultipleObjects"","00470702: "DeleteTimerQueueTimer"","0047071a: "lstrcpynA"","00470726: "FindResourceA"","00470736: "SizeofResource"","00470748: "LockResource"","00470758: "LoadResource"","00470768: "FindResourceExA"","0047077a: "WideCharToMultiByte"","00470790: "GetSystemTimeAsFileTime"","004707aa: "ResumeThread"","004707ba: "ResetEvent"","004707c8: "InterlockedIncrement"","004707e0: "Sleep"","004707e8: "GetTickCount"","004707f8: "InterlockedDecrement"","00470810: "ReadFile"","0047081c: "UnregisterWaitEx"","00470830: "WritePrivateProfileStringA"","0047084e: "DeleteFileA"","0047085c: "CompareStringW"","0047086e: "MultiByteToWideChar"","00470884: "RaiseException"","00470896: "CompareStringA"","004708a8: "FormatMessageA"","004708ba: "LocalFree"","004708c6: "GetModuleHandleA"","004708da: "GetModuleFileNameA"","004708f0: "GetFullPathNameA"","00470904: "SetConsoleCtrlHandler"","0047091c: "WaitForMultipleObjectsEx"","00470938: "SetNamedPipeHandleState"","00470952: "WaitNamedPipeA"","00470964: "TlsAlloc"","00470970: "TlsFree"","0047097a: "TlsSetValue"","00470988: "TlsGetValue"","00470996: "GetWindowsDirectoryA"","004709ac: "KERNEL32.dll"","004709ba: "USER32.dll"","004709c8: "StartServiceCtrlDispatcherA"","004709e6: "RegisterServiceCtrlHandlerA"","00470a04: "SetServiceStatus"","00470a18: "RegisterEventSourceA"","00470a30: "ReportEventA"","00470a40: "DeregisterEventSource"","00470a58: "OpenSCManagerA"","00470a6a: "CreateServiceA"","00470a7c: "CloseServiceHandle"","00470a92: "OpenServiceA"","00470aa2: "ControlService"","00470ab4: "QueryServiceStatus"","00470aca: "DeleteService"","00470ada: "RegCloseKey"","00470ae8: "RegEnumValueA"","00470af8: "RegOpenKeyExA"","00470b06: "ADVAPI32.dll"","00470b16: "HeapDestroy"","00470b24: "HeapAlloc"","00470b30: "HeapFree"","00470b3c: "HeapReAlloc"","00470b4a: "HeapSize"","00470b56: "GetProcessHeap"","00470b68: "GetTimeFormatA"","00470b7a: "GetDateFormatA"","00470b8c: "ExitThread"","00470b9a: "CreateThread"","00470baa: "VirtualProtect"","00470bbc: "VirtualAlloc"","00470bcc: "VirtualQuery"","00470bdc: "ExitProcess"","00470bea: "GetProcAddress"","00470bfc: "TerminateProcess"","00470c10: "GetCurrentProcess"","00470c24: "GetCommandLineA"","00470c36: "GetTimeZoneInformation"","00470c50: "GetFileAttributesA"","00470c66: "RtlUnwind"","00470c72: "LCMapStringA"","00470c82: "LCMapStringW"","00470c92: "GetCPInfo"","00470c9e: "SetLastError"","00470cae: "HeapCreate"","00470cbc: "VirtualFree"","00470cca: "IsBadWritePtr"","00470cda: "FlushFileBuffers"","00470cee: "GetOEMCP"","00470cfa: "UnhandledExceptionFilter"","00470d16: "SetHandleCount"","00470d28: "GetStdHandle"","00470d38: "GetFileType"","00470d46: "GetStartupInfoA"","00470d58: "GetStringTypeA"","00470d6a: "GetStringTypeW"","00470d7c: "FreeEnvironmentStringsA"","00470d96: "GetEnvironmentStrings"","00470dae: "FreeEnvironmentStringsW"","00470dc8: "GetEnvironmentStringsW"","00470de2: "SetEnvironmentVariableA"","00470dfc: "SetEnvironmentVariableW"","00470e16: "GetUserDefaultLCID"","00470e2c: "EnumSystemLocalesA"","00470e42: "IsValidLocale"","00470e52: "IsValidCodePage"","00470e64: "QueryPerformanceCounter"","00470e7e: "GetCurrentProcessId"","00470e94: "SetUnhandledExceptionFilter"","00470eb2: "IsBadReadPtr"","00470ec2: "IsBadCodePtr"","00470ed2: "SetStdHandle"","00470ee2: "LoadLibraryA"","00470ef2: "GetLocaleInfoW"","00470f04: "SetEndOfFile"","00470f14: "GetDriveTypeA"","00470f24: "GetCurrentDirectoryA"","00471134: "options"","0047113c: "max-allowed-packet"","00471150: "ssl-cipher"","0047115c: "repl-parse-query"","00471170: "enable-reads-from-master"","0047118c: "replication-probe"","004711a0: "disable-local-infile"","004711b8: "local-infile"","004711c8: "connect-timeout"","004711d8: "interactive-timeout"","004711ec: "default-character-set"","00471204: "character-sets-dir"","00471218: "ssl-capath"","00471224: "ssl-ca"","0047122c: "ssl-cert"","00471238: "ssl-key"","00471240: "return-found-rows"","00471254: "debug"","0047125c: "database"","00471270: "init-command"","00471288: "timeout"","00471298: "password"","004712a4: "compress"","004712b0: "socket"","004712c4: "\pipe\"","004712d0: "localhost"","004712dc: "SHOW SLAVE STATUS"","004712f0: "SHOW SLAVE HOSTS"","0047130c: "MYSQL_UNIX_PORT"","0047131c: "MYSQL_TCP_PORT"","0047132c: "mysql"","00471338: "unknown"","00471344: "MYSQL_PWD"","00471364: "Windows_NT"","00471374: "client"","0047137c: "UMASK_DIR"","00471388: "UMASK"","0047139c: "Software\MySQL"","004713b0: "HAVE_TCPIP""]}Call ghidra_list_methods
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "limit": 200, "offset": 200}
Tool result
{"result":["FUN_0040c410 @ 0040c410","FUN_0040c430 @ 0040c430","FUN_0040c450 @ 0040c450","FUN_0040c4b0 @ 0040c4b0","FUN_0040c5e0 @ 0040c5e0","FUN_0040c650 @ 0040c650","FUN_0040c6c0 @ 0040c6c0","FUN_0040c750 @ 0040c750","FUN_0040c7f0 @ 0040c7f0","FUN_0040c9c0 @ 0040c9c0","FUN_0040c9f0 @ 0040c9f0","FUN_0040ca20 @ 0040ca20","FUN_0040caa0 @ 0040caa0","FUN_0040cac0 @ 0040cac0","FUN_0040cb10 @ 0040cb10","FUN_0040cba0 @ 0040cba0","FUN_0040cc00 @ 0040cc00","FUN_0040cc30 @ 0040cc30","FUN_0040cd20 @ 0040cd20","FUN_0040ce10 @ 0040ce10","FUN_0040cea0 @ 0040cea0","FUN_0040cf00 @ 0040cf00","FUN_0040cf30 @ 0040cf30","FUN_0040cf50 @ 0040cf50","FUN_0040cf90 @ 0040cf90","FUN_0040cfd0 @ 0040cfd0","FUN_0040d090 @ 0040d090","FUN_0040d0f0 @ 0040d0f0","FUN_0040d160 @ 0040d160","Catch@0040d2a4 @ 0040d2a4","FUN_0040d2d0 @ 0040d2d0","FUN_0040d360 @ 0040d360","FUN_0040d380 @ 0040d380","FUN_0040d3a0 @ 0040d3a0","FUN_0040d3c0 @ 0040d3c0","FUN_0040d400 @ 0040d400","FUN_0040d440 @ 0040d440","FUN_0040d550 @ 0040d550","FUN_0040d5b0 @ 0040d5b0","FUN_0040d680 @ 0040d680","FUN_0040d690 @ 0040d690","FUN_0040d6b0 @ 0040d6b0","FUN_0040d6f0 @ 0040d6f0","FUN_0040d740 @ 0040d740","FUN_0040d840 @ 0040d840","Catch@0040d8b3 @ 0040d8b3","FUN_0040d8dc @ 0040d8dc","Catch@0040d94b @ 0040d94b","FUN_0040d980 @ 0040d980","FUN_0040d9e0 @ 0040d9e0","FUN_0040d9f0 @ 0040d9f0","FUN_0040da20 @ 0040da20","FUN_0040daa0 @ 0040daa0","FUN_0040dac0 @ 0040dac0","FUN_0040db30 @ 0040db30","FUN_0040db40 @ 0040db40","Catch@0040dbd4 @ 0040dbd4","FUN_0040dc03 @ 0040dc03","FUN_0040dc60 @ 0040dc60","FUN_0040dc70 @ 0040dc70","FUN_0040dd30 @ 0040dd30","FUN_0040ddf0 @ 0040ddf0","FUN_0040de20 @ 0040de20","FUN_0040ded0 @ 0040ded0","FUN_0040df80 @ 0040df80","FUN_0040e020 @ 0040e020","FUN_0040e0c0 @ 0040e0c0","FUN_0040e110 @ 0040e110","FUN_0040e290 @ 0040e290","FUN_0040e410 @ 0040e410","FUN_0040e4f0 @ 0040e4f0","FUN_0040e710 @ 0040e710","FUN_0040e750 @ 0040e750","FUN_0040e830 @ 0040e830","FUN_0040ea50 @ 0040ea50","FUN_0040ea90 @ 0040ea90","FUN_0040eae0 @ 0040eae0","FUN_0040eb20 @ 0040eb20","FUN_0040eb70 @ 0040eb70","FUN_0040ebd0 @ 0040ebd0","FUN_0040ec30 @ 0040ec30","FUN_0040eca0 @ 0040eca0","FUN_0040ee70 @ 0040ee70","FUN_0040ef10 @ 0040ef10","FUN_0040ef70 @ 0040ef70","FUN_0040f290 @ 0040f290","FUN_0040f3c0 @ 0040f3c0","FUN_0040f670 @ 0040f670","FUN_0040f6a0 @ 0040f6a0","FUN_0040f6d0 @ 0040f6d0","FUN_0040f720 @ 0040f720","FUN_0040f770 @ 0040f770","FUN_0040f7d0 @ 0040f7d0","FUN_0040f840 @ 0040f840","FUN_0040f8c0 @ 0040f8c0","FUN_0040f920 @ 0040f920","Catch@0040f97c @ 0040f97c","FUN_0040f988 @ 0040f988","FUN_0040fa00 @ 0040fa00","FUN_0040fa50 @ 0040fa50","FUN_0040faf0 @ 0040faf0","thunk_FUN_0040fb60 @ 0040fb50","FUN_0040fb60 @ 0040fb60","FUN_0040fba0 @ 0040fba0","FUN_0040fc00 @ 0040fc00","FUN_0040fc80 @ 0040fc80","FUN_0040fd10 @ 0040fd10","FUN_0040fe00 @ 0040fe00","FUN_0040fee0 @ 0040fee0","FUN_0040ffe0 @ 0040ffe0","FUN_004100c0 @ 004100c0","FUN_004101c0 @ 004101c0","FUN_00410270 @ 00410270","FUN_004102a0 @ 004102a0","FUN_00410300 @ 00410300","FUN_00410390 @ 00410390","FUN_00410420 @ 00410420","FUN_00410680 @ 00410680","FUN_00410a20 @ 00410a20","FUN_00410a90 @ 00410a90","FUN_00410af0 @ 00410af0","FUN_00410c50 @ 00410c50","FUN_00410d80 @ 00410d80","FUN_00410ee0 @ 00410ee0","FUN_004110e0 @ 004110e0","FUN_00411320 @ 00411320","FUN_004113c0 @ 004113c0","FUN_004114e0 @ 004114e0","FUN_00411510 @ 00411510","FUN_00411530 @ 00411530","FUN_004115b0 @ 004115b0","FUN_004115d0 @ 004115d0","FUN_00411680 @ 00411680","FUN_004116f0 @ 004116f0","FUN_00411750 @ 00411750","FUN_004117d0 @ 004117d0","FUN_00411840 @ 00411840","FUN_004118b0 @ 004118b0","FUN_00411c90 @ 00411c90","FUN_00411d10 @ 00411d10","Catch@00411d59 @ 00411d59","FUN_00411d90 @ 00411d90","FUN_00411e00 @ 00411e00","FUN_00411f50 @ 00411f50","FUN_00411fc0 @ 00411fc0","FUN_00412050 @ 00412050","FUN_004121a0 @ 004121a0","FUN_004121e0 @ 004121e0","FUN_00412470 @ 00412470","FUN_00412590 @ 00412590","FUN_004125c0 @ 004125c0","FUN_00412600 @ 00412600","FUN_00412670 @ 00412670","FUN_00412690 @ 00412690","FUN_00412710 @ 00412710","FUN_00412720 @ 00412720","FUN_00412950 @ 00412950","FUN_00412980 @ 00412980","FUN_004129c0 @ 004129c0","FUN_00412a10 @ 00412a10","FUN_00412ab0 @ 00412ab0","FUN_00412b30 @ 00412b30","FUN_00412e60 @ 00412e60","FUN_00412ec0 @ 00412ec0","FUN_00412fc0 @ 00412fc0","Catch@00413007 @ 00413007","FUN_00413040 @ 00413040","FUN_004130a0 @ 004130a0","FUN_004131f0 @ 004131f0","FUN_00413290 @ 00413290","FUN_00413310 @ 00413310","FUN_00413430 @ 00413430","Catch@004134cd @ 004134cd","FUN_004134e0 @ 004134e0","FUN_00413510 @ 00413510","FUN_00413540 @ 00413540","FUN_00413580 @ 00413580","FUN_00413600 @ 00413600","thunk_FUN_00414cf0 @ 00413a40","FUN_00413a50 @ 00413a50","FUN_00413b50 @ 00413b50","FUN_00413bf0 @ 00413bf0","FUN_00413c30 @ 00413c30","FUN_00413f90 @ 00413f90","FUN_004144a0 @ 004144a0","FUN_004146c0 @ 004146c0","FUN_00414720 @ 00414720","FUN_004147e0 @ 004147e0","FUN_00414890 @ 00414890","FUN_00414900 @ 00414900","FUN_00414930 @ 00414930","FUN_004149a0 @ 004149a0","FUN_00414a00 @ 00414a00","FUN_00414a20 @ 00414a20","FUN_00414a30 @ 00414a30","FUN_00414a50 @ 00414a50","FUN_00414aa0 @ 00414aa0","FUN_00414ad0 @ 00414ad0","FUN_00414cf0 @ 00414cf0","FUN_00414d20 @ 00414d20"]}Ótimo! Tenho uma visão completa da arquitetura. Agora vou decompillar as funções críticas sistematicamente.
Call ghidra_decompile_function
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "name_or_address": "entry"}
Tool result
{"result":"\n/* WARNING: Function: __SEH_prolog replaced with injection: SEH_prolog /\n/ WARNING: Function: __chkstk replaced with injection: alloca_probe /\n/ WARNING: Function: __SEH_epilog replaced with injection: EH_epilog3 /\n/ WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nint entry(void)\n\n{\n HMODULE pHVar1;\n int iVar2;\n int *piVar3;\n bool bVar4;\n _OSVERSIONINFOA local_cc;\n \n local_cc.szCSDVersion[0x7c] = -0x3d;\n local_cc.szCSDVersion[0x7d] = -0x1d;\n local_cc.szCSDVersion[0x7e] = 'D';\n local_cc.szCSDVersion[0x7f] = '\0';\n local_cc.dwOSVersionInfoSize = 0x94;\n GetVersionExA(&local_cc);\n DAT_00496240 = local_cc.dwPlatformId;\n DAT_0049624c = local_cc.dwMajorVersion;\n _DAT_00496250 = local_cc.dwMinorVersion;\n _DAT_00496244 = local_cc.dwBuildNumber & 0x7fff;\n if (local_cc.dwPlatformId != 2) {\n _DAT_00496244 = _DAT_00496244 | 0x8000;\n }\n _DAT_00496248 = local_cc.dwMajorVersion * 0x100 + local_cc.dwMinorVersion;\n pHVar1 = GetModuleHandleA((LPCSTR)0x0);\n if (((short)pHVar1->unused == 0x5a4d) &&\n (piVar3 = (int *)((int)&pHVar1->unused + pHVar1[0xf].unused), piVar3 == 0x4550)) {\n if ((short)piVar3[6] == 0x10b) {\n if (0xe < (uint)piVar3[0x1d]) {\n iVar2 = piVar3[0x3a];\n goto LAB_0044e46a;\n }\n }\n else if (((short)piVar3[6] == 0x20b) && (0xe < (uint)piVar3[0x21])) {\n iVar2 = piVar3[0x3e];\nLAB_0044e46a:\n bVar4 = iVar2 != 0;\n goto LAB_0044e470;\n }\n }\n bVar4 = false;\nLAB_0044e470:\n iVar2 = __heap_init();\n if (iVar2 == 0) {\n fast_error_exit(0x1c);\n }\n iVar2 = __mtinit();\n if (iVar2 == 0) {\n fast_error_exit(0x10);\n }\n __RTC_Initialize();\n iVar2 = __ioinit();\n if (iVar2 < 0) {\n __amsg_exit(0x1b);\n }\n DAT_004a1b2c = GetCommandLineA();\n DAT_00496284 = FUN_00456bfc();\n iVar2 = __setargv();\n if (iVar2 < 0) {\n __amsg_exit(8);\n }\n iVar2 = FUN_00456927();\n if (iVar2 < 0) {\n __amsg_exit(9);\n }\n iVar2 = __cinit(1);\n if (iVar2 != 0) {\n __amsg_exit(iVar2);\n }\n DAT_00496264 = DAT_00496260;\n iVar2 = FUN_00431390(DAT_00496254);\n if (!bVar4) {\n / WARNING: Subroutine does not return /\n _exit(iVar2);\n }\n __cexit();\n return iVar2;\n}\n\n"}Call ghidra_decompile_function
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "name_or_address": "0x00403510"}
Tool result
{"result":"Succeeded and the artifact is saved at /sandbox/ghidra/decompiled_0x403510.txt. Please find the table of contents below. \n[{'funcName': 'WS2_32.DLL@Ordinal_115', 'lineNum': 140}, {'funcName': 'WS2_32.DLL@Ordinal_111', 'lineNum': 142}, {'funcName': 'FUN_00430c60', 'lineNum': 143}, {'funcName': '_sprintf', 'lineNum': 147}, {'funcName': 'FUN_00449a70', 'lineNum': 148}, {'funcName': 'FUN_00430c60', 'lineNum': 150}, {'funcName': '_sprintf', 'lineNum': 154}, {'funcName': 'FUN_00449b10', 'lineNum': 155}, {'funcName': 'FUN_00430c60', 'lineNum': 157}, {'funcName': 'WS2_32.DLL@Ordinal_57', 'lineNum': 161}, {'funcName': 'WS2_32.DLL@Ordinal_52', 'lineNum': 162}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 166}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 167}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 169}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 170}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 173}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 174}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 177}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 178}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 181}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 182}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 185}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 186}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 189}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 190}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 192}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 193}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 194}, {'funcName': 'operator_new', 'lineNum': 219}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileSectionA', 'lineNum': 238}, {'funcName': '_strtok', 'lineNum': 242}, {'funcName': '_strtok', 'lineNum': 243}, {'funcName': '_atof', 'lineNum': 246}, {'funcName': '_atol', 'lineNum': 252}, {'funcName': '_strtok', 'lineNum': 254}, {'funcName': '_strtok', 'lineNum': 257}, {'funcName': '_strtok', 'lineNum': 258}, {'funcName': '_strtok', 'lineNum': 259}, {'funcName': '_strtok', 'lineNum': 260}, {'funcName': 'operator_new', 'lineNum': 263}, {'funcName': 'FUN_00402c50', 'lineNum': 268}, {'funcName': '_atol', 'lineNum': 271}, {'funcName': '_atol', 'lineNum': 272}, {'funcName': 'FUN_00402a40', 'lineNum': 273}, {'funcName': 'FUN_00401fe0', 'lineNum': 278}, {'funcName': 'FUN_004121a0', 'lineNum': 284}, {'funcName': 'FUN_00415540', 'lineNum': 288}, {'funcName': '_strtok', 'lineNum': 294}, {'funcName': '_strtok', 'lineNum': 295}, {'funcName': '_atol', 'lineNum': 297}, {'funcName': 'operator_new', 'lineNum': 298}, {'funcName': 'FUN_00402c50', 'lineNum': 303}, {'funcName': 'FUN_004029e0', 'lineNum': 305}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 328}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 329}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 332}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 333}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 336}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 337}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 340}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 341}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 344}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 345}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 348}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 349}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 352}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 353}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 356}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 357}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 360}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 361}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 364}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 365}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 368}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 369}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 372}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 373}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 376}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 377}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 380}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 381}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 384}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 385}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 388}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 389}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 392}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 393}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 396}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 397}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 400}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 401}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 404}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 405}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 408}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 409}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 412}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 413}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 415}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 416}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 418}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 419}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 421}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 422}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 424}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 425}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 427}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 428}, {'funcName': '_sprintf', 'lineNum': 430}, {'funcName': '_sprintf', 'lineNum': 432}, {'funcName': '_sprintf', 'lineNum': 434}, {'funcName': 'FUN_00406a00', 'lineNum': 440}, {'funcName': 'FUN_00407780', 'lineNum': 444}, {'funcName': 'FUN_00407830', 'lineNum': 445}, {'funcName': '_strtok', 'lineNum': 447}, {'funcName': '_strtok', 'lineNum': 448}, {'funcName': '_strtok', 'lineNum': 449}, {'funcName': '_strtok', 'lineNum': 450}, {'funcName': '_strtok', 'lineNum': 451}, {'funcName': '_strtok', 'lineNum': 452}, {'funcName': '_atol', 'lineNum': 454}, {'funcName': '_atol', 'lineNum': 455}, {'funcName': '_atol', 'lineNum': 456}, {'funcName': '_atol', 'lineNum': 457}, {'funcName': '_atol', 'lineNum': 458}, {'funcName': '_atol', 'lineNum': 459}, {'funcName': 'FUN_00406bd0', 'lineNum': 475}, {'funcName': 'FUN_0044a9ed', 'lineNum': 479}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 483}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 484}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 486}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 487}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 488}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 489}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 490}, {'funcName': 'FUN_00407d80', 'lineNum': 496}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 497}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 498}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 499}, {'funcName': 'FUN_00407d80', 'lineNum': 505}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 506}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 507}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 508}, {'funcName': 'FUN_00407d80', 'lineNum': 514}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 515}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 516}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 517}, {'funcName': 'FUN_00407d80', 'lineNum': 523}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 524}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 525}, {'funcName': 'FUN_004095c0', 'lineNum': 527}, {'funcName': 'FUN_004095c0', 'lineNum': 528}, {'funcName': '_sprintf', 'lineNum': 529}, {'funcName': 'FUN_00407d80', 'lineNum': 536}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 543}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 551}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 559}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 567}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 569}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 570}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 572}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 573}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 574}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 575}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 576}, {'funcName': 'FUN_00407d80', 'lineNum': 582}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 583}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 584}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 585}, {'funcName': 'FUN_00407d80', 'lineNum': 591}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 592}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 593}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 594}, {'funcName': 'FUN_00407d80', 'lineNum': 600}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 601}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 602}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 603}, {'funcName': 'FUN_00407d80', 'lineNum': 609}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 610}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 611}, {'funcName': 'FUN_004095c0', 'lineNum': 613}, {'funcName': 'FUN_004095c0', 'lineNum': 614}, {'funcName': '_sprintf', 'lineNum': 615}, {'funcName': 'FUN_00407d80', 'lineNum': 622}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 629}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 637}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 645}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 653}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 655}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 656}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 658}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 659}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 660}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 661}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 662}, {'funcName': 'FUN_00407d80', 'lineNum': 668}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 669}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 670}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 671}, {'funcName': 'FUN_00407d80', 'lineNum': 677}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 678}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 679}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 680}, {'funcName': 'FUN_00407d80', 'lineNum': 686}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 687}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 688}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 689}, {'funcName': 'FUN_00407d80', 'lineNum': 695}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 696}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 697}, {'funcName': 'FUN_004095c0', 'lineNum': 699}, {'funcName': 'FUN_004095c0', 'lineNum': 700}, {'funcName': '_sprintf', 'lineNum': 701}, {'funcName': 'FUN_00407d80', 'lineNum': 708}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 715}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 723}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 731}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 739}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 741}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 742}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 744}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 745}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 746}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 747}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 748}, {'funcName': 'FUN_00407d80', 'lineNum': 754}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 755}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 756}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 757}, {'funcName': 'FUN_00407d80', 'lineNum': 763}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 764}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 765}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 766}, {'funcName': 'FUN_00407d80', 'lineNum': 772}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 773}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 774}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 775}, {'funcName': 'FUN_00407d80', 'lineNum': 781}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 782}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 783}, {'funcName': 'FUN_004095c0', 'lineNum': 785}, {'funcName': 'FUN_004095c0', 'lineNum': 786}, {'funcName': '_sprintf', 'lineNum': 787}, {'funcName': 'FUN_00407d80', 'lineNum': 794}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 801}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 809}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 817}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 825}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 827}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 828}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 830}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 831}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 832}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 833}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 834}, {'funcName': 'FUN_00407d80', 'lineNum': 840}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 841}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 842}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 843}, {'funcName': 'FUN_00407d80', 'lineNum': 849}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 850}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 851}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 852}, {'funcName': 'FUN_00407d80', 'lineNum': 858}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 859}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 860}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 861}, {'funcName': 'FUN_00407d80', 'lineNum': 867}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 868}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 869}, {'funcName': 'FUN_004095c0', 'lineNum': 871}, {'funcName': 'FUN_004095c0', 'lineNum': 872}, {'funcName': '_sprintf', 'lineNum': 873}, {'funcName': 'FUN_00407d80', 'lineNum': 880}, {'funcName': 'KERNEL32.DLL@EnterCriticalSection', 'lineNum': 884}, {'funcName': 'KERNEL32.DLL@LeaveCriticalSection', 'lineNum': 886}, {'funcName': 'FUN_0041c110', 'lineNum': 888}, {'funcName': 'KERNEL32.DLL@EnterCriticalSection', 'lineNum': 892}, {'funcName': 'KERNEL32.DLL@LeaveCriticalSection', 'lineNum': 907}, {'funcName': 'KERNEL32.DLL@GetSystemTimeAsFileTime', 'lineNum': 908}, {'funcName': '__alldiv', 'lineNum': 910}, {'funcName': '__alldiv', 'lineNum': 912}, {'funcName': 'KERNEL32.DLL@EnterCriticalSection', 'lineNum': 916}, {'funcName': 'FUN_0040baa0', 'lineNum': 918}, {'funcName': 'KERNEL32.DLL@LeaveCriticalSection', 'lineNum': 920}, {'funcName': 'KERNEL32.DLL@GetLastError', 'lineNum': 923}, {'funcName': '__snprintf', 'lineNum': 924}, {'funcName': 'KERNEL32.DLL@ReleaseSemaphore', 'lineNum': 932}, {'funcName': 'KERNEL32.DLL@GetLastError', 'lineNum': 934}, {'funcName': 'FUN_00430c60', 'lineNum': 935}, {'funcName': 'KERNEL32.DLL@EnterCriticalSection', 'lineNum': 938}, {'funcName': 'FUN_0040a880', 'lineNum': 942}, {'funcName': 'KERNEL32.DLL@LeaveCriticalSection', 'lineNum': 944}, {'funcName': 'KERNEL32.DLL@EnterCriticalSection', 'lineNum': 947}, {'funcName': 'KERNEL32.DLL@LeaveCriticalSection', 'lineNum': 949}, {'funcName': '__snprintf', 'lineNum': 950}, {'funcName': 'FUN_0040b310', 'lineNum': 957}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 965}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 973}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 981}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 989}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 991}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 992}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 994}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 995}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 996}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 997}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 998}, {'funcName': 'FUN_00407d80', 'lineNum': 1004}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1005}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1006}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1007}, {'funcName': 'FUN_00407d80', 'lineNum': 1013}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1014}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1015}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1016}, {'funcName': 'FUN_00407d80', 'lineNum': 1022}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1023}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1024}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1025}, {'funcName': 'FUN_00407d80', 'lineNum': 1031}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 1032}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 1033}, {'funcName': 'FUN_004095c0', 'lineNum': 1035}, {'funcName': 'FUN_004095c0', 'lineNum': 1036}, {'funcName': '_sprintf', 'lineNum': 1037}, {'funcName': 'FUN_00407d80', 'lineNum': 1044}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 1051}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 1059}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 1067}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 1075}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 1077}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 1078}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 1080}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 1081}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1082}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1083}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1084}, {'funcName': 'FUN_00407d80', 'lineNum': 1090}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1091}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1092}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1093}, {'funcName': 'FUN_00407d80', 'lineNum': 1099}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1100}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1101}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1102}, {'funcName': 'FUN_00407d80', 'lineNum': 1108}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1109}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1110}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1111}, {'funcName': 'FUN_00407d80', 'lineNum': 1117}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 1118}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 1119}, {'funcName': 'FUN_004095c0', 'lineNum': 1121}, {'funcName': 'FUN_004095c0', 'lineNum': 1122}, {'funcName': '_sprintf', 'lineNum': 1123}, {'funcName': 'FUN_00407d80', 'lineNum': 1130}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 1137}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 1145}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 1153}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 1161}, {'funcName': 'FUN_00423700', 'lineNum': 1164}, {'funcName': 'FUN_00424020', 'lineNum': 1167}, {'funcName': 'FUN_004095c0', 'lineNum': 1168}, {'funcName': '_sprintf', 'lineNum': 1169}, {'funcName': 'FUN_00407d80', 'lineNum': 1175}, {'funcName': 'FUN_00406320', 'lineNum': 1177}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 1178}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 1179}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 1181}, {'funcName': 'FUN_004028b0', 'lineNum': 1184}, {'funcName': 'FUN_00407650', 'lineNum': 1185}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 1192}, {'funcName': 'FUN_004028b0', 'lineNum': 1195}, {'funcName': 'FUN_00407650', 'lineNum': 1196}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 1204}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 1208}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 1209}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 1210}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileIntA', 'lineNum': 1211}, {'funcName': 'FUN_0041a270', 'lineNum': 1213}, {'funcName': 'FUN_0041a2e0', 'lineNum': 1214}, {'funcName': 'FUN_00409270', 'lineNum': 1217}, {'funcName': 'WS2_32.DLL@Ordinal_111', 'lineNum': 1219}, {'funcName': 'FUN_00430c60', 'lineNum': 1220}, {'funcName': '(register, 0x18, 4)', 'lineNum': 1225}, {'funcName': 'FUN_0045d1a8', 'lineNum': 1226}, {'funcName': '(register, 0x18, 4)', 'lineNum': 1230}, {'funcName': '(register, 0x18, 4)', 'lineNum': 1231}, {'funcName': '(register, 0x18, 4)', 'lineNum': 1232}, {'funcName': 'WS2_32.DLL@Ordinal_23', 'lineNum': 1244}, {'funcName': 'WS2_32.DLL@Ordinal_111', 'lineNum': 1247}, {'funcName': 'FUN_00430c60', 'lineNum': 1248}, {'funcName': 'WS2_32.DLL@Ordinal_9', 'lineNum': 1252}, {'funcName': 'WS2_32.DLL@Ordinal_8', 'lineNum': 1254}, {'funcName': 'WS2_32.DLL@Ordinal_2', 'lineNum': 1255}, {'funcName': 'WS2_32.DLL@Ordinal_111', 'lineNum': 1257}, {'funcName': 'FUN_00430c60', 'lineNum': 1258}, {'funcName': 'WS2_32.DLL@WSACreateEvent', 'lineNum': 1261}, {'funcName': 'WS2_32.DLL@WSAEventSelect', 'lineNum': 1262}, {'funcName': 'WS2_32.DLL@Ordinal_111', 'lineNum': 1264}, {'funcName': 'FUN_00430c60', 'lineNum': 1265}, {'funcName': 'FUN_004091b0', 'lineNum': 1268}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1269}, {'funcName': 'KERNEL32.DLL@GetPrivateProfileStringA', 'lineNum': 1270}, {'funcName': '_strtok', 'lineNum': 1272}, {'funcName': 'FUN_00432520', 'lineNum': 1274}, {'funcName': 'FUN_00408d20', 'lineNum': 1276}, {'funcName': '_strtok', 'lineNum': 1279}, {'funcName': 'KERNEL32.DLL@GetSystemInfo', 'lineNum': 1296}, {'funcName': 'FUN_00431790', 'lineNum': 1298}, {'funcName': 'FUN_004098e0', 'lineNum': 1301}, {'funcName': 'FUN_004091b0', 'lineNum': 1303}, {'funcName': 'FUN_00408d60', 'lineNum': 1304}, {'funcName': 'KERNEL32.DLL@CreateWaitableTimerA', 'lineNum': 1308}, {'funcName': 'KERNEL32.DLL@SetWaitableTimer', 'lineNum': 1312}, {'funcName': 'KERNEL32.DLL@SetWaitableTimer', 'lineNum': 1313}, {'funcName': 'FUN_004091b0', 'lineNum': 1315}, {'funcName': 'FUN_00424520', 'lineNum': 1316}, {'funcName': 'FUN_004091b0', 'lineNum': 1318}, {'funcName': 'FUN_00423790', 'lineNum': 1319}, {'funcName': 'KERNEL32.DLL@CreateTimerQueueTimer', 'lineNum': 1321}, {'funcName': 'KERNEL32.DLL@CreateTimerQueueTimer', 'lineNum': 1322}, {'funcName': 'KERNEL32.DLL@CreateTimerQueueTimer', 'lineNum': 1323}, {'funcName': 'FUN_00423810', 'lineNum': 1324}, {'funcName': 'KERNEL32.DLL@WaitForMultipleObjects', 'lineNum': 1326}, {'funcName': 'FUN_00430c60', 'lineNum': 1328}, {'funcName': 'WS2_32.DLL@WSAEnumNetworkEvents', 'lineNum': 1329}, {'funcName': 'WS2_32.DLL@Ordinal_17', 'lineNum': 1334}, {'funcName': 'WS2_32.DLL@Ordinal_17', 'lineNum': 1335}, {'funcName': 'FUN_00430cd0', 'lineNum': 1337}, {'funcName': 'FUN_00402950', 'lineNum': 1338}, {'funcName': 'WS2_32.DLL@Ordinal_9', 'lineNum': 1339}, {'funcName': 'FUN_00430c60', 'lineNum': 1340}, {'funcName': 'FUN_00406820', 'lineNum': 1343}, {'funcName': 'FUN_00430c60', 'lineNum': 1345}, {'funcName': 'FUN_00409540', 'lineNum': 1346}, {'funcName': 'WS2_32.DLL@Ordinal_20', 'lineNum': 1348}, {'funcName': 'WS2_32.DLL@Ordinal_20', 'lineNum': 1349}, {'funcName': 'FUN_00402950', 'lineNum': 1354}, {'funcName': 'FUN_00430c60', 'lineNum': 1361}, {'funcName': 'FUN_00402c20', 'lineNum': 1365}, {'funcName': 'WS2_32.DLL@Ordinal_20', 'lineNum': 1373}, {'funcName': 'WS2_32.DLL@Ordinal_20', 'lineNum': 1374}, {'funcName': 'FUN_00430c60', 'lineNum': 1379}, {'funcName': 'FUN_004094c0', 'lineNum': 1380}, {'funcName': 'FUN_00430c60', 'lineNum': 1385}, {'funcName': 'FUN_00409450', 'lineNum': 1388}, {'funcName': 'FUN_00430c60', 'lineNum': 1393}, {'funcName': 'FUN_00430c60', 'lineNum': 1403}, {'funcName': 'FUN_00430c60', 'lineNum': 1408}, {'funcName': 'FUN_0041a8e0', 'lineNum': 1409}, {'funcName': 'FUN_00430c60', 'lineNum': 1410}, {'funcName': 'FUN_00430c60', 'lineNum': 1415}, {'funcName': 'FUN_00430c60', 'lineNum': 1418}, {'funcName': '(unique, 0x17200, 4)', 'lineNum': 1419}, {'funcName': 'KERNEL32.DLL@WaitForMultipleObjects', 'lineNum': 1420}, {'funcName': 'FUN_00430c60', 'lineNum': 1426}, {'funcName': 'FUN_004238d0', 'lineNum': 1435}, {'funcName': 'KERNEL32.DLL@DeleteTimerQueueTimer', 'lineNum': 1437}, {'funcName': 'KERNEL32.DLL@CloseHandle', 'lineNum': 1441}, {'funcName': 'KERNEL32.DLL@SetEvent', 'lineNum': 1443}, {'funcName': 'FUN_004026b0', 'lineNum': 1448}, {'funcName': 'KERNEL32.DLL@CloseHandle', 'lineNum': 1451}, {'funcName': 'WS2_32.DLL@WSACloseEvent', 'lineNum': 1456}, {'funcName': 'WS2_32.DLL@Ordinal_3', 'lineNum': 1459}, {'funcName': 'WS2_32.DLL@Ordinal_116', 'lineNum': 1461}, {'funcName': '_free', 'lineNum': 1468}, {'funcName': 'free', 'lineNum': 1471}]"}Call ghidra_read_artifact
Arguments
{"artifact_path": "/sandbox/ghidra/decompiled_0x403510.txt"}
Tool result
{"result":"\n/* WARNING: Function: __chkstk replaced with injection: alloca_probe /\n/ WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie /\n/ WARNING: Type propagation algorithm not settling /\n/ WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid __fastcall FUN_00403510(char *param_1)\n\n{\n char cVar1;\n void *pvVar2;\n int iVar3;\n int iVar4;\n undefined4 *puVar5;\n bool bVar6;\n byte bVar7;\n undefined2 uVar8;\n int iVar9;\n undefined3 extraout_var;\n UINT UVar10;\n int *piVar11;\n char *pcVar12;\n char *pcVar13;\n long lVar14;\n long lVar15;\n undefined4 *puVar16;\n undefined4 *puVar17;\n undefined4 *puVar18;\n undefined4 uVar19;\n undefined4 uVar20;\n BOOL BVar21;\n HANDLE pvVar22;\n DWORD DVar23;\n short sVar24;\n undefined4 extraout_ECX;\n int *extraout_ECX_00;\n undefined4 extraout_ECX_01;\n int *Parameter;\n char *pcVar25;\n code *pcVar26;\n uint uVar27;\n uint unaff_EDI;\n undefined8 uVar28;\n ulonglong uVar29;\n double dVar30;\n undefined1 *puVar31;\n int *piStack_10d34;\n int *piStack_10d30;\n char cStack_10d29;\n LARGE_INTEGER LStack_10d28;\n char *pcStack_10d20;\n char cStack_10d19;\n char *pcStack_10d18;\n undefined1 uStack_10d14;\n int *piStack_10d10;\n undefined ***pppuStack_10d0c;\n char *pcStack_10d08;\n long lStack_10d04;\n HANDLE pvStack_10d00;\n char *pcStack_10cfc;\n int iStack_10cf8;\n HANDLE pvStack_10cf4;\n HANDLE *ppvStack_10cf0;\n DWORD DStack_10cec;\n void *pvStack_10ce8;\n undefined4 uStack_10ce4;\n HANDLE *ppvStack_10ce0;\n DWORD DStack_10cdc;\n void pvStack_10cd8;\n undefined4 uStack_10cd4;\n _union_530 _Stack_10cd0;\n undefined4 uStack_10ccc;\n undefined4 uStack_10cc8;\n undefined2 uStack_10cc4;\n short sStack_10cc2;\n short sStack_10cc0;\n short sStack_10cbe;\n short sStack_10cbc;\n byte bStack_10cba;\n undefined1 uStack_10cb9;\n undefined2 uStack_10cb8;\n undefined2 uStack_10cb6;\n undefined2 uStack_10cb4;\n undefined2 uStack_10cb2;\n undefined4 uStack_10cb0;\n byte abStack_10cac [4];\n int iStack_10ca8;\n undefined1 auStack_10c80 [2];\n undefined2 uStack_10c7e;\n undefined2 uStack_10c7c;\n int aiStack_10c70 [25];\n undefined appuStack_10c0c [13];\n char acStack_10bd8 [4];\n char acStack_10bd4 [4];\n char acStack_10bd0 [4];\n char cStack_10bcc;\n char cStack_10bcb;\n char cStack_10bca;\n char acStack_10bc8 [8];\n char acStack_10bc0 [256];\n _FILETIME a_Stack_10ac0 [30];\n undefined4 uStack_109cc;\n undefined4 uStack_109c8;\n undefined4 uStack_109c4;\n int iStack_109c0;\n undefined1 uStack_109bc;\n undefined1 uStack_109ab;\n uint uStack_108d0;\n undefined4 uStack_108cc;\n char acStack_104d0 [260];\n char acStack_103cc [260];\n char acStack_102c8 [280];\n undefined1 auStack_101b0 [384];\n char acStack_10030 [65556];\n void *local_1c;\n void *pvStack_14;\n undefined1 *puStack_10;\n undefined4 local_c;\n \n pvVar2 = DAT_00484f30;\n puStack_10 = &LAB_0045e3e4;\n pvStack_14 = ExceptionList;\n piStack_10d30 = (int *)0x0;\n local_1c = DAT_00484f30;\n _Stack_10cd0.dwOemId = 0;\n uStack_10ccc = 0;\n uStack_10cc8 = 0;\n uStack_10cc4 = 0;\n sStack_10cc2 = 0;\n ppvStack_10ce0 = (HANDLE *)0x0;\n DStack_10cdc = 0;\n pvStack_10cd8 = (void *)0x0;\n uStack_10cd4 = 0;\n local_c = 1;\n pvStack_10ce8 = (void *)0x0;\n ppvStack_10cf0 = (HANDLE )0x0;\n uStack_10ce4 = 0;\n ExceptionList = &pvStack_14;\n pcStack_10d20 = param_1;\n iVar9 = Ordinal_115(0x202,auStack_101b0);\n if (iVar9 != 0) {\n Ordinal_111();\n FUN_00430c60(s_WSAStartup_failed_with__d_00463ec4);\n ExceptionList = pvVar2;\n return;\n }\n _sprintf(acStack_10bc0,&DAT_004692c4,(undefined4 )(param_1 + 0x10),s_CSAuth_tab_00463eb8);\n iVar9 = FUN_00449a70(acStack_10bc0);\n if (iVar9 == 0) {\n FUN_00430c60(s_LoadAuthTable_failed_00463ea0);\n ExceptionList = pvVar2;\n return;\n }\n _sprintf(acStack_10bc0,&DAT_004692c4,(undefined4 *)(param_1 + 0x10),s_CSAuth_idx_00463e94);\n bVar6 = FUN_00449b10(acStack_10bc0);\n if (CONCAT31(extraout_var,bVar6) == 0) {\n FUN_00430c60(s_LoadAuthIndex_failed_00463e7c);\n ExceptionList = pvVar2;\n return;\n }\n iVar9 = Ordinal_57(aiStack_10c70 + 2,0x80);\n if (((iVar9 != -1) && (iVar9 = Ordinal_52(aiStack_10c70), iVar9 != 0)) &&\n ((undefined4 *)(int )(iVar9 + 0xc) != (undefined4 *)0x0)) {\n *(undefined4 *)(param_1 + 0x88) = *(undefined4 *)(int **)(iVar9 + 0xc);\n }\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR )(param_1 + 0xc),&DAT_00463ee0,0,(LPCSTR *)(param_1 + 0x14));\n *(short )(param_1 + 0x8c) = (short)UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_RecommendedMan_00463e6c,3000,\n *(LPCSTR *)(param_1 + 0x14));\n *(UINT )(param_1 + 0x84) = UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_IdleRoomCloseTime_00463e58,0x4b0,\n *(LPCSTR *)(param_1 + 0x14));\n *(UINT )(param_1 + 0x5a90) = UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_IdleRoomWarnTime_00463e44,0x474,\n *(LPCSTR *)(param_1 + 0x14));\n *(UINT )(param_1 + 0x5a94) = UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR )(param_1 + 0xc),s_StageEvent_00463e38,0,(LPCSTR *)(param_1 + 0x14)\n );\n *(UINT )(param_1 + 0x5a98) = UVar10 << 0x18;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_SuperUserItem_00463e28,0,\n *(LPCSTR *)(param_1 + 0x14));\n *(UINT )(param_1 + 0x5a9c) = UVar10;\n DAT_00496750 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_ProductVersion_00463e18,0,\n *(LPCSTR )(param_1 + 0x14));\n LStack_10d28.s.LowPart =\n GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_Tank_Hidden_Ratio_00463e04,2,\n *(LPCSTR *)(param_1 + 0x14));\n _DAT_00496754 = (float)(int)LStack_10d28.s.LowPart;\n if ((int)LStack_10d28.s.LowPart < 0) {\n _DAT_00496754 = _DAT_00496754 + _DAT_0046e234;\n }\n _DAT_00496754 = _DAT_00496754 * _DAT_0046e260;\n acStack_10bd8[0] = s_EventTrigger___00463df4[0];\n acStack_10bd8[1] = s_EventTrigger___00463df4[1];\n acStack_10bd8[2] = s_EventTrigger___00463df4[2];\n acStack_10bd8[3] = s_EventTrigger___00463df4[3];\n acStack_10bd4[0] = s_EventTrigger___00463df4[4];\n acStack_10bd4[1] = s_EventTrigger___00463df4[5];\n acStack_10bd4[2] = s_EventTrigger___00463df4[6];\n acStack_10bd4[3] = s_EventTrigger___00463df4[7];\n acStack_10bd0[0] = s_EventTrigger___00463df4[8];\n acStack_10bd0[1] = s_EventTrigger___00463df4[9];\n acStack_10bd0[2] = s_EventTrigger___00463df4[10];\n acStack_10bd0[3] = s_EventTrigger___00463df4[0xb];\n cStack_10bcc = s_EventTrigger___00463df4[0xc];\n cStack_10bcb = s_EventTrigger___00463df4[0xd];\n cStack_10bca = s_EventTrigger___00463df4[0xe];\n iVar9 = 0;\n piStack_10d34 = &DAT_00496758;\n do {\n piVar11 = operator_new(0x2c);\n if (piVar11 == (int *)0x0) {\n piVar11 = (int *)0x0;\n }\n else {\n *piVar11 = iVar9;\n piVar11[1] = 0;\n piVar11[2] = 0;\n piVar11[3] = 0;\n piVar11[4] = 0;\n piVar11[5] = 10;\n piVar11[6] = 0;\n piVar11[7] = 0;\n piVar11[8] = 0;\n piVar11[9] = 0;\n piVar11[10] = 0;\n }\n piStack_10d34 = (int)piVar11;\n cStack_10bcb = (char)iVar9 + '0';\n GetPrivateProfileSectionA(acStack_10bd8,acStack_10030,0x10000,(LPCSTR *)(param_1 + 0x14));\n pcVar25 = acStack_10030;\n cVar1 = acStack_10030[0];\n while (cVar1 != '\0') {\n pcVar12 = _strtok(pcVar25,&DAT_00463df0);\n pcStack_10d08 = _strtok((char *)0x0,&DAT_00463df0);\n if ((pcVar12 != (char *)0x0) && (pcStack_10d08 != (char *)0x0)) {\n if (*pcVar12 == 'R') {\n dVar30 = _atof(pcVar12 + 1);\n piStack_10d10 = (int *)(float)dVar30;\n lStack_10d04 = 0;\n }\n else {\n piStack_10d10 = (int *)0x0;\n lStack_10d04 = _atol(pcVar12);\n }\n pcVar12 = _strtok(pcStack_10d08,&DAT_00463dec);\n if (pcVar12 != (char *)0x0) {\n if (*pcVar12 == 'A') {\n pppuStack_10d0c = (undefined ***)_strtok((char *)0x0,&DAT_00463dec);\n pcStack_10cfc = _strtok((char *)0x0,&DAT_00463dec);\n pcStack_10d08 = _strtok((char *)0x0,&DAT_00463dec);\n pcVar12 = _strtok((char *)0x0,&DAT_00463dec);\n if (((pppuStack_10d0c != (undefined ***)0x0) && (pcStack_10cfc != (char *)0x0)) &&\n (pcStack_10d08 != (char *)0x0)) {\n pcStack_10d18 = operator_new(0x14);\n if (pcStack_10d18 == (char *)0x0) {\n pcVar12 = (char *)0x0;\n }\n else {\n piVar11 = FUN_00402c50(pcVar12,(int *)&LStack_10d28);\n pvVar2 = (void *)*piVar11;\n unaff_EDI = unaff_EDI | 2;\n lVar14 = _atol(pcStack_10d08);\n lVar15 = _atol(pcStack_10cfc);\n pcVar12 = (char )FUN_00402a40(pvVar2,(char *)pppuStack_10d0c,lVar15,lVar14);\n }\n if ((unaff_EDI & 2) != 0) {\n unaff_EDI = unaff_EDI & 0xfffffffd;\nLAB_00403a66:\n FUN_00401fe0();\n }\nLAB_00403a6b:\n local_1c = (void *)0x0;\n if (pcVar12 != (char *)0x0) {\n if (lStack_10d04 == 0) {\n FUN_004121a0(piStack_10d10,pcVar12);\n }\n else {\n pcStack_10d18 = pcVar12;\n FUN_00415540((int *)(*piStack_10d34 + 4));\n }\n }\n }\n }\n else if (*pcVar12 == 'G') {\n pcVar12 = _strtok((char *)0x0,&DAT_00463dec);\n pppuStack_10d0c = (undefined ***)_strtok((char *)0x0,&DAT_00463dec);\n if ((pcVar12 != (char *)0x0) &&\n (pcStack_10cfc = (char *)atol(pcVar12), pcStack_10cfc != (char *)0x0)) {\n pcStack_10d18 = operator_new(0xc);\n if (pcStack_10d18 == (char *)0x0) {\n pcVar12 = (char *)0x0;\n }\n else {\n piVar11 = FUN_00402c50(pppuStack_10d0c,(int *)&pcStack_10d20);\n unaff_EDI = unaff_EDI | 1;\n pcVar12 = (char *)FUN_004029e0((void *)*piVar11,pcStack_10cfc);\n }\n if ((unaff_EDI & 1) != 0) {\n unaff_EDI = unaff_EDI & 0xfffffffe;\n goto LAB_00403a66;\n }\n goto LAB_00403a6b;\n }\n }\n }\n }\n pcVar12 = pcVar25;\n do {\n cVar1 = *pcVar12;\n pcVar12 = pcVar12 + 1;\n } while (cVar1 != '\0');\n pcVar13 = pcVar25 + (int)(pcVar12 + (1 - (int)(pcVar25 + 1)));\n pcVar25 = pcVar25 + (int)(pcVar12 + (1 - (int)(pcVar25 + 1)));\n cVar1 = pcVar13;\n }\n piStack_10d34 = piStack_10d34 + 1;\n iVar9 = iVar9 + 1;\n } while ((int)piStack_10d34 < 0x496768);\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_GradeLimitFirst_00463ddc,-0x13,\n *(LPCSTR *)(param_1 + 0x14));\n *(short )(param_1 + 0x58) = (short)UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_GradeLimitLast_00463dcc,0x13,\n *(LPCSTR *)(param_1 + 0x14));\n *(short )(param_1 + 0x5a) = (short)UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_GuildMarkLimit_00463dbc,0,\n *(LPCSTR *)(param_1 + 0x14));\n *(UINT )(param_1 + 0x5c) = UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_FuncRestrict_00463dac,0xfe01f,\n *(LPCSTR *)(param_1 + 0x14));\n *(UINT )(param_1 + 100) = UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_ScoreFactor_00463da0,100,\n *(LPCSTR *)(param_1 + 0x14));\n *(UINT )(param_1 + 0x68) = UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_GoldFactor_00463d94,100,\n *(LPCSTR *)(param_1 + 0x14));\n *(UINT )(param_1 + 0x6c) = UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_NoRoomCreate_00463d84,0,\n *(LPCSTR )(param_1 + 0x14));\n param_1[0x80] = UVar10 != 0;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_EventActProp0_00463d74,0,\n *(LPCSTR *)(param_1 + 0x14));\n *(short )(param_1 + 0x70) = (short)UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_EventActProp1_00463d64,0,\n *(LPCSTR *)(param_1 + 0x14));\n *(short )(param_1 + 0x74) = (short)UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_EventActProp2_00463d54,0,\n *(LPCSTR *)(param_1 + 0x14));\n *(short )(param_1 + 0x78) = (short)UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_EventActProp3_00463d44,0,\n *(LPCSTR *)(param_1 + 0x14));\n *(short )(param_1 + 0x7c) = (short)UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_EventWriteToLog0_00463d30,0,\n *(LPCSTR )(param_1 + 0x14));\n param_1[0x72] = (char)UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_EventWriteToLog1_00463d1c,0,\n *(LPCSTR )(param_1 + 0x14));\n param_1[0x76] = (char)UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_EventWriteToLog2_00463d08,0,\n *(LPCSTR )(param_1 + 0x14));\n param_1[0x7a] = (char)UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_EventWriteToLog3_00463cf4,0,\n *(LPCSTR )(param_1 + 0x14));\n param_1[0x7e] = (char)UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_EventTreatAsIndex0_00463ce0,0,\n *(LPCSTR )(param_1 + 0x14));\n param_1[0x73] = (char)UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_EventTreatAsIndex1_00463ccc,0,\n *(LPCSTR )(param_1 + 0x14));\n param_1[0x77] = (char)UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_EventTreatAsIndex2_00463cb8,0,\n *(LPCSTR )(param_1 + 0x14));\n param_1[0x7b] = (char)UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_EventTreatAsIndex3_00463ca4,0,\n *(LPCSTR )(param_1 + 0x14));\n param_1[0x7f] = (char)UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_PassableAuthority_00463c90,1,\n *(LPCSTR *)(param_1 + 0x14));\n *(short )(param_1 + 0x60) = (short)UVar10;\n UVar10 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_ProductVersion_00463e18,0,\n *(LPCSTR *)(param_1 + 0x14));\n *(UINT )(param_1 + 0x54) = UVar10;\n DAT_0049674c = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_ANU_WRITELOG_GOLD_00463c7c,3000,\n *(LPCSTR )(param_1 + 0x14));\n DAT_00496748 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_ANU_WRITELOG_GP_00463c6c,0x1e,\n *(LPCSTR )(param_1 + 0x14));\n DAT_00496744 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_ANU_DROP_GOLD_00463c5c,6000,\n *(LPCSTR )(param_1 + 0x14));\n DAT_00496740 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_ANU_DROP_GP_00463c50,0x32,\n *(LPCSTR )(param_1 + 0x14));\n DAT_0049673c = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_ANU_DROP_GOLD_NEG_00463c3c,-0x9c4,\n *(LPCSTR )(param_1 + 0x14));\n DAT_00496738 = GetPrivateProfileIntA\n ((LPCSTR *)(param_1 + 0xc),s_ANU_DROP_GP_NEG_00463c2c,-100,\n *(LPCSTR )(param_1 + 0x14));\n _sprintf(acStack_104d0,&DAT_004692c4,(undefined4 *)(param_1 + 0x10),s_EvsW_stage_pos_t\n\n... (truncated)"}Agora vou decompillar os handlers de pacotes principais e as classes core do servidor.
Call ghidra_decompile_function
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "name_or_address": "0x00431390"}
Tool result
{"result":"\nundefined4 _cdecl FUN_00431390(int param_1)\n\n{\n int *piVar1;\n char cVar2;\n undefined4 *puVar3;\n int iVar4;\n undefined4 *puVar5;\n BOOL BVar6;\n int unaff_EBX;\n int unaff_retaddr;\n SERVICE_TABLE_ENTRYA SStack_20;\n undefined4 uStack_18;\n undefined4 uStack_14;\n void *pvStack_10;\n void *pvStack_c;\n undefined1 *puStack_8;\n undefined4 uStack_4;\n \n uStack_4 = 0xffffffff;\n puStack_8 = &LAB_0045d800;\n pvStack_c = ExceptionList;\n ExceptionList = &pvStack_c;\n puVar3 = (undefined4 )(**(code )(DAT_00495e80 + 0xc))();\n uStack_4 = 0;\n ((code )*DAT_0049676c)(&SStack_20);\n puStack_8.0_1 = 1;\n FUN_00407650();\n puStack_8 = (undefined1 *)((uint)puStack_8.1_3 << 8);\n piVar1 = puVar3 + 3;\n LOCK();\n iVar4 = *piVar1;\n *piVar1 = *piVar1 + -1;\n UNLOCK();\n if (iVar4 == 1 || iVar4 + -1 < 0) {\n ((code **)((int *)*puVar3 + 4))(puVar3);\n }\n SStack_20.lpServiceProc = (LPSERVICE_MAIN_FUNCTIONA)&LAB_004315c0;\n uStack_18 = 0;\n uStack_14 = 0;\n if (1 < unaff_retaddr) {\n cVar2 = **(char )(param_1 + 4);\n if ((cVar2 == '-') || (cVar2 == '/')) {\n iVar4 = _mbscmp((uchar )s_install_0046e1d8,(uchar )((char )(param_1 + 4) + 1));\n if (iVar4 == 0) {\n FUN_00431920();\n }\n else {\n iVar4 = __mbscmp((uchar *)s_remove_0046e1d0,(uchar )((int *)(param_1 + 4) + 1));\n if (iVar4 == 0) {\n FUN_00431cb0();\n }\n else {\n iVar4 = __mbscmp((uchar *)s_debug_0046e1c8,(uchar )((int )(param_1 + 4) + 1));\n if (iVar4 != 0) goto LAB_0043149d;\n DAT_00496794 = 1;\n FUN_00431f10();\n }\n }\n / WARNING: Subroutine does not return */\n _exit(0);\n }\n }\nLAB_0043149d:\n puVar5 = (undefined4 *)FUN_00430eb0();\n FID_conflict__wprintf(s__s__install_to_install_the_servi_0046e19c,*puVar5);\n piVar1 = (int *)(unaff_retaddr + -4);\n LOCK();\n iVar4 = *piVar1;\n *piVar1 = *piVar1 + -1;\n UNLOCK();\n if (iVar4 == 1 || iVar4 + -1 < 0) {\n ((code )((int )(unaff_retaddr + -0x10) + 4))((undefined4 *)(unaff_retaddr + -0x10));\n }\n puVar5 = (undefined4 *)FUN_00430eb0();\n FID_conflict__wprintf(s__s__remove_to_remove_the_service_0046e170,*puVar5);\n piVar1 = puVar3 + 3;\n LOCK();\n iVar4 = *piVar1;\n *piVar1 = *piVar1 + -1;\n UNLOCK();\n if (iVar4 == 1 || iVar4 + -1 < 0) {\n ((code **)((int *)*puVar3 + 4))(puVar3);\n }\n puVar3 = (undefined4 *)FUN_00430eb0();\n FID_conflict__wprintf(s__s__debug_to_run_as_a_c_0046e134,*puVar3);\n piVar1 = (int *)(unaff_retaddr + -4);\n LOCK();\n iVar4 = *piVar1;\n *piVar1 = *piVar1 + -1;\n UNLOCK();\n if (iVar4 == 1 || iVar4 + -1 < 0) {\n ((code )((int )(unaff_retaddr + -0x10) + 4))((undefined4 *)(unaff_retaddr + -0x10));\n }\n FID_conflict__wprintf(s_StartServiceCtrlDispatcher_being_0046e108);\n FID_conflict__wprintf(s_This_may_take_several_seconds__P_0046e0d8);\n BVar6 = StartServiceCtrlDispatcherA(&SStack_20);\n if (BVar6 == 0) {\n FUN_00431820(s_StartServiceCtrlDispatcher_faile_0046e0b4);\n }\n puStack_8 = (undefined1 *)0xffffffff;\n piVar1 = (int *)(unaff_EBX + -4);\n LOCK();\n iVar4 = *piVar1;\n *piVar1 = *piVar1 + -1;\n UNLOCK();\n if (iVar4 == 1 || iVar4 + -1 < 0) {\n ((code )((int **)(unaff_EBX + -0x10) + 4))((undefined4 )(unaff_EBX + -0x10));\n }\n ExceptionList = pvStack_10;\n return 0;\n}\n\n"}Call ghidra_decompile_function
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "name_or_address": "0x00409270"}
Tool result
{"result":"\n/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */\n\nuint FUN_00409270(int param_1,int param_2)\n\n{\n undefined4 uVar1;\n char cVar2;\n undefined2 uVar3;\n int iVar4;\n uint uVar5;\n int iVar6;\n void *pvVar7;\n HANDLE pvVar8;\n int iVar9;\n int *_Memory;\n int unaff_retaddr;\n char *pcVar10;\n undefined4 uStack_2c;\n undefined4 uStack_c;\n int *piStack_8;\n undefined1 local_4;\n \n uVar1 = DAT_00484f30;\n _Memory = (int *)0x0;\n uStack_2c = 0;\n iVar9 = 0;\n iVar4 = Ordinal_23(2,1);\n if (iVar4 == -1) {\n Ordinal_111();\n uVar5 = FUN_00430c60(s_CSvcComm<>__DoListen_____socket__004635cc);\n return uVar5 & 0xffffff00;\n }\n cVar2 = (**(code **)(*piStack_8 + 4))(iVar4);\n if (cVar2 != '\0') {\n Ordinal_8(0);\n uVar3 = Ordinal_9(uStack_c);\n uStack_2c = CONCAT22(uVar3,(undefined2)uStack_2c);\n iVar6 = Ordinal_2(iVar4,&uStack_2c,0x10);\n if (iVar6 == -1) {\n Ordinal_111();\n pcVar10 = s_CSvcComm<>__DoListen_____bind____00463598;\n }\n else {\n iVar9 = WSACreateEvent();\n if (iVar9 == 0) {\n Ordinal_111();\n pcVar10 = s_CSvcComm<>__DoListen_____WSACrea_0046355c;\n }\n else {\n iVar6 = WSAEventSelect(iVar4,iVar9,8);\n if (iVar6 == -1) {\n Ordinal_111();\n pcVar10 = s_CSvcComm<>__DoListen_____WSAEven_0046351c;\n }\n else {\n iVar6 = Ordinal_13(iVar4,0x7fffffff);\n if (iVar6 != -1) {\n pvVar7 = operator_new(0x34);\n if (pvVar7 == (void *)0x0) {\n _Memory = (int *)0x0;\n }\n else {\n _Memory = (int *)FUN_00409d60();\n }\n local_4 = (undefined1)uVar1;\n *(undefined1 *)(_Memory + 2) = local_4;\n *_Memory = iVar4;\n _Memory[1] = iVar9;\n _Memory[0xb] = (int)piStack_8;\n _Memory[0xc] = param_2;\n if (unaff_retaddr != 0) {\n FUN_0040a010();\n }\n if (param_1 != 0) {\n FUN_0040a010();\n }\n pvVar8 = FUN_0044d303((LPSECURITY_ATTRIBUTES)0x0,0,0x40a610,_Memory,0,\n (LPDWORD)&stack0xffffffd8);\n if (pvVar8 != (HANDLE)0x0) {\n uVar5 = FUN_004091b0(pvVar8);\n return CONCAT31((int3)(uVar5 >> 8),1);\n }\n goto LAB_00409319;\n }\n Ordinal_111();\n pcVar10 = s_CSvcComm<>__DoListen_____listen__004634e4;\n }\n }\n }\n FUN_00430c60(pcVar10);\n }\nLAB_00409319:\n uVar5 = Ordinal_3(iVar4);\n if (iVar9 != 0) {\n uVar5 = WSACloseEvent(iVar9);\n }\n if (Memory != (int )0x0) {\n FUN_00409ea0();\n / WARNING: Subroutine does not return /\n _free(_Memory);\n }\n return uVar5 & 0xffffff00;\n}\n\n"}Call ghidra_decompile_function
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "name_or_address": "0x00431f10"}
Tool result
{"result":"\n/* WARNING: Restarted to delay deadcode elimination for space: stack */\n\nvoid FUN_00431f10(void)\n\n{\n int iVar1;\n undefined4 *puVar2;\n undefined4 *puVar3;\n int unaff_ESI;\n undefined4 unaff_retaddr;\n int *piVar4;\n int iStack_14;\n undefined1 local_10 [4];\n void *pvStack_c;\n undefined1 *puStack_8;\n undefined4 uStack_4;\n \n uStack_4 = 0xffffffff;\n puStack_8 = &LAB_0045d4c8;\n pvStack_c = ExceptionList;\n ExceptionList = &pvStack_c;\n puVar2 = (undefined4 *)(**(code )(*DAT_0049676c + 4))();\n puStack_8 = (undefined1 *)0x0;\n piVar4 = (int *)&stack0xffffffe8;\n puVar3 = (undefined4 *)((code )*DAT_0049676c)(piVar4);\n FID_conflict__wprintf(s_Debugging__s___s___0046df94,*puVar3,*puVar2);\n LOCK();\n UNLOCK();\n if (iStack_14 + -1 < 1) {\n ((code )(*piVar4 + 4))(&stack0xffffffe0);\n }\n pvStack_c = (void *)0xffffffff;\n piVar4 = (int *)(unaff_ESI + -4);\n LOCK();\n iVar1 = *piVar4;\n *piVar4 = *piVar4 + -1;\n UNLOCK();\n if (iVar1 == 1 || iVar1 + -1 < 0) {\n ((code )((int )(unaff_ESI + -0x10) + 4))((undefined4 *)(unaff_ESI + -0x10));\n }\n SetConsoleCtrlHandler((PHANDLER_ROUTINE)&LAB_00431fe0,1);\n ((code **)(*DAT_0049676c + 0xc))(uStack_4,unaff_retaddr);\n ExceptionList = local_10;\n return;\n}\n\n"}Call ghidra_search_functions_by_name
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "query": "FUN_004", "limit": 50, "offset": 400}
Tool result
{"result":["FUN_004167c0 @ 004167c0","FUN_00416890 @ 00416890","FUN_00416910 @ 00416910","FUN_00416a00 @ 00416a00","FUN_00416b40 @ 00416b40","FUN_00416d50 @ 00416d50","FUN_00416f80 @ 00416f80","FUN_00417050 @ 00417050","FUN_00417110 @ 00417110","FUN_00417170 @ 00417170","FUN_00417230 @ 00417230","FUN_00417300 @ 00417300","FUN_00417830 @ 00417830","FUN_00417d70 @ 00417d70","FUN_00417e90 @ 00417e90","FUN_00417fb0 @ 00417fb0","FUN_00418020 @ 00418020","FUN_004180f0 @ 004180f0","FUN_00418210 @ 00418210","FUN_004183e0 @ 004183e0","FUN_00418550 @ 00418550","FUN_00418650 @ 00418650","FUN_00418780 @ 00418780","FUN_00418870 @ 00418870","FUN_00419ae0 @ 00419ae0","FUN_00419b30 @ 00419b30","FUN_00419bb0 @ 00419bb0","FUN_00419cf0 @ 00419cf0","FUN_00419db0 @ 00419db0","FUN_00419fd0 @ 00419fd0","FUN_0041a020 @ 0041a020","FUN_0041a080 @ 0041a080","FUN_0041a0a0 @ 0041a0a0","FUN_0041a100 @ 0041a100","FUN_0041a150 @ 0041a150","FUN_0041a210 @ 0041a210","FUN_0041a270 @ 0041a270","FUN_0041a2e0 @ 0041a2e0","FUN_0041a350 @ 0041a350","FUN_0041a3e0 @ 0041a3e0","FUN_0041a440 @ 0041a440","FUN_0041a550 @ 0041a550","FUN_0041a740 @ 0041a740","FUN_0041a8e0 @ 0041a8e0","FUN_0041a940 @ 0041a940","FUN_0041a970 @ 0041a970","FUN_0041aa00 @ 0041aa00","FUN_0041aa80 @ 0041aa80","FUN_0041aaa0 @ 0041aaa0","FUN_0041bfa0 @ 0041bfa0"]}Call ghidra_decompile_function
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "name_or_address": "0x0041bfa0"}
Tool result
{"result":"\n/* WARNING: Function: __chkstk replaced with injection: alloca_probe /\n/ WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie /\n/ WARNING: Unable to track spacebase fully for stack */\n\nbool _thiscall\nFUN_0041bfa0(void *this,undefined4 param_1,int param_2,long *param_3,undefined2 *param_4)\n\n{\n int iVar1;\n undefined2 uVar2;\n uint uVar3;\n undefined4 uVar4;\n uint *puVar5;\n undefined4 *puVar6;\n long lVar7;\n undefined4 extraout_ECX;\n void *this_00;\n char pcVar8;\n int aiStack_128 [2];\n DWORD DStack_120;\n int iStack_11c;\n uint uStack_118;\n char local_108 [256];\n undefined4 local_8;\n \n local_8 = DAT_00484f30;\n uStack_118 = 0x41bfcc;\n iVar1 = -((uint)(byte *)(param_2 + 0x11) * 2 + 4 & 0xfffffffc);\n *(uint )((int)&uStack_118 + iVar1) = (uint)(byte *)(param_2 + 0x11);\n *(int *)((int)&iStack_11c + iVar1) = param_2;\n *(char **)((int)&DStack_120 + iVar1) = local_108 + iVar1 + -0xc;\n *(void **)((int)aiStack_128 + iVar1 + 4) = this;\n *(undefined4 )((int)aiStack_128 + iVar1) = 0x41bfda;\n FUN_0043d000((int )((int)aiStack_128 + iVar1 + 4),(char **)((int)&DStack_120 + iVar1),\n (char **)((int)&iStack_11c + iVar1),(int *)((int)&uStack_118 + iVar1));\n *(char **)((int)&uStack_118 + iVar1) = local_108 + iVar1 + -0xc;\n *(char **)((int)&iStack_11c + iVar1) = s_SELECT_Context__ServerIP__Server_0046ac38;\n *(undefined4 )((int)&DStack_120 + iVar1) = 0x41bff0;\n uVar3 = FUN_00401000(extraout_ECX,local_108,(char **)((int)&iStack_11c + iVar1));\n *(uint *)((int)&uStack_118 + iVar1) = uVar3;\n *(char **)((int)&iStack_11c + iVar1) = local_108;\n *(undefined4 *)((int)&DStack_120 + iVar1) = param_1;\n *(undefined4 )((int)aiStack_128 + iVar1 + 4) = 0x41c006;\n uVar4 = FUN_0041cb00(this_00,(DWORD *)((int)&DStack_120 + iVar1),\n (byte **)((int)&iStack_11c + iVar1),(DWORD *)((int)&uStack_118 + iVar1));\n if ((char)uVar4 != '\0') {\n *(void **)((int)&uStack_118 + iVar1) = this;\n *(undefined4 )((int)&iStack_11c + iVar1) = 0x41c010;\n puVar5 = FUN_0043cb10((int *)((int)&uStack_118 + iVar1));\n if (puVar5 != (uint *)0x0) {\n *(uint **)((int)&uStack_118 + iVar1) = puVar5;\n *(undefined4 *)((int)&iStack_11c + iVar1) = 0x41c020;\n puVar6 = (undefined4 )FUN_0043cd30((uint **)((int)&uStack_118 + iVar1));\n pcVar8 = local_108 + iVar1 + -0xc;\n if (puVar6 != (undefined4 *)0x0) {\n *(undefined4 *)((int)&uStack_118 + iVar1) = *puVar6;\n *(undefined4 )((int)&iStack_11c + iVar1) = 0x41c02e;\n lVar7 = _atol((char **)((int)&uStack_118 + iVar1));\n *param_3 = lVar7;\n *param_4 = 2;\n pcVar8 = (char *)((int)&iStack_11c + iVar1);\n *(undefined4 *)((int)&iStack_11c + iVar1) = puVar6[1];\n *(undefined4 )((int)&DStack_120 + iVar1) = 0x41c044;\n lVar7 = _atol((char **)((int)&iStack_11c + iVar1));\n *(long *)(param_4 + 2) = lVar7;\n *(undefined4 *)((int)&DStack_120 + iVar1) = puVar6[2];\n *(undefined4 )((int)aiStack_128 + iVar1 + 4) = 0x41c050;\n lVar7 = _atol((char **)((int)&DStack_120 + iVar1));\n *(long *)((int)&uStack_118 + iVar1) = lVar7;\n *(undefined4 *)((int)&iStack_11c + iVar1) = 0x41c05a;\n uVar2 = Ordinal_9();\n param_4[1] = uVar2;\n }\n *(uint **)(pcVar8 + -4) = puVar5;\n *(undefined4 )(pcVar8 + -8) = 0x41c064;\n FUN_0043aac0((void **)(pcVar8 + -4));\n return puVar6 != (undefined4 )0x0;\n }\n }\n return false;\n}\n\n"}Call ghidra_decompile_function
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "name_or_address": "0x0041a8e0"}
Tool result
{"result":"\nvoid FUN_0041a8e0(undefined *param_1,undefined4 param_2)\n\n{\n int *piVar1;\n LPCRITICAL_SECTION unaff_EDI;\n \n EnterCriticalSection(unaff_EDI);\n piVar1 = (int **)unaff_EDI[0x16].OwningThread;\n if (piVar1 != unaff_EDI[0x16].OwningThread) {\n do {\n ((code )param_1)((ushort )(piVar1 + 2),\n (HANDLE)((uint)(ushort *)(piVar1 + 2) * 200 +\n (int)unaff_EDI[0x14].OwningThread),param_2);\n piVar1 = (int *)piVar1;\n } while (piVar1 != unaff_EDI[0x16].OwningThread);\n }\n LeaveCriticalSection(unaff_EDI);\n return;\n}\n\n"}Call ghidra_get_xrefs_to
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "address": "0x0046cf24"}
Tool result
{"result":["From 0042b443 [DATA]"]}Call ghidra_get_xrefs_to
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "address": "0x0046da74"}
Tool result
{"result":["From 004285f5 [DATA]"]}Call ghidra_decompile_function
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "name_or_address": "0x0042b443"}
Tool result
{"result":"Function not found"}Call ghidra_decompile_function
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "name_or_address": "0x004285f5"}
Tool result
{"result":"Function not found"}Call ghidra_get_xrefs_from
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "address": "0x0042b443"}
Tool result
{"result":["To 0046cf24 to data s_Service_Request:_SVC_GOLD(%08X)_0046cf24 [DATA]"]}Call ghidra_search_functions_by_name
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "query": "FUN_00428"}
Tool result
{"result":["FUN_00428040 @ 00428040"]}Call ghidra_decompile_function
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "name_or_address": "0x00428040"}
Tool result
{"result":"\nint __fastcall FUN_00428040(uint param_1)\n\n{\n uint uVar1;\n uint uVar2;\n bool bVar3;\n \n uVar2 = param_1 & 0xffff;\n if (uVar2 < 0x5001) {\n if (uVar2 == 0x5000) goto switchD_004280d5_caseD_2022;\n uVar1 = uVar2;\n if (uVar2 < 0x2121) {\n if (uVar2 == 0x2120) goto switchD_004280d5_caseD_2022;\n if (0x2020 < uVar2) {\n uVar1 = 0;\n switch(uVar2) {\n case 0x2022:\n case 0x2104:\n case 0x2110:\n goto switchD_004280d5_caseD_2022;\n default:\n goto switchD_004280d5_caseD_2023;\n case 0x2100:\n case 0x2101:\n return 0x2103;\n }\n }\n if (uVar2 == 0x2020) goto switchD_004280d5_caseD_2022;\n if (uVar2 < 0x1017) {\n if ((uVar2 != 0x1016) && (uVar2 != 0x1000)) {\n if ((0x100f < uVar2) && (uVar2 < 0x1012)) {\n return 0x1012;\n }\n goto switchD_004280d5_caseD_2023;\n }\n goto switchD_004280d5_caseD_2022;\n }\n if (uVar2 < 0x1020) goto switchD_004280d5_caseD_2023;\n if (uVar2 < 0x1022) {\n return 0x1022;\n }\n bVar3 = uVar2 == 0x2000;\n }\n else if (uVar2 < 0x3231) {\n if (uVar2 == 0x3230) goto switchD_004280d5_caseD_2022;\n if (uVar2 < 0x3201) {\n if (uVar2 == 0x3200) goto switchD_004280d5_caseD_2022;\n if (uVar2 < 0x3100) goto switchD_004280d5_caseD_2023;\n if (uVar2 < 0x3105) {\n return 0x3105;\n }\n bVar3 = uVar2 == 0x3150;\n }\n else {\n bVar3 = uVar2 == 0x3210;\n }\n }\n else if (uVar2 < 0x4101) {\n if ((uVar2 == 0x4100) || (uVar2 == 0x3232)) goto switchD_004280d5_caseD_2022;\n bVar3 = uVar2 == 0x3430;\n }\n else {\n bVar3 = uVar2 == 0x4104;\n }\n if (!bVar3) {\nswitchD_004280d5_caseD_2023:\n return CONCAT22((short)(uVar1 >> 0x10),0xffff);\n }\n }\n else if (uVar2 < 0x512d) {\n if (uVar2 != 0x512c) {\n uVar1 = uVar2 - 0x5110;\n switch(uVar2) {\n case 0x5110:\n case 0x5112:\n case 0x5114:\n case 0x5116:\n case 0x5120:\n case 0x5122:\n case 0x5124:\n case 0x5126:\n case 0x5128:\n case 0x512a:\n break;\n default:\n goto switchD_004280d5_caseD_2023;\n }\n }\n }\n else {\n if (0x6020 < uVar2) {\n uVar1 = uVar2 - 0x6024;\n switch(uVar2) {\n case 0x6024:\n case 0x6028:\n case 0x6100:\n case 0x6104:\n goto switchD_004280d5_caseD_2022;\n default:\n goto switchD_004280d5_caseD_2023;\n }\n }\n if (uVar2 != 0x6020) {\n uVar1 = 0;\n switch(uVar2) {\n case 0x6000:\n case 0x6004:\n case 0x600a:\n case 0x600e:\n break;\n default:\n goto switchD_004280d5_caseD_2023;\n }\n }\n }\nswitchD_004280d5_caseD_2022:\n return uVar2 + 1;\n}\n\n"}Call ghidra_get_xrefs_to
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "address": "0x0046daec"}
Tool result
{"result":["From 0042848b [DATA]","From 00428978 [DATA]"]}Call ghidra_decompile_function
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "name_or_address": "0x0042848b"}
Tool result
{"result":"Function not found"}Call ghidra_get_function
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "name_or_address": "0x00428400"}
Tool result
{"result":"No function found at 0x00428400"}Call ghidra_disassemble_function
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "address": "0x00428200"}
Tool result
{"result":["No function found at or containing address 0x00428200"]}Call ghidra_search_functions_by_name
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "query": "FUN_004285"}
Tool result
{"result":["No functions matching 'FUN_004285'"]}Call ghidra_search_functions_by_name
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "query": "FUN_00427"}
Tool result
{"result":["FUN_00427050 @ 00427050","FUN_004270b0 @ 004270b0","FUN_00427130 @ 00427130","FUN_00427190 @ 00427190","FUN_004272e0 @ 004272e0","FUN_00427370 @ 00427370","FUN_004273e0 @ 004273e0","FUN_00427470 @ 00427470","FUN_00427490 @ 00427490","FUN_004274b0 @ 004274b0","FUN_00427880 @ 00427880","FUN_00427ae0 @ 00427ae0","FUN_00427b60 @ 00427b60"]}Call ghidra_decompile_function
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "name_or_address": "0x00427880"}
Tool result
{"result":"\n/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */\n\nvoid FUN_00427880(int *param_1)\n\n{\n int *this;\n undefined1 uVar1;\n int iVar2;\n undefined4 *puVar3;\n undefined4 *puVar4;\n int *local_130;\n undefined4 local_12c;\n int local_128;\n int local_124;\n int local_120;\n int local_11c;\n undefined2 local_118;\n int local_114;\n int *local_110;\n int local_108;\n int *local_104;\n int local_fc;\n int local_f8;\n int local_f4;\n int local_f0;\n int local_ec;\n undefined2 local_e8;\n int local_e4;\n undefined4 local_e0;\n undefined4 local_d8;\n int local_d4;\n int local_d0;\n undefined4 local_78 [25];\n undefined1 local_14;\n undefined4 local_10;\n void *pvStack_c;\n undefined1 *puStack_8;\n undefined4 local_4;\n \n local_4 = 0xffffffff;\n puStack_8 = &LAB_0045df6d;\n pvStack_c = ExceptionList;\n local_10 = DAT_00484f30;\n ExceptionList = &pvStack_c;\n FUN_00430c60(s_CSvcThread__OnClose__08X__0046db14);\n *(undefined1 )((int)param_1 + 0x9cb) = 1;\n if (((char )((int)param_1 + 0x9ca) != '\0') && ((char *)((int)param_1 + 0x9c5) == '\0')) {\n this = param_1 + 0x269;\n FUN_0040dd30(this,*param_1);\n local_f8 = *this;\n local_f4 = param_1[0x26a];\n local_f0 = param_1[0x26b];\n local_ec = param_1[0x26c];\n local_e8 = (undefined2)param_1[0x26d];\n local_e4 = *param_1;\n local_d0 = param_1[0x31a];\n local_d4 = param_1[0x319];\n local_e0 = 0;\n local_d8 = 0;\n uVar1 = *(undefined1 *)((int)param_1 + 0xd1a);\n local_fc = 5;\n puVar3 = (undefined4 *)((int)param_1 + 0xcb6);\n puVar4 = local_78;\n for (iVar2 = 0x19; iVar2 != 0; iVar2 = iVar2 + -1) {\n *puVar4 = *puVar3;\n puVar3 = puVar3 + 1;\n puVar4 = puVar4 + 1;\n }\n local_14 = uVar1;\n FUN_00409690((void *)0x0,&local_fc,0,0,0,'\x01');\n FUN_00427ae0((int)&local_12c);\n local_4 = 0;\n local_120 = param_1[0x26b];\n local_128 = *this;\n local_124 = param_1[0x26a];\n local_11c = param_1[0x26c];\n local_118 = (undefined2)param_1[0x26d];\n local_12c = 1;\n if (&local_114 != param_1 + 0x30b) {\n FUN_0040be60(&local_130,(int *)*local_110,local_110);\n FUN_0042c110(&local_114);\n }\n if (&local_108 != param_1 + 0x30e) {\n FUN_0040be60(&local_130,(int *)local_104,local_104);\n FUN_0042c110(&local_108);\n }\n FUN_0042c4c0(0x4a0218,&local_12c,0,0,0,'\0');\n local_4 = 0xffffffff;\n FUN_004258b0((int)&local_12c);\n }\n if ((ushort )(param_1 + 0x324) != 0xffff) {\n FUN_0040f290((ushort *)(param_1 + 0x324),(LPCRITICAL_SECTION)&DAT_0049c958,\n *(byte *)((int)param_1 + 0xc92));\n *(undefined2 )(param_1 + 0x324) = 0xffff;\n }\n FUN_004102a0();\n FUN_00410300();\n if ((char *)((int)param_1 + 0x9c6) != '\0') {\n local_130 = param_1;\n EnterCriticalSection((LPCRITICAL_SECTION)&DAT_0049c958);\n FUN_0040f7d0();\n LeaveCriticalSection((LPCRITICAL_SECTION)&DAT_0049c958);\n }\n ExceptionList = pvStack_c;\n return;\n}\n\n"}Call ghidra_decompile_function
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "name_or_address": "0x00428900"}
Tool result
{"result":"Function not found"}Call ghidra_search_functions_by_name
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "query": "FUN_00428"}
Tool result
{"result":["FUN_00428040 @ 00428040"]}Call sandbox_execute
Arguments
{"command": "cd /sandbox && python3 -c \"\nimport struct\nwith open('GunBoundServ1.exe', 'rb') as f:\n data = f.read()\n\n# Search for the string 'Service Request: SVC_GOLD' reference in code\n# The string is at 0x0046cf24 -> file offset = 0x0046cf24 - 0x00400000 + 0x400 (headers)\n# Actually for PE: .text starts at VA 0x00401000, file offset typically at 0x400\n# Let's check PE headers\npe_offset = struct.unpack_from('
Tool result
{"exitCode":0,"stdout":"PE header at: 0x100\nMachine: 0x14c\nNum sections: 4\nSection .text: VA=0x00001000 Size=0x5d800 RawOffset=0x400\nSection .rdata: VA=0x0005f000 Size=0x12000 RawOffset=0x5dc00\nSection .data: VA=0x00071000 Size=0x14a00 RawOffset=0x6fc00\nSection .tls: VA=0x000a2000 Size=0x200 RawOffset=0x84600\n","stderr":""}Call sandbox_execute
Arguments
{"command": "cd /sandbox && python3 -c \"\nimport struct\n\nwith open('GunBoundServ1.exe', 'rb') as f:\n data = f.read()\n\n# ImageBase is 0x00400000\n# .text: VA=0x00001000 -> 0x00401000, RawOffset=0x400\n# Convert VA to file offset: file_off = (va - 0x00401000) + 0x400\n\ndef va_to_off(va):\n return (va - 0x00401000) + 0x400\n\n# Search for call instruction followed by 'Service Request: SVC_GOLD' string reference\n# SVC_GOLD string is at VA 0x0046cf24\n# In file: 0x0046cf24 - 0x00400000 = 0x6cf24 -> but it's in .rdata\n# .rdata: VA=0x0005f000 -> 0x0045f000, RawOffset=0x5dc00\n# file_off = (0x0046cf24 - 0x0045f000) + 0x5dc00 = 0xcf24 + 0x5dc00 = 0x6ab24\n\nrdata_va = 0x0045f000\nrdata_raw = 0x5dc00\n\ndef rdata_va_to_off(va):\n return (va - rdata_va) + rdata_raw\n\nstr_va = 0x0046cf24\nstr_off = rdata_va_to_off(str_va)\nprint(f'String at file offset: 0x{str_off:x}')\nprint(f'String content: {data[str_off:str_off+40]}')\n\n# Find references to this string VA in .text section\ntext_raw_start = 0x400\ntext_raw_end = 0x400 + 0x5d800\nstr_va_bytes = struct.pack('
Tool result
{"exitCode":0,"stdout":"String at file offset: 0x6bb24\nString content: b'Service Request: SVC_GOLD(%08X)\n\x00\x00\x00\x00Serv'\nReferences to string 0x0046cf24:\n File: 0x2a843, VA: 0x0042b443\n","stderr":""}Call sandbox_execute
Arguments
{"command": "cd /sandbox && python3 -c \"\nimport struct\n\nwith open('GunBoundServ1.exe', 'rb') as f:\n data = f.read()\n\n# The reference is at VA 0x0042b443\n# Let's find the function that contains this: scan backwards for common function prologue\n# Look for 'push ebp; mov ebp, esp' or similar at alignment boundary\n\n# Scan from VA 0x0042b443 backwards\nfile_off = 0x2a843\n# Look back for function start (push ebp = 0x55)\n# Search for common prologues\nprint('Context around 0x0042b443:')\nctx_off = file_off - 0x100\nfor i in range(ctx_off, file_off + 0x20):\n b = data[i]\n va = 0x00401000 + (i - 0x400)\n if i == file_off:\n print(f'>>> VA:0x{va:08x} [{i:06x}] = 0x{b:02x}')\n elif i >= file_off - 5:\n print(f' VA:0x{va:08x} [{i:06x}] = 0x{b:02x}')\n \n# Find all 'push ebp; mov ebp, esp' patterns before this address\ntext_raw_start = 0x400\nprologue1 = b'\\\\x55\\\\x8b\\\\xec' # push ebp; mov ebp, esp\nprologue2 = b'\\\\x55\\\\x89\\\\xe5' # push ebp; mov ebp, esp (AT&T)\n\npos = text_raw_start\nfunc_starts = []\nwhile pos < file_off:\n idx = data.find(prologue1, pos)\n if idx == -1 or idx > file_off:\n break\n va = 0x00401000 + (idx - 0x400)\n func_starts.append((idx, va))\n pos = idx + 1\n\nprint(f'\\\\nLast few function starts before 0x{file_off + 0x400000 - 0x400:08x}:')\nfor foff, fva in func_starts[-10:]:\n print(f' VA: 0x{fva:08x} (file: 0x{foff:x})')\n\"\n"}
Tool result
{"exitCode":0,"stdout":"Context around 0x0042b443:\n VA:0x0042b43e [02a83e] = 0x5c\n VA:0x0042b43f [02a83f] = 0xd1\n VA:0x0042b440 [02a840] = 0xff\n VA:0x0042b441 [02a841] = 0xff\n VA:0x0042b442 [02a842] = 0x56\n>>> VA:0x0042b443 [02a843] = 0x68\n VA:0x0042b444 [02a844] = 0x24\n VA:0x0042b445 [02a845] = 0xcf\n VA:0x0042b446 [02a846] = 0x46\n VA:0x0042b447 [02a847] = 0x00\n VA:0x0042b448 [02a848] = 0xe8\n VA:0x0042b449 [02a849] = 0x13\n VA:0x0042b44a [02a84a] = 0x58\n VA:0x0042b44b [02a84b] = 0x00\n VA:0x0042b44c [02a84c] = 0x00\n VA:0x0042b44d [02a84d] = 0x8a\n VA:0x0042b44e [02a84e] = 0x86\n VA:0x0042b44f [02a84f] = 0xca\n VA:0x0042b450 [02a850] = 0x09\n VA:0x0042b451 [02a851] = 0x00\n VA:0x0042b452 [02a852] = 0x00\n VA:0x0042b453 [02a853] = 0x83\n VA:0x0042b454 [02a854] = 0xc4\n VA:0x0042b455 [02a855] = 0x08\n VA:0x0042b456 [02a856] = 0x84\n VA:0x0042b457 [02a857] = 0xc0\n VA:0x0042b458 [02a858] = 0x0f\n VA:0x0042b459 [02a859] = 0x84\n VA:0x0042b45a [02a85a] = 0x3e\n VA:0x0042b45b [02a85b] = 0xd1\n VA:0x0042b45c [02a85c] = 0xff\n VA:0x0042b45d [02a85d] = 0xff\n VA:0x0042b45e [02a85e] = 0x8b\n VA:0x0042b45f [02a85f] = 0x8d\n VA:0x0042b460 [02a860] = 0x8c\n VA:0x0042b461 [02a861] = 0xc8\n VA:0x0042b462 [02a862] = 0xff\n\nLast few function starts before 0x0042a443:\n VA: 0x0041de00 (file: 0x1d200)\n VA: 0x0041e0c0 (file: 0x1d4c0)\n VA: 0x004215f0 (file: 0x209f0)\n VA: 0x00422df0 (file: 0x221f0)\n VA: 0x00422ec0 (file: 0x222c0)\n VA: 0x004234f0 (file: 0x228f0)\n VA: 0x004235b0 (file: 0x229b0)\n VA: 0x00423a70 (file: 0x22e70)\n VA: 0x00424d70 (file: 0x24170)\n VA: 0x004270b0 (file: 0x264b0)\n","stderr":""}Call ghidra_decompile_function
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "name_or_address": "0x004270b0"}
Tool result
{"result":"\nundefined4 FUN_004270b0(void)\n\n{\n undefined4 uVar1;\n void *local_10;\n undefined1 *puStack_c;\n undefined4 local_8;\n \n puStack_c = &LAB_0045df80;\n local_10 = ExceptionList;\n local_8 = 0;\n ExceptionList = &local_10;\n uVar1 = FUN_00427130();\n ExceptionList = local_10;\n return CONCAT31((int3)((uint)uVar1 >> 8),1);\n}\n\n"}Call ghidra_decompile_function
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "name_or_address": "0x00427130"}
Tool result
{"result":"\nvoid FUN_00427130(void)\n\n{\n void pvVar1;\n int unaff_ESI;\n uint uVar2;\n \n if ((uint *)(unaff_ESI + 8) <= *(int *)(unaff_ESI + 0x10) + 1U) {\n FUN_00427190(1);\n }\n uVar2 = *(int *)(unaff_ESI + 0xc) + *(int )(unaff_ESI + 0x10);\n if ((uint *)(unaff_ESI + 8) <= uVar2) {\n uVar2 = uVar2 - *(uint )(unaff_ESI + 8);\n }\n if ((int )((int )(unaff_ESI + 4) + uVar2 * 4) == 0) {\n pvVar1 = operator_new(0x54);\n (void **)((int )(unaff_ESI + 4) + uVar2 * 4) = pvVar1;\n }\n FUN_00427370((undefined4 **)((int *)(unaff_ESI + 4) + uVar2 * 4));\n *(int *)(unaff_ESI + 0x10) = *(int )(unaff_ESI + 0x10) + 1;\n return;\n}\n\n"}Call sandbox_execute
Arguments
{"command": "cd /sandbox && python3 -c \"\nimport struct\n\nwith open('GunBoundServ1.exe', 'rb') as f:\n data = f.read()\n\n# Find all function prologues in .text section\ntext_raw_start = 0x400\ntext_raw_end = 0x400 + 0x5d800 # 0x5dc00\n\nprologue = b'\\x55\\x8b\\xec' # push ebp; mov ebp, esp\n\nfunc_starts = []\npos = text_raw_start\nwhile pos < text_raw_end:\n idx = data.find(prologue, pos)\n if idx == -1 or idx > text_raw_end:\n break\n va = 0x00401000 + (idx - 0x400)\n # Align to 0x10 boundary for likely real function starts\n if idx % 16 == 0 or idx % 4 == 0:\n func_starts.append(va)\n pos = idx + 1\n\nprint(f'Total function starts found: {len(func_starts)}')\n\n# Find the largest function by looking at gaps between starts\nfunc_starts.sort()\nlargest = []\nfor i in range(len(func_starts)-1):\n size = func_starts[i+1] - func_starts[i]\n if size > 0x1000:\n largest.append((size, func_starts[i]))\n\nlargest.sort(reverse=True)\nprint('Largest functions (estimated):')\nfor size, va in largest[:20]:\n print(f' VA: 0x{va:08x} estimated size: 0x{size:x}')\n\"\n"}
Tool result
{"exitCode":0,"stdout":"Total function starts found: 99\nLargest functions (estimated):\n VA: 0x0042e980 estimated size: 0xfff0\n VA: 0x0043e970 estimated size: 0xc7e8\n VA: 0x004270b0 estimated size: 0x50e0\n VA: 0x00403510 estimated size: 0x4320\n VA: 0x0041e0c0 estimated size: 0x3530\n VA: 0x00413f90 estimated size: 0x32a0\n VA: 0x00424d70 estimated size: 0x2340\n VA: 0x00418870 estimated size: 0x2230\n VA: 0x00407830 estimated size: 0x21a0\n VA: 0x00450eb8 estimated size: 0x1c5c\n VA: 0x0045527c estimated size: 0x1af0\n VA: 0x0040db40 estimated size: 0x1880\n VA: 0x004215f0 estimated size: 0x1800\n VA: 0x0041c7a0 estimated size: 0x1660\n VA: 0x0040bb20 estimated size: 0x1640\n VA: 0x00453ac0 estimated size: 0x15e0\n VA: 0x0040fe00 estimated size: 0x15c0\n VA: 0x0041aaa0 estimated size: 0x1500\n VA: 0x00417230 estimated size: 0x1420\n VA: 0x0044e958 estimated size: 0x13fc\n","stderr":""}Call ghidra_decompile_function
Arguments
{"filepath": "/sandbox/GunBoundServ1.exe", "name_or_address": "0x0042e980"}
Tool result
{"result":"Succeeded and the artifact is saved at /sandbox/ghidra/decompiled_0x42e980.txt. Please find the table of contents below. \n[{'funcName': 'KERNEL32.DLL@EnterCriticalSection', 'lineNum': 88}, {'funcName': 'FUN_0040ba40', 'lineNum': 89}, {'funcName': 'KERNEL32.DLL@LeaveCriticalSection', 'lineNum': 96}, {'funcName': 'FUN_00412720', 'lineNum': 135}, {'funcName': 'FUN_0040fc80', 'lineNum': 137}, {'funcName': 'FUN_00412590', 'lineNum': 140}, {'funcName': 'FUN_0040fc80', 'lineNum': 144}, {'funcName': 'WS2_32.DLL@Ordinal_5', 'lineNum': 162}, {'funcName': 'FUN_00402950', 'lineNum': 166}, {'funcName': 'FUN_004101c0', 'lineNum': 173}, {'funcName': 'FUN_004100c0', 'lineNum': 175}, {'funcName': 'FUN_004100c0', 'lineNum': 176}, {'funcName': 'FUN_004100c0', 'lineNum': 178}, {'funcName': '_strncmp', 'lineNum': 180}, {'funcName': 'FUN_00430c60', 'lineNum': 185}, {'funcName': 'FID_conflict:_time32', 'lineNum': 189}, {'funcName': 'FUN_00410ee0', 'lineNum': 203}, {'funcName': 'FUN_00409690', 'lineNum': 227}, {'funcName': 'FUN_00412720', 'lineNum': 306}, {'funcName': 'FUN_0040fc80', 'lineNum': 309}, {'funcName': 'FUN_00412590', 'lineNum': 311}, {'funcName': 'FUN_00420d00', 'lineNum': 322}, {'funcName': 'FUN_00421ed0', 'lineNum': 368}, {'funcName': 'FUN_00421ed0', 'lineNum': 369}, {'funcName': 'FUN_0040fc80', 'lineNum': 371}, {'funcName': 'FUN_0041eaa0', 'lineNum': 373}, {'funcName': 'FUN_0040fd10', 'lineNum': 381}, {'funcName': 'FUN_0040fd10', 'lineNum': 382}, {'funcName': 'FUN_0040fc80', 'lineNum': 387}]"}Call ghidra_read_artifact_snippet
Arguments
{"artifact_path": "/sandbox/ghidra/decompiled_0x42e980.txt", "line_number": 1}
Tool result
{"result":"\n/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie /\n/ WARNING: Type propagation algorithm not settling */\n\nvoid __thiscall FUN_0042e980(void *this,int *param_1)\n\n{\n byte *pbVar1;\n int iVar2;\n uint *puVar3;\n undefined4 uVar4;\n int iVar5;\n int *piVar6;\n __time32_t Var7;\n uint uVar8;\n int iVar9;\n void *this_00;\n undefined4 *puVar10;\n undefined4 *puVar11;\n char *pcVar12;\n undefined4 local_b20;"}Call ghidra_read_artifact_snippet
Arguments
{"artifact_path": "/sandbox/ghidra/decompiled_0x42e980.txt", "line_number": 85}
Tool result
{"result":" char acStack_a1c [20];\n int iStack_a08;\n undefined4 uStack_a04;\n undefined2 uStack_a00;\n int iStack_9fe;\n undefined4 uStack_9f8;\n undefined4 uStack_9f4;\n undefined4 uStack_9f0;\n undefined4 uStack_9ec;\n undefined4 uStack_9e8;\n undefined2 uStack_9e4;\n int iStack_9e0;\n undefined4 local_1c;\n void *local_14;\n undefined1 *puStack_10;\n undefined4 local_c;\n \n local_c = 0xffffffff;\n puStack_10 = &LAB_0045e131;\n local_14 = ExceptionList;\n local_1c = DAT_00484f30;\n ExceptionList = &local_14;\n EnterCriticalSection((LPCRITICAL_SECTION)&DAT_0049fbd8);\n puVar3 = FUN_0040ba40(&DAT_0049fd10,local_b18);\n if (puVar3 == (uint *)0x0) {\n local_b20 = (undefined4 *)0x0;\n }\n else {\n local_b20 = (undefined4 *)puVar3[1];\n }\n LeaveCriticalSection((LPCRITICAL_SECTION)&DAT_0049fbd8);\n if (local_b20 == (undefined4 *)0x0) {\n ExceptionList = local_14;\n return;\n }\n iVar9 = param_1;\n if (0x4f < iVar9 - 2U) {\n ExceptionList = local_14;\n return;\n }"}Call ghidra_read_artifact_snippet
Arguments
{"artifact_path": "/sandbox/ghidra/decompiled_0x42e980.txt", "line_number": 130}
Tool result
{"result":" if (iVar5 == 0) {\n local_af4 = 0;\n local_af0 = 0;\n local_aec = 0;\n piVar6 = &local_ae8;\n for (iVar9 = 0x21; iVar9 != 0; iVar9 = iVar9 + -1) {\n *piVar6 = 0;\n piVar6 = piVar6 + 1;\n }\n iVar9 = 0;\n local_c = 0;\n local_b0c = local_b20[0x269];\n local_b08 = local_b20[0x26a];\n local_b04 = local_b20[0x26b];\n local_b00 = local_b20[0x26c];\n local_afc = *(undefined2 *)(local_b20 + 0x26d);\n local_ae0 = param_1[0x11];\n local_ab9[0] = *(undefined1 *)((int)param_1 + 0xa9);\n local_b10 = 0x11;\n local_ae4 = 1;\n if (this != (void *)0x6c) {\n iVar9 = (int)this + 0xc;\n }\n local_ae8 = iVar2;\n uVar4 = FUN_00412720(&local_b10,*local_b20,(int)this + -0x6c,iVar9,'\x01');\n if ((char)uVar4 == '\0') {\n FUN_0040fc80(&DAT_0049fbd0,(int)local_b20);\n *(undefined1 *)(local_b20 + 0x275) = 0;\n }\n FUN_00412590();\n ExceptionList = local_14;\n return;\n }\n FUN_0040fc80(&DAT_0049fbd0,(int)local_b20);\n *(undefined1 )(local_b20 + 0x275) = 0;\n ExceptionList = local_14;\n return;\n }\n goto LAB_0042ec64;\n default:"}Vou usar um agente para fazer a análise completa e sistemática de todas as funções críticas do servidor.
Call Agent
Arguments
{"description": "Comprehensive GunBound server decompilation", "prompt": "You are analyzing the GunBound server binary at /sandbox/GunBoundServ1.exe. The Ghidra server is already open. Your goal is to systematically decompile ALL key functions and generate a comprehensive technical document for recreating a server emulator.\n\nThe binary is a Windows PE32 (x86) server application for the game GunBound. Key info already gathered:\n- ImageBase: 0x00400000\n- Multiple databases: AdminDB, AdminDB2, UserDB, GunWcUserDB, GunboundDB, RecordDB, ItemDB\n- Config: Settings.txt (INI format)\n- Main classes: CGameRoomManager, CChannelManager, CSvcComm, CSvcDatabase, CSvcThread\n- Network: WinSock2 TCP+UDP\n- Can run as Windows Service\n\nTASK: Decompile and analyze the following critical functions. For each, provide the decompiled code and a high-level description:\n\n1. **Packet Dispatcher (OnMessage)** - The function at 0x0042e980 - already identified as the main message handler (~0x10000 bytes). Read the full artifact at /sandbox/ghidra/decompiled_0x42e980.txt\n\n2. **Service Code Validator** - 0x00428040 (already decompiled - maps packet opcodes)\n\n3. **Login Handler** - Find function that uses string \"SVC_LOGIN/ADMIN\" at 0x0046da74. The ref was at 0x004285f5. Decompile functions near 0x00427880 area.\n\n4. **Game Room Manager functions**:\n - 0x0041e0c0 (large ~0x3530 bytes) \n - 0x00413f90 (large ~0x32a0 bytes)\n - 0x00418870 (large ~0x2230 bytes)\n\n5. **Channel Manager** - 0x00424d70 (large ~0x2340 bytes)\n\n6. **Main initialization** - Already have /sandbox/ghidra/decompiled_0x403510.txt - read and summarize it\n\n7. **Database handler classes**:\n - Decompile 0x00407830 (large ~0x21a0 bytes)\n - Decompile 0x0040db40 (large ~0x1880 bytes)\n\n8. **Auth/Session handler** - 0x0041aaa0 (large ~0x1500 bytes)\n\nFor each function, use ghidra_decompile_function tool. For large functions saved as artifacts, use ghidra_read_artifact or ghidra_read_artifact_snippet.\n\nAfter decompiling, generate a comprehensive document saved to /sandbox/gunbound_analysis.md containing:\n\n## 1. Architecture Overview\n- Server components and their relationships\n- Threading model\n- Database structure\n\n## 2. Configuration File (Setting.txt)\n- All configuration keys found in code with their defaults and descriptions\n\n## 3. Network Protocol\n- Packet structure (header format)\n- All packet opcodes (SVC_* codes) with their hex values\n- Direction (client->server, server->client)\n- Packet payload format where determinable\n\n## 4. Service Commands Reference Table\nComplete table of all SVC_* codes found:\n| Code | Hex | Description |\n|------|-----|-------------|\n\n## 5. Database Schema\n- All SQL queries found, grouped by database\n- Table names and column names inferred\n\n## 6. Authentication Flow\n- Step by step login sequence\n\n## 7. Game Room Management\n- Room creation, join, start game flow\n\n## 8. Key C++ Classes\n- Pseudo-code/struct definitions for main classes\n\n## 9. Decompiled Functions\n- All key decompiled functions with comments\n\nWrite the complete analysis to /sandbox/gunbound_analysis.md using sandbox_write_file tool.", "subagent_type": "general-purpose"}
Tool result
[
{
"type": "text",
"text": "API Error: 500 {"error":{"message":"Insufficient credits","type":"None","param":"None","code":"500"}}"
},
{
"type": "text",
"text": "agentId: a9da8138c31f8b79e (for resuming to continue this agent's work if needed)\ntotal_tokens: 0\ntool_uses: 21\nduration_ms: 238671"
}
]Call ghidra_read_artifact
Arguments
{
"artifact_path": "/sandbox/ghidra/decompiled_0x42e980.txt"
}Tool result
{"result":"\n/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */\n/* WARNING: Type propagation algorithm not settling */\n\nvoid __thiscall FUN_0042e980(void *this,int *param_1)\n\n{\n byte *pbVar1;\n int iVar2;\n uint *puVar3;\n undefined4 uVar4;\n int iVar5;\n int *piVar6;\n __time32_t _Var7;\n uint uVar8;\n int iVar9;\n void *this_00;\n undefined4 *puVar10;\n undefined4 *puVar11;\n char *pcVar12;\n undefined4 *local_b20;\n undefined4 local_b18 [2];\n int local_b10;\n undefined4 local_b0c;\n undefined4 local_b08;\n undefined4 local_b04;\n undefined4 local_b00;\n undefined2 local_afc;\n undefined4 uStack_af8;\n undefined4 local_af4;\n undefined4 local_af0;\n undefined4 local_aec;\n int local_ae8;\n undefined1 local_ae4;\n int local_ae0;\n undefined1 local_adc;\n undefined1 local_adb;\n undefined2 uStack_ada;\n undefined2 local_ad8;\n undefined2 uStack_ad6;\n undefined1 local_ad4;\n undefined1 uStack_ad3;\n undefined2 uStack_ad2;\n undefined2 local_ad0;\n undefined2 uStack_ace;\n undefined1 local_acc;\n undefined1 local_acb;\n undefined2 uStack_aca;\n int iStack_ac8;\n int iStack_ac4;\n int iStack_ac0;\n undefined1 uStack_abc;\n undefined1 uStack_abb;\n byte bStack_aba;\n undefined1 local_ab9 [4];\n int local_ab5;\n int local_ab1;\n undefined2 local_aad;\n byte local_aab;\n undefined4 local_aaa [9];\n undefined4 local_a86;\n undefined4 local_a82;\n undefined4 local_a7e;\n undefined2 local_a7a;\n undefined1 local_a78;\n char acStack_a1c [20];\n int iStack_a08;\n undefined4 uStack_a04;\n undefined2 uStack_a00;\n int iStack_9fe;\n undefined4 uStack_9f8;\n undefined4 uStack_9f4;\n undefined4 uStack_9f0;\n undefined4 uStack_9ec;\n undefined4 uStack_9e8;\n undefined2 uStack_9e4;\n int iStack_9e0;\n undefined4 local_1c;\n void *local_14;\n undefined1 *puStack_10;\n undefined4 local_c;\n \n local_c = 0xffffffff;\n puStack_10 = &LAB_0045e131;\n local_14 = ExceptionList;\n local_1c = DAT_00484f30;\n ExceptionList = &local_14;\n EnterCriticalSection((LPCRITICAL_SECTION)&DAT_0049fbd8);\n puVar3 = FUN_0040ba40(&DAT_0049fd10,local_b18);\n if (puVar3 == (uint *)0x0) {\n local_b20 = (undefined4 *)0x0;\n }\n else {\n local_b20 = (undefined4 *)puVar3[1];\n }\n LeaveCriticalSection((LPCRITICAL_SECTION)&DAT_0049fbd8);\n if (local_b20 == (undefined4 *)0x0) {\n ExceptionList = local_14;\n return;\n }\n iVar9 = *param_1;\n if (0x4f < iVar9 - 2U) {\n ExceptionList = local_14;\n return;\n }\n switch(iVar9) {\n case 2:\n iVar2 = param_1[0x12];\n iVar5 = param_1[1];\n if (iVar2 != -1) {\n if (iVar5 == 0) {\n local_af4 = 0;\n local_af0 = 0;\n local_aec = 0;\n piVar6 = &local_ae8;\n for (iVar9 = 0x21; iVar9 != 0; iVar9 = iVar9 + -1) {\n *piVar6 = 0;\n piVar6 = piVar6 + 1;\n }\n iVar9 = 0;\n local_c = 0;\n local_b0c = local_b20[0x269];\n local_b08 = local_b20[0x26a];\n local_b04 = local_b20[0x26b];\n local_b00 = local_b20[0x26c];\n local_afc = *(undefined2 *)(local_b20 + 0x26d);\n local_ae0 = param_1[0x11];\n local_ab9[0] = *(undefined1 *)((int)param_1 + 0xa9);\n local_b10 = 0x11;\n local_ae4 = 1;\n if (this != (void *)0x6c) {\n iVar9 = (int)this + 0xc;\n }\n local_ae8 = iVar2;\n uVar4 = FUN_00412720(&local_b10,*local_b20,(int)this + -0x6c,iVar9,'\\x01');\n if ((char)uVar4 == '\\0') {\n FUN_0040fc80(&DAT_0049fbd0,(int)local_b20);\n *(undefined1 *)(local_b20 + 0x275) = 0;\n }\n FUN_00412590();\n ExceptionList = local_14;\n return;\n }\n FUN_0040fc80(&DAT_0049fbd0,(int)local_b20);\n *(undefined1 *)(local_b20 + 0x275) = 0;\n ExceptionList = local_14;\n return;\n }\n goto LAB_0042ec64;\n default:\n goto switchD_0042ea19_caseD_3;\n case 10:\n if (param_1[1] == 0) {\n *(undefined4 *)((int)local_b20 + 0x9b6) = *(undefined4 *)((int)param_1 + 0x65);\n *(undefined4 *)((int)local_b20 + 0x9ba) = *(undefined4 *)((int)param_1 + 0x69);\n *(undefined4 *)((int)local_b20 + 0x9be) = *(undefined4 *)((int)param_1 + 0x6d);\n *(undefined2 *)((int)local_b20 + 0x9c2) = *(undefined2 *)((int)param_1 + 0x71);\n *(char *)(local_b20 + 0x271) = (char)param_1[0x19];\n *(undefined2 *)(local_b20 + 0x272) = *(undefined2 *)((int)param_1 + 0x5a);\n *(undefined1 *)((int)local_b20 + 0x9c7) = *(undefined1 *)((int)param_1 + 0x73);\n local_b18[0] = 0x10;\n iVar9 = Ordinal_5(local_b20[4],local_b20 + 0x2ff,local_b18);\n if (iVar9 == -1) {\n local_b20[0x300] = 0;\n }\n if ((*(short *)(local_b20 + 0x272) < 0x62) || (uVar8 = FUN_00402950(), (char)uVar8 != '\\0')) {\n piVar6 = param_1 + 0x11;\n do {\n iVar9 = *piVar6;\n piVar6 = (int *)((int)piVar6 + 1);\n } while ((char)iVar9 != '\\0');\n pbVar1 = (byte *)(local_b20 + 0x269);\n FUN_004101c0(local_b20,pbVar1,(uint)*(byte *)((int)local_b20 + 0x9b5),local_b20[0x379],\n (byte *)(param_1 + 0x11));\n uVar4 = FUN_004100c0(acStack_a1c,(int)local_b20,*(ushort *)(local_b20 + 0x378),\n local_b20 + 0x36c,\n (-(uint)(*(char *)((int)local_b20 + 0x9c5) != '\\0') & 0xfffffff0) +\n 0x30,0x24);\n if (((char)uVar4 != '\\0') &&\n (iVar9 = _strncmp((char *)(param_1 + 0x11),acStack_a1c,0x14), iVar9 == 0)) {\n if (*(char *)((int)local_b20 + 0x9c5) == '\\0') {\n if ((iStack_a08 < DAT_004969c4) || (DAT_004969c8 < iStack_a08)) {\n pcVar12 = s_Recv_Version__d__0046dc28;\nLAB_0042f108:\n FUN_00430c60(pcVar12);\n }\n else {\n if ((*(short *)(local_b20 + 0x272) < 1) ||\n (_Var7 = FID_conflict___time32((__time32_t *)0x0), _Var7 < param_1[0x18])) {\n uStack_9ec = local_b20[0x26b];\n uStack_9f4 = *(undefined4 *)pbVar1;\n uStack_9f0 = local_b20[0x26a];\n iStack_9e0 = param_1[0x18];\n uStack_9e8 = local_b20[0x26c];\n uStack_9e4 = *(undefined2 *)(local_b20 + 0x26d);\n uStack_9f8 = 0x41;\n if (this == (void *)0x6c) {\n iVar9 = 0;\n }\n else {\n iVar9 = (int)this + -8;\n }\n FUN_00410ee0(&uStack_9f8,&uStack_9f8,*local_b20,(int)this + -0x6c,iVar9,'\\0');\n ExceptionList = local_14;\n return;\n }\n if (DAT_004969d8 <= (short)param_1[0x17]) {\n local_b20[0x2fd] = uStack_a04;\n *(undefined2 *)(local_b20 + 0x2fe) = uStack_a00;\n if (iStack_9fe != DAT_004969cc) {\n pcVar12 = s_Recv_ProductVersion__d__0046dc10;\n goto LAB_0042f108;\n }\n local_b0c = *(undefined4 *)pbVar1;\n local_b04 = local_b20[0x26b];\n local_b08 = local_b20[0x26a];\n uStack_af8 = *local_b20;\n local_b00 = local_b20[0x26c];\n local_afc = *(undefined2 *)(local_b20 + 0x26d);\n local_b10 = 1;\n if (this == (void *)0x6c) {\n this_00 = (void *)0x0;\n }\n else {\n this_00 = (void *)((int)this + 4);\n }\n uVar4 = FUN_00409690(this_00,&local_b10,uStack_af8,(int)this + -0x6c,this_00,'\\0');\n if ((char)uVar4 != '\\0') {\n ExceptionList = local_14;\n return;\n }\n }\n }\n }\n else if (0x61 < *(short *)(local_b20 + 0x272)) {\n *(undefined1 *)((int)local_b20 + 0x9ca) = 1;\n }\n }\n }\n }\n break;\n case 0x1b:\n if (param_1[1] == 0) {\n local_af4 = 0;\n local_af0 = 0;\n local_aec = 0;\n piVar6 = &local_ae8;\n for (iVar9 = 0x21; iVar9 != 0; iVar9 = iVar9 + -1) {\n *piVar6 = 0;\n piVar6 = piVar6 + 1;\n }\n local_c = 2;\n local_b0c = local_b20[0x269];\n local_b08 = local_b20[0x26a];\n local_b04 = local_b20[0x26b];\n local_b00 = local_b20[0x26c];\n local_afc = *(undefined2 *)(local_b20 + 0x26d);\n local_adc = (undefined1)param_1[0x15];\n local_ae8 = param_1[0x12];\n local_adb = *(undefined1 *)((int)param_1 + 0x55);\n local_ae0 = param_1[0x14];\n local_ae4 = (undefined1)param_1[0x13];\n uVar4 = *(undefined4 *)((int)param_1 + 0x5a);\n uStack_ad6 = (undefined2)uVar4;\n local_ad4 = (undefined1)((uint)uVar4 >> 0x10);\n uStack_ad3 = (undefined1)((uint)uVar4 >> 0x18);\n uStack_ada = (undefined2)*(undefined4 *)((int)param_1 + 0x56);\n local_ad8 = (undefined2)((uint)*(undefined4 *)((int)param_1 + 0x56) >> 0x10);\n uVar4 = *(undefined4 *)((int)param_1 + 0x62);\n uStack_aca = *(undefined2 *)((int)param_1 + 0x66);\n uStack_ace = (undefined2)uVar4;\n local_acc = (undefined1)((uint)uVar4 >> 0x10);\n local_acb = (undefined1)((uint)uVar4 >> 0x18);\n uStack_ad2 = (undefined2)*(undefined4 *)((int)param_1 + 0x5e);\n local_ad0 = (undefined2)((uint)*(undefined4 *)((int)param_1 + 0x5e) >> 0x10);\n iStack_ac8 = param_1[0x1a];\n iStack_ac4 = param_1[0x1b];\n iStack_ac0 = param_1[0x1c];\n bStack_aba = *(byte *)((int)param_1 + 0x76);\n uStack_abc = (undefined1)(short)param_1[0x1d];\n uStack_abb = (undefined1)((ushort)(short)param_1[0x1d] >> 8);\n local_b10 = 0x20;\n puVar10 = (undefined4 *)((int)param_1 + 0x77);\n puVar11 = (undefined4 *)((int)local_ab9 + 1);\n for (uVar8 = (uint)(bStack_aba >> 2); uVar8 != 0; uVar8 = uVar8 - 1) {\n *puVar11 = *puVar10;\n puVar10 = puVar10 + 1;\n puVar11 = puVar11 + 1;\n }\n for (uVar8 = bStack_aba & 3; uVar8 != 0; uVar8 = uVar8 - 1) {\n *(undefined1 *)puVar11 = *(undefined1 *)puVar10;\n puVar10 = (undefined4 *)((int)puVar10 + 1);\n puVar11 = (undefined4 *)((int)puVar11 + 1);\n }\n local_a86 = *(undefined4 *)((int)local_b20 + 0x9b6);\n local_a82 = *(undefined4 *)((int)local_b20 + 0x9ba);\n local_a7e = *(undefined4 *)((int)local_b20 + 0x9be);\n local_a7a = *(undefined2 *)((int)local_b20 + 0x9c2);\n local_ab9[0] = *(undefined1 *)((int)param_1 + 0xa9);\n if (this == (void *)0x6c) {\n iVar9 = 0;\n }\n else {\n iVar9 = (int)this + 0xc;\n }\n uVar4 = FUN_00412720(&local_b10,*local_b20,(int)this + -0x6c,iVar9,'\\0');\n if ((char)uVar4 == '\\0') {\n *(undefined1 *)(local_b20 + 0x275) = 0;\n FUN_0040fc80(&DAT_0049fbd0,(int)local_b20);\n }\n FUN_00412590();\n ExceptionList = local_14;\n return;\n }\nLAB_0042ee0a:\n *(undefined1 *)(local_b20 + 0x275) = 0;\n break;\n case 0x51:\n iVar5 = param_1[1];\n if (param_1[0x12] != -1) {\n if (iVar5 == 0) {\n FUN_00420d00((int)&local_b10);\n local_c = 1;\n local_b0c = local_b20[0x269];\n local_b08 = local_b20[0x26a];\n local_b04 = local_b20[0x26b];\n local_b00 = local_b20[0x26c];\n local_afc = *(undefined2 *)(local_b20 + 0x26d);\n local_acc = (undefined1)param_1[0x15];\n local_ad4 = (undefined1)param_1[0x13];\n local_ad8 = (undefined2)param_1[0x12];\n uStack_ad6 = (undefined2)((uint)param_1[0x12] >> 0x10);\n local_ad0 = (undefined2)param_1[0x11];\n uStack_ace = (undefined2)((uint)param_1[0x11] >> 0x10);\n uVar4 = *(undefined4 *)((int)param_1 + 0x56);\n local_acb = (undefined1)uVar4;\n uStack_aca = (undefined2)((uint)uVar4 >> 8);\n iStack_ac8._1_3_ = (undefined3)*(undefined4 *)((int)param_1 + 0x5a);\n iStack_ac8 = CONCAT31(iStack_ac8._1_3_,(char)((uint)uVar4 >> 0x18));\n iStack_ac4._1_3_ = (undefined3)*(undefined4 *)((int)param_1 + 0x5e);\n iStack_ac4 = CONCAT31(iStack_ac4._1_3_,\n (char)((uint)*(undefined4 *)((int)param_1 + 0x5a) >> 0x18));\n iStack_ac0._1_3_ = (undefined3)*(undefined4 *)((int)param_1 + 0x62);\n iStack_ac0 = CONCAT31(iStack_ac0._1_3_,\n (char)((uint)*(undefined4 *)((int)param_1 + 0x5e) >> 0x18));\n uStack_abc = (undefined1)((uint)*(undefined4 *)((int)param_1 + 0x62) >> 0x18);\n uStack_abb = (undefined1)*(undefined2 *)((int)param_1 + 0x66);\n bStack_aba = (byte)((ushort)*(undefined2 *)((int)param_1 + 0x66) >> 8);\n local_ab9 = (undefined1 [4])param_1[0x1a];\n local_ab5 = param_1[0x1b];\n local_ab1 = param_1[0x1c];\n local_a78 = *(undefined1 *)((int)param_1 + 0xa9);\n local_aad = (undefined2)param_1[0x1d];\n local_aab = *(byte *)((int)param_1 + 0x76);\n local_b10 = 0x1a;\n puVar10 = (undefined4 *)((int)param_1 + 0x77);\n puVar11 = local_aaa;\n for (uVar8 = (uint)(local_aab >> 2); uVar8 != 0; uVar8 = uVar8 - 1) {\n *puVar11 = *puVar10;\n puVar10 = puVar10 + 1;\n puVar11 = puVar11 + 1;\n }\n for (uVar8 = local_aab & 3; uVar8 != 0; uVar8 = uVar8 - 1) {\n *(undefined1 *)puVar11 = *(undefined1 *)puVar10;\n puVar10 = (undefined4 *)((int)puVar10 + 1);\n puVar11 = (undefined4 *)((int)puVar11 + 1);\n }\n uVar4 = FUN_00421ed0(&DAT_004a0308,&local_b10,*local_b20,(int)this + -0x6c,\n -(uint)(this != (void *)0x6c) & (uint)this,'\\0');\n if ((char)uVar4 == '\\0') {\n FUN_0040fc80(&DAT_0049fbd0,(int)local_b20);\n }\n FUN_0041eaa0();\n ExceptionList = local_14;\n return;\n }\n goto LAB_0042ee0a;\n }\nLAB_0042ec64:\n if (iVar5 == 0) {\n FUN_0040fd10((uint)*(byte *)((int)&PTR_caseD_3_0042f170 + iVar9 + 2),param_1 + 0x11,\n &DAT_0049fbd0,(int)local_b20,0x6101,0,4);\n ExceptionList = local_14;\n return;\n }\n }\n FUN_0040fc80(&DAT_0049fbd0,(int)local_b20);\nswitchD_0042ea19_caseD_3:\n ExceptionList = local_14;\n return;\n}\n\n"}Call ghidra_read_artifact
Arguments
{
"artifact_path": "/sandbox/ghidra/decompiled_0x403510.txt"
}Tool result
{"result":"\n/* WARNING: Function: __chkstk replaced with injection: alloca_probe */\n/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */\n/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid __fastcall FUN_00403510(char *param_1)\n\n{\n char cVar1;\n void *pvVar2;\n int iVar3;\n int iVar4;\n undefined4 *puVar5;\n bool bVar6;\n byte bVar7;\n undefined2 uVar8;\n int iVar9;\n undefined3 extraout_var;\n UINT UVar10;\n int *piVar11;\n char *pcVar12;\n char *pcVar13;\n long lVar14;\n long lVar15;\n undefined4 *puVar16;\n undefined4 *puVar17;\n undefined4 *puVar18;\n undefined4 uVar19;\n undefined4 uVar20;\n BOOL BVar21;\n HANDLE pvVar22;\n DWORD DVar23;\n short sVar24;\n undefined4 extraout_ECX;\n int *extraout_ECX_00;\n undefined4 extraout_ECX_01;\n int *Parameter;\n char *pcVar25;\n code *pcVar26;\n uint uVar27;\n uint unaff_EDI;\n undefined8 uVar28;\n ulonglong uVar29;\n double dVar30;\n undefined1 *puVar31;\n int *piStack_10d34;\n int *piStack_10d30;\n char cStack_10d29;\n LARGE_INTEGER LStack_10d28;\n char *pcStack_10d20;\n char cStack_10d19;\n char *pcStack_10d18;\n undefined1 uStack_10d14;\n int *piStack_10d10;\n undefined ***pppuStack_10d0c;\n char *pcStack_10d08;\n long lStack_10d04;\n HANDLE pvStack_10d00;\n char *pcStack_10cfc;\n int iStack_10cf8;\n HANDLE pvStack_10cf4;\n HANDLE *ppvStack_10cf0;\n DWORD DStack_10cec;\n void *pvStack_10ce8;\n undefined4 uStack_10ce4;\n HANDLE *ppvStack_10ce0;\n DWORD DStack_10cdc;\n void *pvStack_10cd8;\n undefined4 uStack_10cd4;\n _union_530 _Stack_10cd0;\n undefined4 uStack_10ccc;\n undefined4 uStack_10cc8;\n undefined2 uStack_10cc4;\n short sStack_10cc2;\n short sStack_10cc0;\n short sStack_10cbe;\n short sStack_10cbc;\n byte bStack_10cba;\n undefined1 uStack_10cb9;\n undefined2 uStack_10cb8;\n undefined2 uStack_10cb6;\n undefined2 uStack_10cb4;\n undefined2 uStack_10cb2;\n undefined4 uStack_10cb0;\n byte abStack_10cac [4];\n int iStack_10ca8;\n undefined1 auStack_10c80 [2];\n undefined2 uStack_10c7e;\n undefined2 uStack_10c7c;\n int aiStack_10c70 [25];\n undefined **appuStack_10c0c [13];\n char acStack_10bd8 [4];\n char acStack_10bd4 [4];\n char acStack_10bd0 [4];\n char cStack_10bcc;\n char cStack_10bcb;\n char cStack_10bca;\n char acStack_10bc8 [8];\n char acStack_10bc0 [256];\n _FILETIME a_Stack_10ac0 [30];\n undefined4 uStack_109cc;\n undefined4 uStack_109c8;\n undefined4 uStack_109c4;\n int iStack_109c0;\n undefined1 uStack_109bc;\n undefined1 uStack_109ab;\n uint uStack_108d0;\n undefined4 uStack_108cc;\n char acStack_104d0 [260];\n char acStack_103cc [260];\n char acStack_102c8 [280];\n undefined1 auStack_101b0 [384];\n char acStack_10030 [65556];\n void *local_1c;\n void *pvStack_14;\n undefined1 *puStack_10;\n undefined4 local_c;\n \n pvVar2 = DAT_00484f30;\n puStack_10 = &LAB_0045e3e4;\n pvStack_14 = ExceptionList;\n piStack_10d30 = (int *)0x0;\n local_1c = DAT_00484f30;\n _Stack_10cd0.dwOemId = 0;\n uStack_10ccc = 0;\n uStack_10cc8 = 0;\n uStack_10cc4 = 0;\n sStack_10cc2 = 0;\n ppvStack_10ce0 = (HANDLE *)0x0;\n DStack_10cdc = 0;\n pvStack_10cd8 = (void *)0x0;\n uStack_10cd4 = 0;\n local_c = 1;\n pvStack_10ce8 = (void *)0x0;\n ppvStack_10cf0 = (HANDLE *)0x0;\n uStack_10ce4 = 0;\n ExceptionList = &pvStack_14;\n pcStack_10d20 = param_1;\n iVar9 = Ordinal_115(0x202,auStack_101b0);\n if (iVar9 != 0) {\n Ordinal_111();\n FUN_00430c60(s_WSAStartup_failed_with__d_00463ec4);\n ExceptionList = pvVar2;\n return;\n }\n _sprintf(acStack_10bc0,&DAT_004692c4,*(undefined4 *)(param_1 + 0x10),s_CSAuth_tab_00463eb8);\n iVar9 = FUN_00449a70(acStack_10bc0);\n if (iVar9 == 0) {\n FUN_00430c60(s_LoadAuthTable_failed_00463ea0);\n ExceptionList = pvVar2;\n return;\n }\n _sprintf(acStack_10bc0,&DAT_004692c4,*(undefined4 *)(param_1 + 0x10),s_CSAuth_idx_00463e94);\n bVar6 = FUN_00449b10(acStack_10bc0);\n if (CONCAT31(extraout_var,bVar6) == 0) {\n FUN_00430c60(s_LoadAuthIndex_failed_00463e7c);\n ExceptionList = pvVar2;\n return;\n }\n iVar9 = Ordinal_57(aiStack_10c70 + 2,0x80);\n if (((iVar9 != -1) && (iVar9 = Ordinal_52(aiStack_10c70), iVar9 != 0)) &&\n ((undefined4 *)**(int **)(iVar9 + 0xc) != (undefined4 *)0x0)) {\n *(undefined4 *)(param_1 + 0x88) = *(undefined4 *)**(int **)(iVar9 + 0xc);\n }\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),&DAT_00463ee0,0,*(LPCSTR *)(param_1 + 0x14));\n *(short *)(param_1 + 0x8c) = (short)UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_RecommendedMan_00463e6c,3000,\n *(LPCSTR *)(param_1 + 0x14));\n *(UINT *)(param_1 + 0x84) = UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_IdleRoomCloseTime_00463e58,0x4b0,\n *(LPCSTR *)(param_1 + 0x14));\n *(UINT *)(param_1 + 0x5a90) = UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_IdleRoomWarnTime_00463e44,0x474,\n *(LPCSTR *)(param_1 + 0x14));\n *(UINT *)(param_1 + 0x5a94) = UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_StageEvent_00463e38,0,*(LPCSTR *)(param_1 + 0x14)\n );\n *(UINT *)(param_1 + 0x5a98) = UVar10 << 0x18;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_SuperUserItem_00463e28,0,\n *(LPCSTR *)(param_1 + 0x14));\n *(UINT *)(param_1 + 0x5a9c) = UVar10;\n DAT_00496750 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_ProductVersion_00463e18,0,\n *(LPCSTR *)(param_1 + 0x14));\n LStack_10d28.s.LowPart =\n GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_Tank_Hidden_Ratio_00463e04,2,\n *(LPCSTR *)(param_1 + 0x14));\n _DAT_00496754 = (float)(int)LStack_10d28.s.LowPart;\n if ((int)LStack_10d28.s.LowPart < 0) {\n _DAT_00496754 = _DAT_00496754 + _DAT_0046e234;\n }\n _DAT_00496754 = _DAT_00496754 * _DAT_0046e260;\n acStack_10bd8[0] = s_EventTrigger___00463df4[0];\n acStack_10bd8[1] = s_EventTrigger___00463df4[1];\n acStack_10bd8[2] = s_EventTrigger___00463df4[2];\n acStack_10bd8[3] = s_EventTrigger___00463df4[3];\n acStack_10bd4[0] = s_EventTrigger___00463df4[4];\n acStack_10bd4[1] = s_EventTrigger___00463df4[5];\n acStack_10bd4[2] = s_EventTrigger___00463df4[6];\n acStack_10bd4[3] = s_EventTrigger___00463df4[7];\n acStack_10bd0[0] = s_EventTrigger___00463df4[8];\n acStack_10bd0[1] = s_EventTrigger___00463df4[9];\n acStack_10bd0[2] = s_EventTrigger___00463df4[10];\n acStack_10bd0[3] = s_EventTrigger___00463df4[0xb];\n cStack_10bcc = s_EventTrigger___00463df4[0xc];\n cStack_10bcb = s_EventTrigger___00463df4[0xd];\n cStack_10bca = s_EventTrigger___00463df4[0xe];\n iVar9 = 0;\n piStack_10d34 = &DAT_00496758;\n do {\n piVar11 = operator_new(0x2c);\n if (piVar11 == (int *)0x0) {\n piVar11 = (int *)0x0;\n }\n else {\n *piVar11 = iVar9;\n piVar11[1] = 0;\n piVar11[2] = 0;\n piVar11[3] = 0;\n piVar11[4] = 0;\n piVar11[5] = 10;\n piVar11[6] = 0;\n piVar11[7] = 0;\n piVar11[8] = 0;\n piVar11[9] = 0;\n piVar11[10] = 0;\n }\n *piStack_10d34 = (int)piVar11;\n cStack_10bcb = (char)iVar9 + '0';\n GetPrivateProfileSectionA(acStack_10bd8,acStack_10030,0x10000,*(LPCSTR *)(param_1 + 0x14));\n pcVar25 = acStack_10030;\n cVar1 = acStack_10030[0];\n while (cVar1 != '\\0') {\n pcVar12 = _strtok(pcVar25,&DAT_00463df0);\n pcStack_10d08 = _strtok((char *)0x0,&DAT_00463df0);\n if ((pcVar12 != (char *)0x0) && (pcStack_10d08 != (char *)0x0)) {\n if (*pcVar12 == 'R') {\n dVar30 = _atof(pcVar12 + 1);\n piStack_10d10 = (int *)(float)dVar30;\n lStack_10d04 = 0;\n }\n else {\n piStack_10d10 = (int *)0x0;\n lStack_10d04 = _atol(pcVar12);\n }\n pcVar12 = _strtok(pcStack_10d08,&DAT_00463dec);\n if (pcVar12 != (char *)0x0) {\n if (*pcVar12 == 'A') {\n pppuStack_10d0c = (undefined ***)_strtok((char *)0x0,&DAT_00463dec);\n pcStack_10cfc = _strtok((char *)0x0,&DAT_00463dec);\n pcStack_10d08 = _strtok((char *)0x0,&DAT_00463dec);\n pcVar12 = _strtok((char *)0x0,&DAT_00463dec);\n if (((pppuStack_10d0c != (undefined ***)0x0) && (pcStack_10cfc != (char *)0x0)) &&\n (pcStack_10d08 != (char *)0x0)) {\n pcStack_10d18 = operator_new(0x14);\n if (pcStack_10d18 == (char *)0x0) {\n pcVar12 = (char *)0x0;\n }\n else {\n piVar11 = FUN_00402c50(pcVar12,(int *)&LStack_10d28);\n pvVar2 = (void *)*piVar11;\n unaff_EDI = unaff_EDI | 2;\n lVar14 = _atol(pcStack_10d08);\n lVar15 = _atol(pcStack_10cfc);\n pcVar12 = (char *)FUN_00402a40(pvVar2,*(char *)pppuStack_10d0c,lVar15,lVar14);\n }\n if ((unaff_EDI & 2) != 0) {\n unaff_EDI = unaff_EDI & 0xfffffffd;\nLAB_00403a66:\n FUN_00401fe0();\n }\nLAB_00403a6b:\n local_1c = (void *)0x0;\n if (pcVar12 != (char *)0x0) {\n if (lStack_10d04 == 0) {\n FUN_004121a0(piStack_10d10,pcVar12);\n }\n else {\n pcStack_10d18 = pcVar12;\n FUN_00415540((int *)(*piStack_10d34 + 4));\n }\n }\n }\n }\n else if (*pcVar12 == 'G') {\n pcVar12 = _strtok((char *)0x0,&DAT_00463dec);\n pppuStack_10d0c = (undefined ***)_strtok((char *)0x0,&DAT_00463dec);\n if ((pcVar12 != (char *)0x0) &&\n (pcStack_10cfc = (char *)_atol(pcVar12), pcStack_10cfc != (char *)0x0)) {\n pcStack_10d18 = operator_new(0xc);\n if (pcStack_10d18 == (char *)0x0) {\n pcVar12 = (char *)0x0;\n }\n else {\n piVar11 = FUN_00402c50(pppuStack_10d0c,(int *)&pcStack_10d20);\n unaff_EDI = unaff_EDI | 1;\n pcVar12 = (char *)FUN_004029e0((void *)*piVar11,pcStack_10cfc);\n }\n if ((unaff_EDI & 1) != 0) {\n unaff_EDI = unaff_EDI & 0xfffffffe;\n goto LAB_00403a66;\n }\n goto LAB_00403a6b;\n }\n }\n }\n }\n pcVar12 = pcVar25;\n do {\n cVar1 = *pcVar12;\n pcVar12 = pcVar12 + 1;\n } while (cVar1 != '\\0');\n pcVar13 = pcVar25 + (int)(pcVar12 + (1 - (int)(pcVar25 + 1)));\n pcVar25 = pcVar25 + (int)(pcVar12 + (1 - (int)(pcVar25 + 1)));\n cVar1 = *pcVar13;\n }\n piStack_10d34 = piStack_10d34 + 1;\n iVar9 = iVar9 + 1;\n } while ((int)piStack_10d34 < 0x496768);\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_GradeLimitFirst_00463ddc,-0x13,\n *(LPCSTR *)(param_1 + 0x14));\n *(short *)(param_1 + 0x58) = (short)UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_GradeLimitLast_00463dcc,0x13,\n *(LPCSTR *)(param_1 + 0x14));\n *(short *)(param_1 + 0x5a) = (short)UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_GuildMarkLimit_00463dbc,0,\n *(LPCSTR *)(param_1 + 0x14));\n *(UINT *)(param_1 + 0x5c) = UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_FuncRestrict_00463dac,0xfe01f,\n *(LPCSTR *)(param_1 + 0x14));\n *(UINT *)(param_1 + 100) = UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_ScoreFactor_00463da0,100,\n *(LPCSTR *)(param_1 + 0x14));\n *(UINT *)(param_1 + 0x68) = UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_GoldFactor_00463d94,100,\n *(LPCSTR *)(param_1 + 0x14));\n *(UINT *)(param_1 + 0x6c) = UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_NoRoomCreate_00463d84,0,\n *(LPCSTR *)(param_1 + 0x14));\n param_1[0x80] = UVar10 != 0;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_EventActProp0_00463d74,0,\n *(LPCSTR *)(param_1 + 0x14));\n *(short *)(param_1 + 0x70) = (short)UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_EventActProp1_00463d64,0,\n *(LPCSTR *)(param_1 + 0x14));\n *(short *)(param_1 + 0x74) = (short)UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_EventActProp2_00463d54,0,\n *(LPCSTR *)(param_1 + 0x14));\n *(short *)(param_1 + 0x78) = (short)UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_EventActProp3_00463d44,0,\n *(LPCSTR *)(param_1 + 0x14));\n *(short *)(param_1 + 0x7c) = (short)UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_EventWriteToLog0_00463d30,0,\n *(LPCSTR *)(param_1 + 0x14));\n param_1[0x72] = (char)UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_EventWriteToLog1_00463d1c,0,\n *(LPCSTR *)(param_1 + 0x14));\n param_1[0x76] = (char)UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_EventWriteToLog2_00463d08,0,\n *(LPCSTR *)(param_1 + 0x14));\n param_1[0x7a] = (char)UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_EventWriteToLog3_00463cf4,0,\n *(LPCSTR *)(param_1 + 0x14));\n param_1[0x7e] = (char)UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_EventTreatAsIndex0_00463ce0,0,\n *(LPCSTR *)(param_1 + 0x14));\n param_1[0x73] = (char)UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_EventTreatAsIndex1_00463ccc,0,\n *(LPCSTR *)(param_1 + 0x14));\n param_1[0x77] = (char)UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_EventTreatAsIndex2_00463cb8,0,\n *(LPCSTR *)(param_1 + 0x14));\n param_1[0x7b] = (char)UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_EventTreatAsIndex3_00463ca4,0,\n *(LPCSTR *)(param_1 + 0x14));\n param_1[0x7f] = (char)UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_PassableAuthority_00463c90,1,\n *(LPCSTR *)(param_1 + 0x14));\n *(short *)(param_1 + 0x60) = (short)UVar10;\n UVar10 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_ProductVersion_00463e18,0,\n *(LPCSTR *)(param_1 + 0x14));\n *(UINT *)(param_1 + 0x54) = UVar10;\n DAT_0049674c = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_ANU_WRITELOG_GOLD_00463c7c,3000,\n *(LPCSTR *)(param_1 + 0x14));\n DAT_00496748 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_ANU_WRITELOG_GP_00463c6c,0x1e,\n *(LPCSTR *)(param_1 + 0x14));\n DAT_00496744 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_ANU_DROP_GOLD_00463c5c,6000,\n *(LPCSTR *)(param_1 + 0x14));\n DAT_00496740 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_ANU_DROP_GP_00463c50,0x32,\n *(LPCSTR *)(param_1 + 0x14));\n DAT_0049673c = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_ANU_DROP_GOLD_NEG_00463c3c,-0x9c4,\n *(LPCSTR *)(param_1 + 0x14));\n DAT_00496738 = GetPrivateProfileIntA\n (*(LPCSTR *)(param_1 + 0xc),s_ANU_DROP_GP_NEG_00463c2c,-100,\n *(LPCSTR *)(param_1 + 0x14));\n _sprintf(acStack_104d0,&DAT_004692c4,*(undefined4 *)(param_1 + 0x10),s_EvsW_stage_pos_t\n\n... (truncated)"}Call ghidra_decompile_function
Arguments
{
"filepath": "/sandbox/GunBoundServ1.exe",
"name_or_address": "0x00428040"
}Tool result
{"result":"\nint __fastcall FUN_00428040(uint param_1)\n\n{\n uint uVar1;\n uint uVar2;\n bool bVar3;\n \n uVar2 = param_1 & 0xffff;\n if (uVar2 < 0x5001) {\n if (uVar2 == 0x5000) goto switchD_004280d5_caseD_2022;\n uVar1 = uVar2;\n if (uVar2 < 0x2121) {\n if (uVar2 == 0x2120) goto switchD_004280d5_caseD_2022;\n if (0x2020 < uVar2) {\n uVar1 = 0;\n switch(uVar2) {\n case 0x2022:\n case 0x2104:\n case 0x2110:\n goto switchD_004280d5_caseD_2022;\n default:\n goto switchD_004280d5_caseD_2023;\n case 0x2100:\n case 0x2101:\n return 0x2103;\n }\n }\n if (uVar2 == 0x2020) goto switchD_004280d5_caseD_2022;\n if (uVar2 < 0x1017) {\n if ((uVar2 != 0x1016) && (uVar2 != 0x1000)) {\n if ((0x100f < uVar2) && (uVar2 < 0x1012)) {\n return 0x1012;\n }\n goto switchD_004280d5_caseD_2023;\n }\n goto switchD_004280d5_caseD_2022;\n }\n if (uVar2 < 0x1020) goto switchD_004280d5_caseD_2023;\n if (uVar2 < 0x1022) {\n return 0x1022;\n }\n bVar3 = uVar2 == 0x2000;\n }\n else if (uVar2 < 0x3231) {\n if (uVar2 == 0x3230) goto switchD_004280d5_caseD_2022;\n if (uVar2 < 0x3201) {\n if (uVar2 == 0x3200) goto switchD_004280d5_caseD_2022;\n if (uVar2 < 0x3100) goto switchD_004280d5_caseD_2023;\n if (uVar2 < 0x3105) {\n return 0x3105;\n }\n bVar3 = uVar2 == 0x3150;\n }\n else {\n bVar3 = uVar2 == 0x3210;\n }\n }\n else if (uVar2 < 0x4101) {\n if ((uVar2 == 0x4100) || (uVar2 == 0x3232)) goto switchD_004280d5_caseD_2022;\n bVar3 = uVar2 == 0x3430;\n }\n else {\n bVar3 = uVar2 == 0x4104;\n }\n if (!bVar3) {\nswitchD_004280d5_caseD_2023:\n return CONCAT22((short)(uVar1 >> 0x10),0xffff);\n }\n }\n else if (uVar2 < 0x512d) {\n if (uVar2 != 0x512c) {\n uVar1 = uVar2 - 0x5110;\n switch(uVar2) {\n case 0x5110:\n case 0x5112:\n case 0x5114:\n case 0x5116:\n case 0x5120:\n case 0x5122:\n case 0x5124:\n case 0x5126:\n case 0x5128:\n case 0x512a:\n break;\n default:\n goto switchD_004280d5_caseD_2023;\n }\n }\n }\n else {\n if (0x6020 < uVar2) {\n uVar1 = uVar2 - 0x6024;\n switch(uVar2) {\n case 0x6024:\n case 0x6028:\n case 0x6100:\n case 0x6104:\n goto switchD_004280d5_caseD_2022;\n default:\n goto switchD_004280d5_caseD_2023;\n }\n }\n if (uVar2 != 0x6020) {\n uVar1 = 0;\n switch(uVar2) {\n case 0x6000:\n case 0x6004:\n case 0x600a:\n case 0x600e:\n break;\n default:\n goto switchD_004280d5_caseD_2023;\n }\n }\n }\nswitchD_004280d5_caseD_2022:\n return uVar2 + 1;\n}\n\n"}Call ghidra_decompile_function
Arguments
{
"filepath": "/sandbox/GunBoundServ1.exe",
"name_or_address": "0x0041aaa0"
}Tool result
{"result":"Succeeded and the artifact is saved at /sandbox/ghidra/decompiled_0x41aaa0.txt. Please find the table of contents below. \n[{'funcName': 'FUN_0043d000', 'lineNum': 199}, {'funcName': 'FUN_0043d000', 'lineNum': 200}, {'funcName': 'FUN_00430c60', 'lineNum': 208}, {'funcName': 'FUN_00401000', 'lineNum': 220}, {'funcName': 'FUN_0041cb00', 'lineNum': 226}, {'funcName': 'FUN_0041cb00', 'lineNum': 227}, {'funcName': 'FUN_0043cb10', 'lineNum': 236}, {'funcName': 'FUN_0043cd30', 'lineNum': 245}, {'funcName': '_atol', 'lineNum': 249}, {'funcName': 'FUN_0043aac0', 'lineNum': 255}, {'funcName': 'FUN_00401000', 'lineNum': 268}, {'funcName': 'FUN_0041cb00', 'lineNum': 274}, {'funcName': 'FUN_0041cb00', 'lineNum': 275}, {'funcName': 'FUN_0043cb10', 'lineNum': 284}, {'funcName': 'FUN_0043cd30', 'lineNum': 293}, {'funcName': '_atol', 'lineNum': 298}, {'funcName': '_atol', 'lineNum': 304}, {'funcName': '_atol', 'lineNum': 307}, {'funcName': '_atol', 'lineNum': 311}, {'funcName': '_atol', 'lineNum': 317}, {'funcName': 'FUN_00430c60', 'lineNum': 334}, {'funcName': 'FUN_00401000', 'lineNum': 339}, {'funcName': 'FUN_0041cb00', 'lineNum': 348}, {'funcName': 'FUN_0041cb00', 'lineNum': 349}, {'funcName': 'FUN_00420cd0', 'lineNum': 352}, {'funcName': 'FUN_00430c60', 'lineNum': 359}, {'funcName': 'FUN_00401000', 'lineNum': 369}, {'funcName': 'FUN_00430c60', 'lineNum': 380}, {'funcName': 'FUN_00401000', 'lineNum': 389}, {'funcName': 'FUN_0041cb00', 'lineNum': 395}, {'funcName': 'FUN_0041cb00', 'lineNum': 396}, {'funcName': 'FUN_00401000', 'lineNum': 408}, {'funcName': 'FUN_0041cb00', 'lineNum': 414}, {'funcName': 'FUN_0041cb00', 'lineNum': 415}, {'funcName': 'FUN_0043cb10', 'lineNum': 424}, {'funcName': 'FUN_0043cd30', 'lineNum': 432}, {'funcName': '_atol', 'lineNum': 436}, {'funcName': 'FUN_00430c60', 'lineNum': 491}, {'funcName': 'FUN_00401000', 'lineNum': 495}, {'funcName': 'FUN_0041cb00', 'lineNum': 501}, {'funcName': 'FUN_0041cb00', 'lineNum': 502}, {'funcName': 'FUN_0043cb10', 'lineNum': 511}, {'funcName': 'FUN_0043cd30', 'lineNum': 520}, {'funcName': '_atol', 'lineNum': 524}, {'funcName': '_atol', 'lineNum': 527}, {'funcName': '_atol', 'lineNum': 530}, {'funcName': '_atol', 'lineNum': 534}, {'funcName': '_atol', 'lineNum': 538}, {'funcName': '_atol', 'lineNum': 541}, {'funcName': 'FUN_0041c650', 'lineNum': 543}, {'funcName': 'FUN_0043cd30', 'lineNum': 546}, {'funcName': 'FUN_0043aac0', 'lineNum': 550}, {'funcName': 'FUN_00401000', 'lineNum': 554}, {'funcName': 'FUN_0041cb00', 'lineNum': 560}, {'funcName': 'FUN_0041cb00', 'lineNum': 561}, {'funcName': 'FUN_0043cb10', 'lineNum': 570}, {'funcName': 'FUN_0043cd30', 'lineNum': 581}, {'funcName': '_strncpy', 'lineNum': 591}, {'funcName': '_atol', 'lineNum': 595}, {'funcName': '_atol', 'lineNum': 599}, {'funcName': '_atol', 'lineNum': 603}, {'funcName': '_atol', 'lineNum': 607}, {'funcName': '_atol', 'lineNum': 611}, {'funcName': 'FUN_0043cd30', 'lineNum': 616}, {'funcName': 'FUN_00430c60', 'lineNum': 632}, {'funcName': 'FUN_00401000', 'lineNum': 649}, {'funcName': 'FUN_0041cb00', 'lineNum': 655}, {'funcName': 'FUN_0041cb00', 'lineNum': 656}, {'funcName': 'FUN_0043cf60', 'lineNum': 665}, {'funcName': 'FUN_00401000', 'lineNum': 683}, {'funcName': 'FUN_0041cb00', 'lineNum': 689}, {'funcName': 'FUN_0041cb00', 'lineNum': 690}, {'funcName': 'FUN_00430c60', 'lineNum': 709}, {'funcName': 'FUN_00401000', 'lineNum': 717}, {'funcName': 'FUN_0041cb00', 'lineNum': 723}, {'funcName': 'FUN_0041cb00', 'lineNum': 724}, {'funcName': 'FUN_00420cd0', 'lineNum': 730}, {'funcName': 'FUN_0043cf60', 'lineNum': 736}, {'funcName': 'FUN_00401000', 'lineNum': 745}, {'funcName': 'FUN_0041cb00', 'lineNum': 751}, {'funcName': 'FUN_0041cb00', 'lineNum': 752}, {'funcName': 'FUN_00430c60', 'lineNum': 765}, {'funcName': 'FUN_00401000', 'lineNum': 782}, {'funcName': 'FUN_0041cb00', 'lineNum': 790}, {'funcName': 'FUN_00430c60', 'lineNum': 798}, {'funcName': 'FUN_00401000', 'lineNum': 803}, {'funcName': 'FUN_0043d000', 'lineNum': 814}, {'funcName': 'FUN_0043d000', 'lineNum': 815}, {'funcName': 'FUN_00401000', 'lineNum': 819}, {'funcName': 'FUN_00401000', 'lineNum': 824}, {'funcName': 'FUN_00401000', 'lineNum': 829}, {'funcName': 'FUN_00401000', 'lineNum': 833}, {'funcName': 'FUN_00401000', 'lineNum': 851}, {'funcName': 'FUN_00401000', 'lineNum': 858}, {'funcName': 'FUN_00401000', 'lineNum': 863}, {'funcName': 'FUN_00401000', 'lineNum': 867}, {'funcName': 'FUN_00430c60', 'lineNum': 881}, {'funcName': 'FUN_00401000', 'lineNum': 895}, {'funcName': 'FUN_0041cb00', 'lineNum': 902}, {'funcName': 'FUN_0041cb00', 'lineNum': 903}, {'funcName': 'FUN_0043cb10', 'lineNum': 910}, {'funcName': 'FUN_0043cd30', 'lineNum': 915}, {'funcName': 'FUN_0043ceb0', 'lineNum': 920}, {'funcName': '_strncpy', 'lineNum': 927}, {'funcName': '_atol', 'lineNum': 931}, {'funcName': '_atol', 'lineNum': 936}, {'funcName': '_atol', 'lineNum': 940}, {'funcName': '_atol', 'lineNum': 945}, {'funcName': '_atol', 'lineNum': 951}, {'funcName': '_atol', 'lineNum': 957}, {'funcName': '_atol', 'lineNum': 960}, {'funcName': '_atol', 'lineNum': 963}, {'funcName': '_atol', 'lineNum': 969}, {'funcName': '_atol', 'lineNum': 972}, {'funcName': '_atol', 'lineNum': 975}, {'funcName': '_atol', 'lineNum': 982}, {'funcName': '_atol', 'lineNum': 989}, {'funcName': '_atol', 'lineNum': 1027}, {'funcName': '_atol', 'lineNum': 1031}, {'funcName': '_atol', 'lineNum': 1036}, {'funcName': 'FUN_0043aac0', 'lineNum': 1040}, {'funcName': 'FUN_00401000', 'lineNum': 1049}, {'funcName': 'FUN_0041cc60', 'lineNum': 1056}, {'funcName': 'FUN_0041cc60', 'lineNum': 1057}, {'funcName': 'FUN_0041cc60', 'lineNum': 1058}, {'funcName': 'FUN_0041c080', 'lineNum': 1067}, {'funcName': 'FUN_0041c080', 'lineNum': 1068}, {'funcName': 'FUN_00401000', 'lineNum': 1078}, {'funcName': 'FUN_0041cb00', 'lineNum': 1083}, {'funcName': 'FUN_0041cb00', 'lineNum': 1084}, {'funcName': 'FUN_00401000', 'lineNum': 1098}, {'funcName': 'FUN_0041cb00', 'lineNum': 1104}, {'funcName': 'FUN_0041cb00', 'lineNum': 1105}, {'funcName': 'FUN_00401000', 'lineNum': 1113}, {'funcName': 'FUN_0041cb00', 'lineNum': 1119}, {'funcName': 'FUN_0041cb00', 'lineNum': 1120}, {'funcName': 'FUN_00430c60', 'lineNum': 1132}, {'funcName': 'FUN_00401000', 'lineNum': 1140}, {'funcName': 'FUN_0041cb00', 'lineNum': 1146}, {'funcName': 'FUN_0041cb00', 'lineNum': 1147}, {'funcName': 'FUN_00401120', 'lineNum': 1154}, {'funcName': 'FUN_00401120', 'lineNum': 1158}, {'funcName': 'FUN_00401030', 'lineNum': 1160}, {'funcName': 'FUN_004010f0', 'lineNum': 1162}, {'funcName': 'FUN_00401120', 'lineNum': 1168}, {'funcName': 'FUN_00401030', 'lineNum': 1170}, {'funcName': 'FUN_00401120', 'lineNum': 1172}, {'funcName': 'FUN_00401030', 'lineNum': 1174}, {'funcName': 'FUN_004010f0', 'lineNum': 1176}, {'funcName': 'FUN_00401120', 'lineNum': 1182}, {'funcName': 'FUN_00401060', 'lineNum': 1184}, {'funcName': 'FUN_004010f0', 'lineNum': 1186}, {'funcName': 'FUN_00401120', 'lineNum': 1192}, {'funcName': 'FUN_00401060', 'lineNum': 1194}, {'funcName': 'FUN_004010f0', 'lineNum': 1196}, {'funcName': 'FUN_0043d000', 'lineNum': 1209}, {'funcName': 'FUN_0043d000', 'lineNum': 1210}, {'funcName': 'FUN_00401120', 'lineNum': 1213}, {'funcName': 'FUN_00401120', 'lineNum': 1215}, {'funcName': 'FUN_004010f0', 'lineNum': 1217}, {'funcName': 'FUN_004010f0', 'lineNum': 1219}, {'funcName': 'FUN_00401120', 'lineNum': 1227}, {'funcName': 'FUN_004010f0', 'lineNum': 1231}, {'funcName': 'FUN_00401120', 'lineNum': 1237}, {'funcName': 'FUN_00401120', 'lineNum': 1239}, {'funcName': 'FUN_004010f0', 'lineNum': 1241}, {'funcName': 'FUN_0041cb00', 'lineNum': 1247}, {'funcName': 'FUN_0041cb00', 'lineNum': 1248}, {'funcName': 'FUN_00420cd0', 'lineNum': 1251}, {'funcName': 'FUN_00430c60', 'lineNum': 1259}, {'funcName': 'FUN_00401000', 'lineNum': 1268}, {'funcName': 'FUN_0041cb00', 'lineNum': 1274}, {'funcName': 'FUN_0041cb00', 'lineNum': 1275}, {'funcName': 'FUN_00401000', 'lineNum': 1287}, {'funcName': 'FUN_0041cb00', 'lineNum': 1293}, {'funcName': 'FUN_0041cb00', 'lineNum': 1294}, {'funcName': 'FUN_0043cb10', 'lineNum': 1303}, {'funcName': 'FUN_0043cd30', 'lineNum': 1311}, {'funcName': '_atol', 'lineNum': 1319}, {'funcName': 'FUN_00430c60', 'lineNum': 1334}, {'funcName': 'FUN_00401120', 'lineNum': 1340}, {'funcName': 'FUN_00401120', 'lineNum': 1345}, {'funcName': 'FUN_00401030', 'lineNum': 1347}, {'funcName': 'FUN_004010f0', 'lineNum': 1351}, {'funcName': 'FUN_00401120', 'lineNum': 1356}, {'funcName': 'FUN_00401030', 'lineNum': 1358}, {'funcName': 'FUN_00401120', 'lineNum': 1360}, {'funcName': 'FUN_00401030', 'lineNum': 1362}, {'funcName': 'FUN_00401120', 'lineNum': 1367}, {'funcName': 'FUN_00401120', 'lineNum': 1369}, {'funcName': 'FUN_004010f0', 'lineNum': 1371}, {'funcName': 'FUN_0041cb00', 'lineNum': 1377}, {'funcName': 'FUN_0041cb00', 'lineNum': 1378}, {'funcName': 'FUN_00420cd0', 'lineNum': 1381}, {'funcName': 'FUN_00430c60', 'lineNum': 1387}, {'funcName': 'FUN_0041bfa0', 'lineNum': 1394}, {'funcName': 'FUN_0041bfa0', 'lineNum': 1395}, {'funcName': '_strncpy', 'lineNum': 1406}, {'funcName': 'WS2_32.DLL@Ordinal_20', 'lineNum': 1416}, {'funcName': 'FUN_00420cd0', 'lineNum': 1418}, {'funcName': 'FUN_00430c60', 'lineNum': 1426}, {'funcName': 'FUN_00430c60', 'lineNum': 1436}, {'funcName': 'FUN_00401000', 'lineNum': 1442}, {'funcName': 'FUN_0041cb00', 'lineNum': 1448}, {'funcName': 'FUN_0041cb00', 'lineNum': 1449}, {'funcName': 'FUN_0041c080', 'lineNum': 1460}, {'funcName': 'FUN_0041c080', 'lineNum': 1461}, {'funcName': 'FUN_00420cd0', 'lineNum': 1465}, {'funcName': 'FUN_00430c60', 'lineNum': 1471}, {'funcName': 'FUN_00401000', 'lineNum': 1477}, {'funcName': 'FUN_0041cb00', 'lineNum': 1483}, {'funcName': 'FUN_0041cb00', 'lineNum': 1484}, {'funcName': 'FUN_0043cb10', 'lineNum': 1493}, {'funcName': 'FUN_0043cd30', 'lineNum': 1502}, {'funcName': 'FUN_0043ceb0', 'lineNum': 1506}, {'funcName': 'FUN_0043aac0', 'lineNum': 1550}, {'funcName': 'FUN_0041ca40', 'lineNum': 1557}, {'funcName': '_free', 'lineNum': 1565}]"}Call ghidra_read_artifact
Arguments
{
"artifact_path": "/sandbox/ghidra/decompiled_0x41aaa0.txt"
}Tool result
{"result":"\n/* WARNING: Function: __chkstk replaced with injection: alloca_probe */\n/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */\n/* WARNING (jumptable): Unable to track spacebase fully for stack */\n/* WARNING: Unable to track spacebase fully for stack */\n\nbool __thiscall FUN_0041aaa0(void *this,void *param_1,int *param_2)\n\n{\n byte bVar1;\n int iVar2;\n int *piVar3;\n undefined1 *puVar4;\n char *pcVar5;\n char cVar6;\n undefined1 uVar7;\n bool bVar8;\n uint uVar9;\n undefined4 uVar10;\n undefined4 *puVar11;\n uint *puVar12;\n long lVar13;\n long lVar14;\n undefined4 uVar15;\n undefined4 extraout_ECX;\n void *this_00;\n undefined4 extraout_ECX_00;\n undefined4 extraout_ECX_01;\n void *this_01;\n undefined4 extraout_ECX_02;\n undefined4 extraout_ECX_03;\n undefined4 extraout_ECX_04;\n undefined4 extraout_ECX_05;\n undefined4 extraout_ECX_06;\n undefined4 extraout_ECX_07;\n undefined4 extraout_ECX_08;\n undefined4 extraout_ECX_09;\n undefined4 extraout_ECX_10;\n undefined4 extraout_ECX_11;\n undefined4 extraout_ECX_12;\n undefined4 extraout_ECX_13;\n undefined4 extraout_ECX_14;\n undefined4 extraout_ECX_15;\n undefined4 extraout_ECX_16;\n undefined4 extraout_ECX_17;\n undefined4 extraout_ECX_18;\n undefined4 extraout_ECX_19;\n undefined4 extraout_ECX_20;\n undefined4 extraout_ECX_21;\n undefined4 extraout_ECX_22;\n undefined4 extraout_ECX_23;\n undefined4 extraout_ECX_24;\n undefined4 extraout_ECX_25;\n undefined4 extraout_ECX_26;\n void *this_02;\n void *this_03;\n void *this_04;\n undefined4 extraout_ECX_27;\n undefined4 extraout_ECX_28;\n undefined4 extraout_ECX_29;\n undefined4 extraout_ECX_30;\n undefined4 extraout_ECX_31;\n undefined4 extraout_ECX_32;\n undefined4 extraout_ECX_33;\n undefined4 extraout_ECX_34;\n undefined4 extraout_ECX_35;\n undefined4 extraout_ECX_36;\n char *extraout_ECX_37;\n void *this_05;\n undefined4 extraout_ECX_38;\n int *piVar16;\n undefined4 extraout_ECX_39;\n undefined4 extraout_ECX_40;\n undefined4 extraout_ECX_41;\n int *extraout_ECX_42;\n int *extraout_ECX_43;\n undefined4 extraout_ECX_44;\n undefined4 extraout_ECX_45;\n undefined4 extraout_ECX_46;\n undefined4 extraout_ECX_47;\n undefined4 extraout_ECX_48;\n char *pcVar17;\n undefined4 extraout_ECX_49;\n undefined4 extraout_ECX_50;\n void *this_06;\n int iVar18;\n undefined4 extraout_ECX_51;\n undefined4 extraout_ECX_52;\n void *this_07;\n undefined1 *extraout_ECX_53;\n undefined1 *extraout_ECX_54;\n undefined1 *puVar19;\n int extraout_ECX_55;\n char *pcVar20;\n undefined1 *puVar21;\n DWORD *pDVar22;\n undefined1 *puVar23;\n undefined1 *puVar24;\n undefined1 *puVar25;\n DWORD *pDVar26;\n int iVar27;\n undefined4 *puVar28;\n long *plVar29;\n uint uVar30;\n int iVar31;\n undefined4 *puVar32;\n long *plVar33;\n longlong lVar34;\n undefined4 auStack_3328 [8];\n int aiStack_3308 [4];\n DWORD DStack_32f8;\n uint uStack_32f4;\n uint uStack_32f0;\n undefined4 local_32e0;\n int local_32dc;\n int local_32d4;\n undefined4 local_32d0;\n undefined4 local_32cc;\n long local_32c8;\n int local_32c4;\n undefined1 local_32c0;\n undefined1 uStack_32bf;\n undefined2 uStack_32be;\n undefined1 uStack_32bc;\n undefined1 uStack_32bb;\n undefined2 uStack_32ba;\n undefined1 local_32b8;\n undefined1 uStack_32b7;\n undefined2 uStack_32b6;\n undefined1 uStack_32b4;\n undefined1 uStack_32b3;\n undefined2 uStack_32b2;\n undefined1 uStack_32b0;\n undefined1 uStack_32af;\n undefined4 local_32ae;\n long local_32aa;\n long local_32a6;\n undefined1 local_32a2;\n undefined2 uStack_32a1;\n byte bStack_329f;\n long local_329e [7];\n int local_3282;\n int local_327e;\n int local_327a;\n int local_3276;\n undefined2 local_3272;\n long local_3270;\n undefined4 local_326c [25];\n undefined1 local_3208;\n int local_315c;\n uint *local_3158;\n char local_3151;\n int *local_3150;\n undefined1 *local_314c;\n char *local_3148;\n char local_3144 [12288];\n undefined1 local_144 [256];\n undefined2 local_44;\n undefined2 local_42;\n int *local_40;\n undefined1 local_3c [16];\n long local_2c;\n int local_28;\n long local_24;\n char *local_20;\n char *local_1c;\n long local_18;\n undefined4 local_14;\n void *local_10;\n undefined1 *puStack_c;\n undefined4 local_8;\n \n piVar3 = param_2;\n puStack_c = &LAB_0045debb;\n local_10 = ExceptionList;\n local_14 = DAT_00484f30;\n local_3148 = this;\n local_32d4 = 0;\n local_32d0 = 0;\n local_32cc = 0;\n local_8 = 0;\n piVar16 = param_2 + 1;\n local_3150 = piVar16;\n uVar30 = 0x10;\n if (*(byte *)((int)param_2 + 0x15) < 0x11) {\n uVar30 = (uint)*(byte *)((int)param_2 + 0x15);\n }\n uStack_32f0 = 0x41ab14;\n iVar2 = -(uVar30 * 2 + 4 & 0xfffffffc);\n puVar25 = &stack0xffffcd14 + iVar2;\n puVar19 = &stack0xffffcd14 + iVar2;\n *(uint *)((int)&uStack_32f0 + iVar2) = uVar30;\n *(int **)((int)&uStack_32f4 + iVar2) = piVar16;\n *(undefined1 **)((int)&DStack_32f8 + iVar2) = &stack0xffffcd14 + iVar2;\n *(void **)((int)aiStack_3308 + iVar2 + 0xc) = param_1;\n local_314c = &stack0xffffcd14 + iVar2;\n *(undefined4 *)((int)aiStack_3308 + iVar2 + 8) = 0x41ab28;\n ExceptionList = &local_10;\n FUN_0043d000(*(int *)((int)aiStack_3308 + iVar2 + 0xc),*(char **)((int)&DStack_32f8 + iVar2),\n *(char **)((int)&uStack_32f4 + iVar2),*(int *)((int)&uStack_32f0 + iVar2));\n iVar18 = *piVar3;\n local_3158 = (uint *)0x0;\n if (0x42 < iVar18) {\n if (iVar18 < 0x4447) {\n if (iVar18 == 0x4446) {\n *(char **)((int)&uStack_32f0 + iVar2) = s_GunboundDB__GDBIN_GRANDPRIX_MINE_0046af68;\n *(undefined4 *)((int)&uStack_32f4 + iVar2) = 0x41bb58;\n FUN_00430c60(*(char **)((int)&uStack_32f0 + iVar2));\n puVar19 = local_314c;\n iVar18 = piVar3[6];\n local_32e0 = 0x4447;\n local_32c0 = (undefined1)iVar18;\n uStack_32bf = (undefined1)((uint)iVar18 >> 8);\n uStack_32be = (undefined2)((uint)iVar18 >> 0x10);\n uVar15 = extraout_ECX_51;\n if (iVar18 == 0) {\n *(undefined1 **)((int)&uStack_32f0 + iVar2) = local_314c;\n *(undefined4 *)((int)&uStack_32f4 + iVar2) = DAT_004969c0;\n *(undefined4 *)((int)&DStack_32f8 + iVar2) = 0x41bb94;\n uVar30 = FUN_00401000(puVar19,local_3144,*(char **)((int)&uStack_32f4 + iVar2));\n pcVar17 = local_3148;\n *(uint *)((int)&uStack_32f0 + iVar2) = uVar30;\n *(char **)((int)&uStack_32f4 + iVar2) = local_3144;\n *(char **)((int)&DStack_32f8 + iVar2) = pcVar17;\n *(undefined4 *)((int)aiStack_3308 + iVar2 + 0xc) = 0x41bbad;\n uVar15 = FUN_0041cb00(pcVar17,*(DWORD *)((int)&DStack_32f8 + iVar2),\n *(byte **)((int)&uStack_32f4 + iVar2),\n *(DWORD *)((int)&uStack_32f0 + iVar2));\n if ((char)uVar15 == '\\0') {\n local_32dc = 0xf000;\n pDVar22 = (DWORD *)(&stack0xffffcd14 + iVar2);\n goto switchD_0041ab54_caseD_2;\n }\n *(void **)((int)&uStack_32f0 + iVar2) = param_1;\n *(undefined4 *)((int)&uStack_32f4 + iVar2) = 0x41bbc6;\n puVar12 = FUN_0043cb10(*(int *)((int)&uStack_32f0 + iVar2));\n local_3158 = puVar12;\n if (puVar12 == (uint *)0x0) {\n local_32dc = 0xf000;\n puVar21 = &stack0xffffcd14 + iVar2;\n }\n else {\n *(uint **)((int)&uStack_32f0 + iVar2) = puVar12;\n *(undefined4 *)((int)&uStack_32f4 + iVar2) = 0x41bbe7;\n puVar11 = (undefined4 *)FUN_0043cd30(*(uint **)((int)&uStack_32f0 + iVar2));\n if (puVar11 != (undefined4 *)0x0) {\n *(undefined4 *)((int)&uStack_32f0 + iVar2) = *puVar11;\n *(undefined4 *)((int)&uStack_32f4 + iVar2) = 0x41bc02;\n lVar13 = _atol(*(char **)((int)&uStack_32f0 + iVar2));\n *(uint **)((int)&uStack_32f0 + iVar2) = puVar12;\n local_32c0 = (undefined1)lVar13;\n uStack_32bf = (undefined1)((uint)lVar13 >> 8);\n uStack_32be = (undefined2)((uint)lVar13 >> 0x10);\n *(undefined4 *)((int)&uStack_32f4 + iVar2) = 0x41bc11;\n FUN_0043aac0(*(void **)((int)&uStack_32f0 + iVar2));\n uVar15 = extraout_ECX_52;\n goto LAB_0041bc11;\n }\n local_32dc = 1;\n puVar21 = &stack0xffffcd14 + iVar2;\n }\n }\n else {\nLAB_0041bc11:\n *(undefined1 **)((int)&uStack_32f0 + iVar2) = local_314c;\n *(char **)((int)&uStack_32f4 + iVar2) = s_SELECT_Score__Rank__RankOld__Win_0046af18;\n *(undefined4 *)((int)&DStack_32f8 + iVar2) = 0x41bc2d;\n uVar30 = FUN_00401000(uVar15,local_3144,*(char **)((int)&uStack_32f4 + iVar2));\n pcVar17 = local_3148;\n *(uint *)((int)&uStack_32f0 + iVar2) = uVar30;\n *(char **)((int)&uStack_32f4 + iVar2) = local_3144;\n *(char **)((int)&DStack_32f8 + iVar2) = pcVar17;\n *(undefined4 *)((int)aiStack_3308 + iVar2 + 0xc) = 0x41bc46;\n uVar15 = FUN_0041cb00(local_3144,*(DWORD *)((int)&DStack_32f8 + iVar2),\n *(byte **)((int)&uStack_32f4 + iVar2),\n *(DWORD *)((int)&uStack_32f0 + iVar2));\n if ((char)uVar15 == '\\0') {\n local_32dc = 0xf000;\n pDVar22 = (DWORD *)(&stack0xffffcd14 + iVar2);\n goto switchD_0041ab54_caseD_2;\n }\n *(void **)((int)&uStack_32f0 + iVar2) = param_1;\n *(undefined4 *)((int)&uStack_32f4 + iVar2) = 0x41bc5f;\n local_3158 = FUN_0043cb10(*(int *)((int)&uStack_32f0 + iVar2));\n if (local_3158 == (uint *)0x0) {\nLAB_0041bc69:\n local_32dc = 0xf000;\n puVar21 = &stack0xffffcd14 + iVar2;\n }\n else {\n *(uint **)((int)&uStack_32f0 + iVar2) = local_3158;\n *(undefined4 *)((int)&uStack_32f4 + iVar2) = 0x41bc7e;\n puVar11 = (undefined4 *)FUN_0043cd30(*(uint **)((int)&uStack_32f0 + iVar2));\n puVar19 = &stack0xffffcd14 + iVar2;\n if (puVar11 != (undefined4 *)0x0) {\n *(undefined4 *)((int)&uStack_32f0 + iVar2) = *puVar11;\n *(undefined4 *)((int)&uStack_32f4 + iVar2) = 0x41bc9b;\n lVar13 = _atol(*(char **)((int)&uStack_32f0 + iVar2));\n uStack_32bc = (undefined1)lVar13;\n uStack_32bb = (undefined1)((uint)lVar13 >> 8);\n uStack_32ba = (undefined2)((uint)lVar13 >> 0x10);\n *(undefined4 *)((int)&uStack_32f4 + iVar2) = puVar11[1];\n *(undefined4 *)((int)&DStack_32f8 + iVar2) = 0x41bcaa;\n local_32c8 = _atol(*(char **)((int)&uStack_32f4 + iVar2));\n *(undefined4 *)((int)&DStack_32f8 + iVar2) = puVar11[2];\n *(undefined4 *)((int)aiStack_3308 + iVar2 + 0xc) = 0x41bcb9;\n lVar13 = _atol(*(char **)((int)&DStack_32f8 + iVar2));\n local_32c4 = local_32c8 - lVar13;\n *(undefined4 *)((int)aiStack_3308 + iVar2 + 0xc) = puVar11[3];\n *(undefined4 *)((int)aiStack_3308 + iVar2 + 8) = 0x41bcd0;\n lVar13 = _atol(*(char **)((int)aiStack_3308 + iVar2 + 0xc));\n local_32b8 = (undefined1)lVar13;\n uStack_32b7 = (undefined1)((uint)lVar13 >> 8);\n uStack_32b6 = (undefined2)((uint)lVar13 >> 0x10);\n *(undefined4 *)((int)aiStack_3308 + iVar2 + 8) = puVar11[4];\n *(undefined4 *)((int)aiStack_3308 + iVar2 + 4) = 0x41bcdf;\n lVar13 = _atol(*(char **)((int)aiStack_3308 + iVar2 + 8));\n uStack_32b4 = (undefined1)lVar13;\n uStack_32b3 = (undefined1)((uint)lVar13 >> 8);\n uStack_32b2 = (undefined2)((uint)lVar13 >> 0x10);\n puVar19 = &stack0xffffcd14 + iVar2;\n goto LAB_0041b229;\n }\nLAB_0041bc84:\n local_32dc = 1;\n puVar21 = puVar19;\n }\n }\n }\n else if (iVar18 < 0xf1) {\n if (iVar18 == 0xf0) {\n *(char **)((int)&uStack_32f0 + iVar2) = s_GunboundDB__GDBIN_RESET_CURRENT__0046b184;\n *(undefined4 *)((int)&uStack_32f4 + iVar2) = 0x41b8fa;\n FUN_00430c60(*(char **)((int)&uStack_32f0 + iVar2));\n *(uint *)((int)&uStack_32f4 + iVar2) = (uint)DAT_00496a04;\n *(undefined4 *)((int)&DStack_32f8 + iVar2) = DAT_00496a00;\n *(char **)((int)aiStack_3308 + iVar2 + 0xc) = s_DELETE_FROM_CurrentUser_WHERE_Se_0046b140;\n *(undefined4 *)((int)aiStack_3308 + iVar2 + 8) = 0x41b91d;\n uVar30 = FUN_00401000(extraout_ECX_48,local_3144,\n *(char **)((int)aiStack_3308 + iVar2 + 0xc));\n pcVar20 = local_3148;\n *(uint *)((int)&uStack_32f0 + iVar2) = uVar30;\n pcVar17 = local_3144;\n *(char **)((int)&uStack_32f4 + iVar2) = pcVar17;\n *(char **)((int)&DStack_32f8 + iVar2) = pcVar20;\nLAB_0041b92f:\n *(undefined4 *)((int)aiStack_3308 + iVar2 + 0xc) = 0x41b936;\n uVar15 = FUN_0041cb00(pcVar17,*(DWORD *)((int)&DStack_32f8 + iVar2),\n *(byte **)((int)&uStack_32f4 + iVar2),\n *(DWORD *)((int)&uStack_32f0 + iVar2));\n *(undefined4 *)((int)&uStack_32f0 + iVar2) = 0x41b943;\n FUN_00420cd0();\n ExceptionList = local_10;\n return (bool)(char)uVar15;\n }\n if (iVar18 == 0x44) {\n *(char **)((int)&uStack_32f0 + iVar2) = s_GunboundDB__GDBIN_EVENT_DELTA_0046b120;\n *(undefined4 *)((int)&uStack_32f4 + iVar2) = 0x41b8b7;\n FUN_00430c60(*(char **)((int)&uStack_32f0 + iVar2));\n puVar19 = local_314c;\n iVar18 = piVar3[7];\n iVar31 = piVar3[6];\n *(undefined1 **)((int)&uStack_32f4 + iVar2) = local_314c;\n *(int *)((int)&DStack_32f8 + iVar2) = iVar18;\n *(int *)((int)aiStack_3308 + iVar2 + 0xc) = iVar31;\n *(int *)((int)aiStack_3308 + iVar2 + 8) = iVar31;\n *(char **)((int)aiStack_3308 + iVar2 + 4) = s_UPDATE_Game_SET_EventScore_d___E_0046b0e0;\n *(undefined4 *)((int)aiStack_3308 + iVar2) = 0x41b8dc;\n uVar30 = FUN_00401000(puVar19,local_3144,*(char **)((int)aiStack_3308 + iVar2 + 4));\n pcVar17 = local_3148;\n *(uint *)((int)&uStack_32f0 + iVar2) = uVar30;\n *(char **)((int)&uStack_32f4 + iVar2) = local_3144;\n *(char **)((int)&DStack_32f8 + iVar2) = pcVar17;\n goto LAB_0041b92f;\n }\n pDVar22 = (DWORD *)(&stack0xffffcd14 + iVar2);\n if (iVar18 != 0x50) goto switchD_0041ab54_caseD_2;\n *(char **)((int)&uStack_32f0 + iVar2) = s_GunboundDB__UDBIN_GOLD_FOR_GIFT__0046b2f8;\n *(undefined4 *)((int)&uStack_32f4 + iVar2) = 0x41b723;\n FUN_00430c60(*(char **)((int)&uStack_32f0 + iVar2));\n iVar18 = piVar3[7];\n local_32e0 = 0x51;\n uVar15 = extraout_ECX_46;\n if (iVar18 != 0) {\n *(undefined1 **)((int)&uStack_32f0 + iVar2) = local_314c;\n *(int *)((int)&uStack_32f4 + iVar2) = iVar18;\n *(char **)((int)&DStack_32f8 + iVar2) = s_UPDATE_Game_SET_Money_Money__d_W_0046b348;\n *(undefined4 *)((int)aiStack_3308 + iVar2 + 0xc) = 0x41b754;\n uVar30 = FUN_00401000(extraout_ECX_46,local_3144,*(char **)((int)&DStack_32f8 + iVar2));\n pcVar17 = local_3148;\n *(uint *)((int)&uStack_32f0 + iVar2) = uVar30;\n *(char **)((int)&uStack_32f4 + iVar2) = local_3144;\n *(char **)((int)&DStack_32f8 + iVar2) = pcVar17;\n *(undefined4 *)((int)aiStack_3308 + iVar2 + 0xc) = 0x41b76d;\n uVar10 = FUN_0041cb00(local_3144,*(DWORD *)((int)&DStack_32f8 + iVar2),\n *(byte **)((int)&uStack_32f4 + iVar2),\n *(DWORD *)((int)&uStack_32f0 + iVar2));\n uVar15 = extraout_ECX_47;\n if ((char)uVar10 == '\\0') {\n local_32dc = 0xf000;\n pDVar22 = (DWORD *)(&stack0xffffcd14 + iVar2);\n goto switchD_0041ab54_caseD_2;\n }\n }\n *(undefined1 **)((int)&uStack_32f0 + iVar2) = local_314c;\n *(char **)((int)&uStack_32f4 + iVar2) = s_SELECT_Money_FROM_Game_WHERE_Id__0046b320;\n *(undefined4 *)((int)&DStack_32f8 + iVar2) = 0x41b79c;\n uVar30 = FUN_00401000(uVar15,local_3144,*(char **)((int)&uStack_32f4 + iVar2));\n pcVar17 = local_3148;\n *(uint *)((int)&uStack_32f0 + iVar2) = uVar30;\n\n... (truncated)"}Call ghidra_decompile_function
Arguments
{
"filepath": "/sandbox/GunBoundServ1.exe",
"name_or_address": "0x0041e0c0"
}Tool result
{"result":"\n/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */\n\nvoid __fastcall FUN_0041e0c0(uint param_1,int param_2,undefined4 *param_3,undefined4 *param_4)\n\n{\n undefined1 *puVar1;\n int iVar2;\n int iVar3;\n void *pvVar4;\n undefined4 *puVar5;\n undefined4 uVar6;\n uint uVar7;\n uint extraout_ECX;\n undefined4 *puVar8;\n undefined4 local_2c;\n undefined4 local_28;\n undefined4 local_24;\n undefined4 local_20;\n undefined2 local_1c;\n undefined4 local_18;\n undefined1 *local_14;\n void *local_10;\n undefined1 *puStack_c;\n undefined4 local_8;\n \n local_8 = 0xffffffff;\n puStack_c = &LAB_0045dba0;\n local_10 = ExceptionList;\n local_18 = DAT_00484f30;\n local_14 = &stack0xffffffc4;\n local_28 = param_4[1];\n iVar3 = *(int *)(param_2 + 4);\n local_2c = *param_4;\n local_24 = param_4[2];\n local_20 = param_4[3];\n local_1c = *(undefined2 *)(param_4 + 4);\n if (iVar3 == 0) {\n uVar7 = 0;\n }\n else {\n uVar7 = (*(int *)(param_2 + 0xc) - iVar3) / 0x12;\n }\n if (param_1 != 0) {\n if (iVar3 == 0) {\n iVar2 = 0;\n }\n else {\n iVar2 = (*(int *)(param_2 + 8) - iVar3) / 0x12;\n }\n ExceptionList = &local_10;\n puVar1 = &stack0xffffffc4;\n if (0xe38e38eU - iVar2 < param_1) {\n ExceptionList = &local_10;\n FUN_00421aa0();\n uVar7 = extraout_ECX;\n puVar1 = local_14;\n }\n local_14 = puVar1;\n if (iVar3 == 0) {\n iVar2 = 0;\n }\n else {\n iVar2 = (*(int *)(param_2 + 8) - iVar3) / 0x12;\n }\n if (uVar7 < iVar2 + param_1) {\n if (0xe38e38e - (uVar7 >> 1) < uVar7) {\n uVar7 = 0;\n }\n else {\n uVar7 = uVar7 + (uVar7 >> 1);\n }\n if (iVar3 == 0) {\n iVar3 = 0;\n }\n else {\n iVar3 = (*(int *)(param_2 + 8) - iVar3) / 0x12;\n }\n if (uVar7 < iVar3 + param_1) {\n iVar3 = FUN_0041dc00(param_2);\n uVar7 = iVar3 + param_1;\n }\n pvVar4 = operator_new(uVar7 * 0x12);\n local_8 = 0;\n FUN_0041ea60(*(undefined4 **)(param_2 + 4),param_3);\n FUN_0041e750(param_1,&local_2c);\n FUN_0041ea60(param_3,*(undefined4 **)(param_2 + 8));\n iVar3 = 0;\n if (*(int *)(param_2 + 4) != 0) {\n iVar3 = (*(int *)(param_2 + 8) - *(int *)(param_2 + 4)) / 0x12;\n }\n if (*(void **)(param_2 + 4) != (void *)0x0) {\n /* WARNING: Subroutine does not return */\n _free(*(void **)(param_2 + 4));\n }\n *(void **)(param_2 + 0xc) = (void *)(uVar7 * 0x12 + (int)pvVar4);\n *(void **)(param_2 + 8) = (void *)((int)pvVar4 + (param_1 + iVar3) * 0x12);\n *(void **)(param_2 + 4) = pvVar4;\n }\n else {\n puVar8 = *(undefined4 **)(param_2 + 8);\n if ((uint)(((int)puVar8 - (int)param_3) / 0x12) < param_1) {\n FUN_0041ea60(param_3,puVar8);\n local_8 = 2;\n FUN_0041e750(param_1 - (*(int *)(param_2 + 8) - (int)param_3) / 0x12,&local_2c);\n iVar3 = *(int *)(param_2 + 8) + param_1 * 0x12;\n *(int *)(param_2 + 8) = iVar3;\n puVar8 = (undefined4 *)(iVar3 + param_1 * -0x12);\n }\n else {\n puVar5 = (undefined4 *)((int)puVar8 + param_1 * -0x12);\n uVar6 = FUN_0041ea60(puVar5,puVar8);\n *(undefined4 *)(param_2 + 8) = uVar6;\n FUN_0041e790(puVar5,param_3);\n puVar8 = (undefined4 *)(param_1 * 0x12 + (int)param_3);\n }\n FUN_0041e650(puVar8,&local_2c);\n }\n }\n ExceptionList = local_10;\n return;\n}\n\n"}Call ghidra_decompile_function
Arguments
{
"filepath": "/sandbox/GunBoundServ1.exe",
"name_or_address": "0x00424d70"
}Tool result
{"result":"\nvoid __fastcall FUN_00424d70(uint param_1,int param_2,undefined4 *param_3,undefined4 *param_4)\n\n{\n undefined1 *puVar1;\n int iVar2;\n int iVar3;\n void *pvVar4;\n undefined4 uVar5;\n uint uVar6;\n uint extraout_ECX;\n undefined4 *puVar7;\n undefined4 local_24;\n undefined4 local_20;\n undefined4 local_1c;\n undefined4 local_18;\n undefined1 *local_14;\n void *local_10;\n undefined1 *puStack_c;\n undefined4 local_8;\n \n local_8 = 0xffffffff;\n puStack_c = &LAB_0045db50;\n local_10 = ExceptionList;\n local_14 = &stack0xffffffd0;\n local_20 = param_4[1];\n iVar3 = *(int *)(param_2 + 4);\n local_24 = *param_4;\n local_1c = param_4[2];\n if (iVar3 == 0) {\n uVar6 = 0;\n }\n else {\n uVar6 = (*(int *)(param_2 + 0xc) - iVar3) / 0xc;\n }\n if (param_1 != 0) {\n if (iVar3 == 0) {\n iVar2 = 0;\n }\n else {\n iVar2 = (*(int *)(param_2 + 8) - iVar3) / 0xc;\n }\n ExceptionList = &local_10;\n puVar1 = &stack0xffffffd0;\n if (0x15555555U - iVar2 < param_1) {\n ExceptionList = &local_10;\n FUN_00421aa0();\n uVar6 = extraout_ECX;\n puVar1 = local_14;\n }\n local_14 = puVar1;\n if (iVar3 == 0) {\n iVar2 = 0;\n }\n else {\n iVar2 = (*(int *)(param_2 + 8) - iVar3) / 0xc;\n }\n if (uVar6 < iVar2 + param_1) {\n if (0x15555555 - (uVar6 >> 1) < uVar6) {\n uVar6 = 0;\n }\n else {\n uVar6 = uVar6 + (uVar6 >> 1);\n }\n if (iVar3 == 0) {\n iVar3 = 0;\n }\n else {\n iVar3 = (*(int *)(param_2 + 8) - iVar3) / 0xc;\n }\n if (uVar6 < iVar3 + param_1) {\n iVar3 = FUN_00424ca0(param_2);\n uVar6 = iVar3 + param_1;\n }\n pvVar4 = operator_new(uVar6 * 0xc);\n local_8 = 0;\n local_18 = FUN_00425830(*(undefined4 **)(param_2 + 4),param_3);\n FUN_00425610(param_1,&local_24);\n FUN_00425830(param_3,*(undefined4 **)(param_2 + 8));\n iVar3 = 0;\n if (*(int *)(param_2 + 4) != 0) {\n iVar3 = (*(int *)(param_2 + 8) - *(int *)(param_2 + 4)) / 0xc;\n }\n if (*(void **)(param_2 + 4) != (void *)0x0) {\n /* WARNING: Subroutine does not return */\n _free(*(void **)(param_2 + 4));\n }\n *(void **)(param_2 + 0xc) = (void *)(uVar6 * 0xc + (int)pvVar4);\n *(void **)(param_2 + 8) = (void *)((int)pvVar4 + (param_1 + iVar3) * 0xc);\n *(void **)(param_2 + 4) = pvVar4;\n ExceptionList = local_10;\n return;\n }\n puVar7 = *(undefined4 **)(param_2 + 8);\n if ((uint)(((int)puVar7 - (int)param_3) / 0xc) < param_1) {\n FUN_00425830(param_3,puVar7);\n local_8 = 2;\n FUN_00425610(param_1 - (*(int *)(param_2 + 8) - (int)param_3) / 0xc,&local_24);\n iVar3 = *(int *)(param_2 + 8) + param_1 * 0xc;\n *(int *)(param_2 + 8) = iVar3;\n puVar7 = (undefined4 *)(iVar3 + param_1 * -0xc);\n }\n else {\n uVar5 = FUN_00425830(puVar7 + param_1 * -3,puVar7);\n *(undefined4 *)(param_2 + 8) = uVar5;\n FUN_004253d0(puVar7 + param_1 * -3,param_3);\n puVar7 = param_3 + param_1 * 3;\n }\n FUN_00425400(puVar7,&local_24);\n }\n ExceptionList = local_10;\n return;\n}\n\n"}Call ghidra_decompile_function
Arguments
{
"filepath": "/sandbox/GunBoundServ1.exe",
"name_or_address": "0x00413f90"
}Tool result
{"result":"Succeeded and the artifact is saved at /sandbox/ghidra/decompiled_0x413f90.txt. Please find the table of contents below. \n[{'funcName': 'KERNEL32.DLL@EnterCriticalSection', 'lineNum': 56}, {'funcName': '_strncmp', 'lineNum': 65}, {'funcName': 'FID_conflict:__time32', 'lineNum': 152}, {'funcName': 'FUN_0040fe00', 'lineNum': 160}, {'funcName': 'FUN_00414890', 'lineNum': 174}, {'funcName': 'FID_conflict:__time32', 'lineNum': 244}, {'funcName': 'FUN_0040fd10', 'lineNum': 275}, {'funcName': 'FUN_0041a740', 'lineNum': 278}, {'funcName': 'FUN_00430c60', 'lineNum': 302}, {'funcName': 'KERNEL32.DLL@LeaveCriticalSection', 'lineNum': 305}]"}Call ghidra_decompile_function
Arguments
{
"filepath": "/sandbox/GunBoundServ1.exe",
"name_or_address": "0x00418870"
}Tool result
{"result":"Succeeded and the artifact is saved at /sandbox/ghidra/decompiled_0x418870.txt. Please find the table of contents below. \n[{'funcName': 'FUN_0041a0a0', 'lineNum': 120}, {'funcName': 'FUN_0041a0a0', 'lineNum': 121}, {'funcName': 'FUN_004115b0', 'lineNum': 154}, {'funcName': 'FUN_0041c110', 'lineNum': 157}, {'funcName': 'FUN_0040a900', 'lineNum': 161}, {'funcName': 'KERNEL32.DLL@GetSystemTimeAsFileTime', 'lineNum': 162}, {'funcName': '__alldiv', 'lineNum': 164}, {'funcName': '__alldiv', 'lineNum': 166}, {'funcName': 'FUN_0040b440', 'lineNum': 169}, {'funcName': 'KERNEL32.DLL@ReleaseSemaphore', 'lineNum': 171}, {'funcName': 'KERNEL32.DLL@EnterCriticalSection', 'lineNum': 173}, {'funcName': 'FUN_0040a880', 'lineNum': 176}, {'funcName': 'KERNEL32.DLL@LeaveCriticalSection', 'lineNum': 178}, {'funcName': 'KERNEL32.DLL@GetLastError', 'lineNum': 181}, {'funcName': 'FUN_00430c60', 'lineNum': 182}, {'funcName': 'KERNEL32.DLL@GetLastError', 'lineNum': 184}, {'funcName': '__snprintf', 'lineNum': 185}, {'funcName': 'FUN_0040b310', 'lineNum': 191}, {'funcName': 'FUN_004115b0', 'lineNum': 194}, {'funcName': '__snprintf', 'lineNum': 195}, {'funcName': 'FUN_0040b310', 'lineNum': 201}, {'funcName': 'FUN_00430c60', 'lineNum': 221}, {'funcName': 'FUN_004115b0', 'lineNum': 239}, {'funcName': 'FUN_00401c60', 'lineNum': 242}, {'funcName': 'FUN_0040a900', 'lineNum': 246}, {'funcName': 'KERNEL32.DLL@GetSystemTimeAsFileTime', 'lineNum': 247}, {'funcName': '__alldiv', 'lineNum': 249}, {'funcName': '__alldiv', 'lineNum': 251}, {'funcName': 'FUN_00411c90', 'lineNum': 254}, {'funcName': 'KERNEL32.DLL@GetLastError', 'lineNum': 257}, {'funcName': '__snprintf', 'lineNum': 258}, {'funcName': 'KERNEL32.DLL@ReleaseSemaphore', 'lineNum': 266}, {'funcName': 'KERNEL32.DLL@GetLastError', 'lineNum': 268}, {'funcName': 'FUN_00430c60', 'lineNum': 269}, {'funcName': 'KERNEL32.DLL@EnterCriticalSection', 'lineNum': 272}, {'funcName': 'FUN_00411530', 'lineNum': 275}, {'funcName': 'KERNEL32.DLL@LeaveCriticalSection', 'lineNum': 277}, {'funcName': 'FUN_004115b0', 'lineNum': 280}, {'funcName': '__snprintf', 'lineNum': 281}, {'funcName': 'FUN_0040b310', 'lineNum': 288}, {'funcName': 'KERNEL32.DLL@GetCurrentThreadId', 'lineNum': 296}, {'funcName': 'FUN_00402a90', 'lineNum': 298}, {'funcName': 'WS2_32.DLL@Ordinal_3', 'lineNum': 301}, {'funcName': 'FUN_00410ee0', 'lineNum': 320}, {'funcName': 'FUN_0040ae90', 'lineNum': 321}, {'funcName': 'FUN_00430c60', 'lineNum': 327}, {'funcName': 'FID_conflict:__time32', 'lineNum': 356}, {'funcName': 'FUN_00430c60', 'lineNum': 368}, {'funcName': 'FUN_00409690', 'lineNum': 399}, {'funcName': 'FUN_00409690', 'lineNum': 400}, {'funcName': 'FUN_00409690', 'lineNum': 413}, {'funcName': 'FUN_00419b30', 'lineNum': 417}, {'funcName': 'FUN_00419b30', 'lineNum': 420}, {'funcName': 'FUN_00419b30', 'lineNum': 426}, {'funcName': 'FUN_00419b30', 'lineNum': 429}, {'funcName': 'FUN_004121e0', 'lineNum': 436}, {'funcName': 'FUN_004121e0', 'lineNum': 437}, {'funcName': 'FUN_00409690', 'lineNum': 448}, {'funcName': 'FUN_00409690', 'lineNum': 449}, {'funcName': 'FUN_00409690', 'lineNum': 479}, {'funcName': 'FUN_0040fe00', 'lineNum': 484}, {'funcName': 'FUN_004115b0', 'lineNum': 505}, {'funcName': 'FUN_00401c60', 'lineNum': 508}, {'funcName': 'FUN_0040a900', 'lineNum': 512}, {'funcName': 'KERNEL32.DLL@GetSystemTimeAsFileTime', 'lineNum': 513}, {'funcName': '__alldiv', 'lineNum': 515}, {'funcName': '__alldiv', 'lineNum': 517}, {'funcName': 'FUN_00411c90', 'lineNum': 520}, {'funcName': 'KERNEL32.DLL@ReleaseSemaphore', 'lineNum': 522}, {'funcName': 'KERNEL32.DLL@EnterCriticalSection', 'lineNum': 524}, {'funcName': 'FUN_00411530', 'lineNum': 527}, {'funcName': 'KERNEL32.DLL@LeaveCriticalSection', 'lineNum': 529}, {'funcName': 'KERNEL32.DLL@GetLastError', 'lineNum': 532}, {'funcName': 'FUN_00430c60', 'lineNum': 533}, {'funcName': 'KERNEL32.DLL@GetLastError', 'lineNum': 535}, {'funcName': '__snprintf', 'lineNum': 536}, {'funcName': 'FUN_004115b0', 'lineNum': 544}, {'funcName': '__snprintf', 'lineNum': 545}, {'funcName': '__snprintf', 'lineNum': 546}, {'funcName': 'FUN_0040b310', 'lineNum': 553}, {'funcName': 'FUN_00430c60', 'lineNum': 564}, {'funcName': 'FUN_004115b0', 'lineNum': 569}, {'funcName': 'FUN_00401c60', 'lineNum': 572}, {'funcName': 'FUN_0040a900', 'lineNum': 576}, {'funcName': 'KERNEL32.DLL@GetSystemTimeAsFileTime', 'lineNum': 577}, {'funcName': '__alldiv', 'lineNum': 579}, {'funcName': '__alldiv', 'lineNum': 581}, {'funcName': 'FUN_00411c90', 'lineNum': 584}, {'funcName': 'KERNEL32.DLL@ReleaseSemaphore', 'lineNum': 586}, {'funcName': 'KERNEL32.DLL@EnterCriticalSection', 'lineNum': 588}, {'funcName': 'FUN_0044d303', 'lineNum': 591}, {'funcName': 'KERNEL32.DLL@GetLastError', 'lineNum': 593}, {'funcName': 'FUN_00430c60', 'lineNum': 594}, {'funcName': 'FID_conflict:__time32', 'lineNum': 597}, {'funcName': 'FUN_0040afd0', 'lineNum': 598}, {'funcName': 'KERNEL32.DLL@ResetEvent', 'lineNum': 600}, {'funcName': 'KERNEL32.DLL@ResumeThread', 'lineNum': 602}, {'funcName': 'KERNEL32.DLL@CloseHandle', 'lineNum': 603}, {'funcName': 'KERNEL32.DLL@LeaveCriticalSection', 'lineNum': 606}, {'funcName': 'KERNEL32.DLL@GetLastError', 'lineNum': 609}, {'funcName': 'FUN_00430c60', 'lineNum': 610}, {'funcName': 'KERNEL32.DLL@GetLastError', 'lineNum': 612}, {'funcName': '__snprintf', 'lineNum': 613}, {'funcName': 'FUN_004115b0', 'lineNum': 621}, {'funcName': '__snprintf', 'lineNum': 622}, {'funcName': 'FUN_0040b310', 'lineNum': 629}, {'funcName': 'FID_conflict:__time32', 'lineNum': 636}, {'funcName': 'FUN_00414890', 'lineNum': 639}, {'funcName': 'FUN_00430c60', 'lineNum': 649}, {'funcName': 'KERNEL32.DLL@GetCurrentThreadId', 'lineNum': 653}, {'funcName': 'FUN_00411320', 'lineNum': 663}, {'funcName': 'FUN_0041a740', 'lineNum': 668}]"}Call ghidra_decompile_function
Arguments
{
"filepath": "/sandbox/GunBoundServ1.exe",
"name_or_address": "0x00407830"
}Tool result
{"result":"\nint * FUN_00407830(int *param_1,undefined1 *param_2,int param_3,byte param_4)\n\n{\n int iVar1;\n int *piVar2;\n ios_base *this;\n uint uVar3;\n int *local_20;\n char local_1c;\n undefined4 local_18;\n undefined1 *local_14;\n void *pvStack_10;\n undefined1 *puStack_c;\n undefined4 local_8;\n \n local_8 = 0xffffffff;\n puStack_c = &LAB_0045d708;\n pvStack_10 = ExceptionList;\n local_14 = &stack0xffffffd4;\n uVar3 = 0;\n local_18 = 0;\n ExceptionList = &pvStack_10;\n param_1[1] = 0;\n FUN_0040d0f0(&local_20,param_1,1);\n if ((local_1c == '\\0') || (param_3 < 1)) {\n local_8 = 0;\n *param_2 = 0;\n if (param_1[1] == 0) {\n uVar3 = 2;\n }\n this = (ios_base *)(*(int *)(*param_1 + 4) + (int)param_1);\n if (uVar3 != 0) {\n uVar3 = uVar3 | *(uint *)(this + 8);\n if (*(int *)(this + 0x28) == 0) {\n uVar3 = uVar3 | 4;\n }\n std::ios_base::clear(this,uVar3,false);\n }\n local_8 = 0xffffffff;\n iVar1 = *(int *)(*(int *)(*local_20 + 4) + 0x28 + (int)local_20);\n if (iVar1 != 0) {\n FUN_0044b53c((undefined4 *)(iVar1 + 4));\n }\n ExceptionList = pvStack_10;\n return param_1;\n }\n local_8 = 1;\n piVar2 = *(int **)(*(int *)(*param_1 + 4) + 0x28 + (int)param_1);\n if ((*(byte **)piVar2[8] == (byte *)0x0) ||\n (*(int *)piVar2[0xc] + *(uint *)piVar2[8] <= *(uint *)piVar2[8])) {\n uVar3 = (**(code **)(*piVar2 + 0x10))();\n }\n else {\n uVar3 = (uint)**(byte **)piVar2[8];\n }\n while( true ) {\n if (uVar3 == 0xffffffff) {\n piVar2 = (int *)FUN_00407964();\n return piVar2;\n }\n if (uVar3 == param_4) break;\n param_3 = param_3 + -1;\n if (param_3 < 1) {\n piVar2 = (int *)FUN_00407964();\n return piVar2;\n }\n param_1[1] = param_1[1] + 1;\n *param_2 = (char)uVar3;\n param_2 = param_2 + 1;\n uVar3 = FUN_0040d090();\n }\n param_1[1] = param_1[1] + 1;\n piVar2 = *(int **)(*(int *)(*param_1 + 4) + 0x28 + (int)param_1);\n if ((*(uint *)piVar2[8] != 0) && (uVar3 = *(uint *)piVar2[8], uVar3 < *(int *)piVar2[0xc] + uVar3)\n ) {\n *(int *)piVar2[0xc] = *(int *)piVar2[0xc] + -1;\n *(int *)piVar2[8] = *(int *)piVar2[8] + 1;\n piVar2 = (int *)FUN_00407964();\n return piVar2;\n }\n (**(code **)(*piVar2 + 0x14))();\n piVar2 = (int *)FUN_00407964();\n return piVar2;\n}\n\n"}Call ghidra_decompile_function
Arguments
{
"filepath": "/sandbox/GunBoundServ1.exe",
"name_or_address": "0x0040db40"
}Tool result
{"result":"\n/* WARNING: Removing unreachable block (ram,0x0040dc15) */\n/* WARNING: Removing unreachable block (ram,0x0040dc21) */\n/* WARNING: Removing unreachable block (ram,0x0040dc24) */\n\nint * __thiscall FUN_0040db40(byte param_1,int *param_2)\n\n{\n byte *pbVar1;\n int *piVar2;\n uint uVar3;\n int local_20;\n char local_1c;\n undefined4 local_18;\n undefined1 *local_14;\n void *pvStack_10;\n undefined1 *puStack_c;\n undefined4 local_8;\n \n local_8 = 0xffffffff;\n puStack_c = &LAB_0045d8fa;\n pvStack_10 = ExceptionList;\n local_14 = &stack0xffffffd4;\n local_18 = 0;\n ExceptionList = &pvStack_10;\n FUN_0040cb10(&local_20);\n local_8 = 0;\n if (local_1c == '\\0') {\n piVar2 = (int *)FUN_0040dc03();\n return piVar2;\n }\n local_8 = 1;\n piVar2 = *(int **)(*(int *)(*param_2 + 4) + 0x28 + (int)param_2);\n if ((*(uint *)piVar2[9] == 0) ||\n (uVar3 = *(uint *)piVar2[9], *(int *)piVar2[0xd] + uVar3 <= uVar3)) {\n uVar3 = (**(code **)(*piVar2 + 4))(param_1);\n }\n else {\n *(int *)piVar2[0xd] = *(int *)piVar2[0xd] + -1;\n pbVar1 = *(byte **)piVar2[9];\n *(byte **)piVar2[9] = pbVar1 + 1;\n *pbVar1 = param_1;\n uVar3 = (uint)param_1;\n }\n if (uVar3 != 0xffffffff) {\n local_8 = 0xffffffff;\n FUN_0040ca20(&local_20);\n ExceptionList = pvStack_10;\n return param_2;\n }\n piVar2 = (int *)FUN_0040dc03();\n return piVar2;\n}\n\n"}Call ghidra_read_artifact
Arguments
{
"artifact_path": "/sandbox/ghidra/decompiled_0x413f90.txt"
}Tool result
{"result":"\n/* WARNING: Function: __chkstk replaced with injection: alloca_probe */\n/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */\n\nundefined4\nFUN_00413f90(LPCRITICAL_SECTION param_1,uint param_2,void *param_3,char *param_4,char *param_5,\n char param_6)\n\n{\n undefined1 uVar1;\n HANDLE pvVar2;\n char cVar3;\n char cVar4;\n uint uVar5;\n int iVar6;\n uint uVar7;\n __time32_t _Var8;\n uint *puVar9;\n uint *puVar10;\n int *piVar11;\n uint uVar12;\n int iVar13;\n undefined4 *puVar14;\n undefined1 *puVar15;\n undefined4 *puVar16;\n LPCRITICAL_SECTION p_Var17;\n undefined4 uVar18;\n undefined4 *puVar19;\n char *pcVar20;\n int local_201c;\n int local_2018;\n char local_2010;\n char cStack_200f;\n char cStack_200e;\n undefined1 uStack_200d;\n undefined1 uStack_200c;\n undefined1 local_200b [4];\n undefined1 local_2007 [4];\n undefined1 local_2003;\n undefined4 local_2002;\n undefined2 local_1ffe;\n undefined4 local_1ffc;\n undefined2 local_1ff8;\n undefined1 local_1ff6;\n undefined1 local_1ff5;\n undefined1 local_1ff4;\n undefined4 local_1ff3;\n undefined4 local_1fef;\n undefined4 local_1feb;\n undefined4 local_1fe7;\n undefined2 local_1fe3;\n undefined4 local_1fe1;\n undefined4 local_c;\n \n local_c = DAT_00484f30;\n EnterCriticalSection(param_1);\n uVar5 = (uint)param_3 & 0xffff;\n if ((int)uVar5 < param_1[0x14].RecursionCount) {\n pvVar2 = param_1[0x14].OwningThread;\n if (*(char *)((int)pvVar2 + uVar5 * 200 + 0xb4) == '\\0') goto LAB_0041446e;\n if (param_6 == *(char *)((int)pvVar2 + uVar5 * 200 + 0xbd)) {\n if (*(int *)((int)pvVar2 + uVar5 * 200 + 0x44) < *(int *)((int)pvVar2 + uVar5 * 200 + 0x50)) {\n if (*(char *)((int)pvVar2 + uVar5 * 200 + 0xac) == '\\0') {\n if (*(short *)(param_2 + 0x9c8) < 0x62) {\n iVar6 = _strncmp((char *)((int)pvVar2 + uVar5 * 200 + 0xa8),param_4,4);\n if (iVar6 != 0) {\n uVar18 = 0xfffffffe;\n goto LAB_0041447f;\n }\n }\n iVar13 = 0;\n iVar6 = 0;\n puVar10 = (uint *)((int)pvVar2 + uVar5 * 200 + 4);\n do {\n if (*puVar10 == param_2) {\n uVar18 = 0xfffffffc;\n goto LAB_0041447f;\n }\n iVar6 = iVar6 + 1;\n puVar10 = puVar10 + 2;\n } while (iVar6 < 8);\n local_201c = 0;\n pcVar20 = (char *)((int)pvVar2 + uVar5 * 200 + 10);\n iVar6 = 8;\n do {\n if (*(int *)(pcVar20 + -6) != 0) {\n if (*pcVar20 == '\\0') {\n iVar13 = iVar13 + 1;\n }\n else if (*pcVar20 == '\\x01') {\n local_201c = local_201c + 1;\n }\n }\n pcVar20 = pcVar20 + 8;\n iVar6 = iVar6 + -1;\n } while (iVar6 != 0);\n *param_5 = -1;\n uVar7 = 0;\n piVar11 = (int *)((int)pvVar2 + uVar5 * 200 + 4);\n do {\n if (*piVar11 == 0) {\n *param_5 = (char)uVar7;\n if ((char)uVar7 == -1) {\n uVar18 = 0xfffffff7;\n }\n else {\n puVar10 = (uint *)((int)pvVar2 + (uVar7 & 0xff) * 8 + uVar5 * 200 + 4);\n if (local_201c < iVar13) {\n *(undefined1 *)((int)puVar10 + 6) = 1;\n }\n else {\n *(undefined1 *)((int)puVar10 + 6) = 0;\n }\n *(undefined1 *)(puVar10 + 1) = *(undefined1 *)(param_2 + 0xcb4);\n uVar1 = *(undefined1 *)(param_2 + 0xcb5);\n *(undefined1 *)((int)puVar10 + 7) = 1;\n *(undefined1 *)((int)puVar10 + 5) = uVar1;\n local_2010 = *param_5;\n uVar18 = *(undefined4 *)(param_2 + 0x9b6);\n cStack_200f = (char)uVar18;\n cStack_200e = (char)((uint)uVar18 >> 8);\n uStack_200d = (char)((uint)uVar18 >> 0x10);\n uStack_200c = (undefined1)((uint)uVar18 >> 0x18);\n local_200b = *(undefined1 (*) [4])(param_2 + 0x9ba);\n local_2007 = *(undefined1 (*) [4])(param_2 + 0x9be);\n local_2003 = *(undefined1 *)(param_2 + 0x9c4);\n local_1ffe = *(undefined2 *)(param_2 + 0xbf0);\n local_2002 = *(undefined4 *)(param_2 + 0xbec);\n local_1ff8 = *(undefined2 *)(param_2 + 0xbf8);\n local_1ffc = *(undefined4 *)(param_2 + 0xbf4);\n local_1ff6 = (undefined1)puVar10[1];\n local_1ff5 = *(undefined1 *)((int)puVar10 + 5);\n local_1ff4 = *(undefined1 *)((int)puVar10 + 6);\n local_1ff3 = *(undefined4 *)(param_2 + 0xc0c);\n local_1fef = *(undefined4 *)(param_2 + 0xc10);\n local_1feb = *(undefined4 *)(param_2 + 0xc14);\n local_1fe7 = *(undefined4 *)(param_2 + 0xc18);\n local_1fe3 = *(undefined2 *)(param_2 + 0xc6c);\n uVar7 = *(uint *)(param_2 + 0xc6c);\n puVar14 = (undefined4 *)(param_2 + 0xc70);\n puVar16 = &local_1fe1;\n for (uVar12 = uVar7 & 0x3fffffff; uVar12 != 0; uVar12 = uVar12 - 1) {\n *puVar16 = *puVar14;\n puVar14 = puVar14 + 1;\n puVar16 = puVar16 + 1;\n }\n for (iVar6 = 0; iVar6 != 0; iVar6 = iVar6 + -1) {\n *(undefined1 *)puVar16 = *(undefined1 *)puVar14;\n puVar14 = (undefined4 *)((int)puVar14 + 1);\n puVar16 = (undefined4 *)((int)puVar16 + 1);\n }\n _Var8 = FID_conflict___time32((__time32_t *)0x0);\n *(bool *)(&local_1fe1 + uVar7) = _Var8 < *(int *)(param_2 + 0xc1c);\n puVar9 = (uint *)((int)pvVar2 + uVar5 * 200 + 4);\n local_201c = 8;\n do {\n uVar12 = *puVar9;\n if ((uVar12 != 0) && (uVar12 != param_2)) {\n iVar6 = (int)&local_1fe1 + (uVar7 * 4 - (int)&local_2010) + 1;\n FUN_0040fe00(iVar6,(undefined4 *)&local_2010,&DAT_0049fbd0,uVar12,0x3010,iVar6);\n }\n puVar9 = puVar9 + 2;\n local_201c = local_201c + -1;\n } while (local_201c != 0);\n *puVar10 = param_2;\n iVar6 = *(int *)((int)pvVar2 + uVar5 * 200 + 0x44) + 1;\n *(int *)((int)pvVar2 + uVar5 * 200 + 0x44) = iVar6;\n local_2010 = (char)param_3;\n cVar3 = local_2010;\n cStack_200f = (char)((uint)param_3 >> 8);\n cVar4 = cStack_200f;\n cStack_200e = (char)iVar6;\n if (param_6 == '\\0') {\n FUN_00414890(param_3,0x21f5,(undefined4 *)&local_2010,3);\n }\n local_2010 = *(char *)((int)pvVar2 + uVar5 * 200 + 0x48);\n cStack_200f = *param_5;\n uStack_200c = *(undefined1 *)((int)pvVar2 + uVar5 * 200 + 0xa4);\n uVar7 = *(uint *)((int)pvVar2 + uVar5 * 200 + 0xa4);\n puVar14 = (undefined4 *)((int)pvVar2 + uVar5 * 200 + 0x61);\n puVar16 = (undefined4 *)local_200b;\n for (uVar12 = uVar7 >> 2; uVar12 != 0; uVar12 = uVar12 - 1) {\n *puVar16 = *puVar14;\n puVar14 = puVar14 + 1;\n puVar16 = puVar16 + 1;\n }\n for (uVar12 = uVar7 & 3; uVar12 != 0; uVar12 = uVar12 - 1) {\n *(undefined1 *)puVar16 = *(undefined1 *)puVar14;\n puVar14 = (undefined4 *)((int)puVar14 + 1);\n puVar16 = (undefined4 *)((int)puVar16 + 1);\n }\n local_200b[uVar7] = *(undefined1 *)((int)pvVar2 + uVar5 * 200 + 0x60);\n *(undefined4 *)(local_200b + uVar7 + 1) =\n *(undefined4 *)((int)pvVar2 + uVar5 * 200 + 0x54);\n *(undefined4 *)(local_2007 + uVar7 + 1) =\n *(undefined4 *)((int)pvVar2 + uVar5 * 200 + 0x58);\n *(undefined4 *)((int)&local_2002 + uVar7) =\n *(undefined4 *)((int)pvVar2 + uVar5 * 200 + 0x5c);\n *(undefined1 *)((int)&local_1ffe + uVar7) =\n *(undefined1 *)((int)pvVar2 + uVar5 * 200 + 0x50);\n *(undefined1 *)((int)&local_1ffe + uVar7 + 1) =\n *(undefined1 *)((int)pvVar2 + uVar5 * 200 + 0x44);\n puVar14 = (undefined4 *)((int)&local_1ffc + uVar7);\n puVar15 = (undefined1 *)((int)pvVar2 + uVar5 * 200 + 9);\n local_2018 = 0;\n cStack_200e = cVar3;\n uStack_200d = cVar4;\n do {\n iVar6 = *(int *)(puVar15 + -5);\n if (iVar6 != 0) {\n *(char *)puVar14 = (char)local_2018;\n *(undefined4 *)((int)puVar14 + 1) = *(undefined4 *)(iVar6 + 0x9b6);\n *(undefined4 *)((int)puVar14 + 5) = *(undefined4 *)(iVar6 + 0x9ba);\n *(undefined4 *)((int)puVar14 + 9) = *(undefined4 *)(iVar6 + 0x9be);\n *(undefined1 *)((int)puVar14 + 0xd) = *(undefined1 *)(iVar6 + 0x9c4);\n *(undefined4 *)((int)puVar14 + 0xe) = *(undefined4 *)(iVar6 + 0xbec);\n *(undefined2 *)((int)puVar14 + 0x12) = *(undefined2 *)(iVar6 + 0xbf0);\n puVar14[5] = *(undefined4 *)(iVar6 + 0xbf4);\n *(undefined2 *)(puVar14 + 6) = *(undefined2 *)(iVar6 + 0xbf8);\n *(undefined1 *)((int)puVar14 + 0x1a) = puVar15[-1];\n *(undefined1 *)((int)puVar14 + 0x1b) = *puVar15;\n *(undefined1 *)(puVar14 + 7) = puVar15[1];\n *(undefined1 *)((int)puVar14 + 0x1d) = puVar15[2];\n *(undefined4 *)((int)puVar14 + 0x1e) = *(undefined4 *)(iVar6 + 0xc0c);\n *(undefined4 *)((int)puVar14 + 0x22) = *(undefined4 *)(iVar6 + 0xc10);\n *(undefined4 *)((int)puVar14 + 0x26) = *(undefined4 *)(iVar6 + 0xc14);\n *(undefined4 *)((int)puVar14 + 0x2a) = *(undefined4 *)(iVar6 + 0xc18);\n *(undefined2 *)((int)puVar14 + 0x2e) = *(undefined2 *)(iVar6 + 0xc6c);\n puVar14 = puVar14 + 0xc;\n puVar16 = (undefined4 *)(iVar6 + 0xc70);\n puVar19 = puVar14;\n for (uVar5 = *(uint *)(iVar6 + 0xc6c) & 0x3fffffff; uVar5 != 0;\n uVar5 = uVar5 - 1) {\n *puVar19 = *puVar16;\n puVar16 = puVar16 + 1;\n puVar19 = puVar19 + 1;\n }\n for (iVar13 = 0; iVar13 != 0; iVar13 = iVar13 + -1) {\n *(undefined1 *)puVar19 = *(undefined1 *)puVar16;\n puVar16 = (undefined4 *)((int)puVar16 + 1);\n puVar19 = (undefined4 *)((int)puVar19 + 1);\n }\n iVar13 = *(int *)(iVar6 + 0xc6c);\n _Var8 = FID_conflict___time32((__time32_t *)0x0);\n *(bool *)(puVar14 + iVar13) = _Var8 < *(int *)(iVar6 + 0xc1c);\n puVar14 = (undefined4 *)((int)(puVar14 + iVar13) + 1);\n }\n local_2018 = local_2018 + 1;\n puVar15 = puVar15 + 8;\n } while (local_2018 < 8);\n uVar5 = param_1[9].RecursionCount;\n if (0 < (int)uVar5) {\n p_Var17 = param_1 + 1;\n puVar16 = puVar14;\n for (uVar7 = uVar5 >> 2; uVar7 != 0; uVar7 = uVar7 - 1) {\n *puVar16 = p_Var17->DebugInfo;\n p_Var17 = (LPCRITICAL_SECTION)&p_Var17->LockCount;\n puVar16 = puVar16 + 1;\n }\n for (uVar5 = uVar5 & 3; uVar5 != 0; uVar5 = uVar5 - 1) {\n *(undefined1 *)puVar16 = *(undefined1 *)&p_Var17->DebugInfo;\n p_Var17 = (LPCRITICAL_SECTION)((int)&p_Var17->DebugInfo + 1);\n puVar16 = (undefined4 *)((int)puVar16 + 1);\n }\n puVar14 = (undefined4 *)((int)puVar14 + param_1[9].RecursionCount);\n uVar5 = 0;\n }\n if (param_6 == '\\0') {\n uVar18 = 0x2111;\n uVar5 = param_2;\n }\n else {\n uVar18 = 0x2133;\n }\n FUN_0040fd10(uVar5,(undefined4 *)&local_2010,&DAT_0049fbd0,param_2,uVar18,0,\n (int)puVar14 - (int)&local_2010);\n uVar18 = 0;\n FUN_0041a740((int)param_1,(ushort)param_3);\n }\n goto LAB_0041447f;\n }\n uVar7 = uVar7 + 1;\n piVar11 = piVar11 + 2;\n } while ((int)uVar7 < 8);\n uVar18 = 0xfffffff7;\n }\n else {\n uVar18 = 0xfffffffb;\n }\n }\n else {\n uVar18 = 0xfffffffd;\n }\n goto LAB_0041447f;\n }\n pcVar20 = s_CGameRoomManager__Join______inva_004699a0;\n }\n else {\nLAB_0041446e:\n pcVar20 = s_CGameRoomManager__Join______inva_004699e4;\n }\n FUN_00430c60(pcVar20);\n uVar18 = 0xffffffff;\nLAB_0041447f:\n LeaveCriticalSection(param_1);\n return uVar18;\n}\n\n"}Call ghidra_read_artifact
Arguments
{
"artifact_path": "/sandbox/ghidra/decompiled_0x418870.txt"
}Tool result
{"result":"\n/* WARNING: Function: __chkstk replaced with injection: alloca_probe */\n/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */\n\nvoid FUN_00418870(int param_1,void *param_2)\n\n{\n byte *pbVar1;\n char cVar2;\n byte bVar3;\n undefined2 uVar4;\n ushort uVar5;\n int iVar6;\n short sVar7;\n uint *puVar8;\n uint uVar9;\n undefined4 uVar10;\n char *pcVar11;\n int *piVar12;\n int iVar13;\n uint uVar14;\n uint uVar15;\n BOOL BVar16;\n DWORD DVar17;\n HANDLE hThread;\n __time32_t _Var18;\n DWORD DVar19;\n undefined4 extraout_ECX;\n undefined4 extraout_ECX_00;\n undefined2 extraout_var;\n undefined4 extraout_ECX_01;\n undefined4 extraout_ECX_02;\n undefined2 extraout_var_00;\n int iVar20;\n undefined4 *puVar21;\n undefined4 *puVar22;\n undefined8 uVar23;\n byte local_210d;\n undefined4 local_210c;\n uint local_2108;\n int local_2104;\n uint *local_2100;\n byte *local_20fc;\n uint local_20f8;\n uint *local_20f4;\n int local_20f0;\n uint *local_20ec;\n uint local_20e8;\n int local_20e4 [4];\n undefined4 *local_20d4;\n undefined4 local_20d0;\n undefined1 local_20cc;\n undefined4 *local_20c8;\n undefined4 local_20c4;\n undefined4 local_20c0;\n uint local_20bc;\n int local_20b8;\n uint local_20b4;\n uint local_20b0;\n uint local_20ac;\n uint local_20a8;\n ushort local_20a4;\n undefined4 local_20a0;\n void *local_209c;\n undefined1 local_2098;\n int local_2094;\n char local_1fc8 [256];\n _FILETIME local_1ec8 [30];\n undefined4 local_1dd4;\n undefined4 local_1dd0;\n undefined4 local_1dcc;\n uint local_1dc8 [4];\n undefined4 local_1db8;\n ushort local_1db4;\n undefined1 local_1db0 [2];\n undefined1 auStack_1dae [6];\n uint local_1da8;\n uint local_1da4;\n undefined2 local_1da0;\n short local_1d9e;\n void *local_1d9c;\n uint local_1d6c;\n undefined4 local_1d68;\n __time32_t local_1d64;\n undefined4 local_1d60;\n undefined4 local_1d5c;\n uint auStack_1d58 [4];\n uint auStack_1d48 [598];\n _FILETIME local_13f0;\n uint local_13e8;\n uint local_13e4;\n uint local_13e0;\n undefined2 local_13dc;\n ushort local_13d8;\n short local_13d6;\n undefined4 local_a10;\n undefined4 local_a0c;\n undefined4 local_a08;\n _FILETIME local_a00 [316];\n undefined4 local_20;\n undefined4 local_1c;\n undefined4 local_18;\n undefined4 local_c;\n \n local_c = DAT_00484f30;\n iVar20 = ((uint)param_2 & 0xffff) * 200;\n iVar13 = *(int *)(param_1 + 0x1ec);\n local_20e8 = (uint)*(byte *)(iVar20 + 0x48 + iVar13);\n local_210c = iVar20 + iVar13;\n local_20ec = *(uint **)(local_210c + 4 + local_20e8 * 8);\n local_2104 = ((uint)param_2 & 0xffff) * 0x718 + *(int *)(param_1 + 0x1f0);\n local_20e4[2] = 0;\n local_20e4[3] = 0;\n local_20e4[0] = 0;\n local_20e4[1] = 0;\n if ((*(char *)(iVar20 + 0xbe + iVar13) != '\\0') &&\n ((*(int *)(local_2104 + 0x714) == 0 || (*(int *)(local_2104 + 0x714) == 1)))) {\n local_2100 = (uint *)(*(int *)(*(int *)ThreadLocalStoragePointer + 8) + 0x2a8);\n local_20fc = (byte *)(local_210c + 0xc0);\n local_20f4 = FUN_0041a0a0(local_2100,&local_20f8);\n puVar8 = FUN_0041a0a0(local_2100,&local_20c0);\n if ((local_20f4 != (uint *)0x0) && (puVar8 != (uint *)0x0)) {\n local_20bc = puVar8[1];\n local_20c0 = (uint *)local_20f4[1];\n if ((int)((&local_20c0)[*(int *)(local_2104 + 0x714)] -\n (&local_20c0)[*(int *)(local_2104 + 0x714) == 0]) < *(int *)(param_1 + 0x2b8)) {\n if (-*(int *)(param_1 + 0x2b8) <\n (int)((&local_20c0)[*(int *)(local_2104 + 0x714)] -\n (&local_20c0)[*(int *)(local_2104 + 0x714) == 0])) {\n iVar13 = *(int *)(param_1 + 0x2a0);\n iVar20 = *(int *)(param_1 + 0x2a4);\n }\n else {\n iVar13 = *(int *)(param_1 + 0x2a8);\n iVar20 = *(int *)(param_1 + 0x2b4);\n }\n }\n else {\n iVar13 = *(int *)(param_1 + 0x2b0);\n iVar20 = *(int *)(param_1 + 0x2ac);\n }\n iVar6 = *(int *)(local_2104 + 0x714);\n local_20e4[iVar6] = iVar13;\n local_20b8 = 0x4448;\n local_20a4 = local_20a4 & 0xff;\n local_20b4 = local_20b4 & 0xffffff00;\n local_20e4[iVar6 == 0] = iVar20;\n local_2100 = (uint *)0x0;\n do {\n puVar8 = local_2100;\n local_20a0 = *(undefined4 *)local_20fc;\n local_209c = (void *)local_20e4[(int)local_2100];\n local_2098 = local_2100 == *(uint **)(local_2104 + 0x714);\n uVar9 = FUN_004115b0();\n uVar15 = DAT_0049fe7c;\n if (uVar9 < 0x401) {\n FUN_0041c110(extraout_ECX,&local_20b8);\n local_1dd4 = 0;\n local_1dd0 = 0;\n local_1dcc = 0;\n uVar10 = FUN_0040a900(&local_20f4,0,8);\n GetSystemTimeAsFileTime(local_1ec8);\n if ((char)uVar10 != '\\0') {\n uVar23 = __alldiv(local_1ec8[0].dwLowDateTime - (int)local_20f4,\n (local_1ec8[0].dwHighDateTime - local_20f0) -\n (uint)(local_1ec8[0].dwLowDateTime < local_20f4),10000,0);\n local_2108 = (uint)uVar23;\n }\n uVar15 = FUN_0040b440(&local_1ec8[0].dwLowDateTime);\n if ((char)uVar15 != '\\0') {\n BVar16 = ReleaseSemaphore(DAT_0049fed8,1,(LPLONG)0x0);\n if (BVar16 != 0) {\n EnterCriticalSection((LPCRITICAL_SECTION)&DAT_0049fe60);\n if ((DAT_0049fe7c == 0) ||\n ((((char)uVar10 != '\\0' && (DAT_0049fe7c < 0x40)) && (500 < local_2108)))) {\n FUN_0040a880(0x49fe58);\n }\n LeaveCriticalSection((LPCRITICAL_SECTION)&DAT_0049fe60);\n goto LAB_00418bf3;\n }\n GetLastError();\n FUN_00430c60(s_CSigDynaQueue2__Push___ReleaseSe_004631b4);\n }\n DVar17 = GetLastError();\n __snprintf(local_1fc8,0x100,s_CSvcDatabase<>__ExecSQL______m_R_00463464,DVar17);\n pcVar11 = local_1fc8;\n do {\n cVar2 = *pcVar11;\n pcVar11 = pcVar11 + 1;\n } while (cVar2 != '\\0');\n FUN_0040b310(0x49fe58,(int)pcVar11 - (int)(local_1fc8 + 1));\n }\n else {\n uVar10 = FUN_004115b0();\n __snprintf(local_1fc8,0x100,s_CSvcDatabase<>__ExecSQL______req_00463498,uVar15,uVar10);\n pcVar11 = local_1fc8;\n do {\n cVar2 = *pcVar11;\n pcVar11 = pcVar11 + 1;\n } while (cVar2 != '\\0');\n FUN_0040b310(0x49fe58,(int)pcVar11 - (int)(local_1fc8 + 1));\n local_2100 = puVar8;\n }\nLAB_00418bf3:\n local_2100 = (uint *)((int)local_2100 + 1);\n local_20fc = local_20fc + 4;\n } while (local_2100 < (uint *)0x2);\n iVar13 = *(int *)(local_2104 + 0x714);\n local_20e4[iVar13 + 2] = *(int *)(param_1 + 0x298);\n local_20e4[(iVar13 == 0) + 2] = *(int *)(param_1 + 0x29c);\n }\n }\n local_210d = 0;\n do {\n pbVar1 = (byte *)(local_2104 + 0x100 + ((uint)local_210d + local_20e8 * 8) * 0x18);\n bVar3 = *pbVar1;\n if (bVar3 == 0xff) break;\n if (bVar3 < 8) {\n iVar13 = (uint)bVar3 * 0x20 + local_2104;\n if (*(char *)((uint)bVar3 * 0x20 + 0x1d + local_2104) == '\\0') {\n FUN_00430c60(s_CGameRoomManager__SaveResult_____0046a6c8);\n }\n else {\n sVar7 = *(short *)(pbVar1 + 10);\n if ((DAT_00496748 < sVar7) || (DAT_0049674c < *(int *)(pbVar1 + 4))) {\n local_1dc8[1] = *(uint *)(iVar13 + 0xc);\n local_1dc8[2] = *(undefined4 *)(iVar13 + 0x10);\n local_1dc8[3] = *(undefined4 *)(iVar13 + 0x14);\n local_1db8 = *(undefined4 *)(iVar13 + 0x18);\n local_1db4 = *(ushort *)(iVar13 + 0x1c);\n _local_1db0 = local_20ec[0x269];\n auStack_1dae._2_4_ = local_20ec[0x26a];\n local_1da8 = local_20ec[0x26b];\n local_1da4 = local_20ec[0x26c];\n local_1da0 = (undefined2)local_20ec[0x26d];\n local_1d9c = *(void **)(pbVar1 + 4);\n local_1dc8[0] = 5;\n local_1d9e = sVar7;\n uVar9 = FUN_004115b0();\n uVar15 = DAT_004967bc;\n if (uVar9 < 0x401) {\n FUN_00401c60(extraout_ECX_00,local_1dc8);\n local_a10 = 0;\n local_a0c = 0;\n local_a08 = 0;\n uVar10 = FUN_0040a900(&local_20f4,0,8);\n GetSystemTimeAsFileTime(&local_13f0);\n if ((char)uVar10 != '\\0') {\n uVar23 = __alldiv(local_13f0.dwLowDateTime - (int)local_20f4,\n (local_13f0.dwHighDateTime - local_20f0) -\n (uint)(local_13f0.dwLowDateTime < local_20f4),10000,0);\n local_2108 = (uint)uVar23;\n }\n uVar15 = FUN_00411c90(&local_13f0.dwLowDateTime);\n if ((char)uVar15 == '\\0') {\nLAB_00418f48:\n DVar17 = GetLastError();\n __snprintf(local_1fc8,0x100,s_CSvcDatabase<>__ExecSQL______m_R_00463464,DVar17);\n pcVar11 = local_1fc8;\n do {\n cVar2 = *pcVar11;\n pcVar11 = pcVar11 + 1;\n } while (cVar2 != '\\0');\n goto LAB_00418f7a;\n }\n BVar16 = ReleaseSemaphore(DAT_00496818,1,(LPLONG)0x0);\n if (BVar16 == 0) {\n GetLastError();\n FUN_00430c60(s_CSigDynaQueue2__Push___ReleaseSe_004631b4);\n goto LAB_00418f48;\n }\n EnterCriticalSection((LPCRITICAL_SECTION)&DAT_004967a0);\n if ((DAT_004967bc == 0) ||\n ((((char)uVar10 != '\\0' && (DAT_004967bc < 0x40)) && (500 < local_2108)))) {\n FUN_00411530(0x496798);\n }\n LeaveCriticalSection((LPCRITICAL_SECTION)&DAT_004967a0);\n }\n else {\n uVar10 = FUN_004115b0();\n __snprintf(local_1fc8,0x100,s_CSvcDatabase<>__ExecSQL______req_00463498,uVar15,uVar10);\n pcVar11 = local_1fc8;\n do {\n cVar2 = *pcVar11;\n pcVar11 = pcVar11 + 1;\n } while (cVar2 != '\\0');\nLAB_00418f7a:\n FUN_0040b310(0x496798,(int)pcVar11 - (int)(local_1fc8 + 1));\n }\n puVar8 = local_20ec;\n if ((DAT_00496740 < *(short *)(pbVar1 + 10)) || (DAT_00496744 < *(int *)(pbVar1 + 4))) {\n if (local_20ec[4] == 0xffffffff) {\n return;\n }\n DVar17 = *(DWORD *)(local_20ec[2] + 4);\n DVar19 = GetCurrentThreadId();\n if (DVar17 != DVar19) {\n FUN_00402a90(puVar8[2]);\n return;\n }\n Ordinal_3(puVar8[4]);\n puVar8[4] = 0xffffffff;\n return;\n }\n }\n else if ((sVar7 < DAT_00496738) || (*(int *)(pbVar1 + 4) < DAT_0049673c)) {\n local_1dc8[1] = *(undefined4 *)(iVar13 + 0xc);\n local_1dc8[2] = *(undefined4 *)(iVar13 + 0x10);\n local_1dc8[3] = *(undefined4 *)(iVar13 + 0x14);\n local_1db8 = *(undefined4 *)(iVar13 + 0x18);\n local_1db4 = *(undefined2 *)(iVar13 + 0x1c);\n _local_1db0 = local_20ec[0x269];\n auStack_1dae._2_4_ = local_20ec[0x26a];\n local_1da8 = local_20ec[0x26b];\n local_1da4 = local_20ec[0x26c];\n local_1da0 = (undefined2)local_20ec[0x26d];\n local_1d9c = *(void **)(pbVar1 + 4);\n local_1d9e = *(short *)(pbVar1 + 10);\n local_1dc8[0] = 5;\n FUN_00410ee0(local_1d9c,local_1dc8,0,0,0,'\\0');\n FUN_0040ae90();\n return;\n }\n }\n }\n else {\n FUN_00430c60(s_CGameRoomManager__SaveResult_____0046a704);\n }\n local_210d = local_210d + 1;\n } while (local_210d < 8);\n iVar13 = local_2104;\n puVar8 = local_1dc8;\n for (iVar20 = 0x276; iVar20 != 0; iVar20 = iVar20 + -1) {\n *puVar8 = 0;\n puVar8 = puVar8 + 1;\n }\n _local_1db0 = CONCAT22(auStack_1dae._0_2_,(ushort)param_2);\n local_1db4 = local_1db4 & 0xff;\n local_1dc8[1] = local_1dc8[1] & 0xffffff00;\n uVar15 = *(uint *)(local_210c + 0xa4);\n local_1dc8[0] = 4;\n puVar21 = (undefined4 *)(local_210c + 0x61);\n puVar22 = (undefined4 *)(local_1db0 + 2);\n for (uVar9 = uVar15 >> 2; uVar9 != 0; uVar9 = uVar9 - 1) {\n *puVar22 = *puVar21;\n puVar21 = puVar21 + 1;\n puVar22 = puVar22 + 1;\n }\n for (uVar9 = uVar15 & 3; uVar9 != 0; uVar9 = uVar9 - 1) {\n *(undefined1 *)puVar22 = *(undefined1 *)puVar21;\n puVar21 = (undefined4 *)((int)puVar21 + 1);\n puVar22 = (undefined4 *)((int)puVar22 + 1);\n }\n local_1d68 = *(undefined4 *)(local_2104 + 0x710);\n local_1d6c = uVar15;\n local_1d64 = FID_conflict___time32((__time32_t *)0x0);\n local_1d60 = *(undefined4 *)(local_210c + 0x54);\n local_1d5c = *(undefined4 *)(iVar13 + 0x714);\n local_210d = 0;\n do {\n pbVar1 = (byte *)(local_2104 + 0x100 + ((uint)local_210d + local_20e8 * 8) * 0x18);\n bVar3 = *pbVar1;\n if (bVar3 == 0xff) break;\n if (bVar3 < 8) {\n uVar15 = (uint)bVar3;\n local_20fc = (byte *)(uVar15 * 0x20 + local_2104);\n if (*(char *)(uVar15 * 0x20 + 0x1d + local_2104) == '\\0') {\n FUN_00430c60(s_CGameRoomManager__SaveResult_____0046a6c8);\n }\n else {\n local_2100 = (uint *)(local_20fc + 0xc);\n local_20ec = auStack_1d58 + uVar15 * 10;\n *local_20ec = *local_2100;\n auStack_1d58[uVar15 * 10 + 1] = *(uint *)(local_20fc + 0x10);\n auStack_1d58[uVar15 * 10 + 2] = *(uint *)(local_20fc + 0x14);\n uVar4 = *(undefined2 *)(local_20fc + 0x1c);\n auStack_1d48[uVar15 * 10 + -1] = *(uint *)(local_20fc + 0x18);\n *(undefined2 *)(auStack_1d48 + uVar15 * 10) = uVar4;\n auStack_1d48[uVar15 * 10 + 1] = (uint)local_20fc[2];\n iVar13 = *(int *)(local_210c + 4 + uVar15 * 8);\n if ((iVar13 == 0) || (*(char *)(local_210c + 0xb + uVar15 * 8) == -0x7e)) {\n uVar9 = *(uint *)(local_20fc + 4);\n auStack_1d48[uVar15 * 10 + 2] = *(uint *)(local_20fc + 8);\n auStack_1d48[uVar15 * 10 + 3] = uVar9;\n }\n else {\n auStack_1d48[uVar15 * 10 + 3] = 0;\n }\n if (iVar13 == 0) {\n if ((*(void **)(pbVar1 + 4) != (void *)0x0) || (*(short *)(pbVar1 + 10) != 0)) {\n local_20b4 = *local_2100;\n local_20b0 = *(uint *)(local_20fc + 0x10);\n local_20ac = *(uint *)(local_20fc + 0x14);\n local_20a8 = *(uint *)(local_20fc + 0x18);\n local_20a4 = *(ushort *)(local_20fc + 0x1c);\n local_2094 = (int)*(short *)(pbVar1 + 10);\n local_20b8 = 0x11;\n local_209c = *(void **)(pbVar1 + 4);\n FUN_00409690((void *)CONCAT22((short)((uint)local_2100 >> 0x10),local_20a4),&local_20b8,\n 0,0,0,'\\x01');\n }\n }\n else {\n *(int *)(iVar13 + 0xc24) = *(int *)(iVar13 + 0xc24) + (int)*(short *)(pbVar1 + 10);\n local_20b4 = *local_2100;\n local_20b0 = *(uint *)(local_20fc + 0x10);\n local_20ac = *(uint *)(local_20fc + 0x14);\n local_20a8 = *(uint *)(local_20fc + 0x18);\n local_20a4 = *(ushort *)(local_20fc + 0x1c);\n local_2094 = (int)*(short *)(pbVar1 + 10);\n local_209c = *(void **)(pbVar1 + 4);\n local_20b8 = 0x11;\n FUN_00409690(local_209c,&local_20b8,0,0,0,'\\x01');\n iVar13 = local_210c;\n if (pbVar1[0x14] == 0) {\n local_2108 = (uint)*(ushort *)(local_2104 + 0x700);\n iVar20 = FUN_00419b30((void *)(*(int *)(local_210c + 4 + uVar15 * 8) + 0xc2c));\n *(int *)(iVar20 + 4) = *(int *)(iVar20 + 4) + 1;\n local_2108 = CONCAT22(extraout_var_00,(ushort)*local_20fc);\n iVar13 = FUN_00419b30((void *)(*(int *)(iVar13 + 4 + uVar15 * 8) + 0xc38));\n piVar12 = (int *)(iVar13 + 4);\n iVar13 = local_210c;\n }\n else {\n local_2108 = (uint)*(ushort *)(local_2104 + 0x700);\n piVar12 = (int *)FUN_00419b30((void *)(*(int *)(local_210c + 4 + uVar15 * 8) + 0xc2c));\n *piVar12 = *piVar12 + 1;\n local_2108 = CONCAT22(extraout_var,(ushort)*local_20fc);\n piVar12 = (int *)FUN_00419b30((void *)(*(int *)(iVar13 + 4 + uVar15 * 8) + 0xc38));\n }\n *piVar12 = *piVar12 + 1;\n uVar5 = *(ushort *)(local_2104 + 0x704);\n if (uVar5 < 4) {\n if ((&DAT_004969eb)[(uint)uVar5 * 4] == '\\0') {\n if (*(short *)(pbVar1 + 8) != 0) {\n FUN_004121e0((int *)(&DAT_00496758)[uVar5],*(int *)(iVar13 + 4 + uVar15 * 8),\n \n\n... (truncated)"}Call ghidra_list_strings
Arguments
{
"filepath": "/sandbox/GunBoundServ1.exe",
"filter": "SVC_"
}Tool result
{"result":["0046cf24: \"Service Request: SVC_GOLD(%08X)\\n\"","0046cf48: \"Service Request: SVC_CASH(%08X)\\n\"","0046cf6c: \"Service Request: SVC_ITEM_GIFT(%08X)\\n\"","0046cf94: \"Service Request: SVC_ITEM_CONSUME(%08X)\\n\"","0046cfc0: \"Service Request: SVC_ITEM_BUY(%08X)\\n\"","0046cfe8: \"Service Request: SVC_ITEM_GIFT_CONFIRM(%08X)\\n\"","0046d040: \"Service Request: SVC_ITEM_GIFT_BUY(%08X)\\n\"","0046d06c: \"Service Request: SVC_ITEM_WEAR(%08X)\\n\"","0046d094: \"Service Request: SVC_ITEM_LOCATION(%08X)\\n\"","0046d0c0: \"Service Request: SVC_ITEM_GIFT_MSG(%08X)\\n\"","0046d0ec: \"Service Request: SVC_ITEM(%08X)\\n\"","0046d110: \"Service Request: SVC_CMD_SET_FACTOR(%08X)\\n\"","0046d13c: \"Service Request: SVC_CMD_SET_PASSABLE_AUTH(%08X)\\n\"","0046d1a8: \"Service Request: SVC_CMD_SET_EVENTACTPROB(%08X)\\n\"","0046d1dc: \"Service Request: SVC_CMD_SET_ALLOWEDGUILD(%08X)\\n\"","0046d210: \"Service Request: SVC_CMD_FUNCTION_RESTRICT(%08X)\\n\"","0046d244: \"Service Request: SVC_CMD_GUILDLIMIT(%08X)\\n\"","0046d270: \"Service Request: SVC_CMD_GRADELIMIT(%08X)\\n\"","0046d29c: \"Service Request: SVC_CMD_SETVERSION(%08X)\\n\"","0046d2c8: \"Service Request: SVC_CMD_BCM(%08X)\\n\"","0046d2ec: \"Service Request: SVC_CMD_MOTD(%08X)\\n\"","0046d314: \"Service Request: SVC_CMD_STATUS(%08X)\\n\"","0046d33c: \"Service Request: SVC_COMMAND(%08X)\\n\"","0046d360: \"Service Request: SVC_BCM(%08X)\\n\"","0046d380: \"Service Request: SVC_POLICE_ACCUSE(%08X)\\n\"","0046d3ac: \"Service Request: SVC_TUNNEL(%08X)\\n\"","0046d3d0: \"Service Request: SVC_PLAY_RESULT(%08X)\\n\"","0046d3f8: \"Service Request: SVC_PLAY_END_JEWEL(%08X)\\n\"","0046d424: \"Service Request: SVC_PLAY_RESURRECT(%08X)\\n\"","0046d450: \"Service Request: SVC_PLAY_USER_DEAD(%08X)\\n\"","0046d47c: \"Service Request: SVC_PLAY_DROP_USER(%08X)\\n\"","0046d4a8: \"Service Request: SVC_START_GAME(%08X)\\n\"","0046d4d0: \"Service Request: SVC_ROOM_RETURN_RESULT(%08X)\\n\"","0046d500: \"Service Request: SVC_ROOM_USER_READY(%08X)\\n\"","0046d52c: \"Service Request: SVC_ROOM_SELECT_TEAM(%08X)\\n\"","0046d57c: \"Service Request: SVC_ROOM_SELECT_TANK(%08X)\\n\"","0046d5ac: \"Service Request: SVC_ROOM_KICK_USER(%08X)\\n\"","0046d5d8: \"Service Request: SVC_ROOM_CHANGE_TITLE(%08X)\\n\"","0046d608: \"Service Request: SVC_ROOM_CHANGE_MAXMEN(%08X)\\n\"","0046d638: \"Service Request: SVC_ROOM_CHANGE_USEITEM(%08X)\\n\"","0046d668: \"Service Request: SVC_ROOM_CHANGE_OPTION(%08X)\\n\"","0046d698: \"Service Request: SVC_ROOM_CHANGE_STAGE(%08X)\\n\"","0046d6c8: \"Service Request: SVC_ROOM_JOIN(%08X)\\n\"","0046d6f0: \"Service Request: SVC_ROOM_CREATE(%08X)\\n\"","0046d718: \"Service Request: SVC_QUICKSTART(%08X)\\n\"","0046d740: \"Service Request: SVC_ROOM_DETAIL(%08X)\\n\"","0046d768: \"Service Request: SVC_ROOM_SPECIFIC_LIST(%08X)\\n\"","0046d7c8: \"Service Request: SVC_ROOM_SORTED_LIST(%08X)\\n\"","0046d7f8: \"Service Request: SVC_ROOM_GRANDPRIX_CANCEL(%08X)\\n\"","0046d82c: \"Service Request: SVC_ROOM_GRANDPRIX_BEGIN(%08X)\\n\"","0046d860: \"Service Request: SVC_CHANNEL_MONITOR_STOP(%08X)\\n\"","0046d894: \"Service Request: SVC_CHANNEL_MONITOR(%08X)\\n\"","0046d8c0: \"Service Request: SVC_CHANNEL_CHAT(%08X)\\n\"","0046d8ec: \"Service Request: SVC_LEAVE_WAIT_GAMEROOM(%08X)\\n\"","0046d91c: \"Service Request: SVC_CHANNEL_JOIN(%08X)\\n\"","0046d948: \"Service Request: SVC_GRANDPRIX_LIST(%08X)\\n\"","0046d974: \"Service Request: SVC_USER_NICK(%08X)\\n\"","0046d99c: \"Service Request: SVC_USER_ID(%08X)\\n\"","0046d9c0: \"SVC_REP_AUTHDWORD: CheckAuthDword(code=%p) failed\\n\"","0046d9f4: \"SVC_REP_AUTHDWORD: decryption failed\\n\"","0046da1c: \"SVC_REP_AUTHDWORD: User is not signed in\\n\"","0046da48: \"Service Request: SVC_REP_AUTHDWORD(%08X)\\n\"","0046da74: \"Service Request: SVC_LOGIN/ADMIN(%08X)\\n\""]}Call ghidra_list_strings
Arguments
{
"filepath": "/sandbox/GunBoundServ1.exe",
"filter": "SELECT"
}Tool result
{"result":["00462898: \"SELECT Allow FROM %s WHERE (0x%08X & Mask) = Ip ORDER BY Mask DESC Limit 1\"","00462908: \"SELECT Reason FROM BanLog WHERE Id = '%s' ORDER BY StartTime DESC LIMIT 1\"","0046351c: \"CSvcComm<>::DoListen() - WSAEventSelect(...) failed with %d\\n\"","004637b8: \"udp WSAEventSelect failed with %d\\n\"","00463f44: \"STAGE_0_SELECT_PROBABILITY\"","0046a498: \"MapSlot %d selected for UserSlot %d\\n\"","0046a4c0: \"(SmallMode) MapSlot %d selected for UserSlot %d,OPTION(%d), SIDE(%d) Pos(%d,%d),Team(%d)\\n\"","0046a51c: \"Random Tank %d selected for 2nd tank of slot %d\\n\"","0046a550: \"Random Tank %d selected for 1st tank of slot %d\\n\"","0046a584: \"Normal Random Stage <%d> is selected \\n\"","0046a5ac: \"Random Stage Zero is selected \\n\"","0046ac38: \"SELECT Context, ServerIP, ServerPort FROM CurrentUser WHERE Id='%s'\"","0046af18: \"SELECT Score, Rank, RankOld, Win, Lose FROM GrandPrix_Personal WHERE User='%s'\"","0046af90: \"SELECT u.Nickname, g.ScoreOnCalc, g.Rank, g.RankOld, g.Win, g.Lose FROM GrandPrix_Personal AS g INNER JOIN GunWCUser AS u ON g.User=u.Id WHERE g.Rank > 0 ORDER BY g.Rank DESC LIMIT %d\"","0046b048: \"SELECT Category, ScoreOnCalc, Rank, RankOld, Win, Lose FROM GrandPrix_Group WHERE Rank > 0 ORDER BY Rank DESC\"","0046b2ac: \"SELECT ClientData FROM Game WHERE Id='%s'\"","0046b320: \"SELECT Money FROM Game WHERE Id='%s'\"","0046b5e8: \"SELECT Guild, TotalGrade, SeasonGrade, MemberCount, TotalRank, SeasonRank, GuildRank, AccumShot, AccumDamage, TotalScore, SeasonScore, Money, EventScore0, EventScore1, EventScore2, EventScore3, UNIX_TIMESTAMP(GiftProhibitTime),ClientData, Country, CountryGrade, CountryRank FROM Game WHERE Id='%s'\"","0046b7f0: \"SELECT Id, Nickname FROM GunWcUser WHERE Id IN (\"","0046b848: \"SELECT Id, Nickname FROM gunwcuser WHERE Nickname IN (\"","0046b89c: \"SELECT Item FROM Chest WHERE No=%d\"","0046b8c0: \"INSERT INTO ReceiptGift (Id, Item, Expire, Volume, Receiver, ReceiverNick, Time) SELECT '%s', Item, Expire, Volume, Owner, '%s', NOW() FROM Chest WHERE No=%d\"","0046bb2c: \"SELECT Refund_%c FROM Item WHERE No=%d\"","0046bb58: \"SELECT Item, Acquisition, Volume, Recovered, ExpireType, UNIX_TIMESTAMP(Expire)-UNIX_TIMESTAMP() FROM Chest WHERE No=%d AND Owner='%s'\"","0046bce8: \"SELECT Sender,ReceiptGiftNo,Acquisition FROM GiftItem WHERE No=%d and Receiver='%s'\"","0046bd40: \"SELECT No,MenuId,ExpireType FROM GiftMsg WHERE Receiver='%s' and GiftItemNo = %d\"","0046be98: \"INSERT INTO ReceiptGift (Id, MenuId, Volume, Receiver, ReceiverNick, Time, Result, ExpireType) SELECT '%s', %d, Volume1, '%s', '%s', NOW(), 'R', '%c' FROM Menu WHERE No=%d\"","0046c120: \"SELECT Item1, Period1, Volume1, Item2, Period2, Volume2, Item3, Period3, Volume3, Item4, Period4, Volume4, Item5, Period5, Volume5, %s%c FROM Menu WHERE No=%d\"","0046c1f4: \"SELECT Item FROM Chest WHERE Owner='%s' AND Wearing=1 \"","0046c340: \"SELECT No, MenuId, Sender, UNIX_TIMESTAMP(SentTime), Msg, MsgType, ExpireType, GiftItemNo FROM GiftMsg WHERE Receiver='%s'\"","0046c3f8: \"SELECT No, Item, Wearing, Acquisition, UNIX_TIMESTAMP(Expire)-UNIX_TIMESTAMP(), Volume, PlaceOrder, Recovered FROM Chest WHERE Owner='%s'\"","0046c85c: \"SELECT Mobile, Win, Lose FROM MobileRecord WHERE Id='%s'\"","0046c898: \"SELECT Stage, Win, Lose FROM StageRecord WHERE Id='%s'\"","0046d52c: \"Service Request: SVC_ROOM_SELECT_TEAM(%08X)\\n\"","0046d55c: \"'%s' selected hidden mobile\\n\"","0046d57c: \"Service Request: SVC_ROOM_SELECT_TANK(%08X)\\n\"","0046dcb0: \"SELECT Cash FROM Cash WHERE Id='%s'\"","0046dd50: \"SELECT g.Authority, UNIX_TIMESTAMP(g.RestrictTime), u.Gender, u.Password, g.Nickname \"","0046ddc4: \"SELECT Gender FROM User WHERE Id='%s'\"","0047046c: \"WSAEventSelect\""]}Call ghidra_list_strings
Arguments
{
"filepath": "/sandbox/GunBoundServ1.exe",
"filter": "UPDATE"
}Tool result
{"result":["00462b00: \"INSERT DELAYED INTO AbnormalUpdate SET Master='%s', Id='%s', ScoreDelta=%d, MoneyDelta=%d, Time=NOW()\"","00462b68: \"AdminDB] ADBIN_ABNORMALUPDATELOG\\n\"","0046acb0: \"UPDATE Collection SET _%d=_%d+1 WHERE User='%s'\"","0046ad88: \"UPDATE GrandPrix_Personal SET Score=Score+%d, Lose=Lose+1 WHERE User='%s'\"","0046add8: \"UPDATE GrandPrix_Personal SET Score=Score+%d, Win=Win+1 WHERE User='%s'\"","0046ae20: \"GunboundDB] GDBIN_GRANDPRIX_PERSONAL_UPDATE\\n\"","0046ae50: \"UPDATE GrandPrix_Group SET Score=Score+%d, Lose=Lose+1 WHERE Category=%d\"","0046aea0: \"UPDATE GrandPrix_Group SET Score=Score+%d, Win=Win+1 WHERE Category=%d\"","0046aee8: \"GunboundDB] GDBIN_GRANDPRIX_GROUP_UPDATE\\n\"","0046b0e0: \"UPDATE Game SET EventScore%d = EventScore%d + %d WHERE Id='%s'\"","0046b1ac: \"UPDATE Game SET NoRankUpdate=1 WHERE Id='%s'\"","0046b260: \" , LastUpdateTime=NOW() WHERE Id='\"","0046b284: \"GunboundDB] GDBIN_UPDATE_CLIENTDATA\\n\"","0046b348: \"UPDATE Game SET Money=Money+%d WHERE Id='%s'\"","0046b390: \"LastUpdateTime=NOW() WHERE Id='\"","0046b448: \"UPDATE Game SET \"","0046b738: \"UPDATE GunWcUser SET RestrictTime=NOW()+INTERVAL %d SECOND WHERE Id='%s'\"","0046b788: \"UPDATE GunWcUser SET AuthorityBackup=Authority, Authority=%d WHERE Id='%s'\"","0046b9b8: \"UPDATE Chest SET Owner='%s', Wearing=0, Acquisition='T', PlaceOrder=NULL WHERE No=%d AND Owner='%s' AND (Acquisition='C' OR Acquisition='G') AND Recovered=0\"","0046baec: \"UPDATE Chest SET Volume=Volume-%d WHERE No=%d AND Owner='%s'\"","0046bc10: \"UPDATE ReceiptGift Set Result='%c',ConfirmTime=Now() WHERE No=%d and Id='%s'\"","0046bc88: \"UPDATE GiftMsg Set MsgType='%c',Receiver='%s',Sender='%s' WHERE No=%d\"","0046bdc4: \"UPDATE ReceiptBuy Set ReceiptGiftNo=%d where No=%d\"","0046be60: \"UPDATE GiftItem Set ReceiptGiftNo=%d where No=%d\"","0046c22c: \"UPDATE Chest SET Wearing=%d WHERE No=%d AND Owner='%s'\"","0046c278: \"UPDATE Chest SET PlaceOrder=%u WHERE No=%d AND Owner='%s'\"","0046c768: \"UPDATE MobileRecord SET Win=Win+%d, Lose=Lose+%d WHERE Id='%s' AND Mobile=%d\"","0046c7f8: \"UPDATE StageRecord SET Win=Win+%d, Lose=Lose+%d WHERE Id='%s' AND Stage=%d\"","0046ccb8: \"ADMIN>> Failed to update Admin database while banning '%s'\\n\"","0046ccf4: \"ADMIN>> Failed to update Gunbound database while banning '%s'\\n\"","0046cd34: \"ADMIN>> Failed to update User database while banning '%s'\\n\"","0046de30: \"UPDATE Cash SET Cash=Cash-%d WHERE Id='%s' AND Cash>=%d\""]}Call ghidra_list_strings
Arguments
{
"filepath": "/sandbox/GunBoundServ1.exe",
"filter": "INSERT"
}Tool result
{"result":["00462978: \"INSERT DELAYED INTO BanLog SET Id='%s', StartTime=NOW(), Duration=%d, Reason='\"","004629f0: \"INSERT DELAYED INTO Accuse SET Accuse='%s', ServerIp=%u, ServerPort=%u, Accused='%s', Time=NOW(), Complaint='\"","00462a78: \"INSERT DELAYED INTO EventLog SET Id='%s', Code=%u, AcquiredScore=%d, Time=NOW(), ServerIp=%u, ServerPort=%u\"","00462b00: \"INSERT DELAYED INTO AbnormalUpdate SET Master='%s', Id='%s', ScoreDelta=%d, MoneyDelta=%d, Time=NOW()\"","00462c6c: \"INSERT DELAYED INTO PlayLog SET \"","00462ca8: \"INSERT DELAYED INTO DropLog SET Id='%s', Dropper='%s', Time=NOW()\"","00462d08: \"INSERT DELAYED INTO LoginLog (Id, Ip, Ip_v, Port, Port_v, Time, ServerIp, ServerPort) VALUES ('%s', %u, %u, %u, %u, NOW(), %u, %u)\"","0046ac84: \"INSERT INTO Collection SET _%d=1, User='%s'\"","0046ad04: \"INSERT INTO GrandPrix_Personal SET Score=%d, Lose=1, User='%s'\"","0046ad44: \"INSERT INTO GrandPrix_Personal SET Score=%d, Win=1, User='%s'\"","0046b520: \"INSERT INTO CurrentUser SET Id='%s', Context=%d, ServerIP=%d, ServerPort=%d, LoggingTime=NOW()\"","0046b588: \"insert into Game set id='%s', TotalGrade=19, SeasonGrade = 19, TotalScore=1000, Money=200000 \"","0046b8c0: \"INSERT INTO ReceiptGift (Id, Item, Expire, Volume, Receiver, ReceiverNick, Time) SELECT '%s', Item, Expire, Volume, Owner, '%s', NOW() FROM Chest WHERE No=%d\"","0046b960: \"INSERT INTO GiftMsg SET Receiver='%s', ItemId=%d, Sender='%s', SentTime=NOW(), Msg='%s'\"","0046ba70: \"INSERT INTO ReceiptConsume SET Id='%s', Item=%d, Volume=%u, Recovered=%d, Refund=%u, Time=NOW(), ExpireType='%c', Expire=%d\"","0046bdf8: \"INSERT INTO ReceiptBuy SET Id='%s', MenuId=%d, %sChecked=%d, BuyType='G', Time=NOW(), ExpireType='%c'\"","0046be98: \"INSERT INTO ReceiptGift (Id, MenuId, Volume, Receiver, ReceiverNick, Time, Result, ExpireType) SELECT '%s', %d, Volume1, '%s', '%s', NOW(), 'R', '%c' FROM Menu WHERE No=%d\"","0046bf48: \"INSERT INTO GiftMsg SET Receiver='%s', MenuId=%d, GiftItemNo=%d, Sender='%s', ExpireType='%c', SentTime=NOW(), Msg='%s', MsgType='G'\"","0046bff4: \"INSERT INTO GiftItem SET \"","0046c030: \"INSERT INTO ReceiptBuy SET Id='%s', MenuId=%d, %sChecked=%d, Time=NOW(), BuyType='S', ExpireType='%c'\"","0046c104: \"INSERT INTO Chest SET \"","0046c498: \"INSERT INTO UserCount (SerialNo, ServerIp, ServerPort, Time, UserCount) VALUES (%u, %u, %u, NOW(), %d)\"","0046c500: \"INSERT INTO ServiceStatus (SerialNo, Time, ServerIp, ServerPort, Status) VALUES (%u, NOW(), %u, %u, 'T')\"","0046c570: \"INSERT INTO ServiceStatus (SerialNo, Time, ServerIp, ServerPort, Status) VALUES (%u, NOW(), %u, %u, 'S')\"","0046c608: \"INSERT INTO BuyInfo (SerialNo, MenuNo, Price, Asset, BuyType,Time) VALUES (%u, %d, %d, %d, '%c', NOW())\"","0046c690: \"INSERT INTO BuyInfo (SerialNo, MenuNo, Price, Asset, BuyType,Time) VALUES (%u, %d, %d, %d, '%c', '%s')\\n\"","0046c720: \"INSERT INTO MobileRecord SET Win=%d, Lose=%d, Id='%s', Mobile=%d\"","0046c7b8: \"INSERT INTO StageRecord SET Win=%d, Lose=%d, Id='%s', Stage=%d\""]}Call ghidra_list_strings
Arguments
{
"filepath": "/sandbox/GunBoundServ1.exe",
"filter": "Setting"
}Tool result
{"result":["00463f94: \"Setting.txt\""]}Call ghidra_list_strings
Arguments
{
"filepath": "/sandbox/GunBoundServ1.exe",
"filter": "0x",
"limit": 20
}Tool result
{"result":["00462898: \"SELECT Allow FROM %s WHERE (0x%08X & Mask) = Ip ORDER BY Mask DESC Limit 1\"","00463120: \"Generated Uniq Value is 0x%08x\\n\"","0046e1e8: \"%s (0x%X)\""]}Call ghidra_list_strings
Arguments
{
"filepath": "/sandbox/GunBoundServ1.exe",
"filter": "DB",
"limit": 50
}Tool result
{"result":["004600d0: \"ios_base::badbit set\"","004628ec: \"AdminDB] ADBIN_CHECK_IP\\n\"","00462954: \"AdminDB] ADBIN_BANREASON\\n\"","004629c8: \"AdminDB] ADBIN_BANLOG\\n\"","00462a60: \"AdminDB] ADBIN_ACCUSE\\n\"","00462ae4: \"AdminDB] ADBIN_EVENTLOG\\n\"","00462b68: \"AdminDB] ADBIN_ABNORMALUPDATELOG\\n\"","00462c90: \"AdminDB] ADBIN_PLAYLOG\\n\"","00462cec: \"AdminDB] ADBIN_DROPLOG\\n\"","00462d8c: \"AdminDB] ADBIN_LOGINLOG\\n\"","00463140: \"dbthread ended. (thread=%d, request=%d)\\n\"","00463188: \"dbthread started. (thread=%d, request=%d)\\n\"","004631f0: \"CSvcDatabase<>::BeginDbThread() >> _beginthreadex failed with %d\\n\"","004638fc: \"SqlErr-PartnerAgentDB.txt\"","0046396c: \"ItemDB_Port\"","00463978: \"ItemDB_DB\"","00463984: \"ItemDB_Pwd\"","00463990: \"ItemDB_User\"","0046399c: \"ItemDB_Host\"","004639bc: \"RecordDB_Port\"","004639cc: \"RecordDB_DB\"","004639d8: \"RecordDB_Pwd\"","004639e8: \"RecordDB_User\"","004639f8: \"RecordDB_Host\"","00463a1c: \"GunboundDB_Port\"","00463a2c: \"GunboundDB_DB\"","00463a3c: \"GunboundDB_Pwd\"","00463a4c: \"GunboundDB_User\"","00463a5c: \"GunboundDB_Host\"","00463a84: \"GunWcUserDB_Port\"","00463a98: \"GunWcUserDB_DB\"","00463aa8: \"GunWcUserDB_Pwd\"","00463ab8: \"GunWcUserDB_User\"","00463acc: \"GunWcUserDB_Host\"","00463af0: \"UserDB_Port\"","00463afc: \"UserDB_DB\"","00463b08: \"UserDB_Pwd\"","00463b14: \"UserDB_User\"","00463b20: \"UserDB_Host\"","00463b40: \"AdminDB2_Port\"","00463b50: \"AdminDB2_DB\"","00463b5c: \"AdminDB2_Pwd\"","00463b6c: \"AdminDB2_User\"","00463b7c: \"AdminDB2_Host\"","00463ba0: \"AdminDB_Port\"","00463bb0: \"AdminDB_DB\"","00463bbc: \"AdminDB_Pwd\"","00463bc8: \"AdminDB_User\"","00463bd8: \"AdminDB_Host\"","00469638: \"CSvcComm<>::SetSocketOption() - setsockopt(SO_SNDBUF) failed with %d\\n\""]}Call ghidra_list_strings
Arguments
{
"filepath": "/sandbox/GunBoundServ1.exe",
"filter": "Password"
}Tool result
{"result":["0046dc6c: \"Password : \"","0046dd50: \"SELECT g.Authority, UNIX_TIMESTAMP(g.RestrictTime), u.Gender, u.Password, g.Nickname \"","00471298: \"password\""]}