Function at 0x417185
Capabilities:
Set registry value
Set uefi variable

Disassembly:
push 0x8c
mov eax, 0x43fb05
call fcn.0042b376
mov eax, dword [ebp + 8]
mov dword [ebp - 0x20], eax
push 2
pop edi
xor ebx, ebx
lea eax, [ebp - 0x11]
mov dword [ebp - 4], edi
mov byte [ebp - 0x11], bl
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4171ab
sub eax, esi
je 0x4171bb
call fcn.0040ca41
mov dword [ebp - 0x18], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, edi
je 0x4171d5
sub eax, edi
je 0x4171d5
sub eax, 4
je 0x4171d5
xor eax, eax
jmp 0x4171e2
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetFirmwareEnvironmentVariableA]
xor eax, eax
inc eax
dec eax
jne 0x4171ef
call fcn.004017c3
call fcn.0040cab2
call fcn.00428e21
cdq
push 0x14
pop ecx
idiv ecx
mov esi, edx
inc esi
call fcn.00428e21
cdq
idiv esi
cmp edx, esi
jg 0x417212
mov eax, esi
cdq
idiv esi
cmp edx, ebx
je 0x417229
call fcn.0040caf9
call dword [sym.imp.USER32.dll_GetActiveWindow]
call dword [sym.imp.USER32.dll_GetCapture]
call dword [sym.imp.USER32.dll_GetClipboardOwner]
cmp dword [ebp + 0x24], 0x10
mov eax, dword [ebp + 0x10]
jae 0x417235
lea eax, [ebp + 0x10]
lea ecx, [ebp - 0x18]
push ecx
mov edi, 0xf003f
push edi
push ebx
push eax
mov esi, closesocket
push esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, 2
jne 0x417305
cmp dword [ebp + 0x24], 0x10
mov eax, dword [ebp + 0x10]
jae 0x417262
lea eax, [ebp + 0x10]
push ebx
lea ecx, [ebp - 0x18]
push ecx
push ebx
push edi
push ebx
push ebx
push ebx
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
push ebx
mov dword [ebp - 0x24], eax
call fcn.0042a13f
cmp dword [ebp + 0x24], 0x10
mov eax, dword [ebp + 0x10]
pop ecx
jae 0x41728a
lea eax, [ebp + 0x10]
push eax
push esi
lea eax, [ebp - 0x40]
push eax
sub esp, 0x1c
mov esi, esp
mov dword [ebp - 0x1c], esp
push 0x38
push 0x448e20
call fcn.0040801d
lea edi, [ebp - 0x98]
call fcn.00426ea5
mov byte [ebp - 4], 3
call fcn.00426f18
mov byte [ebp - 4], 4
cmp dword [eax + 0x18], 0x10
jb 0x4172c7
mov eax, dword [eax + 4]
jmp 0x4172ca
add eax, 4
mov ebx, dword [ebp - 0x20]
push eax
push 1
call fcn.0040e8e1
add esp, 0x10
push 0
push 1
lea ecx, [ebp - 0x40]
call fcn.0040329c
lea esi, [ebp - 0x98]
mov byte [ebp - 4], 2
call fcn.00417161
push 0
call fcn.0042a13f
mov eax, dword [ebp - 0x24]
pop ecx
xor ebx, ebx
mov esi, closesocket
cmp eax, 5
jne 0x417366
cmp dword [ebp + 0x24], 0x10
mov eax, dword [ebp + 0x10]
jae 0x417316
lea eax, [ebp + 0x10]
push eax
push esi
lea eax, [ebp - 0x40]
push eax
sub esp, 0x1c
mov esi, esp
mov dword [ebp - 0x1c], esp
push 0x3b
push 0x448e5c
call fcn.0040801d
lea edi, [ebp - 0x98]
call fcn.00426ea5
mov byte [ebp - 4], 5
call fcn.00426f82
mov byte [ebp - 4], 6
cmp dword [eax + 0x18], 0x10
jb 0x417353
mov eax, dword [eax + 4]
jmp 0x417356
add eax, 4
mov ebx, dword [ebp - 0x20]
push eax
push 1
call fcn.0040e8e1
add esp, 0x10
jmp 0x4173c5
cmp eax, ebx
je 0x4173e0
cmp dword [ebp + 0x24], 0x10
mov ecx, dword [ebp + 0x10]
jae 0x417376
lea ecx, [ebp + 0x10]
push ecx
push esi
push eax
lea eax, [ebp - 0x40]
push eax
sub esp, 0x1c
mov esi, esp
mov dword [ebp - 0x1c], esp
push 0x3e
push 0x448e98
call fcn.0040801d
lea edi, [ebp - 0x98]
call fcn.00426ea5
mov byte [ebp - 4], 7
call fcn.00426f18
mov byte [ebp - 4], 8
cmp dword [eax + 0x18], 0x10
jb 0x4173b4
mov eax, dword [eax + 4]
jmp 0x4173b7
add eax, 4
mov ebx, dword [ebp - 0x20]
push eax
push 1
call fcn.0040e8e1
add esp, 0x14
push 0
push 1
lea ecx, [ebp - 0x40]
call fcn.0040329c
lea esi, [ebp - 0x98]
call fcn.00417161
xor ebx, ebx
jmp 0x41742d
cmp dword [ebp - 0x18], ebx
je 0x41743b
cmp dword [ebp + 0x5c], 0x10
mov ecx, dword [ebp + 0x48]
jae 0x4173f1
lea ecx, [ebp + 0x48]
cmp dword [ebp + 0x40], 0x10
mov eax, dword [ebp + 0x2c]
jae 0x4173fd
lea eax, [ebp + 0x2c]
push dword [ebp + 0x58]
push ecx
push 1
push ebx
push eax
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
call fcn.004094e1
dec eax
jne 0x41742d
call dword [sym.imp.USER32.dll_GetActiveWindow]
call dword [sym.imp.USER32.dll_GetCapture]
call dword [sym.imp.USER32.dll_GetClipboardOwner]
call fcn.0040cb42
cmp dword [ebp - 0x18], ebx
je 0x41743b
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push ebx
push 1
lea ecx, [ebp + 0xc]
call fcn.0040329c
push ebx
push 1
lea ecx, [ebp + 0x28]
call fcn.0040329c
push ebx
push 1
lea ecx, [ebp + 0x44]
call fcn.0040329c
xor eax, eax
call fcn.0042b3f9
ret 0x58