Function at 0x402740
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56523b
mov eax, dword fs:[0]
push eax
sub esp, 0xc84
mov eax, dword [0x5c5fd4]
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 eax, ecx
mov dword [ebp - 0xc58], eax
mov dword [eax + 0xcc], 0
mov dword [ebp - 0xc54], 0
mov dword [ebp - 0xc50], 0
mov dword [ebp - 0xc4c], 0
mov dword [ebp - 4], 0
call fcn.0040665b
mov ecx, eax
test ecx, ecx
je 0x4034e5
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xc70], eax
mov ebx, 0x5a84ec
mov byte [ebp - 4], 1
shr ebx, 0x10
lea ecx, [ebp - 0xc70]
mov dword [ebp - 0xc5c], ebx
test ebx, ebx
jne 0x4027ee
mov edi, 0x5a84ec
movzx esi, di
push esi
call fcn.00403fb0
jmp 0x402802
push 0
push 0x5a84ec
call fcn.004044b0
mov edi, 0x5a84ec
movzx esi, di
mov byte [ebp - 4], 2
call fcn.0040665b
mov ecx, eax
test ecx, ecx
je 0x4034ef
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xc6c], eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xc6c]
test ebx, ebx
jne 0x402839
push esi
call fcn.00403fb0
jmp 0x402845
push 0
push 0x5a84ec
call fcn.004044b0
mov byte [ebp - 4], 4
call fcn.0040665b
mov ecx, eax
test ecx, ecx
je 0x4034f9
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xc68], eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xc68]
test ebx, ebx
jne 0x40287c
push esi
call fcn.00403fb0
jmp 0x402888
push 0
push 0x5a84ec
call fcn.004044b0
mov byte [ebp - 4], 6
call fcn.0040665b
mov ecx, eax
test ecx, ecx
je 0x403503
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xc74], eax
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xc74]
test ebx, ebx
jne 0x4028bf
push esi
call fcn.00403fb0
jmp 0x4028cb
push 0
push 0x5a84ec
call fcn.004044b0
mov byte [ebp - 4], 8
call fcn.0040665b
mov ecx, eax
test ecx, ecx
je 0x40350d
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xc64], eax
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xc64]
test ebx, ebx
jne 0x402902
push esi
call fcn.00403fb0
jmp 0x402911
push 0
push 0x5a84ec
call fcn.004044b0
movzx esi, di
mov byte [ebp - 4], 0xa
call fcn.0040665b
mov ecx, eax
test ecx, ecx
je 0x403517
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xc60], eax
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xc60]
test ebx, ebx
jne 0x402948
push esi
call fcn.00403fb0
jmp 0x402954
push 0
push 0x5a84ec
call fcn.004044b0
push 0x26
push str.SOFTWAREMicrosoftOffice16.0Outlook
lea ecx, [ebp - 0xc68]
mov byte [ebp - 4], 0xc
call fcn.004044b0
push 0x26
push str.SOFTWAREMicrosoftOffice15.0Outlook
lea ecx, [ebp - 0xc6c]
call fcn.004044b0
push 0x26
push str.SOFTWAREMicrosoftOffice14.0Outlook
lea ecx, [ebp - 0xc70]
call fcn.004044b0
push 0x32
push str.SOFTWAREWow6432NodeMicrosoftOffice16.0Outlook
lea ecx, [ebp - 0xc60]
call fcn.004044b0
push 0x32
push str.SOFTWAREWow6432NodeMicrosoftOffice15.0Outlook
lea ecx, [ebp - 0xc64]
call fcn.004044b0
push 0x32
push str.SOFTWAREWow6432NodeMicrosoftOffice14.0Outlook
lea ecx, [ebp - 0xc74]
call fcn.004044b0
call fcn.0040665b
mov ecx, eax
test ecx, ecx
je 0x403521
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xc48], eax
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xc48]
test ebx, ebx
jne 0x4029f7
push esi
call fcn.00403fb0
jmp 0x402a03
push 0
push 0x5a84ec
call fcn.004044b0
push 0x2001f
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0xc54]
push dword [ebp - 0xc68]
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.004038e0
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
jne 0x402b55
push 0x208
lea eax, [ebp - 0x218]
mov dword [ebp - 0xc78], 0x104
push 0
push eax
call fcn.00549b30
mov ebx, dword [ebp - 0xc54]
lea eax, [ebp - 0xc78]
add esp, 0xc
mov dword [ebp - 0xc44], 0
push eax
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0xc44]
push eax
push 0
push str.Bitness
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x402ae5
mov eax, dword [ebp - 0xc78]
test eax, eax
je 0x402adc
mov ecx, dword [ebp - 0xc44]
test ecx, ecx
je 0x402adc
cmp ecx, 2
jbe 0x402acb
cmp ecx, 7
jne 0x402adc
test al, 1
jne 0x402adc
shr eax, 1
cmp eax, 1
jb 0x402adc
cmp word [ebp + eax*2 - 0x21a], 0
jne 0x402adc
cmp eax, 1
jbe 0x402ae5
cmp word [ebp + eax*2 - 0x21c], 0
jmp 0x402ada
test al, 1
jne 0x402adc
shr eax, 1
cmp word [ebp + eax*2 - 0x21a], 0
je 0x402ae5
xor eax, eax
mov word [ebp - 0x218], ax
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402af0
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0xc48]
call fcn.004044b0
mov esi, dword [ebp - 0xc48]
push 0x5a8430
push esi
call fcn.0054cea4
add esp, 8
test eax, eax
jne 0x402b3a
mov eax, dword [ebp - 0xc58]
mov dword [eax + 0xcc], 1
test ebx, ebx
je 0x402b49
push ebx
call edi
xor ebx, ebx
mov dword [ebp - 0xc54], ebx
mov dword [ebp - 0xc50], 0
jmp 0x402b61
mov ebx, dword [ebp - 0xc54]
mov esi, dword [ebp - 0xc48]
cmp dword [esi - 0xc], 0
jne 0x4030c4
push 0x2001f
push dword [ebp - 0xc60]
lea ecx, [ebp - 0xc54]
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.004038e0
test eax, eax
jne 0x402cb5
push 0x208
push eax
lea eax, [ebp - 0x420]
mov dword [ebp - 0xc7c], 0x104
push eax
call fcn.00549b30
mov ebx, dword [ebp - 0xc54]
lea eax, [ebp - 0xc7c]
add esp, 0xc
mov dword [ebp - 0xc44], 0
push eax
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0xc44]
push eax
push 0
push str.Bitness
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x402c42
mov eax, dword [ebp - 0xc7c]
test eax, eax
je 0x402c39
mov ecx, dword [ebp - 0xc44]
test ecx, ecx
je 0x402c39
cmp ecx, 2
jbe 0x402c28
cmp ecx, 7
jne 0x402c39
test al, 1
jne 0x402c39
shr eax, 1
cmp eax, 1
jb 0x402c39
cmp word [ebp + eax*2 - 0x422], 0
jne 0x402c39
cmp eax, 1
jbe 0x402c42
cmp word [ebp + eax*2 - 0x424], 0
jmp 0x402c37
test al, 1
jne 0x402c39
shr eax, 1
cmp word [ebp + eax*2 - 0x422], 0
je 0x402c42
xor eax, eax
mov word [ebp - 0x420], ax
lea ecx, [ebp - 0x420]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402c50
sub ecx, edx
lea eax, [ebp - 0x420]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0xc48]
call fcn.004044b0
mov esi, dword [ebp - 0xc48]
push 0x5a8430
push esi
call fcn.0054cea4
add esp, 8
test eax, eax
jne 0x402c9a
mov eax, dword [ebp - 0xc58]
mov dword [eax + 0xcc], 1
test ebx, ebx
je 0x402ca9
push ebx
call edi
xor ebx, ebx
mov dword [ebp - 0xc54], ebx
mov dword [ebp - 0xc50], 0
jmp 0x402cbb
mov ebx, dword [ebp - 0xc54]
cmp dword [esi - 0xc], 0
jne 0x4030c4
push 0x2001f
push dword [ebp - 0xc6c]
lea ecx, [ebp - 0xc54]
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.004038e0
test eax, eax
jne 0x402e0a
push 0x208
push eax
lea eax, [ebp - 0x628]
mov dword [ebp - 0xc80], 0x104
push eax
call fcn.00549b30
mov ebx, dword [ebp - 0xc54]
lea eax, [ebp - 0xc80]
add esp, 0xc
mov dword [ebp - 0xc44], 0
push eax
lea eax, [ebp - 0x628]
push eax
lea eax, [ebp - 0xc44]
push eax
push 0
push str.Bitness
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x402d9c
mov eax, dword [ebp - 0xc80]
test eax, eax
je 0x402d93
mov ecx, dword [ebp - 0xc44]
test ecx, ecx
je 0x402d93
cmp ecx, 2
jbe 0x402d82
cmp ecx, 7
jne 0x402d93
test al, 1
jne 0x402d93
shr eax, 1
cmp eax, 1
jb 0x402d93
cmp word [ebp + eax*2 - 0x62a], 0
jne 0x402d93
cmp eax, 1
jbe 0x402d9c
cmp word [ebp + eax*2 - 0x62c], 0
jmp 0x402d91
test al, 1
jne 0x402d93
shr eax, 1
cmp word [ebp + eax*2 - 0x62a], 0
je 0x402d9c
xor eax, eax
mov word [ebp - 0x628], ax
lea ecx, [ebp - 0x628]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402da5
sub ecx, edx
lea eax, [ebp - 0x628]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0xc48]
call fcn.004044b0
mov esi, dword [ebp - 0xc48]
push 0x5a8430
push esi
call fcn.0054cea4
add esp, 8
test eax, eax
jne 0x402def
mov eax, dword [ebp - 0xc58]
mov dword [eax + 0xcc], 1
test ebx, ebx
je 0x402dfe
push ebx
call edi
xor ebx, ebx
mov dword [ebp - 0xc54], ebx
mov dword [ebp - 0xc50], 0
jmp 0x402e10
mov ebx, dword [ebp - 0xc54]
cmp dword [esi - 0xc], 0
jne 0x4030c4
push 0x2001f
push dword [ebp - 0xc64]
lea ecx, [ebp - 0xc54]
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.004038e0
test eax, eax
jne 0x402f65
push 0x208
push eax
lea eax, [ebp - 0x830]
mov dword [ebp - 0xc84], 0x104
push eax
call fcn.00549b30
mov ebx, dword [ebp - 0xc54]
lea eax, [ebp - 0xc84]
add esp, 0xc
mov dword [ebp - 0xc44], 0
push eax
lea eax, [ebp - 0x830]
push eax
lea eax, [ebp - 0xc44]
push eax
push 0
push str.Bitness
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x402ef1
mov eax, dword [ebp - 0xc84]
test eax, eax
je 0x402ee8
mov ecx, dword [ebp - 0xc44]
test ecx, ecx
je 0x402ee8
cmp ecx, 2
jbe 0x402ed7
cmp ecx, 7
jne 0x402ee8
test al, 1
jne 0x402ee8
shr eax, 1
cmp eax, 1
jb 0x402ee8
cmp word [ebp + eax*2 - 0x832], 0
jne 0x402ee8
cmp eax, 1
jbe 0x402ef1
cmp word [ebp + eax*2 - 0x834], 0
jmp 0x402ee6
test al, 1
jne 0x402ee8
shr eax, 1
cmp word [ebp + eax*2 - 0x832], 0
je 0x402ef1
xor eax, eax
mov word [ebp - 0x830], ax
lea ecx, [ebp - 0x830]
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402f00
sub ecx, edx
lea eax, [ebp - 0x830]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0xc48]
call fcn.004044b0
mov esi, dword [ebp - 0xc48]
push 0x5a8430
push esi
call fcn.0054cea4
add esp, 8
test eax, eax
jne 0x402f4a
mov eax, dword [ebp - 0xc58]
mov dword [eax + 0xcc], 1
test ebx, ebx
je 0x402f59
push ebx
call edi
xor ebx, ebx
mov dword [ebp - 0xc54], ebx
mov dword [ebp - 0xc50], 0
jmp 0x402f6b
mov ebx, dword [ebp - 0xc54]
cmp dword [esi - 0xc], 0
jne 0x4030c4
push 0x2001f
push dword [ebp - 0xc70]
lea ecx, [ebp - 0xc54]
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.004038e0
test eax, eax
jne 0x4030ba
push 0x208
push eax
lea eax, [ebp - 0xa38]
mov dword [ebp - 0xc88], 0x104
push eax
call fcn.00549b30
mov ebx, dword [ebp - 0xc54]
lea eax, [ebp - 0xc88]
add esp, 0xc
mov dword [ebp - 0xc44], 0
push eax
lea eax, [ebp - 0xa38]
push eax
lea eax, [ebp - 0xc44]
push eax
push 0
push str.Bitness
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40304c
mov eax, dword [ebp - 0xc88]
test eax, eax
je 0x403043
mov ecx, dword [ebp - 0xc44]
test ecx, ecx
je 0x403043
cmp ecx, 2
jbe 0x403032
cmp ecx, 7
jne 0x403043
test al, 1
jne 0x403043
shr eax, 1
cmp eax, 1
jb 0x403043
cmp word [ebp + eax*2 - 0xa3a], 0
jne 0x403043
cmp eax, 1
jbe 0x40304c
cmp word [ebp + eax*2 - 0xa3c], 0
jmp 0x403041
test al, 1
jne 0x403043
shr eax, 1
cmp word [ebp + eax*2 - 0xa3a], 0
je 0x40304c
xor eax, eax
mov word [ebp - 0xa38], ax
lea ecx, [ebp - 0xa38]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403055
sub ecx, edx
lea eax, [ebp - 0xa38]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0xc48]
call fcn.004044b0
mov esi, dword [ebp - 0xc48]
push 0x5a8430
push esi
call fcn.0054cea4
add esp, 8
test eax, eax
jne 0x40309f
mov eax, dword [ebp - 0xc58]
mov dword [eax + 0xcc], 1
test ebx, ebx
je 0x4030ae
push ebx
call edi
xor ebx, ebx
mov dword [ebp - 0xc54], ebx
mov dword [ebp - 0xc50], 0
jmp 0x4030c0
mov ebx, dword [ebp - 0xc54]
cmp dword [esi - 0xc], 0
mov edi, dword [ebp - 0xc74]
jne 0x40321f
push 0x2001f
push edi
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0xc54]
call fcn.004038e0
test eax, eax
jne 0x403219
push 0x208
push eax
lea eax, [ebp - 0xc40]
mov dword [ebp - 0xc8c], 0x104
push eax
call fcn.00549b30
mov ebx, dword [ebp - 0xc54]
lea eax, [ebp - 0xc8c]
add esp, 0xc
mov dword [ebp - 0xc44], 0
push eax
lea eax, [ebp - 0xc40]
push eax
lea eax, [ebp - 0xc44]
push eax
push 0
push str.Bitness
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4031a2
mov eax, dword [ebp - 0xc8c]
test eax, eax
je 0x403199
mov ecx, dword [ebp - 0xc44]
test ecx, ecx
je 0x403199
cmp ecx, 2
jbe 0x403188
cmp ecx, 7
jne 0x403199
test al, 1
jne 0x403199
shr eax, 1
cmp eax, 1
jb 0x403199
cmp word [ebp + eax*2 - 0xc42], 0
jne 0x403199
cmp eax, 1
jbe 0x4031a2
cmp word [ebp + eax*2 - 0xc44], 0
jmp 0x403197
test al, 1
jne 0x403199
shr eax, 1
cmp word [ebp + eax*2 - 0xc42], 0
je 0x4031a2
xor eax, eax
mov word [ebp - 0xc40], ax
lea ecx, [ebp - 0xc40]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4031b0
sub ecx, edx
lea eax, [ebp - 0xc40]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0xc48]
call fcn.004044b0
mov esi, dword [ebp - 0xc48]
push 0x5a8430
push esi
call fcn.0054cea4
add esp, 8
test eax, eax
jne 0x4031fa
mov eax, dword [ebp - 0xc58]
mov dword [eax + 0xcc], 1
test ebx, ebx
je 0x40320d
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor ebx, ebx
mov dword [ebp - 0xc54], ebx
mov dword [ebp - 0xc50], 0
jmp 0x40321f
mov ebx, dword [ebp - 0xc54]
cmp dword [esi - 0xc], 0
jne 0x4033ca
push 0x20019
push str.SOFTWAREMicrosoftWindowsCurrentVersionApp_PathsOutlook.exe
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0xc54]
call fcn.004038e0
test eax, eax
jne 0x4033c4
call fcn.0040665b
mov ecx, eax
test ecx, ecx
je 0x40352b
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xc44], eax
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0xc44]
cmp dword [ebp - 0xc5c], 0
jne 0x40328b
mov eax, 0x5a84ec
movzx eax, ax
push eax
call fcn.00403fb0
jmp 0x403297
push 0
push 0x5a84ec
call fcn.004044b0
mov byte [ebp - 4], 0x10
mov ecx, 1
mov esi, dword [ebp - 0xc44]
mov eax, dword [esi - 8]
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x4032cb
push 0x104
lea ecx, [ebp - 0xc44]
call fcn.00404350
mov esi, dword [ebp - 0xc44]
mov ebx, dword [ebp - 0xc54]
lea eax, [ebp - 0xc5c]
push eax
push esi
lea eax, [ebp - 0xc90]
mov dword [ebp - 0xc5c], 0x208
push eax
push 0
push esi
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x403324
mov eax, dword [ebp - 0xc90]
cmp eax, 1
je 0x403308
cmp eax, 2
jne 0x403324
test esi, esi
je 0x403350
mov eax, dword [ebp - 0xc5c]
test eax, eax
je 0x40334b
test al, 1
jne 0x403324
shr eax, 1
cmp word [esi + eax*2 - 2], 0
je 0x403350
lea edx, [esi - 0x10]
mov byte [ebp - 4], 0xe
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4033cd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4033cd
xor eax, eax
mov word [esi], ax
test ebx, ebx
je 0x403363
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor ebx, ebx
mov dword [ebp - 0xc54], ebx
push dword [esi - 8]
mov dword [ebp - 0xc50], 0
push esi
call fcn.0054cc71
add esp, 8
test eax, eax
js 0x403535
cmp eax, dword [esi - 8]
jg 0x403535
mov dword [esi - 0xc], eax
xor ecx, ecx
mov word [esi + eax*2], cx
lea eax, [ebp - 0xc5c]
push eax
push esi
mov dword [ebp - 0xc5c], ecx
call dword [sym.imp.KERNEL32.dll_GetBinaryTypeW]
mov ecx, dword [ebp - 0xc58]
xor eax, eax
cmp dword [ebp - 0xc5c], 6
sete al
mov dword [ecx + 0xcc], eax
jmp 0x403324
mov ebx, dword [ebp - 0xc54]
or esi, 0xffffffff
push 0
push 0x5a84ec
lea ecx, [ebp - 0xc48]
call fcn.004044b0
mov byte [ebp - 4], 0xc
mov eax, esi
mov edx, dword [ebp - 0xc48]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403400
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xa
mov eax, esi
mov edx, dword [ebp - 0xc60]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403421
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 8
mov eax, esi
mov edx, dword [ebp - 0xc64]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403442
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 6
add edi, 0xfffffff0
mov eax, esi
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x40345d
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 4
mov eax, esi
mov edx, dword [ebp - 0xc68]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40347e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov eax, esi
mov edx, dword [ebp - 0xc6c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40349f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0xc70]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x4034be
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test ebx, ebx
je 0x4034c9
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
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.00547788
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00404660
push 0x80004005
call fcn.00404660
push 0x80004005
call fcn.00404660
push 0x80004005
call fcn.00404660
push 0x80004005
call fcn.00404660
push 0x80004005
call fcn.00404660
push 0x80004005
call fcn.00404660
push 0x80004005
call fcn.00404660
push 0x80070057
call fcn.00404660
int3