Function at 0x41c5e0
Capabilities:
Check for time delay via gettickcount
Set uefi variable

Disassembly:
sub esp, 0x10
mov eax, dword [0x45f2b0]
xor eax, esp
mov dword [esp + 0xc], eax
push ebx
push ebp
mov ebp, dword [esp + 0x1c]
push esi
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push edi
xor ebx, ebx
push 4
mov dword [ebp + 0x398], ebx
call esi
lea ecx, [esp + 0x14]
cmp eax, ecx
jle 0x41c619
push ebx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
jmp 0x41c61d
push 0xe
call esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, 2
je 0x41c632
sub eax, 2
je 0x41c632
sub eax, 4
jne 0x41c641
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetFirmwareEnvironmentVariableA]
call fcn.004197b0
lea edi, [ebp + 0x180]
mov dword [ebp + 0x17c], ebx
call fcn.00429ca0
lea edi, [ebp + 0x19c]
call fcn.00429ca0
push 4
call esi
lea edx, [esp + 0x14]
cmp eax, edx
jle 0x41c67a
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoA]
mov eax, 1
jmp 0x41c68b
push 0xe
call esi
xor edx, edx
lea ecx, [esp + 0x14]
cmp eax, ecx
setg dl
mov eax, edx
sub eax, 1
jne 0x41c69a
call fcn.004353a0
call fcn.004353a0
lea edi, [ebp + 0x1b8]
call fcn.00429ca0
push ebx
call fcn.00439283
add esp, 4
lea edi, [ebp + 0x1d8]
mov dword [ebp + 0x1d4], ebx
mov dword [ebp + 0x1f4], ebx
call fcn.00429ca0
lea edi, [ebp + 0x1f8]
call fcn.00429ca0
mov edi, dword [ebp + 0x224]
cmp dword [ebp + 0x220], edi
lea esi, [ebp + 0x214]
jbe 0x41c6e9
call fcn.00437e82
mov ebx, dword [esi + 0xc]
mov eax, dword [esi]
mov dword [esp + 0x14], eax
cmp ebx, dword [esi + 0x10]
jbe 0x41c6fc
call fcn.00437e82
mov ecx, dword [esp + 0x14]
mov eax, dword [esi]
push edi
push ecx
push ebx
push eax
lea ebx, [esp + 0x24]
call fcn.00405440
mov edi, dword [ebp + 0x23c]
cmp dword [ebp + 0x238], edi
lea esi, [ebp + 0x22c]
jbe 0x41c728
call fcn.00437e82
mov ebx, dword [esi + 0xc]
mov edx, dword [esi]
mov dword [esp + 0x14], edx
cmp ebx, dword [esi + 0x10]
jbe 0x41c73b
call fcn.00437e82
mov ecx, dword [esp + 0x14]
mov eax, dword [esi]
push edi
push ecx
push ebx
push eax
lea ebx, [esp + 0x24]
call fcn.00405440
lea eax, [esp + 0x13]
mov byte [esp + 0x13], 0
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41c760
sub eax, edx
je 0x41c775
call fcn.00406c60
call fcn.00418340
lea edi, [ebp + 0x244]
call fcn.00429ca0
lea edi, [ebp + 0x260]
call fcn.00429ca0
xor eax, eax
lea edi, [ebp + 0x288]
mov dword [ebp + 0x280], eax
mov dword [ebp + 0x284], eax
call fcn.00429ca0
lea edi, [ebp + 0x2a4]
call fcn.00429ca0
mov esi, dword [ebp + 0x2d0]
cmp dword [ebp + 0x2cc], esi
lea edi, [ebp + 0x2c0]
jbe 0x41c7c8
call fcn.00437e82
mov ebx, dword [edi + 0xc]
mov edx, dword [edi]
mov dword [esp + 0x14], edx
cmp ebx, dword [edi + 0x10]
jbe 0x41c7db
call fcn.00437e82
mov ecx, dword [esp + 0x14]
mov eax, dword [edi]
push esi
push ecx
push ebx
push eax
lea edx, [esp + 0x24]
push edx
call fcn.0042ae50
call fcn.00417cd0
test eax, eax
je 0x41c802
call fcn.004183b0
call fcn.00418790
mov ebx, dword [ebp + 0x2e8]
cmp dword [ebp + 0x2e4], ebx
lea edi, [ebp + 0x2d8]
jbe 0x41c81b
call fcn.00437e82
mov esi, dword [edi + 0xc]
mov eax, dword [edi]
mov dword [esp + 0x14], eax
cmp esi, dword [edi + 0x10]
jbe 0x41c82e
call fcn.00437e82
mov ecx, dword [esp + 0x14]
mov eax, dword [edi]
push ebx
push ecx
push esi
push eax
lea edx, [esp + 0x24]
push edx
call fcn.0042b010
xor ebx, ebx
mov dword [ebp + 0x308], ebx
call fcn.00437f69
cdq
mov ecx, 0x14
idiv ecx
mov esi, edx
inc esi
call fcn.00437f69
cdq
idiv esi
cmp edx, esi
jg 0x41c86f
mov eax, esi
cdq
idiv esi
cmp edx, ebx
je 0x41c879
call fcn.00418440
call fcn.00401440
lea edi, [ebp + 0x30c]
call fcn.00429ca0
lea edi, [ebp + 0x328]
call fcn.00429ca0
lea edi, [ebp + 0x344]
call fcn.00429ca0
lea edi, [ebp + 0x360]
call fcn.00429ca0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, 2
je 0x41c8ba
sub eax, 2
je 0x41c8ba
sub eax, 4
jne 0x41c8ca
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
call fcn.00418510
lea edi, [ebp + 0x37c]
call fcn.00429ca0
mov ecx, dword [esp + 0x1c]
pop edi
pop esi
mov dword [ebp + 0x3a0], ebx
mov dword [ebp + 0x39c], 1
pop ebp
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00437983
add esp, 0x10
ret 4