Function at 0x401000
Capabilities:
Check os version
Hide graphical window
Set current directory

Disassembly:
sub esp, 0x2c0
push ebx
push ebp
mov ebp, dword [sym.imp.USER32.dll_LoadIconA]
push esi
mov esi, dword [esp + 0x2d0]
push edi
push 0x65
push esi
mov dword [0x4143fc], esi
call ebp
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
mov dword [0x414408], eax
mov eax, dword [0x4143fc]
push 0x200
push 0x4163c0
push 1
push eax
call edi
mov ecx, dword [0x4143fc]
push 0x200
push 0x4165c0
push 2
push ecx
call edi
mov edx, dword [0x4143fc]
push 0x200
mov ebx, 3
push 0x4167c0
push ebx
push edx
call edi
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], 0x94
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
and eax, 0xffff
cmp ecx, 1
jne 0x4010d0
cmp edx, 4
ja 0x4010ad
jne 0x4010d0
test edi, edi
jbe 0x4010d0
cmp eax, 0x8ae
mov byte [0x41600c], 4
jb 0x4010c2
mov byte [0x41600c], 6
cmp eax, 0x960
jb 0x4010d0
mov byte [0x41600c], 7
cmp ecx, 1
jne 0x4010e4
cmp edx, 4
jne 0x4010e4
test edi, edi
jne 0x4010e4
mov byte [0x41600c], bl
cmp ecx, 2
jne 0x401105
cmp edx, 4
jne 0x4010f5
mov byte [0x41600c], 1
cmp ecx, 2
jne 0x401105
cmp edx, 5
jne 0x401105
mov byte [0x41600c], cl
mov ecx, dword [esp + 0x2dc]
mov byte [0x416340], 0
push ecx
call fcn.00402bb0
add esp, 4
mov dword [0x415ba4], ebx
xor ebx, ebx
mov dword [0x415ba0], 0x30
push 0x7f00
push ebx
mov dword [0x415ba8], 0x4014b0
mov dword [0x415bac], ebx
mov dword [0x415bb0], ebx
mov dword [0x415bb4], esi
call ebp
push 0x7f00
push ebx
mov dword [0x415bb8], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
push ebx
mov dword [0x415bbc], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
push 0x415ba0
mov dword [0x415bc0], eax
mov dword [0x415bc4], ebx
mov dword [0x415bc8], 0x410218
call dword [sym.imp.USER32.dll_RegisterClassExA]
cmp dword [0x414438], ebx
je 0x40129e
mov edx, dword [str.ltremove.exe]
mov eax, dword [0x410358]
mov ecx, dword [0x41035c]
mov dword [esp + 0x10], edx
mov dl, byte [0x410360]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
mov byte [esp + 0x1c], dl
call fcn.00402980
test eax, eax
je 0x401286
push 0x415080
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea eax, [esp + 0xd0]
push 0x415080
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
lea ecx, [esp + 0xd0]
push 0x410350
push ecx
call esi
lea edx, [esp + 0x10]
lea eax, [esp + 0xd0]
push edx
push eax
call esi
push ebx
push str.Debug
push str.Spawning_ltremove
push ebx
call fcn.00404fa0
add esp, 0x10
lea ecx, [esp + 0xd0]
push ebx
push str.Debug
push ecx
push ebx
call fcn.00404fa0
add esp, 0x10
lea edx, [esp + 0x10]
lea eax, [esp + 0xd0]
push ebx
push 0x410330
push edx
push eax
push ebx
call fcn.00409e30
add esp, 0x14
lea ecx, [esp + 0x1d0]
push eax
push str.Error__x
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea edx, [esp + 0x1d0]
push ebx
push str.Debug
push edx
push ebx
call fcn.00404fa0
add esp, 0x10
push ebx
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c0
ret 0x10
call fcn.00402980
test eax, eax
je 0x4012b7
push 0x415080
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
call fcn.004046b0
mov eax, dword [0x4143f8]
push ebx
push esi
push ebx
push ebx
push 0x80000000
push 0x80000000
push 0x80000000
push 0x80000000
push 0xcf0000
push 0x410218
cmp eax, ebx
push str.ModemClass
push ebx
jne 0x401410
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ebp, dword [sym.imp.USER32.dll_DialogBoxParamA]
push ebx
push 0x401520
push eax
push 0x66
push esi
mov dword [0x416004], eax
call ebp
mov edi, eax
mov eax, dword [0x416004]
push ebx
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
push eax
call ebx
mov ecx, dword [0x416004]
push ecx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov al, byte [0x41600c]
mov edx, dword [0x414418]
test edi, edi
mov edi, dword [0x414434]
je 0x401386
mov ecx, dword [0x414420]
test ecx, ecx
je 0x40134e
cmp al, 2
jne 0x40134e
test edx, edx
je 0x40135a
cmp al, 1
je 0x40135a
test ecx, ecx
je 0x401386
test edi, edi
je 0x401386
mov edx, dword [0x416004]
push 0
push 0x401750
push edx
push 0x67
push esi
call ebp
mov eax, dword [0x416004]
push 0
push eax
call ebx
mov ecx, dword [0x416004]
push ecx
call dword [sym.imp.USER32.dll_UpdateWindow]
jmp 0x40139e
cmp al, 2
jne 0x40138e
test edx, edx
je 0x401396
cmp al, 1
je 0x401396
test edi, edi
je 0x40139e
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
push 0
push 0
lea edx, [esp + 0x28]
push 0
push edx
call esi
test eax, eax
je 0x40149d
mov edi, dword [sym.imp.USER32.dll_IsDialogMessageA]
mov ebx, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebp, dword [sym.imp.USER32.dll_DispatchMessageA]
mov eax, dword [0x416008]
test eax, eax
je 0x4013e0
lea ecx, [esp + 0x20]
push ecx
push eax
call edi
test eax, eax
jne 0x4013ee
lea edx, [esp + 0x20]
push edx
call ebx
lea eax, [esp + 0x20]
push eax
call ebp
push 0
push 0
lea ecx, [esp + 0x28]
push 0
push ecx
call esi
test eax, eax
jne 0x4013cb
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c0
ret 0x10
call dword [sym.imp.USER32.dll_CreateWindowExA]
push ebx
push eax
mov dword [0x416004], eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [0x416004]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
call fcn.004018b0
test eax, eax
jne 0x40143d
push 0xffffffffffffffff
jmp 0x40145b
mov al, byte [0x41600c]
cmp al, 2
jne 0x40144e
cmp dword [0x414418], ebx
je 0x40145a
cmp al, 1
je 0x40145a
cmp dword [0x414434], ebx
je 0x401461
push ebx
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
push ebx
push ebx
lea eax, [esp + 0x28]
push ebx
push eax
call esi
test eax, eax
je 0x40149d
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebp, dword [sym.imp.USER32.dll_DispatchMessageA]
lea ecx, [esp + 0x20]
push ecx
call edi
lea edx, [esp + 0x20]
push edx
call ebp
push ebx
push ebx
lea eax, [esp + 0x28]
push ebx
push eax
call esi
test eax, eax
jne 0x401481
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c0
ret 0x10