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

Disassembly:
sub esp, 0xf0
push ebx
push ebp
push esi
mov esi, ecx
push edi
push 0xfffffffffffffff0
mov eax, dword [esi + 0xc]
mov dword [esi + 0xa4], 1
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0xc00000
jne 0x43ef42
push 0
mov ecx, esi
call fcn.0043f610
mov ecx, dword [esi + 0xc]
push ecx
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
je 0x43ef5c
mov edx, dword [esi + 0xc]
push 1
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [esi + 0xc]
push 2
push eax
call fcn.00449c30
lea ecx, [esp + 0x80]
mov dword [esp + 0x80], 0x28
push ecx
push eax
call fcn.0044a000
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0xa0]
mov edi, dword [esp + 0x98]
mov dword [esp + 0x48], eax
sub eax, edx
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x98]
mov ebp, ecx
mov ebx, edx
sub ecx, edi
mov dword [esp + 0x40], ebx
test eax, eax
mov dword [esp + 0x44], edi
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x54], ecx
mov dword [esp + 0x68], 0x14f
jne 0x43efd8
mov eax, dword [esi + 0x9c]
test eax, eax
je 0x43efe0
mov dword [esp + 0x68], 0x1cc
mov eax, dword [esi + 0xc]
lea edx, [esp + 0xd4]
push edx
push eax
mov dword [esp + 0xdc], 0x2c
call dword [sym.imp.USER32.dll_GetWindowPlacement]
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0x48]
add ecx, ebx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x44]
add edx, ecx
add eax, ebx
mov dword [esp + 0x2c], edx
cdq
sub eax, edx
mov edi, eax
lea eax, [ecx + ebp]
cdq
lea ecx, [esp + 0x24]
sub eax, edx
mov edx, dword [str.SoftwareACD_SystemsACDSee32]
push ecx
push 0x20019
push 0
sar edi, 1
sar eax, 1
push edx
push DrawStatusTextA
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x43f0d6
lea eax, [esp + 0x18]
lea ecx, [esp + 0xa8]
push eax
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x14]
push ecx
push edx
push 0
push str.ViewerWndPos
push eax
mov dword [esp + 0x30], 0x2c
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [esp + 0x24]
mov ebx, eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
jne 0x43f0d6
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xcc]
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x28], ecx
lea eax, [ecx + edx]
mov dword [esp + 0x2c], edi
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xd0]
add eax, edi
mov edi, dword [esp + 0x1c]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x44]
cmp eax, ecx
mov ebp, 0x1cc
mov ebx, 0x96
jge 0x43f2aa
test eax, eax
jl 0x43f2aa
mov ecx, dword [esi + 0x40]
mov edi, dword [ecx + eax*4]
test edi, edi
je 0x43f2a6
push 0xffffffffffffffff
mov ecx, edi
call fcn.0045ad90
test eax, eax
je 0x43f2a6
mov edx, dword [esi + 8]
push 0xffffffffffffffff
mov eax, dword [edx + 0x58]
mov dword [esp + 0x14], eax
mov ecx, dword [edx + 0x5c]
mov dword [esp + 0x18], ecx
mov ecx, edi
call fcn.0045ad90
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul qword [esp + 0x10]
fadd qword [0x4cc720]
call fcn.004bedcc
mov edx, dword [esi + 8]
mov dword [esp + 0x10], eax
push 0xffffffffffffffff
mov eax, dword [edx + 0x58]
mov dword [esp + 0x34], eax
mov ecx, dword [edx + 0x5c]
mov dword [esp + 0x38], ecx
mov ecx, edi
call fcn.0045adf0
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul qword [esp + 0x30]
fadd qword [0x4cc720]
call fcn.004bedcc
mov ebx, dword [sym.imp.USER32.dll_GetClientRect]
mov ebp, eax
mov eax, dword [esi + 0x98]
test eax, eax
je 0x43f1ba
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x43f1ba
mov eax, dword [esi + 0x14]
test eax, eax
jne 0x43f19d
mov eax, ecx
lea edx, [esp + 0x30]
push edx
push eax
call ebx
mov eax, dword [esi + 0x14]
test eax, eax
je 0x43f1b1
sub dword [esp + 0x3c], 2
mov eax, dword [esp + 0x3c]
lea edi, [eax + 1]
jmp 0x43f1bc
xor edi, edi
mov eax, dword [esi + 0x9c]
test eax, eax
je 0x43f1de
mov eax, dword [esi + 0x18]
test eax, eax
je 0x43f1de
lea ecx, [esp + 0x70]
push ecx
push eax
call ebx
mov edx, dword [esp + 0x7c]
lea eax, [edx + 1]
jmp 0x43f1e0
xor eax, eax
add eax, edi
lea eax, [eax + ebp + 2]
cmp eax, 0x7d00
jle 0x43f1f4
mov ecx, 0x7d00
jmp 0x43f257
mov eax, dword [esi + 0x98]
test eax, eax
je 0x43f22b
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x43f22b
mov eax, dword [esi + 0x14]
test eax, eax
jne 0x43f20e
mov eax, ecx
lea ecx, [esp + 0x30]
push ecx
push eax
call ebx
mov eax, dword [esi + 0x14]
test eax, eax
je 0x43f222
sub dword [esp + 0x3c], 2
mov edx, dword [esp + 0x3c]
lea edi, [edx + 1]
jmp 0x43f22d
xor edi, edi
mov eax, dword [esi + 0x9c]
test eax, eax
je 0x43f24f
mov eax, dword [esi + 0x18]
test eax, eax
je 0x43f24f
lea ecx, [esp + 0x70]
push ecx
push eax
call ebx
mov edx, dword [esp + 0x7c]
lea eax, [edx + 1]
jmp 0x43f251
xor eax, eax
add eax, edi
lea ecx, [eax + ebp + 2]
mov eax, dword [esp + 0x10]
add eax, 2
cmp eax, 0x7d00
jle 0x43f26a
mov eax, 0x7d00
push ecx
push eax
push 0
lea ecx, [esp + 0x64]
push 0
push ecx
call dword [sym.imp.USER32.dll_SetRect]
mov edx, dword [0x4eb420]
lea eax, [esp + 0x58]
push edx
push 0xcf0000
push eax
call dword [sym.imp.USER32.dll_AdjustWindowRect]
mov ebp, dword [esp + 0x60]
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x5c]
sub ebp, ecx
sub ebx, eax
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x68]
cmp ecx, ebp
mov eax, ecx
jg 0x43f2b6
mov eax, ebp
mov edx, dword [esp + 0x50]
cmp edx, eax
jge 0x43f2c2
mov ebp, edx
jmp 0x43f2c8
cmp ecx, ebp
jle 0x43f2c8
mov ebp, ecx
cmp ebx, 0xc8
mov eax, 0xc8
jl 0x43f2d7
mov eax, ebx
mov ecx, dword [esp + 0x54]
cmp ecx, eax
jge 0x43f2e3
mov ebx, ecx
jmp 0x43f2f0
cmp ebx, 0xc8
jge 0x43f2f0
mov ebx, 0xc8
mov eax, dword [0x4eb3f8]
test eax, eax
je 0x43f315
mov eax, ebp
cdq
sub eax, edx
sar eax, 1
sub edi, eax
mov eax, ebx
cdq
sub eax, edx
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x20]
sar eax, 1
sub edi, eax
jmp 0x43f321
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
add edx, ebp
cmp edx, eax
jle 0x43f335
sub eax, ebp
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x4c]
lea ecx, [edi + ebx]
cmp ecx, eax
jle 0x43f344
sub eax, ebx
mov edi, eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x10]
cmp ecx, eax
jge 0x43f354
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x44]
cmp edi, eax
jge 0x43f35e
mov edi, eax
mov edx, dword [esi + 0xc]
push edx
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
je 0x43f378
mov eax, dword [esi + 0xc]
push 5
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0xc]
push 0x114
push ebx
push ebp
push edi
push ecx
push 0
push edx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [esi + 0xc]
push 4
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret