Function at 0x4a05c0
Capabilities:
Get graphical window text
Hide graphical window
Resume thread
Suspend thread

Disassembly:
mov eax, 0x16a0
call fcn.004bfc70
mov eax, dword [0x4ea93c]
xor eax, esp
mov dword [esp + 0x169c], eax
cmp word [0x56c810], 0
push ebx
push ebp
push esi
mov esi, dword [esp + 0x16b0]
push edi
mov eax, str.HELPExecArcCmd
je 0x4a05f7
mov eax, 0x56c810
mov ebx, dword [esp + 0x16c0]
mov ebp, dword [esp + 0x16bc]
mov edi, dword [esp + 0x16b8]
push 0
push eax
mov eax, dword [0x56c7dc]
push eax
push ebx
push ebp
push edi
push esi
call fcn.0042ce30
test al, al
jne case.0x4a0d03.3
cmp edi, 0x110
ja 0x4a0b02
je 0x4a0931
lea eax, [edi - 2]
cmp eax, 0x16
ja case.0x4a064b.3
movzx ecx, byte [eax + 0x4a111c]
jmp dword [ecx*4 + 0x4a1108]
test ebp, ebp
je 0x4a0676
push 0xfffffffffffffff0
push esi
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, 0x40000000
je 0x4a0676
mov edi, dword [sym.imp.USER32.dll_FlashWindow]
push 0
push esi
call edi
push 1
push esi
call edi
xor eax, eax
jmp 0x4a10ed
push str.Done
push esi
call dword [sym.imp.USER32.dll_GetPropW]
test eax, eax
mov eax, dword [0x56f8e8]
je 0x4a069b
cmp eax, 8
jne case.0x4a064b.3
test eax, eax
je 0x4a06ae
cmp eax, 1
je 0x4a06ae
cmp eax, 2
je 0x4a06ae
cmp eax, 8
jne 0x4a0725
lea edx, [esp + 0x24]
push edx
push esi
call dword [sym.imp.USER32.dll_BeginPaint]
mov ecx, dword [0x56ca20]
mov edx, dword [0x56ca2c]
push esi
push 0
mov edi, eax
mov eax, dword [0x56ca24]
push edi
push 0
push eax
mov eax, dword [0x56ca28]
push ecx
push edx
push eax
call fcn.0049f7e0
cmp byte [0x56ca9f], 0
jne 0x4a06f3
cmp dword [0x56f8e8], 8
jne 0x4a0719
mov ecx, dword [0x56ca14]
mov edx, dword [0x56ca10]
mov eax, dword [0x56ca1c]
push esi
push 1
push edi
push 1
push ecx
mov ecx, dword [0x56ca18]
push edx
push eax
push ecx
call fcn.0049f7e0
lea edx, [esp + 0x24]
push edx
push esi
call dword [sym.imp.USER32.dll_EndPaint]
xor eax, eax
jmp 0x4a10ed
push str.Done
push esi
call dword [sym.imp.USER32.dll_GetPropW]
test eax, eax
je 0x4a0748
push esi
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp case.0x4a0d03.3
cmp dword [0x56f8e8], 0xb
je 0x4a078b
call fcn.004c1545
sub eax, dword [0x56caa0]
cmp eax, 0xea60
jl 0x4a078b
push 0x24
push 0x312
call fcn.004744a0
push eax
push 0x311
call fcn.004744a0
push eax
push esi
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne case.0x4a0d03.3
mov byte [0x5344c0], 1
jmp case.0x4a0d03.3
mov eax, dword [0x534544]
push 1
push eax
call dword [sym.imp.SHELL32.dll_DragAcceptFiles]
push 0
push 0
push 0
push 0
xor ebx, ebx
call fcn.0049f750
push str.Done
push esi
call dword [sym.imp.USER32.dll_GetPropW]
test eax, eax
je 0x4a07f2
push str.Done
push esi
call dword [sym.imp.USER32.dll_RemovePropW]
xor eax, eax
cmp dword [eax*4 + 0x56caa8], esi
je 0x4a07e6
inc eax
cmp eax, 0x10
jb 0x4a07d2
jmp 0x4a08a3
mov dword [eax*4 + 0x56caa8], ebx
jmp 0x4a08a3
mov ecx, dword [0x56c808]
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
push ecx
call edi
mov edx, dword [0x56c804]
push edx
call edi
mov eax, dword [0x56c800]
push eax
call edi
mov ecx, dword [0x56c7fc]
push ecx
call edi
mov edx, dword [0x56c7f8]
push edx
call edi
mov eax, dword [0x56c7f4]
push eax
call edi
mov ecx, dword [0x56c7f0]
push ecx
call edi
mov edx, dword [0x56c7ec]
push edx
call edi
mov eax, dword [0x56c7e8]
push eax
call edi
mov ecx, dword [0x56c7e4]
push ecx
call edi
mov edx, dword [0x56c7e0]
push edx
call edi
xor ebx, ebx
cmp byte [0x5344c0], bl
jne 0x4a087a
call fcn.004c1545
sub eax, dword [0x56caa0]
cmp eax, 0x2710
jle 0x4a087a
push ebx
call fcn.00452500
push ebx
push esi
call fcn.0049e7f0
mov al, byte [0x5344c0]
mov dword [0x5323ec], ebx
mov dword [0x53349c], ebx
mov byte [0x5323f0], al
mov byte [0x5344c0], bl
mov dword [0x56caa4], ebx
mov eax, dword [0x53453c]
test eax, eax
je 0x4a08b3
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp dword [0x53340c], 1
je 0x4a08df
call dword [sym.imp.USER32.dll_GetForegroundWindow]
cmp eax, dword [0x534544]
jne 0x4a08df
mov eax, dword [0x533498]
test eax, eax
jne 0x4a08d8
mov eax, dword [0x53ed88]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
mov ecx, dword [0x534544]
push ecx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x4a0925
lea edx, [esp + 0x14]
push edx
push esi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [0x53ed88]
push 2
lea eax, [esp + 0x18]
push eax
push ecx
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [0x53ed88]
push 1
lea edx, [esp + 0x18]
push edx
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
call fcn.0045cf60
xor eax, eax
jmp 0x4a10ed
push 0
push esi
mov byte [0x570ba8], 0
call dword [sym.imp.USER32.dll_GetSystemMenu]
mov edi, eax
mov ebp, 1
test edi, edi
je 0x4a0964
mov ebx, dword [sym.imp.USER32.dll_EnableMenuItem]
push ebp
push 0xf000
push edi
call ebx
push ebp
push 0xf030
push edi
call ebx
mov eax, dword [0x56f8e8]
xor ebx, ebx
cmp eax, ebx
je 0x4a0980
push ebx
push 0xa3
push esi
call fcn.0042cbb0
mov eax, dword [0x56f8e8]
cmp byte [0x56ca9f], 0
jne 0x4a09b6
cmp eax, ebp
je 0x4a0992
cmp eax, 2
jne 0x4a09b6
push ebx
push 0xa2
push esi
call fcn.0042cbb0
push ebx
push 0xa6
push esi
call fcn.0042cbb0
push ebx
push 0xa1
push esi
call fcn.0042cbb0
mov byte [0x5344c0], 0
mov byte [0x5323f0], 0
mov dword [0x53349c], ebp
mov dword [0x5323ec], esi
mov dword [0x54ecbc], ebx
cmp dword [0x53340c], ebp
je 0x4a09f3
push esi
call dword [sym.imp.USER32.dll_BringWindowToTop]
mov ecx, dword [0x534544]
push ebx
push ecx
call dword [sym.imp.SHELL32.dll_DragAcceptFiles]
mov edx, dword [0x534544]
push edx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x4a0a44
mov eax, dword [0x534544]
push eax
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x4a0a44
mov edx, dword [0x5323ec]
lea ecx, [esp + 0x24]
push ecx
push edx
mov dword [esp + 0x2c], 0x2c
call dword [sym.imp.USER32.dll_GetWindowPlacement]
mov ecx, dword [0x534544]
lea eax, [esp + 0x24]
push eax
push ecx
mov dword [esp + 0x34], ebx
call dword [sym.imp.USER32.dll_SetWindowPlacement]
mov edi, dword [sym.imp.GDI32.dll_CreatePen]
push 0x606060
push ebp
push ebx
call edi
push 0x80809e
push ebp
push ebx
mov dword [0x56c808], eax
call edi
push 0xeee8e8
push ebp
push ebx
mov dword [0x56c804], eax
call edi
push 0xffffff
push ebp
push ebx
mov dword [0x56c800], eax
call edi
push 0xc0ffff
push ebp
push ebx
mov dword [0x56c7fc], eax
call edi
push 0xb4d4e4
push ebp
push ebx
mov dword [0x56c7f8], eax
call edi
push 0x9494b4
push ebp
push ebx
mov dword [0x56c7f4], eax
call edi
push 0x464040
push ebp
push ebx
mov dword [0x56c7f0], eax
call edi
mov edi, dword [sym.imp.GDI32.dll_CreateSolidBrush]
push 0x6e6e94
mov dword [0x56c7ec], eax
call edi
push 0xdcd6d6
mov dword [0x56c7e8], eax
call edi
push 0xa0c0d0
mov dword [0x56c7e4], eax
call edi
push ebp
push ebx
push 0x8008
push esi
mov dword [0x56c7e0], eax
call dword [sym.imp.USER32.dll_PostMessageW]
xor eax, eax
cmp dword [0x53340c], ebp
setne al
jmp 0x4a10ed
sub edi, 0x111
je 0x4a0ced
sub edi, 0x7ef6
je 0x4a0c3c
sub edi, 1
jne case.0x4a064b.3
mov eax, dword [0x53453c]
test eax, eax
je 0x4a0c35
cmp byte [0x54ecb8], 0
jne 0x4a0b44
push edi
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
xor eax, eax
jmp 0x4a10ed
push 0xc8
lea edx, [esp + 0x420]
push edx
push 0x6f
cmp ebx, 1
push esi
sete byte [esp + 0x23]
call dword [sym.imp.USER32.dll_GetDlgItemTextW]
push 0x49c
call fcn.004744a0
push eax
push 0x6f
push esi
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
xor bl, bl
call fcn.004c1545
mov ebp, dword [sym.imp.USER32.dll_SetWindowTextW]
mov dword [esp + 0x14], eax
mov byte [0x570ba8], 1
cmp byte [0x5344c0], bl
jne 0x4a0bff
mov edi, dword [sym.imp.USER32.dll_GetWindowTextW]
lea esp, [esp]
cmp byte [0x570ba8], 0
je 0x4a0bff
mov eax, dword [0x53453c]
push 0x32
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x4a0bff
cmp byte [esp + 0x13], 0
je 0x4a0bff
test bl, bl
jne 0x4a0be9
push 0x880
lea ecx, [esp + 0x5b0]
push ecx
push esi
call edi
push 0x57d
call fcn.004744a0
push eax
push esi
call ebp
mov bl, 1
push 0x14
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00452b90
cmp byte [0x5344c0], 0
je 0x4a0ba0
mov byte [0x570ba8], 0
call fcn.004c1545
sub eax, dword [esp + 0x14]
push eax
call fcn.0049eec0
lea edx, [esp + 0x41c]
push edx
push 0x6f
push esi
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
test bl, bl
je 0x4a0c35
lea eax, [esp + 0x5ac]
push eax
push esi
call ebp
xor eax, eax
jmp 0x4a10ed
cmp ebx, 0x202
jne 0x4a0c5a
push 1
push esi
call fcn.0049e7f0
push 5
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
jmp case.0x4a0d03.3
cmp ebx, 0x205
jne case.0x4a0d03.3
call dword [sym.imp.USER32.dll_CreatePopupMenu]
push 0x2fe
mov edi, eax
call fcn.004744a0
mov ebx, dword [sym.imp.USER32.dll_AppendMenuW]
push eax
push 0x7c
push 0
push edi
call ebx
push 0x2ff
call fcn.004744a0
push eax
push 0x7d
push 0
push edi
call ebx
xor ecx, ecx
cmp byte [0x56c7d8], cl
setne cl
add ecx, 0x300
push ecx
call fcn.004744a0
push eax
push 0x7e
push 0
push edi
call ebx
lea edx, [esp + 0x14]
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
push esi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push 0
push esi
push 0
push eax
push ecx
push 2
push edi
call dword [sym.imp.USER32.dll_TrackPopupMenu]
push edi
call dword [sym.imp.USER32.dll_DestroyMenu]
jmp case.0x4a0d03.3
movzx eax, bp
add eax, 0xfffffffe
cmp eax, 0x7c
ja case.0x4a0d03.3
movzx edx, byte [eax + 0x4a1150]
jmp dword [edx*4 + 0x4a1134]
push 0
push 0
push 0x10
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
jmp case.0x4a0d03.3
push 0x3b8
lea eax, [esp + 0x68]
push 0
push eax
call fcn.004c05a0
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
add esp, 0xc
push 0x31
mov dword [esp + 0x68], 0x3b8
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], 0x7b
mov dword [esp + 0x74], 7
mov dword [esp + 0x78], 0x8007
call edi
push 0x32
mov ebp, eax
call edi
mov ebx, eax
call fcn.0044a940
cmp eax, 0x501
sbb edi, edi
and edi, 7
add edi, 0x65
mov eax, str.RAR.ico
cmp edi, 0x65
je 0x4a0d87
mov eax, str.Tray.ico
push ebx
push ebp
push eax
mov ecx, 0x543850
call fcn.0047fb90
mov dword [0x56f8ec], eax
test eax, eax
jne 0x4a0db8
mov edx, dword [0x51e7a4]
push eax
push ebx
push ebp
movzx ecx, di
push 1
push ecx
push edx
call dword [sym.imp.USER32.dll_LoadImageW]
mov dword [0x56f8ec], eax
push 0
lea ecx, [esp + 0x68]
mov dword [esp + 0x7c], eax
call fcn.0049f600
lea eax, [esp + 0x64]
push eax
push 0
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
test eax, eax
je 0x4a0e22
push 0
push esi
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
call esi
mov ecx, dword [0x534544]
push 0
push ecx
call esi
push 1
call fcn.004aefe0
mov edx, dword [0x56ca14]
mov eax, dword [0x56ca10]
mov ecx, dword [0x56ca1c]
push 0
push 0
push 0
push 1
push edx
mov edx, dword [0x56ca18]
push eax
push ecx
push edx
call fcn.0049f7e0
jmp case.0x4a0d03.3
mov eax, dword [0x56f8ec]
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
mov dword [0x56f8ec], 0
jmp case.0x4a0d03.3
cmp byte [0x570ba8], 0
je 0x4a0e52
mov byte [0x570ba8], 0
jmp case.0x4a0d03.3
cmp byte [0x56c7d8], 0
jne 0x4a0e9c
cmp dword [0x5323ec], 0
je case.0x4a0d03.3
push 0xc8
push 0x570a18
push 0x6f
push esi
call dword [sym.imp.USER32.dll_GetDlgItemTextW]
push 0x880
push 0x56f918
push esi
call dword [sym.imp.USER32.dll_GetWindowTextW]
mov eax, dword [0x53453c]
test eax, eax
je 0x4a0e9c
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ecx, dword [0x56ca1c]
test ecx, ecx
jl 0x4a0ed7
mov eax, dword [0x56ca18]
jg 0x4a0eb1
test eax, eax
jbe 0x4a0ed7
mov edx, dword [0x56ca14]
movzx ebx, byte [0x56c7d8]
push edx
mov edx, dword [0x56ca10]
neg ebx
push edx
sbb ebx, ebx
push ecx
and ebx, 0xfffffffa
push eax
add ebx, 8
call fcn.0049f750
cmp byte [0x56c7d8], 0
je 0x4a0ee7
mov eax, 0x570a18
jmp 0x4a0ef1
push 0x49c
call fcn.004744a0
push eax
push 0x6f
push esi
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
cmp byte [0x56c7d8], 0
je 0x4a0f0b
mov eax, 0x56f918
jmp 0x4a0f15
push 0x49d
call fcn.004744a0
push eax
push esi
call dword [sym.imp.USER32.dll_SetWindowTextW]
cmp byte [0x56c7d8], 0
push 0x3b8
lea ecx, [esp + 0x68]
sete al
push 0
push ecx
mov byte [0x56c7d8], al
call fcn.004c05a0
mov edx, dword [0x56c80c]
add esp, 0xc
push edx
lea ecx, [esp + 0x68]
mov dword [esp + 0x68], 0x3b8
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], 0x7b
mov dword [esp + 0x74], 4
call fcn.0049f600
lea eax, [esp + 0x64]
push eax
push 1
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
xor bl, bl
cmp byte [0x56c7d8], bl
je 0x4a0f99
mov eax, dword [0x56caa4]
test eax, eax
je 0x4a0f99
push eax
call dword [sym.imp.KERNEL32.dll_SuspendThread]
cmp eax, 0xffffffff
setne bl
call fcn.004c1545
cmp byte [0x56c7d8], 0
mov dword [esp + 0x14], eax
je 0x4a1025
mov edi, dword [sym.imp.USER32.dll_GetMessageW]
mov ebp, dword [sym.imp.USER32.dll_IsDialogMessageW]
cmp byte [0x5344c0], 0
jne 0x4a1025
push 0
push 0
push 0
lea ecx, [esp + 0x30]
push ecx
call edi
test eax, eax
je 0x4a1025
lea edx, [esp + 0x24]
push edx
push esi
call ebp
test eax, eax
jne 0x4a101c
cmp dword [esp + 0x28], 0x203
jne 0x4a1006
mov eax, dword [esp + 0x24]
cmp eax, dword [0x5448dc]
jne 0x4a1006
mov ecx, dword [0x534544]
push ecx
mov ecx, 0x5448dc
call fcn.00484820
jmp 0x4a101c
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp byte [0x56c7d8], 0
jne 0x4a0fb7
call fcn.004c1545
sub eax, dword [esp + 0x14]
add dword [0x56caa0], eax
test bl, bl
je 0x4a1045
mov ecx, dword [0x56caa4]
push ecx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
cmp byte [0x5344c0], 0
jne case.0x4a0d03.3
push 0
push 0
push 0x8008
jmp 0x4a10e1
call fcn.004c1545
mov edx, dword [0x51e7a4]
mov edi, dword [0x54aa28]
push 0
push 0x49ef20
push esi
push str.CMDMODE
push edx
mov ebx, eax
call dword [sym.imp.USER32.dll_DialogBoxParamW]
test eax, eax
je 0x4a10b4
mov eax, dword [0x54aa28]
cmp eax, edi
je 0x4a10b4
test eax, eax
je 0x4a10b4
cmp dword [0x54ccb0], 0
jne 0x4a10b4
mov ecx, dword [0x54ecbc]
test ecx, ecx
je 0x4a10b4
mov edx, dword [ecx]
dec eax
push eax
mov eax, dword [edx + 0x24]
call eax
call fcn.004c1545
sub eax, ebx
add dword [0x56caa0], eax
jmp case.0x4a0d03.3
push 0x202
push 0
push 0x8007
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
jmp case.0x4a0d03.3
push 0
push 0x6f
push 0x111
push esi
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, 1
mov ecx, dword [esp + 0x16ac]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004bfc52
add esp, 0x16a0
ret 0x10