Function at 0x405c60
Capabilities:
Set registry value

Disassembly:
sub esp, 0x42c
mov eax, dword [0x41c028]
xor eax, esp
mov dword [esp + 0x424], eax
push ebx
push ebp
push esi
push edi
xor ebp, ebp
push 0x206
mov ebx, ecx
lea ecx, [esp + 0x26]
xor eax, eax
push ebp
push ecx
xor esi, esi
xor edi, edi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], ebp
mov word [esp + 0x2c], ax
call fcn.0040e6d0
push 0x206
lea eax, [esp + 0x23a]
xor edx, edx
push ebp
push eax
mov word [esp + 0x240], dx
call fcn.0040e6d0
lea ecx, [ebx + 0x228]
push ecx
lea edx, [esp + 0x3c]
push str._sControlSet001_services
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
mov edx, dword [ebx + 0x224]
add esp, 0x24
lea eax, [esp + 0x1c]
push eax
push 0xf003f
push ebp
lea ecx, [esp + 0x2c]
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov ebx, eax
cmp ebx, ebp
je 0x405d3c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x10000
push ebp
push ebp
push eax
call fcn.004148f0
mov esi, eax
add esi, 0x26a0000
mov edi, edx
push ebx
adc edi, 0x15
push edi
push esi
push 0x26b
push str..UASPSupporter.cpp
push str._S__d_nRet0x_016llX_dwErrNo0x_08X_n
call fcn.004019b0
add esp, 0x18
jmp 0x406084
push str.WinToUSBFix
lea eax, [esp + 0x24]
push 0x104
push eax
call fcn.00409560
mov eax, dword [esp + 0x28]
add esp, 0xc
push ebp
lea ecx, [esp + 0x18]
push ecx
push ebp
push 0xf003f
push ebp
push ebp
push ebp
lea edx, [esp + 0x3c]
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov ebx, eax
cmp ebx, ebp
je 0x405da2
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x10000
push ebp
push ebp
push eax
call fcn.004148f0
mov esi, eax
add esi, 0x2730000
mov edi, edx
push ebx
adc edi, 0x15
push edi
push esi
push 0x274
jmp 0x405d25
push str.WinToUSBFix
lea ecx, [esp + 0x24]
push 0x104
push ecx
call fcn.00409560
lea eax, [esp + 0x2c]
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x405dc0
mov ecx, dword [esp + 0x14]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
sub eax, edx
sar eax, 1
lea edx, [eax + eax]
push edx
lea eax, [esp + 0x24]
push eax
push 1
push ebp
push str.DisplayName
push ecx
call ebx
test eax, eax
je 0x405e1d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x10000
push ebp
push ebp
push eax
call fcn.004148f0
mov esi, eax
add esi, 0x27c0000
mov edi, edx
adc edi, 0x15
push edi
push esi
push 0x27d
jmp 0x406072
push str.WinToUSB_Fix_Server
lea edx, [esp + 0x24]
push 0x104
push edx
call fcn.00409560
lea eax, [esp + 0x2c]
add esp, 0xc
lea edx, [eax + 2]
jmp 0x405e40
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x405e40
sub eax, edx
mov edx, dword [esp + 0x14]
sar eax, 1
add eax, eax
push eax
lea ecx, [esp + 0x24]
push ecx
push 1
push ebp
push str.Description
push edx
call ebx
test eax, eax
je 0x405e96
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x10000
push ebp
push ebp
push eax
call fcn.004148f0
mov esi, eax
add esi, 0x2850000
mov edi, edx
adc edi, 0x15
push edi
push esi
push 0x286
jmp 0x406072
mov ecx, dword [esp + 0x14]
push 4
lea eax, [esp + 0x1c]
push eax
push 4
push ebp
push str.ErrorControl
push ecx
mov dword [esp + 0x30], ebp
call ebx
test eax, eax
je 0x405ee0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x10000
push ebp
push ebp
push eax
call fcn.004148f0
mov esi, eax
add esi, 0x28e0000
mov edi, edx
adc edi, 0x15
push edi
push esi
push 0x28f
jmp 0x406072
push str.W2GFix.exe
push str.WinToUSB
push str.__ProgramFiles___S_bin_s
lea edx, [esp + 0x234]
push 0x104
push edx
call fcn.00409a2f
lea eax, [esp + 0x23c]
add esp, 0x14
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x405f10
sub eax, edx
mov edx, dword [esp + 0x14]
sar eax, 1
add eax, eax
push eax
lea ecx, [esp + 0x22c]
push ecx
push 2
push ebp
push str.ImagePath
push edx
call ebx
test eax, eax
je 0x405f69
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x10000
push ebp
push ebp
push eax
call fcn.004148f0
mov esi, eax
add esi, 0x2970000
mov edi, edx
adc edi, 0x15
push edi
push esi
push 0x298
jmp 0x406072
push str.LocalSystem
lea eax, [esp + 0x24]
push 0x104
push eax
call fcn.00409560
lea eax, [esp + 0x2c]
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x405f87
sub eax, edx
sar eax, 1
lea ecx, [eax + eax]
mov eax, dword [esp + 0x14]
push ecx
lea edx, [esp + 0x24]
push edx
push 1
push ebp
push str.ObjectName
push eax
call ebx
test eax, eax
je 0x405fde
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x10000
push ebp
push ebp
push eax
call fcn.004148f0
mov esi, eax
add esi, 0x2a00000
mov edi, edx
adc edi, 0x15
push edi
push esi
push 0x2a1
jmp 0x406072
mov edx, dword [esp + 0x14]
push 4
lea ecx, [esp + 0x1c]
push ecx
push 4
push ebp
push str.Start
push edx
mov dword [esp + 0x30], 2
call ebx
test eax, eax
je 0x406029
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x10000
push ebp
push ebp
push eax
call fcn.004148f0
mov esi, eax
add esi, 0x2a90000
mov edi, edx
adc edi, 0x15
push edi
push esi
push 0x2aa
jmp 0x406072
mov ecx, dword [esp + 0x14]
push 4
lea eax, [esp + 0x1c]
push eax
push 4
push ebp
push str.Type
push ecx
mov dword [esp + 0x30], 0x10
call ebx
test eax, eax
je 0x406084
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x10000
push ebp
push ebp
push eax
call fcn.004148f0
mov esi, eax
add esi, 0x2b20000
mov edi, edx
adc edi, 0x15
push edi
push esi
push 0x2b3
push str..UASPSupporter.cpp
push str._S__d_nRet0x_016llX_n
call fcn.004019b0
add esp, 0x14
mov eax, dword [esp + 0x14]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp eax, ebp
je 0x406095
push eax
call ebx
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x4060a0
push eax
call ebx
mov ecx, dword [esp + 0x434]
mov edx, edi
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00409551
add esp, 0x42c
ret