Function at 0x403ae0
Capabilities:
Check for time delay via gettickcount
Hide graphical window
Read file on windows
Write file on windows

Disassembly:
sub esp, 0x48
push ebx
push ebp
push esi
mov esi, dword [0x42bda0]
sub esi, dword [0x42bdac]
add esi, dword [esp + 0x58]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add eax, 0x1f4
test esi, esi
mov dword [0x43d860], eax
jle 0x403d1d
mov eax, dword [0x42bda8]
mov ecx, dword [0x40d010]
mov ebx, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
push 0
push eax
push ecx
call ebx
mov edx, dword [0x42bdac]
mov eax, dword [0x40d014]
push 0
push 0
push edx
push eax
call ebx
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
mov dword [0x427d9c], esi
mov dword [0x427d98], 0
mov eax, dword [0x42bda4]
sub eax, dword [0x42bda8]
mov ebp, 0x4000
cmp eax, 0x4000
jg 0x403b69
mov ebp, eax
mov edx, dword [0x40d010]
push 0
lea ecx, [esp + 0x10]
push ecx
push ebp
push 0x427da0
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x403d42
cmp dword [esp + 0xc], ebp
jne 0x403d42
add dword [0x42bda8], ebp
mov dword [0x41fd28], 0x427da0
mov dword [0x41fd2c], ebp
jmp 0x403bb0
cmp dword [0x43d80c], 0
je 0x403c74
cmp dword [0x43d8e0], 0
jne 0x403c74
mov eax, dword [0x427d9c]
sub eax, dword [0x42bda0]
sub eax, dword [esp + 0x58]
add eax, dword [0x42bdac]
cmp dword [0x417d08], 0
mov dword [0x427d98], eax
je 0x403bf6
push 0
call fcn.004073a0
jmp 0x403c74
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, dword [0x43d860]
jbe 0x403c74
cmp dword [0x43d804], 0
je 0x403c4f
test byte [0x43d8f4], 1
je 0x403c74
mov eax, dword [0x427d98]
mov ecx, dword [0x427d9c]
cmp eax, ecx
jl 0x403c27
mov eax, ecx
push ecx
push 0x64
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
lea ecx, [esp + 0x18]
push str....__d__
push ecx
call ebx
add esp, 0xc
lea edx, [esp + 0x14]
push edx
push 0
call fcn.00405cb0
jmp 0x403c74
mov eax, dword [0x43d808]
push 0
push 0x403940
push 0
push 0x6f
push eax
call dword [sym.imp.USER32.dll_CreateDialogParamA]
push 5
push eax
mov dword [0x417d08], eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, 0x41fd10
mov dword [0x41fd30], 0x41fd98
mov dword [0x41fd34], 0x8000
call fcn.00407d50
test eax, eax
jl 0x403d5c
mov esi, dword [0x41fd30]
sub esi, 0x41fd98
je 0x403ce5
mov edx, dword [0x40d014]
push 0
lea ecx, [esp + 0x14]
push ecx
push esi
push 0x41fd98
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x403d4e
cmp esi, dword [esp + 0x10]
jne 0x403d4e
add dword [0x42bdac], esi
cmp dword [0x41fd2c], 0
jne 0x403bb0
jmp 0x403cf2
cmp dword [0x41fd2c], 0
jne 0x403d5c
test ebp, ebp
je 0x403d5c
mov eax, dword [0x42bda0]
mov ecx, eax
sub ecx, dword [0x42bdac]
add ecx, dword [esp + 0x58]
test ecx, ecx
jg 0x403b50
mov edx, dword [0x40d014]
push 0
push 0
push eax
push edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [0x417d08]
test eax, eax
je 0x403d2d
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
pop esi
pop ebp
mov dword [0x417d08], 0
xor eax, eax
pop ebx
add esp, 0x48
ret 4
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x48
ret 4
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x48
ret 4
pop esi
pop ebp
mov eax, 0xfffffffd
pop ebx
add esp, 0x48
ret 4