Function at 0x40382a
Capabilities:
Contain obfuscated stackstrings
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4c46b7
mov eax, dword fs:[0]
push eax
sub esp, 0x190
mov eax, dword [0x50e7dc]
xor eax, esp
mov dword [esp + 0x188], eax
push ebx
push esi
push edi
mov eax, dword [0x50e7dc]
xor eax, esp
push eax
lea eax, [esp + 0x1a0]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
push 1
push reloc.OLEAUT32.dll_SysReAllocString
push eax
lea ecx, [esp + 0x90]
call fcn.004069e3
and dword [esp + 0x1a8], 0
mov edi, 0x4d51f0
push edi
lea ecx, [esp + 0x30]
call fcn.00404bd0
push str.ClientID
lea ecx, [esp + 0x50]
mov byte [esp + 0x1ac], 1
call fcn.00404bd0
push str._GUID_
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1ac], 2
call fcn.00404bd0
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x90]
mov byte [esp + 0x1b4], 3
call fcn.00406d31
push eax
lea ebx, [esp + 0x6c]
mov eax, esi
mov byte [esp + 0x1ac], 4
call fcn.004024a2
pop ecx
xor ebx, ebx
push ebx
push 1
lea ecx, [esp + 0x18]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x70]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x54]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x34]
mov byte [esp + 0x1b0], bl
call fcn.004058b3
push edi
lea ecx, [esp + 0x50]
call fcn.00404bd0
push str.MachineID
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1ac], 5
call fcn.00404bd0
push str._MID_
lea ecx, [esp + 0x30]
mov byte [esp + 0x1ac], 6
call fcn.00404bd0
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x90]
mov byte [esp + 0x1b4], 7
call fcn.00406d31
push eax
lea ebx, [esp + 0x30]
mov eax, esi
mov byte [esp + 0x1ac], 8
call fcn.004024a2
pop ecx
xor ebx, ebx
push ebx
push 1
lea ecx, [esp + 0x18]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x34]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x70]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x54]
mov byte [esp + 0x1b0], bl
call fcn.004058b3
push edi
lea ecx, [esp + 0x50]
call fcn.00404bd0
push str.Profile
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1ac], 9
call fcn.00404bd0
push str._PROFILE_
lea ecx, [esp + 0x30]
mov byte [esp + 0x1ac], 0xa
call fcn.00404bd0
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x90]
mov byte [esp + 0x1b4], 0xb
call fcn.00406d31
push eax
lea ebx, [esp + 0x30]
mov eax, esi
mov byte [esp + 0x1ac], 0xc
call fcn.004024a2
pop ecx
xor ebx, ebx
push ebx
push 1
lea ecx, [esp + 0x18]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x34]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x70]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x54]
mov byte [esp + 0x1b0], bl
call fcn.004058b3
push edi
lea ecx, [esp + 0x50]
call fcn.00404bd0
push str.DistributionSource
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1ac], 0xd
call fcn.00404bd0
push str._DISTSOURCE_
lea ecx, [esp + 0x30]
mov byte [esp + 0x1ac], 0xe
call fcn.00404bd0
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x90]
mov byte [esp + 0x1b4], 0xf
call fcn.00406d31
push eax
lea ebx, [esp + 0x30]
mov eax, esi
mov byte [esp + 0x1ac], 0x10
call fcn.004024a2
pop ecx
xor ebx, ebx
push ebx
push 1
lea ecx, [esp + 0x18]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x34]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x70]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x54]
mov byte [esp + 0x1b0], bl
call fcn.004058b3
push edi
lea ecx, [esp + 0x50]
call fcn.00404bd0
push str.ToolbarVersion
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1ac], 0x11
call fcn.00404bd0
push str._TBVERSION_
lea ecx, [esp + 0x30]
mov byte [esp + 0x1ac], 0x12
call fcn.00404bd0
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x90]
mov byte [esp + 0x1b4], 0x13
call fcn.00406d31
push eax
lea ebx, [esp + 0x30]
mov eax, esi
mov byte [esp + 0x1ac], 0x14
call fcn.004024a2
pop ecx
xor ebx, ebx
push ebx
push 1
lea ecx, [esp + 0x18]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x34]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x70]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x54]
mov byte [esp + 0x1b0], bl
call fcn.004058b3
push edi
lea ecx, [esp + 0x50]
call fcn.00404bd0
push str.Lang
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1ac], 0x15
call fcn.00404bd0
push str._LANG_
lea ecx, [esp + 0x30]
mov byte [esp + 0x1ac], 0x16
call fcn.00404bd0
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x90]
mov byte [esp + 0x1b4], 0x17
call fcn.00406d31
push eax
lea ebx, [esp + 0x30]
mov eax, esi
mov byte [esp + 0x1ac], 0x18
call fcn.004024a2
pop ecx
xor ebx, ebx
push ebx
push 1
lea ecx, [esp + 0x18]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x34]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x70]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x54]
mov byte [esp + 0x1b0], bl
call fcn.004058b3
push edi
lea ecx, [esp + 0x50]
call fcn.00404bd0
push str.InstallDate
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1ac], 0x19
call fcn.00404bd0
push str._INSTALLDATE_
lea ecx, [esp + 0x30]
mov byte [esp + 0x1ac], 0x1a
call fcn.00404bd0
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x90]
mov byte [esp + 0x1b4], 0x1b
call fcn.00406d31
mov byte [esp + 0x1a8], 0x1c
push eax
lea ebx, [esp + 0x30]
mov eax, esi
call fcn.004024a2
pop ecx
xor ebx, ebx
push ebx
push 1
lea ecx, [esp + 0x18]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x34]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x70]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x54]
mov byte [esp + 0x1b0], bl
call fcn.004058b3
push edi
lea ecx, [esp + 0x50]
call fcn.00404bd0
push str.TrackingCode
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1ac], 0x1d
call fcn.00404bd0
push str._TRACKINGCODE_
lea ecx, [esp + 0x30]
mov byte [esp + 0x1ac], 0x1e
call fcn.00404bd0
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x90]
mov byte [esp + 0x1b4], 0x1f
call fcn.00406d31
push eax
lea ebx, [esp + 0x30]
mov eax, esi
mov byte [esp + 0x1ac], 0x20
call fcn.004024a2
pop ecx
xor ebx, ebx
push ebx
push 1
lea ecx, [esp + 0x18]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x34]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x70]
call fcn.004058b3
push ebx
push 1
lea ecx, [esp + 0x54]
mov byte [esp + 0x1b0], bl
call fcn.004058b3
push edi
lea ecx, [esp + 0x50]
call fcn.00404bd0
push 0x4d6bcc
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1ac], 0x21
call fcn.00404bd0
mov byte [esp + 0x1a8], 0x22
push str._SG_
lea ecx, [esp + 0x30]
call fcn.00404bd0
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x90]
mov byte [esp + 0x1b4], 0x23
call fcn.00406d31
push eax
lea ebx, [esp + 0x30]
mov eax, esi
mov byte [esp + 0x1ac], 0x24
call fcn.004024a2
pop ecx
xor ebx, ebx
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [esp + 0x18]
call fcn.004058b3
push ebx
push edi
lea ecx, [esp + 0x34]
call fcn.004058b3
push ebx
push edi
lea ecx, [esp + 0x70]
call fcn.004058b3
push ebx
push edi
lea ecx, [esp + 0x54]
mov byte [esp + 0x1b0], bl
call fcn.004058b3
push 0x4d6be0
lea ecx, [esp + 0x50]
call fcn.00404bd0
push str.Partner_PartnerIdentifier
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1ac], 0x25
call fcn.00404bd0
push str.CONFIGXML
lea ecx, [esp + 0x30]
mov byte [esp + 0x1ac], 0x26
call fcn.00404bd0
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0xf4]
push eax
mov byte [esp + 0x1b8], 0x27
call fcn.004082c8
add esp, 0x10
push ebx
push edi
lea ecx, [esp + 0x34]
call fcn.004058b3
push ebx
push edi
lea ecx, [esp + 0x70]
call fcn.004058b3
push ebx
push edi
lea ecx, [esp + 0x54]
mov byte [esp + 0x1b0], 0x2b
call fcn.004058b3
push str._PID_
lea ecx, [esp + 0x14]
call fcn.00404bd0
lea eax, [esp + 0xe8]
push eax
lea ebx, [esp + 0x14]
mov eax, esi
mov byte [esp + 0x1ac], 0x2c
call fcn.004024a2
pop ecx
push 0
push edi
mov ecx, ebx
mov byte [esp + 0x1b0], 0x2b
call fcn.004058b3
lea edi, [esp + 0xcc]
call fcn.0040483d
push str._UID_
lea ecx, [esp + 0x14]
mov byte [esp + 0x1ac], 0x2d
call fcn.00404bd0
mov eax, edi
push eax
lea ebx, [esp + 0x14]
mov eax, esi
mov byte [esp + 0x1ac], 0x2e
call fcn.004024a2
pop ecx
xor edi, edi
push edi
push 1
mov ecx, ebx
mov byte [esp + 0x1b0], 0x2d
call fcn.004058b3
push edi
push str.FFGUID
mov ecx, esi
call fcn.00404cae
cmp eax, 0xffffffff
je 0x404095
push 7
pop ebx
push edi
lea ecx, [esp + 0x6c]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x84], ebx
call fcn.00405ece
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x4c]
push eax
mov byte [esp + 0x1b0], 0x2f
call fcn.0042b7fb
pop ecx
pop ecx
test al, al
je 0x404089
push edi
lea ecx, [esp + 0x50]
mov dword [esp + 0x68], ebx
call fcn.00405ece
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x108]
mov byte [esp + 0x1ac], 0x30
call fcn.0042b45c
push str.avg.install.guid
lea ecx, [esp + 0x14]
mov byte [esp + 0x1ac], 0x31
call fcn.00404bd0
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x10c]
mov byte [esp + 0x1b0], 0x32
call fcn.0042b955
push edi
push 1
lea ecx, [esp + 0x18]
mov byte [esp + 0x1b0], 0x31
call fcn.004058b3
push str._FFGUID_
lea ecx, [esp + 0x14]
call fcn.00404bd0
lea eax, [esp + 0x4c]
push eax
lea ebx, [esp + 0x14]
mov eax, esi
mov byte [esp + 0x1ac], 0x33
call fcn.004024a2
pop ecx
push edi
push 1
mov ecx, ebx
call fcn.004058b3
lea ecx, [esp + 0x104]
call fcn.0042b4e1
push edi
push 1
lea ecx, [esp + 0x54]
call fcn.004058b3
push edi
push 1
lea ecx, [esp + 0x70]
call fcn.004058b3
push edi
push 1
lea ecx, [esp + 0xd4]
call fcn.004058b3
push edi
push 1
lea ecx, [esp + 0xf0]
call fcn.004058b3
lea ecx, [esp + 0x84]
call fcn.004017b6
mov ecx, dword [esp + 0x1a0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x188]
xor ecx, esp
call fcn.0049f533
mov esp, ebp
pop ebp
ret