Function at 0x4a4480
Capabilities:
Accept command line arguments
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
push 0
push str.UserServer_LoginServer_Class
mov dword [ebp - 4], ecx
call dword [sym.imp.USER32.dll_FindWindowW]
mov esi, eax
test esi, esi
je 0x4a44fe
mov eax, dword [0x543020]
test eax, eax
jne 0x4a44cb
push 0x543eb0
push 0x2c
call fcn.004c211f
add esp, 8
test eax, eax
je 0x4a44c4
mov ecx, eax
call fcn.00485620
jmp 0x4a44c6
xor eax, eax
mov dword [0x543020], eax
push 0x4fcc3c
push str.UserServer
push eax
call fcn.00486aa0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
push 0x402
push esi
call fcn.004a5c60
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push str.User32.dll
call fcn.004904a0
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, eax
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
test ebx, ebx
je 0x4a4532
push str.ChangeWindowMessageFilter
push ebx
call edi
test eax, eax
je 0x4a452f
push 1
push 0x401
call eax
push ebx
call esi
push str.User32.dll
call fcn.004904a0
mov ebx, eax
test ebx, ebx
je 0x4a4557
push str.ChangeWindowMessageFilter
push ebx
call edi
test eax, eax
je 0x4a4554
push 1
push 0x4a
call eax
push ebx
call esi
mov ebx, dword [ebp - 4]
push dword [ebp + 0xc]
mov dword [0x53a688], 0x4fca30
lea eax, [ebx + 0x20]
push eax
push 0x53a660
push 0x53a4e4
push 0x543e5c
call fcn.004a0ca0
add esp, 0x14
movzx eax, ax
mov ecx, ebx
push 0
push eax
push 0
push 0
push 0x56000000
push 0
push 0
push 0xfffffffffffffffd
call fcn.004a1950
mov eax, dword [ebx + 0xf8]
push 0
push 0x1388
push 1
mov dword [eax + 0x38], 0x4a3760
mov dword [eax + 0x3c], 0
mov eax, dword [ebx + 0xf8]
mov dword [eax + 0x30], 0x4a38c0
mov dword [eax + 0x34], 0
mov eax, dword [ebx + 0xf8]
mov dword [eax + 0x28], 0x4a3ae0
mov dword [eax + 0x2c], 0
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SetTimer]
call fcn.0049a830
push str.User32.dll
mov dword [ebp - 8], eax
call fcn.004904a0
mov ebx, eax
test ebx, ebx
je 0x4a461c
push str.ChangeWindowMessageFilter
push ebx
call edi
test eax, eax
je 0x4a4619
push 1
push 0x401
call eax
push ebx
call esi
push str.User32.dll
call fcn.004904a0
mov ebx, eax
test ebx, ebx
je 0x4a4641
push str.ChangeWindowMessageFilter
push ebx
call edi
test eax, eax
je 0x4a463e
push 1
push 0x4a
call eax
push ebx
call esi
mov ebx, dword [ebp - 8]
push dword [ebp + 0xc]
mov dword [0x53a5d8], 0x4fca00
lea eax, [ebx + 0x20]
push eax
push 0x53a5b0
push 0x53a4e4
push 0x543e5c
call fcn.004a0ca0
add esp, 0x14
movzx eax, ax
mov ecx, ebx
push 0
push eax
push 0
push 0
push 0x56000000
push 0
push 0
push 0xfffffffffffffffd
call fcn.004a1950
cmp dword [ebx + 0x140], 8
lea eax, [ebx + 0x12c]
jb 0x4a4699
mov eax, dword [eax]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4a46ab
mov ecx, ebx
call fcn.004a5780
call fcn.0049a830
mov ecx, dword [ebp - 4]
push dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [ecx + 0x104], eax
call fcn.004a4820
mov edi, dword [ebp + 8]
mov ecx, 1
mov dword [ebp + 0xc], ecx
xor esi, esi
lea ebx, [edi + 0x1c]
test ecx, ecx
je 0x4a46fb
push 0
push 0
push 0
push 0
push ebx
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
jne 0x4a46fb
mov eax, dword [edi]
mov ecx, edi
push esi
call dword [eax + 4]
inc esi
test eax, eax
jne 0x4a46d8
mov dword [ebp + 0xc], eax
push 0
push 0
push 0
push ebx
call dword [sym.imp.USER32.dll_GetMessageW]
mov ecx, dword [ebp + 0xc]
cmp eax, 0xffffffff
je 0x4a46d4
test eax, eax
je 0x4a4775
mov eax, dword [edi]
mov ecx, edi
push ebx
call dword [eax]
test eax, eax
jne 0x4a472d
push ebx
call dword [sym.imp.USER32.dll_TranslateMessage]
push ebx
call dword [sym.imp.USER32.dll_DispatchMessageW]
mov eax, dword [edi + 0x20]
cmp eax, 0x118
ja 0x4a4745
je 0x4a4763
cmp eax, 0xf
je 0x4a4763
cmp eax, 0xa0
jmp 0x4a474a
cmp eax, 0x200
je 0x4a4763
mov eax, 1
mov ecx, eax
neg eax
mov dword [ebp + 0xc], ecx
sbb eax, eax
not eax
and esi, eax
jmp 0x4a46d4
mov ecx, dword [ebp + 0xc]
xor eax, eax
neg eax
sbb eax, eax
not eax
and esi, eax
jmp 0x4a46d4
mov eax, dword [edi + 0x24]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x104], 0
call fcn.0049a830
mov ebx, dword [sym.imp.USER32.dll_IsWindow]
mov edi, eax
push dword [edi + 4]
call ebx
mov esi, dword [sym.imp.USER32.dll_DestroyWindow]
test eax, eax
je 0x4a47a9
push dword [edi + 4]
call esi
push 0
push str.UserServer_LoginServer_Class
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x4a47ca
push 0
push 0
push 0x401
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov edi, dword [ebp - 4]
push dword [edi + 4]
call ebx
test eax, eax
je 0x4a47db
push dword [edi + 4]
call esi
mov edx, dword [edi + 0xf8]
pop edi
pop esi
pop ebx
mov ecx, dword [edx + 0x24]
mov dword [edx + 0x28], 0
mov dword [edx + 0x2c], 0
mov dword [edx + 0x30], 0
mov dword [edx + 0x34], 0
mov dword [edx + 0x38], 0
mov dword [edx + 0x3c], 0
mov eax, dword [ebp + 0xc]
mov dword [edx + 0x24], ecx
mov esp, ebp
pop ebp
ret 8