Function at 0x4501f2
Capabilities:
Check for time delay via gettickcount
Get file size

Disassembly:
mov ecx, dword [ebp - 0xc]
mov al, byte [ebp - 0x11]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret
mov eax, 0x5470d0
call fcn.0054565c
sub esp, 0x10
push ebx
push esi
push edi
mov dword [ebp - 4], 3
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
cmp eax, 0x39
ja 0x450419
push ds
ja 0x4501e0
enter 0xfffffffffffff532, 0x58
sbb eax, 0x4beb3f30
xor al, 0xd2
pushfd
aas
jle 0x4501e6
rcr dword [ecx], 1
invalid
xor ebx, ebx
mov dword [ebp - 0x10], ebx
call edi
cmp eax, 0x3f
ja 0x450628
push esp
xchg ebx, eax
jle 0x4504a3
push ebp
xchg edx, eax
mov ebp, 0x4ba47947
pop dword [edi]
push es
inc ebx
invalid
imul edi, dword [eax + 0x7731c0ff], 0x7d4c97c9
jmp 0x6a2ae98a
lea eax, [ebp - 0x10]
push eax
push ecx
mov ecx, dword [ebp + 0x10]
add ecx, 0xfffffff0
mov dword [ebp - 0x14], esp
mov esi, esp
call fcn.00402beb
add eax, 0x10
mov dword [esi], eax
push ecx
mov byte [ebp - 4], 4
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
mov dword [ebp - 0x18], esp
mov esi, esp
call fcn.00402beb
add eax, 0x10
mov dword [esi], eax
push ecx
mov byte [ebp - 4], 5
mov ecx, dword [ebp + 8]
mov esi, esp
lea ecx, [ecx - 0x10]
call fcn.00402beb
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 3
call fcn.004515bd
test eax, eax
jne 0x450efb
cmp dword [ebp - 0x10], eax
je 0x450efb
push ebx
push 0x80
push 3
push ebx
push 7
push SysReAllocString
push dword [ebp + 0x14]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
call edi
cmp eax, 0x56
ja 0x4508b2
push edx
aad 0x99
aad 0x3a
mov bl, 0x82
salc
inc ebp
movsd dword es:[edi], dword [esi]
test al, 0xa7
inc ebx
xchg esp, eax
push 0x42ae9205
cmp al, 0xd9
push ecx
xor byte [edx], dh
stc
sub dh, byte [esi]
cmpsd dword [esi], dword es:[edi]
inc ecx
sahf
cmp edi, dword [ebx - 0x4ee8971e]
mov byte [0xd4f2ed84], al
dec esp
mov ebx, 0x2fe28755
popfd
dec ch
mov ebp, 0xeee76044
out dx, al
ja 0x45069d
jbe 0x4506e9
popal
add dword [ecx - 0x191c5366], ebx
sbb byte [ebp + 0x21], al
push ecx
test al, 0x60
scasb al, byte es:[edi]
dec edi
sti
mov ebp, 0x29103cdc
iretd
test esi, esi
je 0x451107
call edi
cmp eax, 0x5d
ja 0x450ac4
add dword [esi + 0x2f], 0x2e00d7c
push esp
mov eax, dword [0xf106543c]
cmp al, 0x54
push es
int1
pop edx
pop ss
movsd dword es:[edi], dword [esi]
popfd
cld
jbe 0x4508d0
movsb byte es:[edi], byte [esi]
cmp al, 0xf5
stc
push esp
aas
neg byte [0xb53709b1]
push ss
xchg esi, eax
popfd
cmpsb byte [esi], byte es:[edi]
pop ds
xor byte es:[ebx - 0x3b], ah
fsub dword [esi + 0x1c]
retf
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x14], eax
call edi
cmp eax, 0x62
ja 0x450cd9
clc
bound ecx, qword [edi]
xchg edi, edi
add dword [eax], eax
add byte [eax + ebx*4 + 0x72544647], bl
int1
pushfd
cwde
inc edi
inc esi
push esp
jb 0x450ad2
fst qword [edx]
div byte [ebx + 0x6d]
pushal
push eax
ficomp dword [0x5cc878dc]
inc edi
jmp dword [ecx]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call edi
cmp eax, 0x67
ja 0x450eea
invalid
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x10]
je 0x451105
jmp 0x451107
call edi
cmp eax, 0x46
ja 0x451105
insb byte es:[edi], dx
invalid
mov bl, 1
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.004013c0
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.004013c0
mov ecx, dword [ebp + 0x10]
add ecx, 0xfffffff0
call fcn.004013c0
mov ecx, dword [ebp + 0x14]
add ecx, 0xfffffff0
call fcn.004013c0
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov al, bl
mov dword fs:[0], ecx
pop ebx
leave
ret 0x10