Function at 0x401000
Capabilities:
Accept command line arguments
Check if file exists
Check os version
Create process on windows
Print debug messages
Set current directory

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x11ec
call fcn.00401cf0
mov eax, dword [0x415ee4]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov ax, word [0x417810]
mov word [ebp - 0x71c], ax
push 0x206
push 0
lea ecx, [ebp - 0x71a]
push ecx
call fcn.00402760
add esp, 0xc
mov edx, dword [0x415004]
mov dword [ebp - 0x414], edx
mov eax, dword [0x415008]
mov dword [ebp - 0x410], eax
mov ecx, dword [0x41500c]
mov dword [ebp - 0x40c], ecx
mov edx, dword [0x415010]
mov dword [ebp - 0x408], edx
push 0x1f8
push 0
lea eax, [ebp - 0x404]
push eax
call fcn.00402760
add esp, 0xc
mov cx, word [0x417814]
mov word [ebp - 0x924], cx
push 0x206
push 0
lea edx, [ebp - 0x922]
push edx
call fcn.00402760
add esp, 0xc
mov dword [ebp - 0x1198], 0
mov dword [ebp - 0x119c], 0
mov dword [ebp - 0x11a0], 0
mov dword [ebp - 0x11a4], 0
mov dword [ebp - 0x1154], 0
mov dword [ebp - 0x1150], 0
mov dword [ebp - 0x11a8], 0
mov dword [ebp - 0x1174], 1
mov dword [ebp - 0x1158], 1
mov ecx, 8
mov esi, str.vcruntime140.dll
lea edi, [ebp - 0xd2c]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0x1e6
push 0
lea eax, [ebp - 0xd0a]
push eax
call fcn.00402760
add esp, 0xc
mov dword [ebp - 0x1194], 0
mov dword [ebp - 0x1190], 0
mov dword [ebp - 0x1148], 0x114
lea ecx, [ebp - 0x1148]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x401176
push 0x10
push 0x415038
push str.A_Windows_verzi
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, 1
jmp 0x401ab3
cmp dword [ebp - 0x1138], 2
jne 0x40119a
cmp dword [ebp - 0x1144], 4
jbe 0x40119a
cmp dword [ebp - 0x1144], 5
jne 0x4011b8
cmp dword [ebp - 0x1140], 1
jae 0x4011b8
push 0x10
push 0x4150c4
push str.A_program_csak_Windows_XP_vagy
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, 2
jmp 0x401ab3
lea edx, [ebp - 0x1188]
push edx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov dword [ebp - 0x1150], eax
cmp dword [ebp - 0x1150], 0
je 0x401487
mov dword [ebp - 0x114c], 1
jmp 0x4011fa
mov eax, dword [ebp - 0x114c]
add eax, 1
mov dword [ebp - 0x114c], eax
mov ecx, dword [ebp - 0x114c]
cmp ecx, dword [ebp - 0x1188]
jge 0x40147a
mov edx, 2
imul eax, edx, 0
mov ecx, dword [ebp - 0x114c]
mov edx, dword [ebp - 0x1150]
mov ecx, dword [edx + ecx*4]
movzx edx, word [ecx + eax]
cmp edx, 0x2f
je 0x401250
mov eax, 2
imul ecx, eax, 0
mov edx, dword [ebp - 0x114c]
mov eax, dword [ebp - 0x1150]
mov edx, dword [eax + edx*4]
movzx eax, word [edx + ecx]
cmp eax, 0x2d
jne 0x401475
push 0x415180
mov ecx, 2
shl ecx, 0
mov edx, dword [ebp - 0x114c]
mov eax, dword [ebp - 0x1150]
add ecx, dword [eax + edx*4]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x4012e6
mov ecx, dword [ebp - 0x114c]
mov edx, dword [ebp - 0x1150]
cmp dword [edx + ecx*4 + 4], 0
je 0x4012e6
push 0x104
mov eax, dword [ebp - 0x114c]
mov ecx, dword [ebp - 0x1150]
mov edx, dword [ecx + eax*4 + 4]
push edx
lea eax, [ebp - 0x71c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
mov ecx, 2
imul edx, ecx, 0x103
mov dword [ebp - 0x115c], edx
cmp dword [ebp - 0x115c], 0x208
jae 0x4012cc
jmp 0x4012d1
call fcn.00401bfe
xor eax, eax
mov ecx, dword [ebp - 0x115c]
mov word [ebp + ecx - 0x71c], ax
jmp 0x40147a
push str.apppath
mov edx, 2
shl edx, 0
mov eax, dword [ebp - 0x114c]
mov ecx, dword [ebp - 0x1150]
add edx, dword [ecx + eax*4]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x40137c
mov edx, dword [ebp - 0x114c]
mov eax, dword [ebp - 0x1150]
cmp dword [eax + edx*4 + 4], 0
je 0x40137c
push 0x104
mov ecx, dword [ebp - 0x114c]
mov edx, dword [ebp - 0x1150]
mov eax, dword [edx + ecx*4 + 4]
push eax
lea ecx, [ebp - 0x414]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
mov edx, 2
imul eax, edx, 0x103
mov dword [ebp - 0x1160], eax
cmp dword [ebp - 0x1160], 0x208
jae 0x401362
jmp 0x401367
call fcn.00401bfe
xor ecx, ecx
mov edx, dword [ebp - 0x1160]
mov word [ebp + edx - 0x414], cx
jmp 0x40147a
push str.server
mov eax, 2
shl eax, 0
mov ecx, dword [ebp - 0x114c]
mov edx, dword [ebp - 0x1150]
add eax, dword [edx + ecx*4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x40140f
mov eax, dword [ebp - 0x114c]
mov ecx, dword [ebp - 0x1150]
cmp dword [ecx + eax*4 + 4], 0
je 0x40140f
push 0x104
mov edx, dword [ebp - 0x114c]
mov eax, dword [ebp - 0x1150]
mov ecx, dword [eax + edx*4 + 4]
push ecx
lea edx, [ebp - 0x924]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
mov eax, 2
imul ecx, eax, 0x103
mov dword [ebp - 0x1164], ecx
cmp dword [ebp - 0x1164], 0x208
jae 0x4013f8
jmp 0x4013fd
call fcn.00401bfe
xor edx, edx
mov eax, dword [ebp - 0x1164]
mov word [ebp + eax - 0x924], dx
jmp 0x40147a
push str.dpiaware
mov ecx, 2
shl ecx, 0
mov edx, dword [ebp - 0x114c]
mov eax, dword [ebp - 0x1150]
add ecx, dword [eax + edx*4]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x401442
mov dword [ebp - 0x1158], 1
jmp 0x40147a
push str.dpiunaware
mov ecx, 2
shl ecx, 0
mov edx, dword [ebp - 0x114c]
mov eax, dword [ebp - 0x1150]
add ecx, dword [eax + edx*4]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x401475
mov dword [ebp - 0x1158], 0
jmp 0x40147a
jmp 0x4011eb
mov ecx, dword [ebp - 0x1150]
push ecx
call dword [sym.imp.KERNEL32.dll_LocalFree]
push 0x1058
push 0
push 0x4167b8
call fcn.00402760
add esp, 0xc
mov edx, dword [section..data]
mov eax, dword [ebp + 0x14]
mov dword [edx], eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov ecx, dword [section..data]
mov dword [ecx + 0xa34], eax
push str.network.cfg
mov edx, dword [section..data]
add edx, 0x82c
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push str.textlib.ini
mov eax, dword [section..data]
add eax, 0x41c
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x104
mov ecx, dword [section..data]
add ecx, 0xc
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, dword [section..data]
add eax, 0xc
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov ecx, dword [section..data]
add ecx, 0xc
push ecx
mov edx, dword [section..data]
add edx, 0x214
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x41520c
mov eax, dword [section..data]
add eax, 0x214
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov ecx, 2
imul edx, ecx, 0
movzx eax, word [ebp + edx - 0x71c]
test eax, eax
je 0x4015ed
mov ecx, dword [section..data]
add ecx, 0x214
push ecx
mov edx, dword [section..data]
add edx, 0xa3c
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push str.backup
mov eax, dword [section..data]
add eax, 0xa3c
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x71c]
push ecx
mov edx, dword [section..data]
add edx, 0xa3c
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov eax, dword [section..data]
add eax, 0xa3c
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x4015d8
mov ecx, 2
imul edx, ecx, 0
xor eax, eax
mov ecx, dword [section..data]
mov word [ecx + edx + 0xa3c], ax
jmp 0x4015ed
mov edx, dword [section..data]
mov eax, dword [edx + 4]
or eax, 0x40
mov ecx, dword [section..data]
mov dword [ecx + 4], eax
mov edx, dword [section..data]
add edx, 0x214
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
jne 0x401622
push 0x10
push 0x415224
push str.wlm_k
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, 3
jmp 0x401ab3
mov eax, dword [section..data]
add eax, 0x214
mov ecx, 4
imul edx, ecx, 0
mov dword [ebp + edx - 0x1194], eax
lea eax, [ebp - 0x1194]
push eax
lea ecx, [ebp - 0xd2c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFindOnPathW]
test eax, eax
jne 0x401819
push 0x44
push 0
lea edx, [ebp - 0x11ec]
push edx
call fcn.00402760
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x1184], eax
mov dword [ebp - 0x1180], eax
mov dword [ebp - 0x117c], eax
mov dword [ebp - 0x1178], eax
mov dword [ebp - 0x1168], 0
push 0x308
push 0
lea ecx, [ebp - 0x1034]
push ecx
call fcn.00402760
add esp, 0xc
push 0x34
push 0x415294
push 0x4152d0
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 7
jne 0x4016c7
mov eax, 6
jmp 0x401ab3
mov edx, dword [section..data]
add edx, 0x214
push edx
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push str.tlupdate.exe
lea ecx, [ebp - 0x20c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea edx, [ebp - 0x20c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x401722
push 0x10
push 0x415838
push str.A_rendszeren_nincs_telep
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, 6
jmp 0x401ab3
mov eax, dword [section..data]
add eax, 0x214
push eax
push 0x4159ec
lea ecx, [ebp - 0x1034]
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea edx, [ebp - 0x1184]
push edx
lea eax, [ebp - 0x11ec]
push eax
push 0
push 0
push 0x20
push 1
push 0
push 0
lea ecx, [ebp - 0x1034]
push ecx
lea edx, [ebp - 0x20c]
push edx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x4017b0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x415a20
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0x10
push 0x415b18
lea ecx, [ebp - 0x20c]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, 6
jmp 0x401ab3
push 0xffffffffffffffff
mov edx, dword [ebp - 0x1184]
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [ebp - 0x1168]
push eax
mov ecx, dword [ebp - 0x1184]
push ecx
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov edx, dword [ebp - 0x1184]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x1180]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x1168], 0
je 0x401814
push 0x10
push 0x415b50
push str.Hiba_l
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, 6
jmp 0x401ab3
jmp 0x40163b
mov ecx, dword [section..data]
mov edx, dword [ecx + 4]
and edx, 0x40
je 0x401868
mov eax, dword [section..data]
add eax, 0xa3c
push eax
lea ecx, [ebp - 0x20c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x415cac
lea edx, [ebp - 0x20c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 8
push 0
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [ebp - 0x1154], eax
cmp dword [ebp - 0x1154], 0
jne 0x401913
mov ecx, dword [section..data]
add ecx, 0x214
push ecx
lea edx, [ebp - 0x20c]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push str.wclient.wlm
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 8
push 0
lea ecx, [ebp - 0x20c]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [ebp - 0x1154], eax
cmp dword [ebp - 0x1154], 0
jne 0x401913
push 0x200
push 0
lea edx, [ebp - 0xb24]
push edx
call fcn.00402760
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.wclient.wlm_nem_bet
lea eax, [ebp - 0xb24]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0x10
push 0x415d3c
lea ecx, [ebp - 0xb24]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, 4
jmp 0x401ab3
mov edx, dword [section..data]
mov eax, dword [edx + 4]
or eax, 0x80
mov ecx, dword [section..data]
mov dword [ecx + 4], eax
lea edx, [ebp - 0x414]
push edx
push 0x417400
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov eax, 2
imul ecx, eax, 0
movzx edx, word [ebp + ecx - 0x924]
test edx, edx
je 0x401979
mov eax, dword [section..data]
mov ecx, dword [eax + 4]
or ecx, 0x3000
mov edx, dword [section..data]
mov dword [edx + 4], ecx
lea eax, [ebp - 0x924]
push eax
push 0x417608
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push str.StartProgram
mov ecx, dword [ebp - 0x1154]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x1170], eax
cmp dword [ebp - 0x1170], 0
jne 0x4019c5
push 0x10
push str.TextLib_Windows_Kliens_hiba
push str.A_hivatkozott_elj
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov edx, dword [ebp - 0x1154]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, 5
jmp 0x401ab3
cmp dword [ebp - 0x1158], 0
je 0x401a4b
push str.user32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [ebp - 0x118c], eax
push str.SetProcessDpiAwarenessContext
mov eax, dword [ebp - 0x118c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x116c], eax
cmp dword [ebp - 0x116c], 0
je 0x401a4b
push 0xfffffffffffffffe
call dword [ebp - 0x116c]
test eax, eax
jne 0x401a4b
push 0x100
push 0
lea ecx, [ebp - 0x514]
push ecx
call fcn.00402760
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.TWKLIENS:_SetProcessDpiAwarenessContext_failed__GetLastError_____d_n
lea edx, [ebp - 0x514]
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [ebp - 0x514]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov ecx, dword [section..data]
push ecx
call dword [ebp - 0x1170]
add esp, 4
mov dword [ebp - 0x1174], eax
mov edx, dword [ebp - 0x1154]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 0x1154], 0
mov eax, dword [section..data]
add eax, 0x214
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov ecx, dword [section..data]
cmp dword [ecx + 0xa38], 0
je 0x401aad
mov edx, dword [section..data]
mov dword [edx + 0xa38], 0
jmp 0x401487
mov eax, dword [ebp - 0x1174]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401cd8
mov esp, ebp
pop ebp
ret 0x10