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

Disassembly:
sub esp, 0xe8c
mov eax, dword [0x4cc3b0]
xor eax, esp
mov dword [esp + 0xe88], eax
cmp word [0x50eba0], 0
push ebx
push ebp
push esi
mov esi, dword [esp + 0xe9c]
push edi
mov eax, str.HELPExecArcCmd
je 0x487943
mov eax, 0x50eba0
mov ebx, dword [esp + 0xeac]
mov ebp, dword [esp + 0xea8]
mov edi, dword [esp + 0xea4]
push 0
push eax
mov eax, dword [0x50eb6c]
push eax
push ebx
push ebp
push edi
push esi
call fcn.00422c00
test al, al
jne case.0x487e8e.3
cmp edi, 0x110
ja 0x487e5e
je 0x487c8d
add edi, 0xfffffffe
cmp edi, 0x16
ja case.0x487997.3
movzx ecx, byte [edi + 0x488504]
jmp dword [ecx*4 + 0x4884f0]
test ebp, ebp
je case.0x487997.3
push 0xfffffffffffffff0
push esi
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, 0x40000000
je case.0x487997.3
mov edi, dword [sym.imp.USER32.dll_FlashWindow]
push 0
push esi
call edi
push 1
push esi
call edi
jmp case.0x487997.3
push str.Done
push esi
call dword [sym.imp.USER32.dll_GetPropW]
test eax, eax
mov eax, dword [0x510878]
je 0x4879ed
cmp eax, 8
jne case.0x487997.3
test eax, eax
je 0x487a04
cmp eax, 1
je 0x487a04
cmp eax, 2
je 0x487a04
cmp eax, 8
jne case.0x487997.3
lea edx, [esp + 0x20]
push edx
push esi
call dword [sym.imp.USER32.dll_BeginPaint]
mov ecx, dword [0x50edb0]
mov edx, dword [0x50edbc]
push esi
push 0
mov edi, eax
mov eax, dword [0x50edb4]
push edi
push 0
push eax
mov eax, dword [0x50edb8]
push ecx
push edx
push eax
call fcn.00486b40
cmp byte [0x50ee2e], 0
jne 0x487a49
cmp dword [0x510878], 8
jne 0x487a6f
mov ecx, dword [0x50eda4]
mov edx, dword [0x50eda0]
mov eax, dword [0x50edac]
push esi
push 1
push edi
push 1
push ecx
mov ecx, dword [0x50eda8]
push edx
push eax
push ecx
call fcn.00486b40
lea edx, [esp + 0x20]
push edx
push esi
call dword [sym.imp.USER32.dll_EndPaint]
jmp case.0x487997.3
push str.Done
push esi
call dword [sym.imp.USER32.dll_GetPropW]
test eax, eax
je 0x487aa1
push esi
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, 1
jmp 0x4884d2
cmp dword [0x510878], 0xb
je 0x487ae0
call fcn.004a5c05
sub eax, dword [0x50ee30]
cmp eax, 0xea60
jl 0x487ae0
push 0x24
push 0x312
call fcn.004611c0
push eax
push 0x311
call fcn.004611c0
push eax
push esi
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x487ae7
mov byte [0x4eac4c], 1
mov eax, 1
jmp 0x4884d2
mov eax, dword [0x4eacd4]
push 1
push eax
call dword [sym.imp.SHELL32.dll_DragAcceptFiles]
push 0
push 0
push 0
push 0
xor ebx, ebx
call fcn.00486ab0
push str.Done
push esi
call dword [sym.imp.USER32.dll_GetPropW]
test eax, eax
je 0x487b50
push str.Done
push esi
call dword [sym.imp.USER32.dll_RemovePropW]
xor eax, eax
lea esp, [esp]
cmp dword [eax*4 + 0x50ee38], esi
je 0x487b44
inc eax
cmp eax, 0x10
jb 0x487b30
jmp 0x487c01
mov dword [eax*4 + 0x50ee38], ebx
jmp 0x487c01
mov ecx, dword [0x50eb98]
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
push ecx
call edi
mov edx, dword [0x50eb94]
push edx
call edi
mov eax, dword [0x50eb90]
push eax
call edi
mov ecx, dword [0x50eb8c]
push ecx
call edi
mov edx, dword [0x50eb88]
push edx
call edi
mov eax, dword [0x50eb84]
push eax
call edi
mov ecx, dword [0x50eb80]
push ecx
call edi
mov edx, dword [0x50eb7c]
push edx
call edi
mov eax, dword [0x50eb78]
push eax
call edi
mov ecx, dword [0x50eb74]
push ecx
call edi
mov edx, dword [0x50eb70]
push edx
call edi
xor ebx, ebx
cmp byte [0x4eac4c], bl
jne 0x487bd8
call fcn.004a5c05
sub eax, dword [0x50ee30]
cmp eax, 0x2710
jle 0x487bd8
push ebx
call fcn.004468a0
push ebx
push esi
call fcn.00485c00
mov al, byte [0x4eac4c]
mov dword [0x4e9b84], ebx
mov dword [0x4ea434], ebx
mov byte [0x4e9b88], al
mov byte [0x4eac4c], bl
mov dword [0x50ee34], ebx
mov eax, dword [0x4eaccc]
test eax, eax
je 0x487c11
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp dword [0x4ea3a4], 1
je 0x487c3d
call dword [sym.imp.USER32.dll_GetForegroundWindow]
cmp eax, dword [0x4eacd4]
jne 0x487c3d
mov eax, dword [0x4ea430]
test eax, eax
jne 0x487c36
mov eax, dword [0x4f0478]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
mov ecx, dword [0x4eacd4]
push ecx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x487c83
lea edx, [esp + 0x10]
push edx
push esi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [0x4f0478]
push 2
lea eax, [esp + 0x14]
push eax
push ecx
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [0x4f0478]
push 1
lea edx, [esp + 0x14]
push edx
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
call fcn.0044f3f0
jmp case.0x487997.3
push 0
push esi
mov byte [0x511338], 0
call dword [sym.imp.USER32.dll_GetSystemMenu]
mov edi, eax
mov ebp, 1
test edi, edi
je 0x487cc0
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 [0x510878]
xor ebx, ebx
cmp eax, ebx
je 0x487cdc
push ebx
push 0xa3
push esi
call fcn.00422940
mov eax, dword [0x510878]
cmp byte [0x50ee2e], 0
jne 0x487d12
cmp eax, ebp
je 0x487cee
cmp eax, 2
jne 0x487d12
push ebx
push 0xa2
push esi
call fcn.00422940
push ebx
push 0xa6
push esi
call fcn.00422940
push ebx
push 0xa1
push esi
call fcn.00422940
mov byte [0x4eac4c], 0
mov byte [0x4e9b88], 0
mov dword [0x4ea434], ebp
mov dword [0x4e9b84], esi
mov dword [0x4f7fc8], ebx
cmp dword [0x4ea3a4], ebp
je 0x487d4f
push esi
call dword [sym.imp.USER32.dll_BringWindowToTop]
mov ecx, dword [0x4eacd4]
push ebx
push ecx
call dword [sym.imp.SHELL32.dll_DragAcceptFiles]
mov edx, dword [0x4eacd4]
push edx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x487da0
mov eax, dword [0x4eacd4]
push eax
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x487da0
mov edx, dword [0x4e9b84]
lea ecx, [esp + 0x20]
push ecx
push edx
mov dword [esp + 0x28], 0x2c
call dword [sym.imp.USER32.dll_GetWindowPlacement]
mov ecx, dword [0x4eacd4]
lea eax, [esp + 0x20]
push eax
push ecx
mov dword [esp + 0x30], 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 [0x50eb98], eax
call edi
push 0xeee8e8
push ebp
push ebx
mov dword [0x50eb94], eax
call edi
push 0xffffff
push ebp
push ebx
mov dword [0x50eb90], eax
call edi
push 0xc0ffff
push ebp
push ebx
mov dword [0x50eb8c], eax
call edi
push 0xb4d4e4
push ebp
push ebx
mov dword [0x50eb88], eax
call edi
push 0x9494b4
push ebp
push ebx
mov dword [0x50eb84], eax
call edi
push 0x464040
push ebp
push ebx
mov dword [0x50eb80], eax
call edi
mov edi, dword [sym.imp.GDI32.dll_CreateSolidBrush]
push 0x6e6e94
mov dword [0x50eb7c], eax
call edi
push 0xdcd6d6
mov dword [0x50eb78], eax
call edi
push 0xa0c0d0
mov dword [0x50eb74], eax
call edi
push ebx
push ebx
push 0x401
push esi
mov dword [0x50eb70], eax
call dword [sym.imp.USER32.dll_PostMessageW]
xor eax, eax
cmp dword [0x4ea3a4], ebp
setne al
jmp 0x4884d2
cmp edi, 0x400
ja 0x488360
je 0x488296
cmp edi, 0x111
jne case.0x487997.3
movzx eax, bp
add eax, 0xfffffffe
cmp eax, 0x7c
ja case.0x487e8e.3
movzx edx, byte [eax + 0x488538]
jmp dword [edx*4 + 0x48851c]
push 0
push 0
push 0x10
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
jmp 0x4884d2
push 0x3a8
lea eax, [esp + 0x64]
push 0
push eax
call fcn.004a5130
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
add esp, 0xc
push 0x31
mov dword [esp + 0x64], 0x3a8
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], 0x7b
mov dword [esp + 0x70], 7
mov dword [esp + 0x74], 0x400
call edi
push 0x32
mov ebp, eax
call edi
mov ebx, eax
call fcn.0043ee30
cmp eax, 0x501
sbb edi, edi
and edi, 7
add edi, 0x65
mov eax, str.RAR.ico
cmp edi, 0x65
je 0x487f17
mov eax, str.Tray.ico
push ebx
push ebp
push eax
mov ecx, 0x4f23b0
call fcn.0046c260
mov dword [0x51087c], eax
test eax, eax
jne 0x487f48
mov edx, dword [0x4d76b0]
push eax
push ebx
push ebp
movzx ecx, di
push 1
push ecx
push edx
call dword [sym.imp.USER32.dll_LoadImageW]
mov dword [0x51087c], eax
push 0
lea ecx, [esp + 0x64]
mov dword [esp + 0x78], eax
call fcn.00486960
lea eax, [esp + 0x60]
push eax
push 0
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
test eax, eax
je 0x487fb7
push 0
push esi
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
call esi
mov ecx, dword [0x4eacd4]
push 0
push ecx
call esi
push 1
call fcn.00496830
mov edx, dword [0x50eda4]
mov eax, dword [0x50eda0]
mov ecx, dword [0x50edac]
push 0
push 0
push 0
push 1
push edx
mov edx, dword [0x50eda8]
push eax
push ecx
push edx
call fcn.00486b40
mov eax, 1
jmp 0x4884d2
mov eax, dword [0x51087c]
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
mov dword [0x51087c], 0
mov eax, 1
jmp 0x4884d2
cmp byte [0x511338], 0
je 0x487ff1
mov byte [0x511338], 0
mov eax, 1
jmp 0x4884d2
cmp byte [0x50eb68], 0
jne 0x48803b
cmp dword [0x4e9b84], 0
je case.0x487e8e.3
push 0xc8
push 0x5111a8
push 0x6f
push esi
call dword [sym.imp.USER32.dll_GetDlgItemTextW]
push 0x480
push 0x5108a8
push esi
call dword [sym.imp.USER32.dll_GetWindowTextW]
mov eax, dword [0x4eaccc]
test eax, eax
je 0x48803b
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ecx, dword [0x50edac]
test ecx, ecx
jl 0x488076
mov eax, dword [0x50eda8]
jg 0x488050
test eax, eax
jbe 0x488076
mov edx, dword [0x50eda4]
movzx ebx, byte [0x50eb68]
push edx
mov edx, dword [0x50eda0]
neg ebx
push edx
sbb ebx, ebx
push ecx
and ebx, 0xfffffffa
push eax
add ebx, 8
call fcn.00486ab0
cmp byte [0x50eb68], 0
je 0x488086
mov eax, 0x5111a8
jmp 0x488090
push 0x49c
call fcn.004611c0
push eax
push 0x6f
push esi
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
cmp byte [0x50eb68], 0
je 0x4880aa
mov eax, 0x5108a8
jmp 0x4880b4
push 0x49d
call fcn.004611c0
push eax
push esi
call dword [sym.imp.USER32.dll_SetWindowTextW]
cmp byte [0x50eb68], 0
push 0x3a8
lea ecx, [esp + 0x64]
sete al
push 0
push ecx
mov byte [0x50eb68], al
call fcn.004a5130
mov edx, dword [0x50eb9c]
add esp, 0xc
push edx
lea ecx, [esp + 0x64]
mov dword [esp + 0x64], 0x3a8
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], 0x7b
mov dword [esp + 0x70], 4
call fcn.00486960
lea eax, [esp + 0x60]
push eax
push 1
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
xor bl, bl
cmp byte [0x50eb68], bl
je 0x488138
mov eax, dword [0x50ee34]
test eax, eax
je 0x488138
push eax
call dword [sym.imp.KERNEL32.dll_SuspendThread]
cmp eax, 0xffffffff
setne bl
call fcn.004a5c05
cmp byte [0x50eb68], 0
mov dword [esp + 0x10], eax
je 0x4881c4
mov edi, dword [sym.imp.USER32.dll_GetMessageW]
mov ebp, dword [sym.imp.USER32.dll_IsDialogMessageW]
cmp byte [0x4eac4c], 0
jne 0x4881c4
push 0
push 0
push 0
lea ecx, [esp + 0x2c]
push ecx
call edi
test eax, eax
je 0x4881c4
lea edx, [esp + 0x20]
push edx
push esi
call ebp
test eax, eax
jne 0x4881bb
cmp dword [esp + 0x24], 0x203
jne 0x4881a5
mov eax, dword [esp + 0x20]
cmp eax, dword [0x4f2c80]
jne 0x4881a5
mov ecx, dword [0x4eacd4]
push ecx
mov ecx, 0x4f2c80
call fcn.00470b50
jmp 0x4881bb
lea edx, [esp + 0x20]
push edx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp byte [0x50eb68], 0
jne 0x488156
call fcn.004a5c05
sub eax, dword [esp + 0x10]
add dword [0x50ee30], eax
test bl, bl
je 0x4881e4
mov ecx, dword [0x50ee34]
push ecx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov eax, 1
jmp 0x4884d2
call fcn.004a5c05
mov edx, dword [0x4d76b0]
mov edi, dword [0x4f65c8]
push 0
push 0x4862c0
push esi
push str.CMDMODE
push edx
mov ebx, eax
call dword [sym.imp.USER32.dll_DialogBoxParamW]
test eax, eax
je 0x488248
mov eax, dword [0x4f65c8]
cmp eax, edi
je 0x488248
test eax, eax
je 0x488248
cmp dword [0x4f6fbc], 0
jne 0x488242
mov ecx, dword [0x4f7fc8]
test ecx, ecx
je 0x488248
dec eax
push eax
call fcn.00448ba0
jmp 0x488248
push eax
call fcn.00422590
call fcn.004a5c05
sub eax, ebx
add dword [0x50ee30], eax
mov eax, 1
jmp 0x4884d2
push 0x202
push 0
push 0x400
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
jmp 0x4884d2
push 0
push 0x6f
push 0x111
push esi
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, 1
jmp 0x4884d2
cmp ebx, 0x202
jne 0x4882b9
push 1
push esi
call fcn.00485c00
push 5
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, 1
jmp 0x4884d2
cmp ebx, 0x205
jne 0x488356
call dword [sym.imp.USER32.dll_CreatePopupMenu]
push 0x2fe
mov edi, eax
call fcn.004611c0
mov ebx, dword [sym.imp.USER32.dll_AppendMenuW]
push eax
push 0x7c
push 0
push edi
call ebx
push 0x2ff
call fcn.004611c0
push eax
push 0x7d
push 0
push edi
call ebx
xor eax, eax
cmp byte [0x50eb68], al
setne al
add eax, 0x300
push eax
call fcn.004611c0
push eax
push 0x7e
push 0
push edi
call ebx
lea ecx, [esp + 0x10]
push ecx
call dword [sym.imp.USER32.dll_GetCursorPos]
push esi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push 0
push esi
push 0
push edx
push eax
push 2
push edi
call dword [sym.imp.USER32.dll_TrackPopupMenu]
push 0
push 0
push 0x400
push esi
call dword [sym.imp.USER32.dll_PostMessageW]
push edi
call dword [sym.imp.USER32.dll_DestroyMenu]
mov eax, 1
jmp 0x4884d2
sub edi, 0x401
je 0x4883cd
sub edi, 1
je 0x48839f
sub edi, 1
jne case.0x487997.3
mov eax, ebx
xor ebx, ebx
push ebx
push ebx
push ebx
cdq
push 1
mov edi, edx
push edi
mov esi, eax
push esi
push ebx
push ebp
call fcn.00486b40
push ebx
push edi
push esi
push ebx
push ebp
call fcn.004865e0
lea eax, [ebx + 1]
jmp 0x4884d2
push 0
push 0
push 0
push 0
mov eax, ebx
cdq
push edx
push eax
push 0
push ebp
call fcn.00486b40
push 0
push 0
push 0
push 0
push 0
call fcn.004865e0
mov eax, 1
jmp 0x4884d2
mov eax, dword [0x4eaccc]
test eax, eax
je case.0x487997.3
cmp byte [0x4f7fc4], 0
jne 0x4883f1
push 0
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp case.0x487997.3
push 0xc8
lea ecx, [esp + 0x40c]
push ecx
push 0x6f
push esi
call dword [sym.imp.USER32.dll_GetDlgItemTextW]
push 0x49c
call fcn.004611c0
push eax
push 0x6f
push esi
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
xor bl, bl
call fcn.004a5c05
mov ebp, dword [sym.imp.USER32.dll_SetWindowTextW]
mov dword [esp + 0x10], eax
mov byte [0x511338], 1
cmp byte [0x4eac4c], bl
jne 0x48849a
mov edi, dword [sym.imp.USER32.dll_GetWindowTextW]
cmp byte [0x511338], 0
je 0x48849a
mov edx, dword [0x4eaccc]
push 0x32
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x48849a
test bl, bl
jne 0x488484
push 0x480
lea eax, [esp + 0x59c]
push eax
push esi
call edi
push 0x57d
call fcn.004611c0
push eax
push esi
call ebp
mov bl, 1
push 0x14
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.004470b0
cmp byte [0x4eac4c], 0
je 0x488441
mov byte [0x511338], 0
call fcn.004a5c05
sub eax, dword [esp + 0x10]
push eax
call fcn.00486260
lea ecx, [esp + 0x408]
push ecx
push 0x6f
push esi
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
test bl, bl
je case.0x487997.3
lea edx, [esp + 0x598]
push edx
push esi
call ebp
xor eax, eax
mov ecx, dword [esp + 0xe98]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004a48d3
add esp, 0xe8c
ret 0x10