Function at 0x4ad09d3f
Capabilities:
Accept command line arguments
Get common file path
Query environment variable

Disassembly:
sub esp, 0x58
mov eax, 0x4ad22ac0
mov dword [0x4ad2288c], eax
push ebx
push ebp
push esi
push edi
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call fcn.4ad0aafe
push 1
push 0x4ad09cea
call dword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
call fcn.4ad14cc3
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
push dword [esp + 0x6c]
mov dword [0x4ad23b00], eax
call fcn.4ad09fb4
mov esi, 0x4ad24320
mov eax, esi
test eax, eax
je 0x4ad09da5
mov edi, dword [sym.imp.KERNEL32.dll_GetCommandLineW]
call edi
test eax, eax
je 0x4ad09da5
call edi
push eax
push esi
call dword [sym.imp.MSVCRT.dll_wcscpy]
pop ecx
pop ecx
mov eax, esi
xor ebx, ebx
test eax, eax
je 0x4ad09db7
push esi
call dword [sym.imp.MSVCRT.dll_wcslen]
pop ecx
jmp 0x4ad09db9
xor eax, eax
push eax
push esi
push esi
call fcn.4ad0b4de
mov edi, 0x4ad228a0
push ebx
push edi
call fcn.4ad14ffd
call fcn.4ad0a970
push esi
push dword [esp + 0x70]
call fcn.4ad0a372
cmp word [0x4ad228a0], 0x5c
jne 0x4ad09e1c
cmp word [0x4ad228a2], 0x5c
jne 0x4ad09e1c
cmp byte [0x4ad1cf68], bl
jne 0x4ad09e1c
push edi
push 1
push 0x23c8
call fcn.4ad1393b
add esp, 0xc
push 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push 1
push edi
call fcn.4ad154f9
call dword [sym.imp.KERNEL32.dll_GetConsoleOutputCP]
push 0x4ad22860
push eax
mov dword [0x4ad22874], eax
call dword [sym.imp.KERNEL32.dll_GetCPInfo]
call fcn.4ad04e57
mov esi, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov ebp, 0x20c
push ebp
push ebx
call esi
mov edi, dword [sym.imp.KERNEL32.dll_HeapAlloc]
push eax
call edi
push ebp
push ebx
mov dword [0x4ad22894], eax
call esi
push eax
call edi
cmp dword [0x4ad22894], ebx
mov dword [0x4ad22ad8], eax
je 0x4ad09eac
cmp eax, ebx
je 0x4ad09eac
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetConsoleTitleW]
test eax, eax
je 0x4ad09e9c
mov ecx, dword [0x4ad22894]
cmp ecx, ebx
je 0x4ad09eac
mov eax, dword [0x4ad22ad8]
cmp eax, ebx
je 0x4ad09eac
push eax
push ecx
call dword [sym.imp.MSVCRT.dll_wcscpy]
pop ecx
pop ecx
jmp 0x4ad09eac
mov eax, dword [0x4ad22894]
mov word [eax], bx
mov eax, dword [0x4ad22ad8]
mov word [eax], bx
cmp dword [0x4ad1cf64], ebx
jne 0x4ad09efc
push 1
call fcn.4ad14f9d
test eax, eax
je 0x4ad09efc
cmp word [0x4ad1cf8c], bx
jne 0x4ad09eeb
lea eax, [esp + 0x10]
push eax
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x4ad09eeb
mov ax, word [esp + 0x18]
mov word [0x4ad1cf8c], ax
mov ax, word [0x4ad1cf8c]
cmp ax, bx
je 0x4ad09efc
push eax
call fcn.4ad0eb4f
mov ebp, dword [esp + 0x6c]
cmp dword [ebp + 8], ebx
jne 0x4ad09f5a
lea eax, [esp + 0x28]
push 0x20
push eax
call fcn.4ad0ab5a
lea eax, [esp + 0x28]
push eax
push 1
push 0x2350
call fcn.4ad1391e
add esp, 0xc
push 0x4ad1c018
call fcn.4ad157af
pop ecx
push ebx
push 0x2334
call fcn.4ad1391e
cmp byte [0x4ad1c7e0], bl
pop ecx
pop ecx
jne 0x4ad09f5a
cmp byte [0x4ad1cf7c], bl
je 0x4ad09f5a
push ebx
push 0x239f
call fcn.4ad1391e
pop ecx
pop ecx
push 0x4ad01864
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
push 0x4ad01858
push edi
call esi
push 0x4ad01844
push edi
mov dword [0x4ad264b8], eax
call esi
push 0x4ad0182c
push edi
mov dword [0x4ad264bc], eax
call esi
mov dword [0x4ad264c0], eax
cmp dword [ebp], ebx
jne 0x4ad09fa7
cmp dword [ebp + 4], ebx
jne 0x4ad09fa7
cmp dword [ebp + 8], ebx
jne 0x4ad09fa7
xor eax, eax
jmp 0x4ad09faa
push 1
pop eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret 4