Function at 0x402ce0
Capabilities:
Access peb ldr_data
Query or enumerate registry value

Disassembly:
push 0xffffffffffffffff
push 0x40412c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x340
mov dx, word [0x408478]
push ebx
push esi
push edi
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0x3a]
mov word [esp + 0x38], dx
rep stosd dword es:[edi], eax
mov ecx, 0x20
lea edi, [esp + 0xc2]
mov word [esp + 0xc0], dx
xor ebx, ebx
rep stosd dword es:[edi], eax
mov ecx, 0x10
lea edi, [esp + 0x80]
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x10], ebx
rep stosd dword es:[edi], eax
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0xc]
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], 0x40
mov dword [esp + 0x28], ebx
mov dword [esp + 0x34], eax
call fcn.00403cb2
lea ecx, [esp + 0x14]
mov dword [esp + 0x354], ebx
mov dword [esp + 0x24], ebx
call fcn.00403cb2
mov cx, word [0x408478]
xor eax, eax
mov word [esp + 0x144], cx
mov ecx, 0x81
lea edi, [esp + 0x146]
lea edx, [esp + 0x144]
rep stosd dword es:[edi], eax
push 0x104
push edx
push ebx
mov byte [esp + 0x360], 1
stosw word es:[edi], ax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x402dc8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x40307e
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
lea eax, [esp + 0x18]
push eax
push str.SOFTWAREUbeisoftVES0100Common
push 0x80000002
call esi
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x402e07
lea ecx, [esp + 0x18]
push ecx
push str.SOFTWAREUbeisoftVES0100Client
push 0x80000002
call esi
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x402e07
mov esi, eax
jmp 0x40307e
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea edx, [esp + 0x1c]
lea eax, [esp + 0xc0]
push edx
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x28]
push eax
push ecx
push ebx
push str.LGPW
push edx
mov dword [esp + 0x34], 0x80
call esi
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x402e4c
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x40307a
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x28]
push edx
push eax
push ebx
push str.LGUN
push ecx
mov dword [esp + 0x34], 0x40
call esi
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x402e8b
lea edx, [esp + 0x38]
push str._ves_user_
push edx
call dword [sym.imp.MSVCRT.dll_wcscpy]
add esp, 8
push 0x230
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
cmp esi, ebx
jne 0x402eb8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x40307a
push 0x20
push 0x4074a0
push esi
call fcn.00401ec0
push ebx
lea ecx, [esp + 0xc4]
push 0x40
lea edx, [esp + 0xc8]
push ecx
push edx
push esi
call fcn.00402060
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.advapi32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
cmp esi, ebx
jne 0x402f0e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x40307e
push str.CreateProcessWithLogonW
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
cmp edi, ebx
jne 0x402f36
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
mov dword [esp + 0x14], eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x40307a
mov esi, dword [esp + 0x35c]
cmp esi, ebx
je 0x402f44
push esi
jmp 0x402f4c
lea ecx, [esp + 0x144]
push ecx
lea ecx, [esp + 0x10]
call sub.MFC42u.DLL_CString::operator
mov edx, dword [esp + 0xc]
mov ax, word [edx]
cmp ax, 0x22
jne 0x402fa8
push 1
push 0x22
lea ecx, [esp + 0x14]
call sub.MFC42u.DLL_CString::Find
cmp eax, ebx
jle 0x402fa8
dec eax
lea ecx, [esp + 0xc]
push eax
lea eax, [esp + 0x24]
push 1
push eax
call sub.MFC42u.DLL_CString::Mid
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x358], 2
call sub.MFC42u.DLL_CString::operator_1
lea ecx, [esp + 0x20]
mov byte [esp + 0x354], 1
call sub.MFC42u.DLL_CString::CString
push 0x5c
lea ecx, [esp + 0x10]
call sub.MFC42u.DLL_CString::ReverseFind
cmp eax, ebx
jle 0x402fe9
lea ecx, [esp + 0x20]
push eax
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42u.DLL_CString::Left
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x358], 3
call sub.MFC42u.DLL_CString::operator_1
lea ecx, [esp + 0x20]
mov byte [esp + 0x354], 1
call sub.MFC42u.DLL_CString::CString
cmp esi, ebx
mov dword [esp + 0x7c], 0x44
je 0x403000
mov edx, dword [esp + 0x360]
push edx
push esi
jmp 0x403010
mov ecx, dword [esp + 0x360]
lea edx, [esp + 0x144]
push ecx
push edx
lea eax, [esp + 0x1c]
push str._s__s
push eax
call sub.MFC42u.DLL_CString::Format
mov eax, dword [esp + 0x1c]
add esp, 0x10
lea ecx, [esp + 0x28]
lea edx, [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x18]
push edx
push eax
push ebx
push ebx
push ecx
push ebx
lea edx, [esp + 0xdc]
push 1
push edx
lea eax, [esp + 0x5c]
push ebx
push eax
call edi
test eax, eax
je 0x403070
mov ecx, dword [esp + 0x28]
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x10]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
jne 0x40307a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x14]
mov byte [esp + 0x354], bl
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0xc]
mov dword [esp + 0x354], 0xffffffff
call sub.MFC42u.DLL_CString::CString
mov ecx, dword [esp + 0x34c]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x34c
ret 8