Function at 0x423bb6
Capabilities:
Copy file
Persist via run registry key
Set file attributes
Set registry value

Disassembly:
mov eax, 0x49abc5
call fcn.0047d43c
mov eax, 0x129c
call fcn.0047dbe0
push ebx
push esi
push edi
mov dword [ebp - 0x24], ecx
call fcn.00401166
mov dword [ebp - 0x10], eax
xor ebx, ebx
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x6a7]
mov byte [ebp - 0x6a8], bl
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x10]
stosw word es:[edi], ax
stosb byte es:[edi], al
call fcn.00434689
test eax, eax
jne 0x423d57
lea ecx, [ebp - 0xc8]
call fcn.004020ad
mov ecx, 0x4c8288
mov dword [ebp - 4], ebx
call fcn.00401a14
push eax
lea eax, [ebp - 0x6a8]
push 0x4c8ae0
push eax
call fcn.00449198
mov esi, dword [sym.imp.KERNEL32.dll_CopyFileA]
lea eax, [ebp - 0x6a8]
push ebx
push eax
push 0x4c82b0
call esi
lea eax, [ebp - 0x6a8]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea eax, [ebp - 0x6a8]
lea ecx, [ebp - 0xc8]
push eax
call fcn.00402533
xor eax, eax
lea edi, [ebp - 0x103]
mov byte [ebp - 0x104], bl
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x16c]
movzx eax, word [eax + 0x48]
push eax
lea eax, [ebp - 0x104]
push str._04x
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0xea8]
push eax
lea eax, [ebp - 0x12a8]
push eax
push 0x4c82b0
call fcn.00448f52
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x12a8]
push eax
lea eax, [ebp - 0xea8]
push eax
call fcn.00449198
lea eax, [ebp - 0xea8]
push str..ini
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0xaa7]
mov byte [ebp - 0xaa8], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0xaa8]
push 0x4c8ae0
push eax
call fcn.00449198
lea eax, [ebp - 0xaa8]
push str..ini
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0xaa8]
push ebx
push eax
lea eax, [ebp - 0xea8]
push eax
call esi
lea eax, [ebp - 0xaa8]
lea ecx, [ebp - 0xc8]
push eax
call fcn.00402533
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc8]
call fcn.004020da
jmp 0x423d69
lea eax, [ebp - 0x6a8]
push 0x4c82b0
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 1
lea eax, [ebp - 0x1e]
pop esi
lea ecx, [ebp - 0x168]
push esi
push eax
push dword [0x4a3834]
call fcn.00401884
lea eax, [ebp - 0x1d]
push esi
push eax
lea ecx, [ebp - 0x140]
push dword [0x4a3800]
mov dword [ebp - 4], esi
call fcn.00401884
mov ecx, dword [ebp - 0x10]
push 0xa
lea eax, [ebp - 0x168]
push ebx
push eax
lea eax, [ebp - 0x140]
push eax
mov byte [ebp - 4], 2
call fcn.00435c72
lea ecx, [ebp - 0x140]
mov dword [ebp - 0x34], eax
mov byte [ebp - 4], 1
call fcn.00401093
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x168]
call fcn.00401093
lea eax, [ebp - 0x1d]
mov esi, 0x4a36b8
mov edi, 0x4a36b0
push ebx
push eax
lea ecx, [ebp - 0xf0]
mov dword [ebp - 0xf0], esi
mov dword [ebp - 0xd0], edi
call fcn.00403cd9
mov dword [ebp - 4], 3
mov dword [ebp - 0x18], ebx
lea eax, [ebp - 0x1d]
push ebx
push eax
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 4
mov dword [ebp - 0x1b8], esi
mov dword [ebp - 0x198], edi
call fcn.00403cd9
mov eax, dword [ebp - 0x34]
mov byte [ebp - 4], 5
sub eax, ebx
je 0x423eb3
dec eax
je 0x423e76
dec eax
jne 0x423eee
lea eax, [ebp - 0x1e]
push 1
push eax
push str.SoftwareMicrosoftWindowsCurrentVersionRun
lea ecx, [ebp - 0x140]
call fcn.00402e7f
lea eax, [ebp - 0x140]
lea ecx, [ebp - 0x1b8]
push eax
mov byte [ebp - 4], 8
call fcn.004024b2
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x140]
jmp 0x423eac
lea eax, [ebp - 0x2a]
push 1
push eax
push str.SoftwareMicrosoftWindowsCurrentVersionRunOnceEx
lea ecx, [ebp - 0x168]
call fcn.00402e7f
lea eax, [ebp - 0x168]
lea ecx, [ebp - 0x1b8]
push eax
mov byte [ebp - 4], 7
call fcn.004024b2
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x168]
call fcn.00402438
jmp 0x423ef8
lea eax, [ebp - 0x29]
push 1
push eax
push str.SoftwareMicrosoftWindowsCurrentVersionRunOnce
lea ecx, [ebp - 0x190]
call fcn.00402e7f
lea eax, [ebp - 0x190]
lea ecx, [ebp - 0x1b8]
push eax
mov byte [ebp - 4], 6
call fcn.004024b2
lea ecx, [ebp - 0x190]
mov byte [ebp - 4], 5
call fcn.00402438
cmp dword [ebp - 0x34], 3
je 0x424678
lea ecx, [ebp - 0x1b8]
call fcn.004042dd
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], ebx
push ecx
push 0xf003f
push ebx
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, ebx
jne 0x424678
lea ecx, [ebp - 0x18]
call fcn.00410d42
mov ecx, dword [ebp - 0x1c]
cmp eax, ebx
mov dword [ebp - 0x18], ecx
jne 0x424678
lea eax, [ebp - 0x29]
push 1
push eax
lea ecx, [ebp - 0x190]
push dword [ebp + 8]
call fcn.00402e7f
cmp dword [ebp + 0xc], ebx
mov byte [ebp - 4], 9
je 0x423f73
push str._AFTERREBOOT1
call fcn.0047d464
pop ecx
push eax
push str._AFTERREBOOT1
lea ecx, [ebp - 0x18c]
call fcn.0040fa85
lea eax, [ebp + 0xf]
push ebx
push eax
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x40], edi
call fcn.00403cd9
mov eax, dword [ebp - 0x10]
mov byte [ebp - 4], 0xa
lea ecx, [eax + 4]
mov eax, dword [eax + 4]
call dword [eax]
dec eax
je 0x424071
dec eax
je 0x42401b
dec eax
je 0x423fc0
dec eax
je 0x423fb6
dec eax
jne 0x42408a
mov eax, 0x4bde3c
jmp 0x424076
mov eax, 0x4bde34
jmp 0x424076
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 0x2a8]
push 8
push edx
lea ecx, [eax + 4]
mov eax, dword [eax + 4]
call dword [eax + 0x1c]
push eax
lea eax, [ebp - 0xbc]
push 0x4bde2c
push eax
mov byte [ebp - 4], 0xd
call fcn.0040bd8b
add esp, 0xc
push eax
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0xe
call fcn.004024b2
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0xd
call fcn.00402438
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x2a8]
call fcn.00402438
jmp 0x42408a
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 0x94]
push 8
push edx
lea ecx, [eax + 4]
mov eax, dword [eax + 4]
call dword [eax + 0x1c]
push eax
lea eax, [ebp - 0x1e0]
push 0x4bde24
push eax
mov byte [ebp - 4], 0xb
call fcn.0040bd8b
add esp, 0xc
push eax
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0xc
call fcn.004024b2
lea ecx, [ebp - 0x1e0]
mov byte [ebp - 4], 0xb
call fcn.00402438
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x94]
jmp 0x424014
mov eax, 0x4bde1c
mov ecx, eax
test ecx, ecx
jne 0x424081
mov eax, 0x4c6e10
push eax
lea ecx, [ebp - 0x60]
call fcn.00403eb2
mov ecx, dword [ebp - 0x10]
call fcn.00434689
test eax, eax
mov eax, 0x4bde14
jne 0x4240a0
mov eax, 0x4c6e10
cmp eax, ebx
mov dword [ebp - 0x208], esi
mov dword [ebp - 0x1e8], edi
jne 0x4240b5
mov eax, 0x4c6e10
lea ecx, [ebp - 0x2a]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x208]
call fcn.00404d89
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x280]
push eax
mov byte [ebp - 4], 0xf
call fcn.004325bb
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x1e]
push 1
push eax
mov byte [ebp - 4], 0x10
call fcn.00432799
push eax
lea ecx, [ebp - 0x140]
call fcn.00402e7f
lea eax, [ebp - 0x35]
push 1
push eax
push 0x4c8ae0
lea ecx, [ebp - 0x168]
mov byte [ebp - 4], 0x11
call fcn.00402e7f
mov ecx, dword [ebp - 0x10]
mov byte [ebp - 4], 0x12
call fcn.00434689
test eax, eax
je 0x4241a6
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x38], ebx
jne 0x4241a6
mov edx, dword [ebp - 0x200]
mov eax, 0x4a36e0
cmp edx, ebx
jne 0x42413e
mov edx, eax
mov ecx, dword [ebp - 0x188]
mov dword [ebp + 8], eax
cmp ecx, ebx
je 0x42414e
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 0x160]
mov dword [ebp - 0x30], eax
cmp ecx, ebx
je 0x42415e
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x138]
mov dword [ebp - 0x24], eax
cmp ecx, ebx
je 0x42416e
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x58]
cmp ecx, ebx
jne 0x424177
mov ecx, eax
cmp dword [ebp - 0x278], ebx
je 0x424185
mov eax, dword [ebp - 0x278]
push edx
mov edx, dword [ebp - 0x10]
push dword [ebp + 8]
mov edx, dword [edx + 0x16c]
push dword [ebp - 0x30]
movzx edx, word [edx + 0x48]
push dword [ebp - 0x24]
push edx
push ecx
push eax
push str.__s___k__s__l_d__t__s___e__s___w__v__s___s
jmp 0x42421d
mov edx, dword [ebp - 0x200]
mov eax, 0x4a36e0
cmp edx, ebx
jne 0x4241b7
mov edx, eax
mov ecx, dword [ebp - 0x188]
mov dword [ebp + 8], eax
cmp ecx, ebx
je 0x4241c7
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 0x160]
mov dword [ebp - 0x24], eax
cmp ecx, ebx
je 0x4241d7
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x138]
mov dword [ebp - 0x30], eax
cmp ecx, ebx
je 0x4241e7
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x58]
cmp ecx, ebx
jne 0x4241f0
mov ecx, eax
cmp dword [ebp - 0x278], ebx
je 0x4241fe
mov eax, dword [ebp - 0x278]
push edx
mov edx, dword [ebp - 0x10]
push dword [ebp + 8]
mov edx, dword [edx + 0x16c]
push dword [ebp - 0x24]
movzx edx, word [edx + 0x48]
push dword [ebp - 0x30]
push edx
push ecx
push eax
push str.__s___s__l_d__t__s___e__s___v__s___s
lea eax, [ebp - 0xf0]
push eax
call fcn.0040f4b6
mov eax, dword [ebp - 0x10]
add esp, 0x24
lea edx, [ebp - 0x94]
lea ecx, [eax + 4]
push edx
mov eax, dword [ecx]
call dword [eax + 0x48]
cmp dword [eax + 0xc], ebx
lea ecx, [ebp - 0x94]
setne byte [ebp + 0xb]
call fcn.00402438
cmp byte [ebp + 0xb], bl
je 0x4242ea
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 0x2a8]
push edx
lea ecx, [eax + 4]
mov eax, dword [eax + 4]
call dword [eax + 0x48]
push eax
lea eax, [ebp - 0x1e0]
push str.__debuglog_
push eax
mov byte [ebp - 4], 0x13
call fcn.0040bd8b
push 0x4bc288
push eax
lea eax, [ebp - 0x94]
mov byte [ebp - 4], 0x14
push eax
call fcn.0040f95e
add esp, 0x18
push dword [0x4a36c0]
mov ecx, eax
add eax, 4
mov byte [ebp - 4], 0x15
neg ecx
sbb ecx, ecx
push ebx
and ecx, eax
push ecx
lea ecx, [ebp - 0xec]
call fcn.0040af14
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x14
call fcn.00402438
lea ecx, [ebp - 0x1e0]
mov byte [ebp - 4], 0x13
call fcn.00402438
lea ecx, [ebp - 0x2a8]
mov byte [ebp - 4], 0x12
call fcn.00402438
cmp dword [ebp - 0x34], 1
jne 0x424326
lea eax, [ebp - 0x24]
mov dword [ebp + 8], ebx
push eax
lea eax, [ebp + 8]
push eax
push ebx
push 0xf003f
push ebx
push ebx
push ebx
push str.0001
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
cmp eax, ebx
jne 0x424326
lea ecx, [ebp - 0x18]
call fcn.00410d42
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x190]
push ebx
push eax
lea ecx, [ebp - 0x118]
mov dword [ebp - 0x118], esi
mov dword [ebp - 0xf8], edi
call fcn.00403d4e
mov ecx, dword [ebp - 0x10]
lea eax, [ebp + 0xb]
push 1
push eax
mov byte [ebp - 4], 0x16
call fcn.00432799
push eax
lea ecx, [ebp - 0x230]
call fcn.00402e7f
lea eax, [ebp - 0x36]
push 1
push eax
push 0x4c8ae0
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 0x17
call fcn.00402e7f
cmp dword [ebp - 0x224], ebx
mov byte [ebp - 4], 0x18
je 0x4243a7
lea eax, [ebp - 0x94]
push ebx
push eax
lea ecx, [ebp - 0x230]
call fcn.0041b439
lea ecx, [ebp - 0x94]
call fcn.00402438
cmp dword [ebp - 0x24c], ebx
je 0x4243cd
lea eax, [ebp - 0x94]
push ebx
push eax
lea ecx, [ebp - 0x258]
call fcn.0041b439
lea ecx, [ebp - 0x94]
call fcn.00402438
mov esi, dword [ebp - 0xe8]
cmp esi, ebx
jne 0x4243dc
mov esi, 0x4a36e0
lea eax, [ebp - 0x11]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupmsiaction.cpp
lea ecx, [ebp - 0x94]
call fcn.00401884
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0x19
cmp eax, ebx
jne 0x424402
mov eax, 0x4a368c
mov dword [ebp - 0x28], eax
push esi
lea eax, [ebp - 0x28]
push str.MsiAction::Reboot_command_line__s
push eax
mov dword [ebp - 0x24], 0x708
call fcn.0040a47f
add esp, 0xc
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x18
call fcn.00401093
mov dword [ebp - 0x1c], ebx
push 0xf003f
push str.SoftwareMicrosoftWindowsCurrentVersion
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x1a
call fcn.00419f99
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jne 0x4245af
lea ecx, [ebp - 0x230]
call fcn.004042dd
push eax
mov dword [ebp - 0x24], eax
call esi
inc eax
push eax
push dword [ebp - 0x24]
push 1
push ebx
push str._IS_T_
push dword [ebp - 0x1c]
call edi
lea ecx, [ebp - 0x258]
call fcn.004042dd
push eax
mov dword [ebp - 0x24], eax
call esi
inc eax
push eax
push dword [ebp - 0x24]
push 1
push ebx
push str._IS_E_
push dword [ebp - 0x1c]
call edi
cmp dword [ebp - 0x10c], ebx
je 0x4244d0
lea ecx, [ebp - 0x118]
call fcn.004042dd
push eax
mov dword [ebp - 0x24], eax
call esi
inc eax
push eax
push dword [ebp - 0x24]
push 1
push ebx
push str._IS_V_
push dword [ebp - 0x1c]
call edi
cmp dword [ebp - 0x1c], ebx
je 0x4244e1
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x1c], ebx
lea eax, [ebp - 0x11]
push 1
push eax
push str._IS_T_
lea ecx, [ebp - 0xbc]
call fcn.00402d70
lea eax, [ebp - 0xbc]
lea ecx, [ebp - 0xf0]
push eax
lea eax, [ebp - 0x230]
push eax
mov byte [ebp - 4], 0x1b
call fcn.00404e25
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0x1a
call fcn.00402438
lea eax, [ebp - 0x11]
push 1
push eax
push str._IS_E_
lea ecx, [ebp - 0xbc]
call fcn.00402d70
lea eax, [ebp - 0xbc]
lea ecx, [ebp - 0xf0]
push eax
lea eax, [ebp - 0x258]
push eax
mov byte [ebp - 4], 0x1c
call fcn.00404e25
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0x1a
call fcn.00402438
cmp dword [ebp - 0x10c], ebx
je 0x4245af
lea eax, [ebp - 0x11]
push 1
push eax
push str._IS_V_
lea ecx, [ebp - 0xbc]
call fcn.00402d70
lea eax, [ebp - 0xbc]
lea ecx, [ebp - 0xf0]
push eax
lea eax, [ebp - 0x118]
push eax
mov byte [ebp - 4], 0x1d
call fcn.00404e25
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0x1a
call fcn.00402438
lea ecx, [ebp - 0xf0]
call fcn.004042dd
push eax
mov dword [ebp - 0x24], eax
call esi
inc eax
push eax
push dword [ebp - 0x24]
push 1
push ebx
push str.ISSetup
push dword [ebp - 0x18]
call edi
cmp dword [ebp - 0x18], ebx
je 0x4245e3
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x1c], ebx
je 0x4245f4
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x1c], ebx
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 0x17
call fcn.00402438
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 0x16
call fcn.00402438
lea ecx, [ebp - 0x118]
mov byte [ebp - 4], 0x12
call fcn.00402438
lea ecx, [ebp - 0x168]
mov byte [ebp - 4], 0x11
call fcn.00402438
lea ecx, [ebp - 0x140]
mov byte [ebp - 4], 0x10
call fcn.00402438
lea ecx, [ebp - 0x280]
mov byte [ebp - 4], 0xf
call fcn.00402438
lea ecx, [ebp - 0x208]
mov byte [ebp - 4], 0xa
call fcn.00402438
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 9
call fcn.00402438
lea ecx, [ebp - 0x190]
mov byte [ebp - 4], 5
call fcn.00402438
xor eax, eax
lea edi, [ebp - 0x6b]
mov byte [ebp - 0x6c], bl
mov esi, dword [ebp - 0x10]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosb byte es:[edi], al
lea eax, [ebp + 0xb]
push 1
push eax
lea ecx, [ebp - 0xbc]
push dword [0x4a3810]
call fcn.00401884
mov eax, dword [esi + 4]
lea edi, [esi + 4]
lea ecx, [ebp - 0x1e0]
push 5
push ecx
mov ecx, edi
mov byte [ebp - 4], 0x1e
call dword [eax + 0x1c]
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x1f
push ecx
mov ecx, eax
call fcn.004193c3
push 0xa
lea ecx, [ebp - 0xbc]
push ebx
push ecx
push eax
mov ecx, esi
mov byte [ebp - 4], 0x20
call fcn.00435c72
lea ecx, [ebp - 0x94]
mov dword [ebp + 0xc], eax
mov byte [ebp - 4], 0x1f
call fcn.00401093
lea ecx, [ebp - 0x1e0]
mov byte [ebp - 4], 0x1e
call fcn.00402438
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 5
call fcn.00401093
mov eax, dword [edi]
push 0xb
mov ecx, edi
call dword [eax + 0x28]
test al, al
jne 0x42472a
cmp dword [ebp + 0xc], 1
je 0x42472a
cmp dword [ebp + 0xc], 2
jne 0x4247b8
push 4
lea eax, [ebp - 0x6c]
push 0x4bdd20
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [ebp - 0x58]
call fcn.004028f6
lea eax, [ebp - 0x6a8]
lea ecx, [ebp - 0x58]
push eax
mov byte [ebp - 4], 0x21
call fcn.0040293e
mov eax, dword [edi]
lea ecx, [ebp - 0x94]
push 5
push ecx
mov ecx, edi
call dword [eax + 0x1c]
mov ecx, eax
mov byte [ebp - 4], 0x22
call fcn.004042dd
lea ecx, [ebp - 0x6c]
push ecx
lea ecx, [ebp - 0x58]
push dword [0x4a3810]
push eax
call fcn.0040297d
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x21
call fcn.00402438
lea ecx, [ebp - 0x58]
call fcn.0040296a
push 1
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x23
call fcn.00403091
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 5
call fcn.00403aee
cmp dword [ebp - 0x34], 3
je 0x4247e0
mov esi, dword [esi + 0x16c]
cmp byte [esi + 1], bl
je 0x4247d5
cmp byte [esi + 2], bl
jne 0x4247d5
call fcn.004498ae
jmp 0x4247e0
push 0x453
call fcn.00448a41
pop ecx
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 4
call fcn.00402438
cmp dword [ebp - 0x18], ebx
je 0x424800
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x18], ebx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xf0]
call fcn.00402438
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 8