Function at 0x45a7e0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x566a9c
mov eax, dword fs:[0]
push eax
sub esp, 0x10c
mov eax, dword [0x5bf094]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xf0], ecx
mov esi, 7
push esi
xor eax, eax
xor edi, edi
push 0x587700
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x5c], edi
mov word [ebp - 0x6c], ax
call fcn.00403510
xor ecx, ecx
mov dword [ebp - 4], edi
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x78], edi
mov word [ebp - 0x88], cx
push 0x58a220
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 1
call fcn.00404090
xor edx, edx
mov dword [ebp - 0x104], esi
mov dword [ebp - 0x108], edi
mov word [ebp - 0x118], dx
mov dword [ebp - 0xe8], edi
mov dword [ebp - 0xe4], edi
mov dword [ebp - 0xe0], edi
push 1
push reloc.OLEAUT32.dll_SysReAllocString
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0xe8]
mov byte [ebp - 4], 4
call fcn.00404ef0
lea ecx, [ebp - 0x118]
push ecx
lea edx, [ebp - 0x6c]
push edx
lea eax, [ebp - 0xc0]
push eax
lea ecx, [ebp - 0xe8]
mov byte [ebp - 4], 5
call fcn.00404b10
mov eax, dword [ebp - 0xe8]
cmp eax, edi
je 0x45a8d1
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, 8
cmp dword [ebp - 0x104], ebx
jb 0x45a8ed
mov ecx, dword [ebp - 0x118]
push ecx
call fcn.004b8946
add esp, 4
cmp dword [ebp - 0x74], ebx
jb 0x45a901
mov edx, dword [ebp - 0x88]
push edx
call fcn.004b8946
add esp, 4
xor eax, eax
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x78], edi
mov word [ebp - 0x88], ax
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x58], ebx
jb 0x45a925
mov ecx, dword [ebp - 0x6c]
push ecx
call fcn.004b8946
add esp, 4
push edi
xor edx, edx
xor eax, eax
push 0x581cac
lea ecx, [ebp - 0xa4]
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x5c], edi
mov word [ebp - 0x6c], dx
mov dword [ebp - 0x90], esi
mov dword [ebp - 0x94], edi
mov word [ebp - 0xa4], ax
call fcn.00403510
mov eax, dword [ebp - 0xc0]
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0xac], ebx
jae 0x45a96f
lea eax, [ebp - 0xc0]
cmp word [eax], 0x37
jae 0x45a986
cmp dword [ebp - 0xb0], edi
je 0x45a986
push 0xb
push str.ITBarLayout
jmp 0x45a98d
push 0xc
push str.ITBar7Layout
lea ecx, [ebp - 0xa4]
call fcn.00403510
xor ecx, ecx
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x5c], edi
mov word [ebp - 0x6c], cx
push str.Software_Microsoft_Internet_Explorer_Toolbar_WebBrowser
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0xc
call fcn.00404090
mov dword [ebp - 0xe8], edi
mov dword [ebp - 0xe4], edi
mov dword [ebp - 0xe0], edi
push 0x2001f
push reloc.WS2_32.dll_accept
lea edx, [ebp - 0x6c]
push edx
lea ecx, [ebp - 0xe8]
mov byte [ebp - 4], 0xe
call fcn.00404ef0
mov byte [ebp - 4], 0x10
cmp dword [ebp - 0x58], ebx
jb 0x45a9f9
mov eax, dword [ebp - 0x6c]
push eax
call fcn.004b8946
add esp, 4
xor ecx, ecx
mov word [ebp - 0x6c], cx
push edi
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x74], edi
call fcn.00412010
lea edx, [ebp - 0x7c]
push edx
lea eax, [ebp - 0xa4]
push eax
lea ecx, [ebp - 0xdc]
push ecx
lea ecx, [ebp - 0xe8]
mov byte [ebp - 4], 0x11
call fcn.00416860
mov eax, dword [ebp - 0x7c]
mov byte [ebp - 4], 0x13
cmp eax, edi
je 0x45aa4c
push eax
call fcn.004b8946
add esp, 4
mov edx, dword [ebp - 0xdc]
mov byte [ebp - 0xc2], 0
cmp edx, dword [ebp - 0xd8]
jne 0x45aa96
mov edx, dword [0x5c2108]
lea eax, [ebp - 0xdc]
push eax
push 0x58a024
push 0xdd
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0xc8], edx
call fcn.004967e0
mov edx, dword [ebp - 0xdc]
mov byte [ebp - 0xc2], 1
xor eax, eax
xor ebx, ebx
mov byte [ebp - 0xc1], 0x18
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], ebx
mov cl, byte [edx + 0x1c]
and cl, 0xf0
inc cl
mov byte [ebp - 4], 0x14
mov byte [ebp - 0xc9], cl
cmp byte [edx + 0x18], bl
je 0x45abb0
mov edx, dword [ebp - 0xdc]
mov ecx, 0x18
lea esi, [ecx + edx]
cmp esi, eax
jae 0x45ab2d
cmp edi, esi
ja 0x45ab2d
sub esi, edi
cmp eax, ebx
jne 0x45ab22
mov ecx, eax
sub ecx, edi
cmp ecx, 0xfffffffe
ja 0x45abf6
mov edx, ebx
inc ecx
sub edx, edi
cmp ecx, edx
jbe 0x45ab22
mov eax, edx
shr edx, 1
or edi, 0xffffffff
sub edi, edx
cmp edi, eax
jae 0x45ab08
xor eax, eax
jmp 0x45ab0a
add eax, edx
cmp eax, ecx
jae 0x45ab10
mov eax, ecx
push eax
lea ecx, [ebp - 0x7c]
call fcn.00402ab0
mov ebx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
test eax, eax
je 0x45ab7a
mov cl, byte [edi + esi]
mov byte [eax], cl
jmp 0x45ab7a
cmp eax, ebx
jne 0x45ab72
mov ecx, eax
sub ecx, edi
cmp ecx, 0xfffffffe
ja 0x45abf6
mov edx, ebx
inc ecx
sub edx, edi
cmp ecx, edx
jbe 0x45ab72
mov eax, edx
shr edx, 1
or edi, 0xffffffff
sub edi, edx
cmp edi, eax
jae 0x45ab58
xor eax, eax
jmp 0x45ab5a
add eax, edx
cmp eax, ecx
jae 0x45ab60
mov eax, ecx
push eax
lea ecx, [ebp - 0x7c]
call fcn.00402ab0
mov ebx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
test eax, eax
je 0x45ab7a
mov dl, byte [esi]
mov byte [eax], dl
mov cl, byte [ebp - 0xc1]
mov edx, dword [ebp - 0xd8]
sub edx, dword [ebp - 0xdc]
add cl, 0xc
mov byte [ebp - 0xc1], cl
movzx ecx, cl
inc eax
mov dword [ebp - 0x78], eax
cmp ecx, edx
ja 0x45ac00
mov edx, dword [ebp - 0xdc]
cmp byte [ecx + edx], 0
jne 0x45aad0
mov byte [ebp - 0xc8], 0
mov ecx, dword [ebp - 0xc8]
push ecx
mov edx, eax
sub edx, edi
push edx
push eax
push edi
call fcn.004582c0
mov al, byte [edi]
add esp, 0x10
cmp al, 1
je 0x45ac7a
cmp byte [ebp - 0xc2], 0
jne 0x45ac7a
movzx ebx, al
inc ebx
lea eax, [ebx - 6]
mov byte [ebp - 0xc8], al
jmp 0x45ac86
push str.vector_T__too_long
call fcn.00469b17
test edi, edi
je 0x45ac0d
push edi
call fcn.004b8946
add esp, 4
cmp dword [ebp - 0xdc], 0
je 0x45ac25
mov eax, dword [ebp - 0xdc]
push eax
call fcn.004b8946
add esp, 4
mov eax, dword [ebp - 0xe8]
xor ecx, ecx
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0xd4], ecx
cmp eax, ecx
je 0x45ac4a
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x90], 8
jb 0x45ac62
mov ecx, dword [ebp - 0xa4]
push ecx
call fcn.004b8946
add esp, 4
xor edx, edx
cmp dword [ebp - 0xac], 8
mov dword [ebp - 0x94], 0
jmp 0x45af25
mov ebx, 6
mov byte [ebp - 0xc8], 0
xor esi, esi
mov dword [ebp - 0xfc], esi
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0xf4], esi
push 0x2001f
push reloc.WS2_32.dll_accept
push 0x5c17f4
lea ecx, [ebp - 0xfc]
mov byte [ebp - 4], 0x15
call fcn.00404ef0
push 9
xor eax, eax
push str.Layout_ID
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x16
mov dword [ebp - 0x58], 7
mov dword [ebp - 0x5c], esi
mov word [ebp - 0x6c], ax
call fcn.00403510
cmp dword [ebp - 0x58], 8
mov eax, dword [ebp - 0x6c]
jae 0x45ace7
lea eax, [ebp - 0x6c]
mov esi, dword [ebp - 0xfc]
push 4
lea ecx, [ebp - 0xec]
push ecx
push 4
push 0
push eax
push esi
mov dword [ebp - 0xec], ebx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [ebp - 0x58], 8
jb 0x45ad21
mov edx, dword [ebp - 0x6c]
push edx
call fcn.004b8946
add esp, 4
mov byte [ebp - 4], 0x14
test esi, esi
je 0x45ad30
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
movzx eax, byte [ebp - 0xc1]
mov ecx, dword [ebp - 0xdc]
mov byte [eax + ecx], bl
mov edx, dword [ebp - 0xdc]
mov cl, byte [ebp - 0xc9]
mov byte [eax + edx + 4], cl
lea edx, [ebp - 0x50]
push edx
sub esp, 0x10
lea eax, [ebp - 0xdc]
mov ecx, esp
mov dword [ebp - 0xec], esp
push eax
mov dword [ebp - 0x50], 0xe8
mov dword [ebp - 0x4c], 0xd
mov dword [ebp - 0x48], 0x90
mov dword [ebp - 0x44], 9
mov dword [ebp - 0x40], 0xca
mov dword [ebp - 0x3c], 0x1d
mov dword [ebp - 0x38], 0x3f
mov dword [ebp - 0x34], 0x44
mov dword [ebp - 0x30], 0x92
mov dword [ebp - 0x2c], 0x43
mov dword [ebp - 0x28], 0x26
mov dword [ebp - 0x24], 0xff
mov dword [ebp - 0x20], 0x58
mov dword [ebp - 0x1c], 0x14
mov dword [ebp - 0x18], 0x38
mov dword [ebp - 0x14], 0xaf
call fcn.004134f0
mov ecx, dword [ebp - 0xc8]
push ecx
mov ecx, dword [ebp - 0xf0]
call fcn.00457e10
test al, al
jne 0x45ae2f
movzx eax, byte [ebp - 0xc8]
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xdc]
shl eax, 4
sub edx, ecx
lea esi, [eax + 0x114]
cmp esi, edx
jae 0x45ae2f
lea ecx, [eax + ecx + 0x114]
lea eax, [ebp - 0x50]
lea ecx, [ecx]
mov dl, byte [eax]
mov byte [ecx], dl
add eax, 4
lea edx, [ebp - 0x10]
inc ecx
cmp eax, edx
jne 0x45ae20
push 0xc
xor eax, eax
xor esi, esi
push str.ITBar7Height
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x58], 7
mov dword [ebp - 0x5c], esi
mov word [ebp - 0x6c], ax
call fcn.00403510
push esi
lea ecx, [ebp - 0x6c]
push ecx
lea ecx, [ebp - 0xe8]
mov byte [ebp - 4], 0x18
call fcn.00405830
cmp dword [ebp - 0x58], 8
mov ebx, eax
jb 0x45ae78
mov edx, dword [ebp - 0x6c]
push edx
call fcn.004b8946
add esp, 4
mov eax, dword [ebp - 0xdc]
mov byte [eax + 0x14], bl
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
cmp ecx, eax
je 0x45aec2
mov edx, dword [ebp - 0xa4]
sub eax, ecx
cmp dword [ebp - 0x90], 8
jae 0x45aeae
lea edx, [ebp - 0xa4]
push eax
push ecx
push 3
push esi
push edx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
push edi
call fcn.004b8946
mov eax, dword [ebp - 0xdc]
add esp, 4
cmp eax, esi
je 0x45aede
push eax
call fcn.004b8946
add esp, 4
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0xd4], esi
cmp ebx, esi
je 0x45aefb
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edi, 8
cmp dword [ebp - 0x90], edi
jb 0x45af17
mov ecx, dword [ebp - 0xa4]
push ecx
call fcn.004b8946
add esp, 4
xor edx, edx
cmp dword [ebp - 0xac], edi
mov dword [ebp - 0x94], esi
mov word [ebp - 0xa4], dx
mov dword [ebp - 0x90], 7
jb 0x45af47
mov eax, dword [ebp - 0xc0]
push eax
call fcn.004b8946
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004b92b7
mov esp, ebp
pop ebp
ret