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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [0x4ad240ac]
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 0x4ad169ff
mov eax, 0x4ad24220
push eax
mov dword [0x4ad241a4], eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call fcn.4ad01e6c
push 1
push 0x4ad1e72a
call dword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
call fcn.4ad01605
call fcn.4ad07af3
push dword [ebp + 0xc]
push esi
call fcn.4ad07e13
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 0x4ad08547
sub eax, ecx
sar eax, 1
push edi
inc eax
mov edi, 0x2000
cmp eax, edi
ja 0x4ad16a06
push ebx
call esi
push eax
push edi
mov esi, 0x4ad38640
push esi
call fcn.4ad0185a
push 0
mov ebx, 0x104
push ebx
mov edi, 0x4ad25260
push edi
call fcn.4ad02c56
call fcn.4ad086c9
mov eax, esi
lea ecx, [eax + 2]
mov dx, word [eax]
inc eax
inc eax
test dx, dx
jne 0x4ad08591
sub eax, ecx
sar eax, 1
push eax
push esi
push dword [ebp + 0xc]
mov esi, dword [ebp - 0x48]
push esi
call fcn.4ad08b31
cmp word [0x4ad25260], 0x5c
je 0x4ad0c16f
call dword [sym.imp.KERNEL32.dll_GetConsoleOutputCP]
push 0x4ad24260
push eax
mov dword [0x4ad241b8], eax
call dword [sym.imp.KERNEL32.dll_GetCPInfo]
call fcn.4ad088d9
push 0x20c
xor edi, edi
push edi
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [0x4ad241a8], eax
cmp eax, edi
je 0x4ad08605
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetConsoleTitleW]
test eax, eax
je 0x4ad16a1b
cmp dword [0x4ad240e4], edi
je 0x4ad10942
cmp dword [esi + 8], edi
je 0x4ad16a29
push 0x4ad084c4
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x4ad086b8
push eax
mov dword [0x4ad24094], eax
call esi
push 0x4ad086a4
push dword [0x4ad24094]
mov dword [0x4ad241ec], eax
call esi
push 0x4ad0868c
push dword [0x4ad24094]
mov dword [0x4ad241e4], eax
call esi
mov dword [0x4ad241f4], eax
mov eax, dword [ebp - 0x48]
pop ebx
cmp dword [eax], edi
jne 0x4ad08677
cmp dword [eax + 4], edi
jne 0x4ad08677
cmp dword [eax + 8], edi
je 0x4ad16ab6
xor eax, eax
inc eax
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.4ad013a9
leave
ret 8
cmp word [0x4ad25262], 0x5c
jne 0x4ad085bb
cmp byte [0x4ad406b0], 0
jne 0x4ad085bb
push edi
push 1
push 0x400023c8
call fcn.4ad06d44
add esp, 0xc
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push 1
test eax, eax
je 0x4ad16a16
push edi
call fcn.4ad06c78
jmp 0x4ad085bb
push 1
call fcn.4ad04490
test eax, eax
je 0x4ad08611
cmp word [0x4ad2408a], di
jne 0x4ad10988
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 0x4ad1097b
mov ax, word [ebp - 0x58]
mov word [0x4ad2408a], ax
cmp word [0x4ad2408a], di
je 0x4ad08611
movzx eax, word [0x4ad2408a]
push eax
call fcn.4ad10af9
jmp 0x4ad08611
xor eax, eax
jmp 0x4ad0867b
push 0
push 0x400023df
call fcn.4ad06d44
pop ecx
pop ecx
push 1
call fcn.4ad072e9
mov ecx, dword [0x4ad241a8]
mov word [ecx], ax
jmp 0x4ad08605
push edi
push 0x4ad16ac0
call fcn.4ad1e3e9
mov ebx, eax
push 0x20
lea eax, [ebp - 0x44]
push eax
call fcn.4ad0d3b3
lea eax, [ebp - 0x44]
push eax
push 1
push 0x2350
call fcn.4ad099e1
mov esi, 0x4ad245a8
push esi
call fcn.4ad058f3
add esp, 0x10
cmp ebx, edi
je 0x4ad16a79
push ebx
push 0x4ad02cb4
call fcn.4ad058f3
push esi
call fcn.4ad058f3
add esp, 0xc
jmp 0x4ad16a83
push edi
push 8
call fcn.4ad06d44
pop ecx
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
cmp byte [0x4ad40670], 0
jne 0x4ad0861a
cmp byte [0x4ad24081], 0
je 0x4ad0861a
push edi
push 0x4000239f
call fcn.4ad099e1
pop ecx
pop ecx
jmp 0x4ad0861a
xor eax, eax
jmp 0x4ad0867a