Function at 0x4023e0
Capabilities:
Check for time delay via gettickcount
Delete file
Resolve function by parsing pe exports
Set uefi variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x4542b0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x18]
xor ebx, ebx
push edi
cmp eax, ebx
jne 0x40241c
mov dword [esi + 0x18], 1
push ebx
call fcn.0042a13f
add eax, 0x3c
adc edx, ebx
pop ecx
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], edx
jmp 0x40289b
cmp eax, 1
jne 0x40246f
mov dword [esi + 0x18], 2
call fcn.004094e1
test eax, eax
je 0x40243b
call fcn.0040175f
call fcn.004017c3
push ebx
call fcn.0042a13f
add eax, 0x78
adc edx, ebx
mov dword [esi + 0x50], eax
lea eax, [ebp - 5]
mov dword [esi + 0x54], edx
pop ecx
mov byte [ebp - 5], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x402456
sub eax, edx
je 0x40289b
call fcn.00401884
jmp 0x40289b
cmp eax, 2
jne 0x4024a6
push ebx
mov dword [esi + 0x18], 4
call fcn.0042a13f
add eax, 0xb4
adc edx, ebx
pop ecx
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], edx
call fcn.00401271
test eax, eax
je 0x40289b
call fcn.004017c3
jmp 0x40289b
cmp eax, 4
jne 0x4024b7
mov dword [esi + 0x18], 5
jmp 0x402405
cmp eax, 5
jne 0x4024d1
push ebx
mov dword [esi + 0x18], 6
call fcn.0042a13f
add eax, 0x78
jmp 0x40240e
cmp eax, 6
jne 0x4024ed
push ebx
mov dword [esi + 0x18], 8
call fcn.0042a13f
add eax, 0xb4
jmp 0x40240e
cmp eax, 8
jne 0x402524
push ebx
mov dword [esi + 0x18], 0xa
call fcn.0042a13f
add eax, 0x12c
adc edx, ebx
pop ecx
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], edx
call fcn.00401271
test eax, eax
je 0x40289b
call fcn.0040197c
jmp 0x40289b
push 0xa
pop edi
cmp eax, edi
jne 0x402542
push ebx
mov dword [esi + 0x18], 0xc
call fcn.0042a13f
add eax, 0x12c
jmp 0x40240e
cmp eax, 0xc
jne 0x4025c3
mov dword [esi + 0x18], 0xe
call fcn.00428e21
cdq
push 0x14
pop ecx
idiv ecx
mov edi, edx
inc edi
call fcn.00428e21
cdq
idiv edi
cmp edx, edi
jle 0x40256d
xor edx, edx
inc edx
jmp 0x402572
mov eax, edi
cdq
idiv edi
mov eax, edx
dec eax
jne 0x402581
call fcn.00402027
call fcn.004019c3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
dec eax
dec eax
je 0x402594
dec eax
dec eax
je 0x402594
sub eax, 4
jne 0x4025a3
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetFirmwareEnvironmentVariableA]
call fcn.00401a0a
push ebx
call fcn.0042a13f
add eax, 0x12c
pop ecx
adc edx, ebx
push ebx
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], edx
call fcn.0042a13f
pop ecx
jmp 0x40289b
cmp eax, 0xe
jne 0x40266d
mov ebx, esi
call fcn.00402a32
xor edi, edi
push edi
call fcn.0042a13f
inc dword [esi + 0x48]
cmp dword [esi + 0x48], 9
pop ecx
jbe 0x4025f1
mov dword [esi + 0x18], 0xa
jmp 0x40289b
push edi
call fcn.0042a13f
add eax, 0x12c
adc edx, edi
mov dword [esi + 0x50], eax
lea eax, [ebp - 5]
mov dword [esi + 0x54], edx
pop ecx
mov byte [ebp - 5], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40260f
sub eax, edx
je 0x402624
call fcn.00401b02
call fcn.00401b5b
xor ebx, ebx
push ebx
mov eax, esi
call fcn.00402fef
add eax, 0x1c
cmp dword [eax + 0x14], edi
jne 0x402662
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
push 0x38
cdq
pop ecx
idiv ecx
inc ebx
cmp ebx, eax
jb 0x402649
xor ebx, ebx
cmp ebx, edi
jne 0x402626
call fcn.00401271
test eax, eax
je 0x4025e5
call fcn.0040c1a4
call fcn.00401bef
jmp 0x4025e5
add ebx, 0xf
mov dword [esi + 0x18], ebx
jmp 0x40289b
cmp eax, 0xf
jne 0x4026e6
mov ebx, esi
call fcn.00402a32
call fcn.00428e21
call fcn.00428e21
inc dword [esi + 0x48]
cmp dword [esi + 0x48], 9
jbe 0x402694
mov dword [esi + 0x18], edi
jmp 0x40289b
xor edi, edi
push edi
call fcn.0042a13f
add eax, 0x12c
adc edx, edi
pop ecx
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], edx
call fcn.004094e1
xor ebx, ebx
inc ebx
push ebx
mov eax, esi
call fcn.00402fef
add eax, 0x1c
cmp dword [eax + 0x14], edi
jne 0x402662
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
push 0x38
cdq
pop ecx
idiv ecx
inc ebx
cmp ebx, eax
jb 0x4026d5
xor ebx, ebx
cmp ebx, 1
jne 0x4026b2
push edi
call fcn.0042a13f
pop ecx
jmp 0x4025e5
cmp eax, 0x10
jne 0x4027a7
mov ebx, esi
call fcn.00402a32
inc dword [esi + 0x48]
cmp dword [esi + 0x48], 9
jbe 0x402733
mov dword [esi + 0x18], edi
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 0x402729
mov eax, esi
cdq
idiv esi
test edx, edx
je 0x40289b
call fcn.00401c38
jmp 0x40289b
push 0
call fcn.0042a13f
add eax, 0x12c
adc edx, 0
mov dword [esi + 0x50], eax
lea eax, [ebp - 5]
mov dword [esi + 0x54], edx
pop ecx
mov byte [ebp - 5], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402753
sub eax, edx
je 0x402768
call fcn.00401c7f
call fcn.00401cc6
call fcn.004042f4
push 2
pop ebx
push ebx
mov eax, esi
call fcn.00402fef
add eax, 0x1c
cmp dword [eax + 0x14], 0
jne 0x402662
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
push 0x38
cdq
pop ecx
idiv ecx
inc ebx
cmp ebx, eax
jb 0x402798
xor ebx, ebx
call fcn.0040121a
cmp ebx, 2
jne 0x402770
jmp 0x40268c
cmp eax, 0x11
jne 0x402854
mov ebx, esi
call fcn.00402a32
inc dword [esi + 0x48]
cmp dword [esi + 0x48], 9
ja 0x40268c
xor edi, edi
push edi
call fcn.0042a13f
add eax, 0x12c
adc edx, edi
pop ecx
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
dec eax
dec eax
je 0x4027ed
dec eax
dec eax
je 0x4027ed
sub eax, 4
jne 0x4027f9
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
call fcn.00401d8f
xor ebx, ebx
push ebx
mov eax, esi
call fcn.00402fef
add eax, 0x1c
cmp dword [eax + 0x14], edi
jne 0x402662
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
push 0x38
cdq
pop ecx
idiv ecx
inc ebx
cmp ebx, eax
jb 0x402822
xor ebx, ebx
cmp ebx, edi
jne 0x4027fb
call fcn.004094e1
dec eax
jne 0x402845
call fcn.00401dee
call dword [sym.imp.USER32.dll_GetActiveWindow]
call dword [sym.imp.USER32.dll_GetCapture]
call dword [sym.imp.USER32.dll_GetClipboardOwner]
call fcn.00428e21
call fcn.00428e21
jmp 0x4025e5
push ebx
mov dword [esi + 0x18], ebx
call fcn.0042a13f
add eax, 0x78
adc edx, ebx
pop ecx
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], edx
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 0x40288c
mov eax, esi
cdq
idiv esi
cmp edx, ebx
je 0x402891
call fcn.00401e50
call fcn.00428e21
call fcn.00428e21
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.00428582
leave
ret