Function at 0x427738
Capabilities:
Check for time delay via gettickcount
Encode data using xor
Get geographical location
Set uefi variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
and dword [ebp - 0xc], 0
push ebx
push esi
push edi
call fcn.004295cd
cdq
push 0xa
pop ecx
idiv ecx
mov esi, edx
call fcn.004295cd
cdq
push 0xa
pop ecx
idiv ecx
cmp esi, edx
setl al
test al, al
je 0x42777c
movzx eax, al
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
call fcn.004397d0
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
jmp 0x427789
fldz
call fcn.004396a0
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
call fcn.004398c0
test eax, eax
je 0x427797
call fcn.00426e4c
push 0
call fcn.0042a8e7
pop ecx
call fcn.004295cd
cdq
push 0x14
pop ecx
idiv ecx
mov esi, edx
inc esi
call fcn.004295cd
cdq
idiv esi
cmp edx, esi
jg 0x4277c2
mov eax, esi
cdq
idiv esi
test edx, edx
je 0x4277cc
call fcn.00426ed1
call fcn.00426fc9
mov ebx, dword [ebp + 8]
mov esi, dword [ebx + 0x54]
shr esi, 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0
mov edi, eax
call fcn.0042a8e7
mov dword [ebp - 0x14], edi
fild dword [ebp - 0x14]
pop ecx
mov dword [ebp - 0xc], eax
test edi, edi
jge 0x4277f7
fadd qword [0x44b078]
call fcn.004396a0
fild dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
test eax, eax
jge 0x42780c
fadd qword [0x44b078]
fcompp
fnstsw ax
test ah, 5
jp 0x42782b
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_SetFirmwareEnvironmentVariableA]
call fcn.00409a52
call fcn.00427057
cmp esi, dword [ebx + 0x54]
jae 0x4278ee
mov ecx, dword [ebx + 0x30]
xor edx, edx
mov eax, esi
div ecx
lea eax, [ebx + 0x1c]
mov edi, edx
call fcn.00408311
mov al, byte [eax]
mov byte [ebp - 4], al
mov edi, esi
lea eax, [ebx + 0x38]
call fcn.00408311
mov bl, byte [eax]
mov eax, dword [ebp + 8]
add eax, 0x38
call fcn.00408311
xor bl, byte [ebp - 4]
mov byte [eax], bl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
test eax, eax
jge 0x42787e
fadd qword [0x44b078]
call fcn.004396a0
fstp qword [ebp - 0x10]
xor edi, edi
push edi
call fcn.0042a8e7
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
pop ecx
test eax, eax
jge 0x42789f
fadd qword [0x44b078]
fcomp qword [ebp - 0x10]
fnstsw ax
test ah, 5
jp 0x4278df
push edi
push edi
push edi
push edi
push edi
call dword [sym.imp.ADVAPI32.dll_RegNotifyChangeKeyValue]
push 4
lea eax, [ebp - 0x18]
push eax
push 0x20001009
mov edi, 0x400
push edi
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
push 0x20
lea eax, [ebp - 0x38]
push eax
push 0x58
push edi
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
call fcn.0042709a
mov eax, dword [ebp + 8]
inc esi
mov ebx, eax
cmp esi, dword [eax + 0x54]
jb 0x427834
mov esi, dword [ebx + 0x54]
and dword [ebp - 0xc], 0
dec esi
je 0x427930
mov edi, esi
lea eax, [ebx + 0x38]
call fcn.00408311
mov al, byte [eax]
mov edi, dword [ebp - 0xc]
mov byte [ebp - 4], al
lea eax, [ebx + 0x38]
call fcn.00408311
mov al, byte [eax]
mov byte [ebp + 8], al
lea eax, [ebx + 0x38]
call fcn.00408311
mov cl, byte [ebp + 8]
xor cl, byte [ebp - 4]
inc dword [ebp - 0xc]
dec esi
mov byte [eax], cl
cmp dword [ebp - 0xc], esi
jb 0x4278f8
mov ecx, dword [ebp + 0xc]
add ebx, 0x38
push ebx
call fcn.004031b5
mov eax, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
leave
ret 8