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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [0x4ad2406c]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ebp + 0xc], 3
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x48], esi
jl 0x4ad161f3
mov eax, 0x4ad241e0
push eax
mov dword [0x4ad2414c], eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call fcn.4ad02fd7
push 1
push 0x4ad1db16
call dword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
call fcn.4ad0191a
call fcn.4ad08d51
push dword [ebp + 0xc]
push esi
call fcn.4ad09310
mov esi, dword [sym.imp.KERNEL32.dll_GetCommandLineW]
call esi
lea ecx, [eax + 2]
mov dx, word [eax]
inc eax
inc eax
test dx, dx
jne 0x4ad08b5d
sub eax, ecx
sar eax, 1
push edi
inc eax
mov edi, 0x2000
cmp eax, edi
ja 0x4ad161fa
push ebx
call esi
push eax
push edi
mov esi, 0x4ad385e0
push esi
call fcn.4ad01416
push 0
mov ebx, 0x104
push ebx
mov edi, 0x4ad25200
push edi
call fcn.4ad0363f
call fcn.4ad08fc9
mov eax, esi
lea ecx, [eax + 2]
mov dx, word [eax]
inc eax
inc eax
test dx, dx
jne 0x4ad08ba7
sub eax, ecx
sar eax, 1
push eax
push esi
push dword [ebp + 0xc]
mov esi, dword [ebp - 0x48]
push esi
call fcn.4ad08d6b
cmp word [0x4ad25200], 0x5c
je 0x4ad10082
call dword [sym.imp.KERNEL32.dll_GetConsoleOutputCP]
push 0x4ad24220
push eax
mov dword [0x4ad24160], eax
call dword [sym.imp.KERNEL32.dll_GetCPInfo]
call fcn.4ad088a0
push 0x20c
xor edi, edi
push edi
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
cmp eax, edi
mov dword [0x4ad24150], eax
je 0x4ad08c1b
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetConsoleTitleW]
test eax, eax
je 0x4ad1620f
cmp dword [0x4ad2409c], edi
pop ebx
je 0x4ad13ac6
cmp dword [esi + 8], edi
je 0x4ad1621c
push 0x4ad08cd8
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x4ad08ccc
push eax
mov dword [0x4ad24054], eax
call esi
push 0x4ad08cb8
push dword [0x4ad24054]
mov dword [0x4ad24194], eax
call esi
push 0x4ad08ca0
push dword [0x4ad24054]
mov dword [0x4ad2418c], eax
call esi
mov dword [0x4ad2419c], eax
mov eax, dword [ebp - 0x48]
cmp dword [eax], edi
jne 0x4ad08c8d
cmp dword [eax + 4], edi
jne 0x4ad08c8d
cmp dword [eax + 8], edi
je 0x4ad1627b
xor eax, eax
inc eax
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.4ad013fa
leave
ret 8
cmp word [0x4ad25202], 0x5c
jne 0x4ad08bd1
cmp byte [0x4ad4063d], 0
jne 0x4ad08bd1
push edi
push 1
push 0x400023c8
call fcn.4ad080e2
add esp, 0xc
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
push 1
je 0x4ad1620a
push edi
call fcn.4ad05ad5
jmp 0x4ad08bd1
push 1
call fcn.4ad013c1
test eax, eax
je 0x4ad08c28
cmp word [0x4ad2404a], di
jne 0x4ad13b0c
lea eax, [ebp - 0x60]
push eax
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x4ad13aff
mov ax, word [ebp - 0x58]
mov word [0x4ad2404a], ax
cmp word [0x4ad2404a], di
je 0x4ad08c28
movzx eax, word [0x4ad2404a]
push eax
call fcn.4ad13b23
jmp 0x4ad08c28
xor eax, eax
jmp 0x4ad08c91
push 0
push 0x400023df
call fcn.4ad080e2
pop ecx
pop ecx
push 1
call fcn.4ad07131
mov eax, dword [0x4ad24150]
mov word [eax], di
jmp 0x4ad08c1b
push 0x20
lea eax, [ebp - 0x44]
push eax
call fcn.4ad0fe6c
lea eax, [ebp - 0x44]
push eax
push 1
push 0x2350
call fcn.4ad0594f
push 0x4ad24568
call fcn.4ad040bf
push edi
push 0x2334
call fcn.4ad0594f
add esp, 0x18
cmp byte [0x4ad4061c], 0
jne 0x4ad08c31
cmp byte [0x4ad24041], 0
je 0x4ad08c31
push edi
push 0x4000239f
call fcn.4ad0594f
pop ecx
pop ecx
jmp 0x4ad08c31
xor eax, eax
jmp 0x4ad08c90