Function at 0x41f1c0
Capabilities:
Check for time delay via gettickcount
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
push esi
mov esi, dword [ebp + 0x14]
push edi
mov edi, ecx
mov dword [ebp - 0x18], edi
test esi, esi
jne 0x41f1e3
mov eax, 0xfffffffe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x34
mov ebx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x24]
test ebx, ebx
je 0x41f1fc
push 0
push 0
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, dword [ebp + 0x24]
test ecx, ecx
je 0x41f230
cmp byte [edi + 0x28], 0
jne 0x41f230
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], 0
jne 0x41f230
mov eax, dword [eax + 0x10]
test eax, eax
je 0x41f230
push dword [ebp + 0x38]
push dword [ebp + 0x34]
push dword [ebp + 0x30]
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
push eax
push ecx
call fcn.0041e7e0
test eax, eax
je 0x41f1d5
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x41f273
mov eax, dword [ecx]
call dword [eax + 0x48]
test eax, eax
je 0x41f270
push dword [ebp + 0x38]
mov eax, dword [ebp + 0x30]
push dword [ebp + 0x34]
push eax
mov eax, dword [ebp + 0x2c]
push eax
push dword [ebp + 0x28]
push ecx
push dword [ebp + 0x1c]
mov ecx, edi
push ebx
push esi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.0041f550
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x34
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x41f50d
mov eax, dword [ecx]
call dword [eax + 0x34]
test eax, eax
je 0x41f50d
mov ecx, dword [ebp + 0x1c]
xor eax, eax
mov dword [ebp - 0x14], eax
test ecx, ecx
je 0x41f2a3
mov eax, dword [ecx]
push ecx
call dword [eax + 0xc]
add eax, dword [ebp + 0x24]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 8]
sub eax, dword [esi + 0xc]
push 0x10000
mov dword [ebp - 0xc], eax
call fcn.00431a3c
mov dword [ebp - 8], eax
or eax, 0xffffffff
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xc]
xor ebx, ebx
add esp, 4
mov esi, 0x2000
mov dword [ebp + 0x1c], ebx
test eax, eax
je 0x41f48a
jmp 0x41f2e0
cmp byte [edi + 0x28], 0
jne 0x41f47e
mov edi, eax
sub edi, ebx
cmp edi, esi
cmovae edi, esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x41f487
mov edx, dword [ecx]
push edi
push dword [ebp - 8]
call dword [edx + 0x28]
mov edi, eax
test edi, edi
je 0x41f487
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, 1
sub esi, ebx
xor edx, edx
lea esi, [esi + eax]
mov eax, edi
imul eax, eax, 0x3e8
div esi
shr eax, 1
cmp eax, 0x10000
jb 0x41f348
mov esi, 0x10000
jmp 0x41f393
cmp eax, 0xc000
jb 0x41f356
mov esi, 0xc000
jmp 0x41f393
cmp eax, 0x8000
jb 0x41f364
mov esi, 0x8000
jmp 0x41f393
cmp eax, 0x4000
jb 0x41f372
mov esi, 0x4000
jmp 0x41f393
cmp eax, 0x2000
jb 0x41f380
mov esi, 0x2000
jmp 0x41f393
cmp eax, 0x1000
sbb esi, esi
and esi, 0xfffff800
add esi, 0x1000
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x41f3bf
push 0
lea ecx, [ebp - 0x1c]
push ecx
push edi
push dword [ebp - 8]
mov dword [ebp - 0x1c], 0
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ebx, dword [ebp + 0x1c]
test eax, eax
je 0x41f48a
jmp 0x41f3dc
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp + 0x1c]
test eax, eax
je 0x41f48a
push edi
push dword [ebp - 8]
add eax, ebx
push eax
call fcn.00434e70
add esp, 0xc
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
add dword [ecx + 0xc], edi
add dword [eax + 0x38], edi
cmp byte [eax + 0x28], 0
je 0x41f41c
mov eax, dword [eax + 4]
test eax, eax
je 0x41f41c
push 0
push 0
push 0x18
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp + 0x10]
push 0x14
push dword [ebp + 0x14]
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0x28], 0
jne 0x41f46a
mov ecx, dword [ecx + 0x10]
lea eax, [edi + ebx]
add eax, dword [ebp + 0x24]
cmp dword [ebp + 0x28], 0
je 0x41f453
mov edx, dword [ebp + 0x2c]
test edx, edx
je 0x41f453
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x28]
push eax
push 0
push edx
push dword [ebp + 0x28]
mov dword [ebp - 0x24], ecx
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x41f466
mov edx, dword [ebp + 0x30]
test edx, edx
je 0x41f46a
push dword [ebp + 0x38]
push dword [ebp + 0x34]
push ecx
push eax
push 0
call edx
test eax, eax
je 0x41f47e
mov eax, dword [ebp - 0xc]
add ebx, edi
mov dword [ebp + 0x1c], ebx
cmp ebx, eax
jae 0x41f48a
mov edi, dword [ebp - 0x18]
jmp 0x41f2e0
mov dword [ebp - 0x10], 0xfffffffe
jmp 0x41f48a
mov ebx, dword [ebp + 0x1c]
push dword [ebp - 8]
call fcn.00431e88
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_SetFileTime]
add esp, 4
add eax, 0x30
push eax
push 0
push 0
push edi
call esi
cmp dword [ebp + 0x24], 0
jne 0x41f4ba
mov eax, dword [ebp + 8]
add eax, 0x64
jmp 0x41f4d4
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x41f4dc
mov eax, dword [ecx]
lea edx, [ebp - 0x28]
push edx
call dword [eax + 0x40]
test eax, eax
js 0x41f4dc
lea eax, [ebp - 0x28]
push 0
push 0
push eax
push edi
call esi
cmp dword [ebp - 0xc], ebx
jne 0x41f4ef
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x34
mov eax, dword [ebp - 0x10]
cmp eax, 0xfffffffe
je 0x41f53b
cmp dword [ebp + 0x20], 0
je 0x41f53b
xor ecx, ecx
test ebx, ebx
cmovne eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x34
push dword [ebp + 0x38]
mov eax, dword [ebp + 0x30]
push dword [ebp + 0x34]
push eax
mov eax, dword [ebp + 0x2c]
push eax
push dword [ebp + 0x28]
push ecx
push dword [ebp + 0x1c]
mov ecx, edi
push ebx
sub esp, 8
push dword [ebp + 0xc]
call fcn.0041fc40
mov ecx, 1
cmp eax, 0xffffffff
cmove eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x34