Function at 0x456a30
Capabilities:
Create thread
Delete registry value
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x502a6a
mov eax, dword fs:[0]
push eax
sub esp, 0xdc
mov eax, dword [0x5732cc]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0x28], esi
mov dword [ebp - 4], 0
push 0x468ad0
call fcn.004dbbc8
add esp, 4
mov dword [ebp - 0x34], 4
lea ecx, [esi + 0x24]
call fcn.00450980
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x48]
push ecx
lea edx, [ebp - 0x44]
push edx
push str.FirstTime
push str.SoftwareUSAirwaysToolbar
push reloc.WS2_32.dll_accept
mov ebx, dword [sym.imp.SHLWAPI.dll_SHGetValueA]
call ebx
test eax, eax
jne 0x456ac5
push str.FirstTime
push str.SoftwareUSAirwaysToolbar
push reloc.WS2_32.dll_accept
call dword [sym.imp.SHLWAPI.dll_SHDeleteValueA]
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x3c], 1
push str.SoftwareMicrosoftWindowsCurrentVersionExplorer
lea ecx, [ebp - 0x30]
call fcn.0041ad50
mov byte [ebp - 4], 1
push 0x514670
lea ecx, [ebp - 0x30]
call fcn.0041d470
push str.BrowseNewProcess
lea ecx, [ebp - 0x30]
call fcn.0041d470
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x24]
push ecx
lea edx, [ebp - 0x3c]
push edx
push str.BrowseNewProcess
mov edi, dword [ebp - 0x30]
push edi
push reloc.WS2_32.dll_accept
call ebx
test eax, eax
jne 0x456b75
push 0x518dec
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x456b62
push 0x518dec
lea ecx, [ebp - 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edx, dword [ebp - 0x34]
push edx
lea eax, [ebp - 0x24]
push eax
push 1
push str.BrowseNewProcess
push edi
push reloc.WS2_32.dll_accept
call dword [sym.imp.SHLWAPI.dll_SHSetValueA]
push 0
push 0
push 0x9021
mov ecx, dword [esi + 4]
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
mov dword [ebp - 0x2c], 0
lea edx, [ebp - 0x2c]
push edx
push 0
push esi
push 0x456710
push 0
push 0
call fcn.004df83a
add esp, 0x18
mov dword [esi + 0x250], eax
test eax, eax
jne 0x456c26
push 0xffffffffffffffff
push 1
push 2
call fcn.0041f480
mov ecx, eax
call fcn.00420010
push 1
lea ecx, [ebp - 0xe8]
call fcn.0041f520
mov byte [ebp - 4], 2
mov byte [ebp - 4], 3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SysTrayIcon:_thread_creation_failure._GetLastError___returned
lea eax, [ebp - 0xe8]
push eax
call fcn.0041e560
add esp, 8
mov ecx, eax
call fcn.004365a0
lea ecx, [ebp - 0xe8]
push ecx
call fcn.0041f480
mov ecx, eax
call fcn.0041cfb0
mov dword [ebp - 4], 2
jmp 0x456c17
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xe8]
call fcn.0041dc00
lea edx, [ebp - 0x2c]
push edx
push 0
push esi
push 0x4543e0
push 0
push 0
call fcn.004df83a
add esp, 0x18
mov dword [esi + 0x254], eax
test eax, eax
jne 0x456cd0
push 0xffffffffffffffff
push 1
push 2
call fcn.0041f480
mov ecx, eax
call fcn.00420010
push 1
lea ecx, [ebp - 0xe8]
call fcn.0041f520
mov ebx, 5
mov byte [ebp - 4], bl
mov byte [ebp - 4], 6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SysTrayIcon:_thread__1__creation_failure._GetLastError___returned
lea eax, [ebp - 0xe8]
push eax
call fcn.0041e560
add esp, 8
mov ecx, eax
call fcn.004365a0
lea ecx, [ebp - 0xe8]
push ecx
call fcn.0041f480
mov ecx, eax
call fcn.0041cfb0
mov dword [ebp - 4], ebx
jmp 0x456cc1
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xe8]
call fcn.0041dc00
lea edx, [ebp - 0x2c]
push edx
push 0
push esi
push 0x456830
push 0
push 0
call fcn.004df83a
add esp, 0x18
mov dword [esi + 0x258], eax
test eax, eax
jne 0x456d7a
push 0xffffffffffffffff
push 1
push 2
call fcn.0041f480
mov ecx, eax
call fcn.00420010
push 1
lea ecx, [ebp - 0xe8]
call fcn.0041f520
mov ebx, 8
mov byte [ebp - 4], bl
mov byte [ebp - 4], 9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SysTrayIcon:_thread_2_creation_failure._GetLastError___returned
lea eax, [ebp - 0xe8]
push eax
call fcn.0041e560
add esp, 8
mov ecx, eax
call fcn.004365a0
lea ecx, [ebp - 0xe8]
push ecx
call fcn.0041f480
mov ecx, eax
call fcn.0041cfb0
mov dword [ebp - 4], ebx
jmp 0x456d6b
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xe8]
call fcn.0041dc00
lea edx, [ebp - 0x2c]
push edx
push 0
push esi
push 0x450130
push 0
push 0
call fcn.004df83a
add esp, 0x18
mov dword [esi + 0x25c], eax
test eax, eax
jne 0x456e24
push 0xffffffffffffffff
push 1
push 2
call fcn.0041f480
mov ecx, eax
call fcn.00420010
push 1
lea ecx, [ebp - 0xe8]
call fcn.0041f520
mov ebx, 0xb
mov byte [ebp - 4], bl
mov byte [ebp - 4], 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SysTrayIcon:_thread_5_creation_failure._GetLastError___returned
lea eax, [ebp - 0xe8]
push eax
call fcn.0041e560
add esp, 8
mov ecx, eax
call fcn.004365a0
lea ecx, [ebp - 0xe8]
push ecx
call fcn.0041f480
mov ecx, eax
call fcn.0041cfb0
mov dword [ebp - 4], ebx
jmp 0x456e15
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xe8]
call fcn.0041dc00
lea edx, [ebp - 0x2c]
push edx
push 0
push esi
push 0x4524d0
push 0
push 0
call fcn.004df83a
add esp, 0x18
mov dword [esi + 0x260], eax
cmp dword [esi + 0x258], 0
jne 0x456ed3
push 0xffffffffffffffff
push 1
push 2
call fcn.0041f480
mov ecx, eax
call fcn.00420010
push 1
lea ecx, [ebp - 0xe8]
call fcn.0041f520
mov ebx, 0xe
mov byte [ebp - 4], bl
mov byte [ebp - 4], 0xf
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SysTrayIcon:_thread_3_creation_failure._GetLastError___returned
lea eax, [ebp - 0xe8]
push eax
call fcn.0041e560
add esp, 8
mov ecx, eax
call fcn.004365a0
lea ecx, [ebp - 0xe8]
push ecx
call fcn.0041f480
mov ecx, eax
call fcn.0041cfb0
mov dword [ebp - 4], ebx
jmp 0x456ec4
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xe8]
call fcn.0041dc00
lea edx, [ebp - 0x2c]
push edx
push 0
push esi
push 0x454500
push 0
push 0
call fcn.004df83a
add esp, 0x18
mov dword [esi + 0x268], eax
test eax, eax
jne 0x456f7d
push 0xffffffffffffffff
push 1
push 2
call fcn.0041f480
mov ecx, eax
call fcn.00420010
push 1
lea ecx, [ebp - 0xe8]
call fcn.0041f520
mov ebx, 0x11
mov byte [ebp - 4], bl
mov byte [ebp - 4], 0x12
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SysTrayIcon:_thread_4_creation_failure._GetLastError___returned
lea eax, [ebp - 0xe8]
push eax
call fcn.0041e560
add esp, 8
mov ecx, eax
call fcn.004365a0
lea ecx, [ebp - 0xe8]
push ecx
call fcn.0041f480
mov ecx, eax
call fcn.0041cfb0
mov dword [ebp - 4], ebx
jmp 0x456f6e
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xe8]
call fcn.0041dc00
push 0
push 0x57e40
push 0x65
mov edx, dword [esi + 4]
push edx
mov edi, dword [sym.imp.USER32.dll_SetTimer]
call edi
push 0
push 0x7530
push 0x65
mov eax, dword [esi + 4]
push eax
call edi
cmp byte [0x57715c], 0
je 0x456fb1
mov byte [0x57715c], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x30]
call fcn.00416630
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004db901
mov esp, ebp
pop ebp
ret 0x10