Function at 0x494880
Capabilities:
Hide graphical window
Query or enumerate registry value

Disassembly:
sub esp, 0x64
push esi
mov esi, ecx
cmp byte [esi + 0xbc0], 0
jne 0x494dc8
push ebx
push ebp
push edi
lea eax, [esi + 0x4cc]
lea edi, [esi + 0x414]
push eax
mov ecx, edi
call fcn.005e4e71
mov edx, dword [0x70f604]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x1c]
push ecx
push 0
push 0
push str.bHideSLTabOnDwnlDlg
mov ebp, 4
push edx
mov byte [esp + 0x2a], 1
mov byte [esp + 0x2b], 1
mov dword [esp + 0x2c], ebp
call ebx
test eax, eax
jne 0x4948ee
cmp dword [esp + 0x18], 1
je 0x4948ee
mov byte [esp + 0x12], al
mov edx, dword [0x70f604]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x1c]
push ecx
push 0
push 0
push str.bHideCTabOnDwnlDlg
push edx
mov dword [esp + 0x2c], ebp
call ebx
test eax, eax
jne 0x49491d
cmp dword [esp + 0x18], 1
je 0x49491d
mov byte [esp + 0x13], al
cmp byte [esp + 0x12], 0
je 0x494939
lea eax, [esi + 0x7a0]
push eax
mov ecx, edi
call fcn.005e4e71
mov byte [esi + 0x81], 1
mov ecx, dword [esi + 0x74]
cmp dword [ecx + 4], 0
jne 0x49495e
cmp byte [esp + 0x13], 0
je 0x49495e
lea edx, [esi + 0x5e8]
push edx
mov ecx, edi
call fcn.005e4e71
mov byte [esi + 0x82], 1
push 0
mov ecx, edi
call fcn.005e3af6
mov eax, dword [esi + 0x20]
push 0x6e0
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ebx, eax
test ebx, ebx
je 0x494993
lea ecx, [esp + 0x34]
push ecx
push ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
push 0
push ebx
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x4949cb
mov eax, dword [esi + 0x20]
lea edx, [esp + 0x34]
push edx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
add eax, 0x26
add ecx, 0xf
mov dword [esp + 0x38], eax
add eax, 0xa4
mov dword [esp + 0x34], ecx
add ecx, 0x1f7
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0x2c]
push ecx
call dword [sym.imp.USER32.dll_GetCursorPos]
cmp dword [0x70f4a8], 0
mov eax, dword [0x70f4ac]
jne 0x4949e9
mov eax, dword [0x70f5e0]
test eax, eax
je 0x494a42
mov eax, dword [esi + 0x3e0]
lea edx, [esp + 0x44]
push edx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov edx, dword [esi + 0x20]
lea ecx, [esp + 0x64]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
push 1
sub eax, 3
sub edx, ecx
push edx
mov dword [esp + 0x54], eax
dec eax
push eax
push ecx
push 1
lea ecx, [esi + 0x3c0]
mov dword [esp + 0x58], 1
call fcn.005d0863
cmp dword [0x70f4a8], 0
mov eax, dword [0x70f4ac]
jne 0x494a55
mov eax, dword [0x70f5e0]
test eax, eax
je 0x494a61
lea eax, [esi + 0x3c0]
jmp 0x494a6a
mov eax, dword [esi + 0x20]
push eax
call fcn.005d4546
mov edx, dword [edi]
push 0x2000000
push 0x50010000
push eax
mov eax, dword [edx + 0x13c]
mov ecx, edi
call eax
test eax, eax
je 0x494dc5
push 0
push 0x10000
push 0
mov ecx, edi
call fcn.005d07d5
cmp dword [0x70f738], 0
je 0x494b71
mov ecx, dword [esi + 0x434]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
push 0x474
push ecx
call ebx
push eax
call fcn.005d4546
test eax, eax
je 0x494b71
mov edx, dword [esi + 0x434]
mov ebp, dword [esi + 0x8f8]
push 0
push 0
push 0x474
push edx
call ebx
push eax
call fcn.005d4546
mov ebx, eax
push ebp
lea eax, [esi + 0x4cc]
push eax
mov ecx, edi
call fcn.005e422d
push eax
mov eax, dword [ebx + 0x20]
push eax
call fcn.005065a0
add esp, 0xc
cmp byte [esp + 0x12], 0
je 0x494b38
mov eax, dword [esi + 0x900]
push eax
lea ecx, [esi + 0x7a0]
push ecx
mov ecx, edi
call fcn.005e422d
push eax
mov ecx, edi
call fcn.00491600
mov edx, dword [eax + 0x20]
push edx
call fcn.005065a0
add esp, 0xc
mov eax, dword [esi + 0x74]
cmp dword [eax + 4], 0
jne 0x494b71
cmp byte [esp + 0x13], 0
je 0x494b71
mov eax, dword [esi + 0x8fc]
push eax
lea ecx, [esi + 0x5e8]
push ecx
mov ecx, edi
call fcn.005e422d
push eax
mov ecx, edi
call fcn.00491600
mov edx, dword [eax + 0x20]
push edx
call fcn.005065a0
add esp, 0xc
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x40]
sub ebx, eax
mov dword [esp + 0x24], eax
lea eax, [esp + 0x24]
sub ebp, ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [esi + 0x20]
push eax
push ecx
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x34], eax
add eax, ebx
lea edx, [esp + 0x34]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], ecx
push edx
lea eax, [esp + 0x58]
add ecx, ebp
push eax
mov dword [esp + 0x48], ecx
call dword [sym.imp.USER32.dll_CopyRect]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
push 1
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x5c]
sub edx, ecx
push edx
push eax
push ecx
mov ecx, edi
call fcn.005d0863
mov eax, dword [esi + 0x434]
push 0
push 0
push 0x474
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push eax
call fcn.005d4546
test eax, eax
je 0x494c1b
mov ecx, dword [eax + 0x20]
push 0
push ebp
push ebx
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_MoveWindow]
push 0
mov ecx, edi
call fcn.005e4201
push 5
mov ecx, edi
call fcn.005d08a3
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
push edx
push eax
call dword [sym.imp.USER32.dll_SetCursorPos]
mov byte [esi + 0xbc0], 1
mov ecx, dword [esi + 0xac]
push ecx
mov ecx, dword [esi + 0xa8]
call fcn.005d0697
mov edx, dword [eax + 0x20]
push 0
push 0
push 0x31
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
push eax
call fcn.005d8cee
mov dword [esp + 0x1c], eax
test eax, eax
je 0x494d01
push 1
push eax
push edi
call fcn.00494460
add esp, 0xc
mov ecx, edi
xor ebp, ebp
call fcn.005e41c0
test eax, eax
jle 0x494cca
push ebp
mov ecx, edi
call fcn.005e4201
mov ecx, edi
call fcn.005e479a
mov ecx, dword [esp + 0x1c]
push 1
push ecx
push eax
mov dword [esp + 0x2c], eax
call fcn.00494460
mov edx, dword [esp + 0x2c]
push edx
call fcn.00454ae0
add esp, 0x10
mov ecx, edi
inc ebp
call fcn.005e41c0
cmp ebp, eax
jl 0x494c91
mov eax, dword [esi + 0x20]
push eax
call fcn.005d4546
push eax
call fcn.00454ae0
push edi
call fcn.00454ae0
add esp, 8
push 0
mov ecx, edi
call fcn.005e4201
push 5
mov ecx, edi
call fcn.005d08a3
push 0
push 0
push 0
mov ecx, esi
call fcn.00491e60
push 0
mov byte [esp + 0x17], 0
call dword [sym.imp.USER32.dll_GetDC]
mov edi, eax
test edi, edi
je 0x494dc5
mov ebp, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0x58
push edi
call ebp
push 0x58
push edi
call ebp
cmp eax, 0x60
je 0x494d32
mov byte [esp + 0x13], 1
push edi
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp byte [esp + 0x13], 0
je 0x494dc5
mov edx, dword [esi + 0x5b8]
mov edi, dword [sym.imp.USER32.dll_GetWindowRect]
lea ecx, [esp + 0x64]
push ecx
push edx
call edi
mov ecx, dword [esi + 0x20]
lea eax, [esp + 0x44]
push eax
push ecx
call edi
mov edx, dword [esp + 0x6c]
lea eax, [edx + 0xa]
mov edx, dword [esp + 0x4c]
cmp eax, edx
jle 0x494dc5
cmp ebx, 0x1f7
jle 0x494d84
add ebx, 0xfffffe09
jmp 0x494d86
xor ebx, ebx
movzx ecx, byte [esi + 0x80]
mov eax, dword [esp + 0x48]
neg ecx
sbb ecx, ecx
and ecx, 0x10
add ecx, 0x20
push ecx
mov ecx, dword [esp + 0x54]
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x4c]
mov edi, ebx
sub edi, ecx
add edi, edx
push edi
push eax
mov eax, ebx
cdq
sub eax, edx
mov edx, dword [esi + 0x20]
sar eax, 1
sub ecx, eax
push ecx
push 0
push edx
call dword [sym.imp.USER32.dll_SetWindowPos]
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x64
ret