Function at 0x4055e0
Capabilities:
Get graphical window text
Print debug messages
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6b0
mov eax, dword [0x4545c0]
xor eax, ebp
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
push ebx
mov dword [ebp - 0x680], ecx
mov ecx, dword [ebp + 0x14]
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x654], eax
mov eax, dword [ecx]
push edi
mov dword [ebp - 0x65c], esi
mov dword [ebp - 0x698], ecx
cmp eax, 0x64
jbe 0x405634
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004243bb
mov esp, ebp
pop ebp
ret
lea edx, [ebp - 0x674]
inc eax
xor ebx, ebx
push edx
mov dword [ecx], eax
mov dword [ebp - 0x664], ebx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [esi]
mov edx, dword [eax]
lea ecx, [ebp - 0x664]
push ecx
push 0x4395e0
mov edi, 1
push esi
mov dword [ebp - 0x650], ebx
mov dword [ebp - 0x658], edi
call edx
mov eax, dword [ebp - 0x664]
cmp eax, ebx
je 0x405682
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
push eax
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x20]
lea ecx, [ebp - 0x690]
push ecx
push esi
mov dword [ebp - 0x690], ebx
mov dword [ebp - 0x694], ebx
call edx
cmp dword [ebp - 0x690], edi
mov dword [ebp - 0x688], edi
mov edi, dword [ebp - 0x650]
jl 0x405c57
jmp 0x4056c0
cmp dword [ebp - 0x658], 1
jne 0x405c57
lea eax, [ebp - 0x674]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x650]
cmp eax, ebx
je 0x4056ec
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x664]
mov dword [ebp - 0x650], ebx
cmp eax, ebx
je 0x40572b
mov ecx, dword [eax]
lea edx, [ebp - 0x694]
push edx
lea edx, [ebp - 0x674]
push edx
push 1
push eax
mov eax, dword [ecx + 0xc]
call eax
test eax, eax
js 0x405ca5
mov ecx, dword [ebp - 0x66c]
mov ax, word [ebp - 0x674]
jmp 0x405743
mov ecx, dword [ebp - 0x688]
mov eax, 3
mov word [ebp - 0x674], ax
mov dword [ebp - 0x66c], ecx
mov dword [ebp - 0x660], ebx
cmp ax, 3
jne 0x405788
mov edi, dword [ebp - 0x674]
mov edx, dword [esi]
mov edx, dword [edx + 0x24]
lea eax, [ebp - 0x660]
push eax
sub esp, 0x10
mov eax, esp
mov dword [eax], edi
mov edi, dword [ebp - 0x670]
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x668]
push esi
mov dword [eax + 0xc], ecx
call edx
mov eax, dword [ebp - 0x660]
jmp 0x405796
cmp ax, 9
jne 0x4057c5
mov eax, ecx
mov dword [ebp - 0x660], eax
cmp eax, ebx
je 0x4057c5
mov ecx, dword [eax]
lea edx, [ebp - 0x650]
push edx
push 0x4395d0
push eax
mov eax, dword [ecx]
call eax
mov eax, dword [ebp - 0x660]
cmp eax, ebx
je 0x4057bf
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 0x660], ebx
cmp dword [ebp - 0x650], ebx
je 0x4057fc
lea eax, [ebp - 0x674]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov edx, dword [ebp - 0x654]
mov eax, dword [ebp - 0x650]
mov ecx, 3
mov word [ebp - 0x674], cx
mov dword [ebp - 0x66c], ebx
mov dword [edx], eax
jmp 0x405804
mov ecx, dword [ebp - 0x654]
mov dword [ecx], esi
mov edx, dword [ebp - 0x654]
mov edi, dword [edx]
mov dword [ebp - 0x68c], ebx
cmp edi, ebx
je 0x405881
lea eax, [ebp - 0x6ac]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov ecx, dword [edi]
lea edx, [ebp - 0x6ac]
push edx
mov edx, dword [ebp - 0x674]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [ebp - 0x670]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x66c]
mov dword [eax + 8], edx
mov edx, dword [ebp - 0x668]
mov dword [eax + 0xc], edx
mov eax, dword [ecx + 0x38]
push edi
call eax
test eax, eax
js 0x405874
cmp word [ebp - 0x6ac], 3
jne 0x405874
mov ecx, dword [ebp - 0x6a4]
mov dword [ebp - 0x68c], ecx
lea edx, [ebp - 0x6ac]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
test dword [ebp - 0x68c], 0x8000
je 0x4058ac
mov eax, dword [ebp - 0x650]
cmp eax, ebx
je 0x40589f
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor edi, edi
mov dword [ebp - 0x650], edi
jmp 0x405c3e
mov ecx, dword [ebp - 0x654]
mov edi, dword [ecx]
mov dword [ebp - 0x678], ebx
lea ebx, [ebp - 0x678]
lea eax, [ebp - 0x674]
call fcn.00404440
cmp dword [ebp - 0x678], 0x2a
jne 0x405be4
mov edi, dword [ebp - 0x650]
test edi, edi
je 0x405c36
test byte [ebp - 0x68c], 4
jne 0x405621
xor edx, edx
push 0xfe
push edx
lea eax, [ebp - 0x15a]
push eax
mov word [ebp - 0x15c], dx
call fcn.0042c9e0
add esp, 0xc
lea ebx, [ebp - 0x15c]
lea ecx, [ebp - 0x674]
mov edx, edi
call fcn.004044b0
mov eax, ebx
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x405930
sub eax, edx
sar eax, 1
cmp eax, 3
jbe 0x405be4
push 0xe
lea ecx, [ebp - 0x15c]
push str.ms_appx_web:__
push ecx
call fcn.004337b5
add esp, 0xc
test eax, eax
je 0x405621
push 0x13
lea edx, [ebp - 0x15c]
push str.file:___about:blank
push edx
call fcn.004337b5
add esp, 0xc
test eax, eax
je 0x405621
mov ecx, dword [ebp - 0x650]
lea eax, [ebp - 0x684]
push eax
xor esi, esi
push ecx
mov dword [ebp - 0x684], esi
call dword [sym.imp.OLEACC.dll_WindowFromAccessibleObject]
mov edx, dword [ebp - 0x684]
push 2
push edx
call dword [sym.imp.USER32.dll_GetAncestor]
push 0x7f
mov edi, eax
lea eax, [ebp - 0x1db]
push esi
push eax
mov byte [ebp - 0x1dc], 0
call fcn.0042c9e0
mov ebx, dword [sym.imp.USER32.dll_GetClassNameA]
add esp, 0xc
push 0x80
lea ecx, [ebp - 0x1dc]
push ecx
push edi
call ebx
push 0xfe
lea eax, [ebp - 0x3da]
xor edx, edx
push esi
push eax
mov word [ebp - 0x3dc], dx
call fcn.0042c9e0
add esp, 0xc
push 0x80
lea ecx, [ebp - 0x3dc]
push ecx
push edi
call dword [sym.imp.USER32.dll_GetWindowTextW]
mov ecx, str.IEFrame
lea eax, [ebp - 0x1dc]
jmp 0x405a20
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405a40
test dl, dl
je 0x405a3c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405a40
add eax, 2
add ecx, 2
test dl, dl
jne 0x405a20
xor eax, eax
jmp 0x405a45
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, esi
jne 0x405aa9
xor eax, eax
push 0x104
lea edx, [ebp - 0x18]
mov dword [ebp - 0x17], eax
mov dword [ebp - 0x13], eax
mov dword [ebp - 0xf], eax
mov word [ebp - 0xb], ax
mov byte [ebp - 9], al
mov eax, dword [ebp - 0x684]
push edx
push eax
mov byte [ebp - 0x18], 0
call ebx
mov ecx, str.Edit
lea eax, [ebp - 0x18]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405aa0
test dl, dl
je 0x405a9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405aa0
add eax, 2
add ecx, 2
test dl, dl
jne 0x405a80
xor eax, eax
jmp 0x405aa5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, esi
jne 0x405ab0
mov edi, 1
jmp 0x405ab2
mov edi, esi
push 0x3f
lea ecx, [ebp - 0x5b]
push esi
push ecx
mov byte [ebp - 0x5c], 0
call fcn.0042c9e0
mov ebx, dword [ebp - 0x674]
mov ecx, dword [ebp - 0x650]
add esp, 0xc
lea eax, [ebp - 0x67c]
push eax
sub esp, 0x10
mov eax, esp
mov dword [eax], ebx
mov ebx, dword [ebp - 0x670]
mov dword [eax + 4], ebx
mov ebx, dword [ebp - 0x66c]
mov dword [ebp - 0x67c], esi
mov edx, dword [ecx]
mov dword [eax + 8], ebx
mov ebx, dword [ebp - 0x668]
push ecx
mov ecx, dword [edx + 0x44]
mov dword [eax + 0xc], ebx
call ecx
test eax, eax
jne 0x405b76
mov eax, dword [ebp - 0x67c]
push esi
push esi
push 0x40
lea edx, [ebp - 0x5c]
push edx
push 0xffffffffffffffff
push eax
push esi
push esi
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ecx, dword [ebp - 0x67c]
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ecx, 0x44c790
lea eax, [ebp - 0x5c]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405b60
test dl, dl
je 0x405b5c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405b60
add eax, 2
add ecx, 2
test dl, dl
jne 0x405b40
xor eax, eax
jmp 0x405b65
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, esi
jne 0x405b76
push str.CtrlE
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x405be6
cmp edi, esi
je 0x405be6
push 0xfe
lea edx, [ebp - 0x2da]
xor ecx, ecx
push esi
push edx
mov word [ebp - 0x2dc], cx
call fcn.0042c9e0
add esp, 0xc
xor eax, eax
lea ebx, [ebx]
movzx ecx, word [ebp + eax - 0x15c]
mov word [ebp + eax - 0x2dc], cx
add eax, 2
cmp cx, si
jne 0x405ba0
push 4
lea eax, [ebp - 0x15c]
push str.http
push eax
call fcn.00424694
add esp, 0xc
push 0x2f
test eax, eax
jne 0x405cb3
lea ecx, [ebp - 0x148]
push ecx
jmp 0x405cba
xor esi, esi
mov edi, dword [ebp - 0x650]
cmp edi, esi
je 0x405c36
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x698]
mov ecx, dword [ebp - 0x680]
mov esi, dword [ebp - 0x654]
push edx
push eax
push ecx
push esi
push edi
call fcn.004055e0
mov edi, dword [ebp - 0x650]
add esp, 0x14
mov dword [ebp - 0x658], eax
cmp dword [esi], edi
je 0x405c36
test edi, edi
je 0x405c2e
mov edx, dword [edi]
mov eax, dword [edx + 8]
push edi
call eax
xor edi, edi
mov dword [ebp - 0x650], edi
mov esi, dword [ebp - 0x65c]
xor ebx, ebx
mov eax, dword [ebp - 0x688]
inc eax
mov dword [ebp - 0x688], eax
cmp eax, dword [ebp - 0x690]
jle 0x4056c0
cmp edi, ebx
je 0x405c63
mov edx, dword [edi]
mov eax, dword [edx + 8]
push edi
call eax
mov eax, dword [ebp - 0x664]
mov dword [ebp - 0x650], ebx
cmp eax, ebx
je 0x405c7b
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea eax, [ebp - 0x674]
push eax
mov dword [ebp - 0x664], ebx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x658]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004243bb
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 0x650]
mov dword [ebp - 0x658], ebx
jmp 0x405c57
lea edx, [ebp - 0x15c]
push edx
call fcn.004246cd
add esp, 8
cmp eax, esi
je 0x405ccb
xor ecx, ecx
mov word [eax], cx
lea edx, [ebp - 0x2dc]
push edx
lea ecx, [ebp - 0x3dc]
lea edx, [ebp - 0x15c]
call fcn.00403fb0
add esp, 4
test eax, eax
je 0x405c8e
push 0x1ff
lea eax, [ebp - 0x5db]
push esi
push eax
mov dword [ebp - 0x658], esi
mov byte [ebp - 0x5dc], 0
call fcn.0042c9e0
add esp, 0xc
lea ecx, [ebp - 0x654]
push ecx
push 0x2001f
push esi
push str.Local_SettingsSoftwareMicrosoftWindowsCurrentVersionAppContainerStoragemicrosoft.microsoftedge_8wekyb3d8bbweMicrosoftEdgeMain
push SysReAllocString
mov dword [ebp - 0x65c], esi
mov dword [ebp - 0x680], 1
mov dword [ebp - 0x654], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edi, eax
cmp edi, esi
jne 0x405d95
lea edx, [ebp - 0x65c]
push edx
mov edx, dword [ebp - 0x654]
lea eax, [ebp - 0x5dc]
push eax
lea ecx, [ebp - 0x680]
push ecx
push esi
push str.HomeButtonPage
push edx
mov dword [ebp - 0x65c], 0x200
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [ebp - 0x654]
push 0xb
push str.about:blank
push 1
push esi
push str.HomeButtonPage
push eax
call ebx
push 0x6c
lea ecx, [ebp - 0x648]
push esi
push ecx
call fcn.0042c9e0
add esp, 0xc
push 0x1c
mov eax, 1
lea ecx, [ebp - 0x64c]
push ecx
push 4
mov dword [ebp - 0x64c], eax
mov dword [ebp - 0x648], 0x3800a4
mov dword [ebp - 0x644], 0x20
mov dword [ebp - 0x630], eax
mov dword [ebp - 0x62c], 0x470024
mov dword [ebp - 0x628], 0x21
mov dword [ebp - 0x614], eax
mov dword [ebp - 0x610], 0x470024
mov dword [ebp - 0x60c], 0xa1
mov dword [ebp - 0x5f8], eax
mov dword [ebp - 0x5f4], 0x3800a4
mov dword [ebp - 0x5f0], 0x80
call dword [sym.imp.USER32.dll_SendInput]
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
push esi
push 2
push esi
push 0xa4
call dword [sym.imp.USER32.dll_keybd_event]
cmp edi, esi
jne 0x405e7f
lea eax, [ebp - 0x5dc]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405e50
sub eax, edx
push eax
mov eax, dword [ebp - 0x654]
lea edx, [ebp - 0x5dc]
push edx
push 1
push esi
push str.HomeButtonPage
push eax
call ebx
mov ecx, dword [ebp - 0x654]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
lea edi, [ebp - 0x15c]
call fcn.00404380
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x658]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004243bb
mov esp, ebp
pop ebp
ret