Function at 0x41c920
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x8c
lea eax, [esp + 4]
push ebx
push ebp
mov ebp, dword [esp + 0x98]
push esi
push edi
push 0
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_OpenFile]
mov ebx, dword [sym.imp.KERNEL32.dll__llseek]
mov esi, eax
push 2
push 0
push esi
call ebx
push 0
push 0
push esi
mov edi, eax
call ebx
push edi
call fcn.00426910
add esp, 4
lea ecx, [esp + 0x10]
mov ebx, eax
push 0
push ecx
push edi
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x41c984
push eax
push ebp
push str.Readfile_failed
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
push esi
call dword [sym.imp.KERNEL32.dll__lclose]
mov eax, dword [esp + 0xa4]
push eax
lea edx, [eax + 8]
add eax, 4
push edx
push eax
push ebx
call fcn.0041c9c0
add esp, 0x10
neg eax
sbb eax, eax
pop edi
pop esi
and eax, ebx
pop ebp
pop ebx
add esp, 0x8c
ret

Function at 0x41cb70
Capabilities:
Check for time delay via gettickcount

Disassembly:
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
sub eax, dword [0x4c1f90]
cmp eax, 0x14
jbe 0x41cb77
call esi
mov dword [0x4c1f90], eax
pop esi
ret

Function at 0x41cb90
Capabilities:
Check for time delay via gettickcount

Disassembly:
call fcn.0040f950
jmp fcn.0041cb70

Function at 0x424d30
Capabilities:
Get common file path

Disassembly:
sub esp, 8
lea eax, [esp + 4]
lea ecx, [esp]
push ebx
push ebp
push esi
push edi
push eax
push ecx
call sub.DSETUP.dll_Ordinal_11
test eax, eax
je 0x424d78
cmp word [esp + 0x10], 5
jae 0x424d78
mov edx, dword [0x4c25e0]
push 0x10
push str.Error...
push str.You_need_DirectX_5_or_higher_
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0x10
mov eax, dword [esp + 0x1c]
mov dword [0x4c6720], 0
push eax
mov dword [0x4c6724], 0x402c0000
call fcn.00424930
add esp, 4
push 0x50
push 0x4c2760
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x50
push 0x4c2820
call fcn.00426b10
mov edi, 0x4c2820
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov bl, 0x5c
cmp byte [ecx + 0x4c281f], bl
je 0x424de2
mov edi, 0x4c2820
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
mov byte [ecx + 0x4c281f], bl
push 0x50
push 0x4c27c0
call fcn.00426b10
mov edi, 0x4c27c0
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [ecx + 0x4c27bf], bl
je 0x424e1c
mov edi, 0x4c27c0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
mov byte [ecx + 0x4c27bf], bl
mov ebp, dword [esp + 0x28]
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
mov ebx, dword [sym.imp.USER32.dll_SetTimer]
mov ecx, dword [esp + 0x1c]
push ebp
push ecx
call fcn.00424f50
add esp, 8
test eax, eax
je 0x424e85
mov edx, dword [0x4c25e0]
push 0
push 0xc8
push 1
push edx
call ebx
test eax, eax
jne 0x424e68
mov eax, dword [0x4c25e0]
push 0x10
push str.error
push str.Timer_FAILED
push eax
call edi
push 0x4c2820
call fcn.00426250
add esp, 4
call fcn.0040dba0
mov esi, eax
call fcn.00424ea0
test esi, esi
jne 0x424e2c
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret 0x10