Function at 0x6c8351f0
Capabilities:
Accept command line arguments
Get common file path

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov esi, eax
push ebx
sub esp, 0x15c
movzx eax, byte [ebp + 8]
mov dword [ebp - 0x138], edx
mov dword [ebp - 0x12c], ecx
mov byte [ebp - 0x12f], al
test esi, esi
je 0x6c8355e0
movzx edi, word [esi + 0x48]
mov dword [esp + 4], 0x210
mov dword [esp], 0x40
call sym.krnl386.exe16_GlobalAlloc16
sub esp, 8
mov word [ebp - 0x12e], ax
test ax, ax
je 0x6c835560
movzx eax, word [ebp - 0x12e]
mov dword [esp], eax
mov dword [ebp - 0x134], eax
call sym.krnl386.exe16_GlobalLock16
movzx edx, di
mov ebx, eax
mov eax, dword [ebp - 0x134]
sub esp, 4
mov dword [ebp - 0x13c], edx
mov dword [esp + 4], edx
mov dword [esp], eax
call sym.krnl386.exe16_FarSetOwner16
movzx eax, word [ebp - 0x12e]
sub esp, 8
mov word [ebx + 0xc], ax
movzx eax, word [esi + 0x3e]
mov word [ebx + 0x1a], ax
lea esi, [ebp - 0x11c]
mov word [ebx + 0x1e], di
mov eax, dword fs:[0x18]
movzx eax, word [eax + 0x112]
test ax, ax
cmove ax, word [0x6c853612]
mov word [ebx + 0x22], ax
mov eax, 0x4454
mov word [ebx + 0xfa], ax
movzx eax, word [ebp - 0x138]
mov word [ebx + 0xa8], ax
mov dword [esp + 4], esi
mov dword [esp], 0x104
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryA]
sub esp, 8
mov dword [esp + 4], esi
mov dword [esp], esi
lea esi, [ebp - 0xda]
mov dword [esp + 8], 0x104
call dword [sym.imp.kernel32.dll_GetShortPathNameA]
movzx eax, byte [ebp - 0x11c]
lea edx, [ebx + 0x67]
sub esp, 0xc
sub eax, 0x41
or eax, 0xffffff80
mov byte [ebx + 0x66], al
lea eax, [ebp - 0x11a]
lea esi, [esi]
movzx ecx, byte [eax]
test cl, cl
je 0x6c835334
add eax, 1
add edx, 1
mov byte [edx - 1], cl
cmp eax, esi
jne 0x6c835320
mov eax, dword [ebp - 0x134]
mov byte [edx], 0
mov esi, 0x28
mov dword [esp], eax
call sym.krnl386.exe16_GlobalLock16
mov edx, 0x18
mov ecx, 0x20
mov word [eax + 0xc2], dx
mov edx, 0x30
sub esp, 4
mov word [eax + 0xca], cx
mov ecx, 0x38
mov word [eax + 0xd2], si
xor esi, esi
mov dword [eax + 0xb2], 0x54500000
mov dword [eax + 0xb8], 0x100008
mov word [eax + 0xda], dx
mov word [eax + 0xe2], cx
mov word [eax + 0xea], si
test di, di
jne 0x6c835650
mov eax, dword [ebp - 0x13c]
mov dword [esp + 0x10], 0x13
mov edi, 0x20cd
mov dword [esp + 8], 0x110
mov dword [esp], 0
mov dword [esp + 0xc], eax
lea eax, [ebx + 0x100]
mov dword [esp + 4], eax
call fcn.6c808940
mov word [ebx + 0x100], di
mov word [ebx + 0x60], ax
mov byte [ebx + 0x105], 0x9a
mov dword [esp], 0x6c850050
call sym.krnl386.exe16_GetModuleHandle16
sub esp, 4
movzx eax, ax
mov dword [esp + 4], str.DOS3Call
mov dword [esp], eax
call fcn.6c826ca0
mov dword [ebx + 0x10a], 0
mov dword [ebx + 0x106], eax
movzx eax, word [ebx + 0x60]
sub esp, 8
mov dword [ebx + 0x10e], 0
mov dword [ebx + 0x112], 0
mov dword [esp], eax
call fcn.6c809c40
mov dword [ebx + 0x118], 0xffffffff
mov dword [ebx + 0x11c], 0xffffffff
shl eax, 0x10
sub esp, 4
mov dword [ebx + 0x120], 0xffffffff
or eax, 0x18
mov dword [ebx + 0x134], eax
xor eax, eax
mov word [ebx + 0x138], ax
mov dword [ebx + 0x124], 0xffffffff
mov dword [ebx + 0x128], 0xffffffff
call sym.krnl386.exe16_GetDOSEnvironment16
shr eax, 0x10
mov word [ebx + 0x12c], ax
mov eax, 0x14
mov word [ebx + 0x132], ax
mov eax, dword [ebp - 0x12c]
test eax, eax
je 0x6c835770
movzx eax, byte [ebp - 0x12f]
mov ecx, 0x7f
lea edx, [ebx + 0x181]
cmp al, cl
cmovbe ecx, eax
mov byte [ebx + 0x180], cl
movzx eax, cl
cmp cl, 3
ja 0x6c835570
test eax, eax
jne 0x6c835720
test byte [0x6c845a24], 8
jne 0x6c835595
mov dword [esp + 0x10], 0x1b
movzx eax, word [ebx + 0x60]
mov dword [esp + 8], 0x210
mov dword [esp + 4], ebx
mov dword [esp], 0
mov dword [esp + 0xc], eax
call fcn.6c808940
mov word [ebx + 0xb0], ax
movzx eax, word [ebx + 0x60]
shl eax, 0x10
or al, 0x80
mov dword [ebx + 0x62], eax
test byte [ebx + 0x16], 0x10
je 0x6c8356e0
cmp word [0x6c853614], 0
jne 0x6c835562
movzx eax, word [ebp - 0x12e]
mov word [0x6c853614], ax
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
xor ebx, ebx
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, dword [ebp - 0x12c]
mov edi, edx
mov ecx, dword [esi + eax - 4]
mov dword [edx + eax - 4], ecx
lea ecx, [eax - 1]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
test byte [0x6c845a24], 8
je 0x6c8354f7
mov edi, dword [ebp - 0x134]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.cmdline_.s_task_04x_n
mov dword [esp + 8], str.TASK_Create
mov dword [esp + 4], 0x6c845a24
mov dword [esp + 0x18], edi
mov edi, dword [ebp - 0x12c]
mov dword [esp], 3
mov dword [esp + 0x14], edi
call fcn.6c832f60
jmp 0x6c8354f7
mov dword [esp + 4], 0x210
mov dword [esp], 0x40
call sym.krnl386.exe16_GlobalAlloc16
sub esp, 8
mov word [ebp - 0x12e], ax
test ax, ax
je 0x6c835560
movzx edi, word [ebp - 0x12e]
mov dword [esp], edi
mov dword [ebp - 0x134], edi
call sym.krnl386.exe16_GlobalLock16
sub esp, 4
mov ebx, eax
mov dword [esp], edi
mov dword [esp + 4], 0
call sym.krnl386.exe16_FarSetOwner16
mov word [ebx + 0xc], di
mov eax, 0x400
xor edi, edi
mov dword [ebp - 0x13c], 0
sub esp, 8
jmp 0x6c83528e
lea eax, [ebp - 0x125]
mov dword [esp + 8], 9
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x13c]
mov dword [esp], eax
call fcn.6c825ed0
lea eax, [ebp - 0x125]
sub esp, 0xc
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_strlen]
mov edx, 8
mov ecx, eax
lea eax, [ebx + 0xf2]
add ecx, 1
cmp ecx, edx
cmova ecx, edx
cmp ecx, 4
jae 0x6c835750
test ecx, ecx
je 0x6c8356b6
movzx edx, byte [ebp - 0x125]
mov byte [eax], dl
test cl, 2
jne 0x6c83582b
lea eax, [ebp - 0x125]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], str.Compatibility
call dword [sym.imp.kernel32.dll_GetProfileIntA]
sub esp, 0xc
mov dword [ebx + 0x4e], eax
jmp 0x6c8353aa
lea eax, [ebx + 0xfc]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1f0003
mov dword [esp], eax
call dword [sym.imp.ntdll.dll_NtCreateEvent]
sub esp, 0x14
jmp 0x6c83553c
mov edi, dword [ebp - 0x12c]
movzx ecx, byte [edi]
mov byte [edx], cl
test al, 2
je 0x6c8354ea
mov edi, dword [ebp - 0x12c]
movzx ecx, word [edi + eax - 2]
mov word [edx + eax - 2], cx
jmp 0x6c8354ea
mov edx, dword [ebp + ecx - 0x129]
lea esi, [ebp - 0x125]
mov edi, eax
mov dword [eax + ecx - 4], edx
sub ecx, 1
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x6c8356b6
mov esi, dword [sym.imp.kernel32.dll_GetCommandLineA]
call esi
mov dword [ebp - 0x12c], eax
movzx eax, byte [eax]
cmp al, 0x22
je 0x6c8357f5
test al, 0xdf
je 0x6c8357ad
cmp al, 9
je 0x6c8357b5
mov edx, dword [ebp - 0x12c]
jmp 0x6c83579c
cmp al, 9
je 0x6c8357f1
movzx eax, byte [edx + 1]
add edx, 1
test al, 0xdf
jne 0x6c835798
mov dword [ebp - 0x12c], edx
cmp al, 9
je 0x6c8357b5
cmp al, 0x20
jne 0x6c8357d7
mov eax, dword [ebp - 0x12c]
lea esi, [esi]
nop
movzx edx, byte [eax + 1]
add eax, 1
cmp dl, 0x20
je 0x6c8357c0
cmp dl, 9
je 0x6c8357c0
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_strlen]
mov byte [ebp - 0x12f], al
jmp 0x6c8354b9
mov eax, edx
jmp 0x6c8357c0
mov eax, dword [ebp - 0x12c]
mov dword [esp + 4], 0x22
add eax, 1
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_strchr]
mov dword [ebp - 0x12c], eax
test eax, eax
je 0x6c835821
movzx eax, byte [eax]
jmp 0x6c835785
call esi
mov dword [ebp - 0x12c], eax
jmp 0x6c835819
movzx edx, word [ebp + ecx - 0x127]
mov word [eax + ecx - 2], dx
jmp 0x6c8356b6