Function at 0x414110
Capabilities:
Check for time delay via gettickcount
Read .ini file
Write file on windows

Disassembly:
sub esp, 0x10c
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
push edi
call esi
sub eax, dword [0x424194]
cmp eax, 0x493e0
jbe 0x414150
push str.RAV.INI
push 0
push 0x41b220
push str.DEBUG
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [0x424190], eax
call esi
mov dword [0x424194], eax
mov eax, dword [0x424190]
mov ecx, dword [esp + 0x118]
test eax, ecx
je 0x414407
mov ecx, 0x100
xor eax, eax
mov edi, 0x423d90
push 0x2d
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x120]
push ecx
call sub.MSVCRT.dll_strchr
add esp, 8
test eax, eax
je 0x4141ac
mov edx, dword [esp + 0x11c]
push 0x2d
push edx
call sub.MSVCRT.dll_strchr
mov edx, dword [esp + 0x124]
add esp, 8
sub eax, edx
cmp eax, 0x14
jle 0x4142ea
mov eax, 0x423d90
push ebp
test eax, eax
je 0x4142d9
mov ecx, 0x100
xor eax, eax
mov edi, 0x423d90
rep stosd dword es:[edi], eax
mov al, byte [0x423d7c]
test al, al
je 0x4141eb
push 0x400
push 0x423d7c
push 0x423d90
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
jmp 0x4142d9
mov ecx, 0x414410
cmp ecx, 0x1000000
jae 0x414268
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x15]
mov byte [esp + 0x14], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea edx, [esp + 0x14]
push 0x400
push edx
push 0
stosb byte es:[edi], al
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [esp + 0x14]
push 0x5c
push eax
call sub.MSVCRT.dll_strrchr
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpynA]
add esp, 8
test eax, eax
je 0x414255
push 0x400
lea ecx, [esp + 0x18]
push 0x5c
push ecx
call sub.MSVCRT.dll_strrchr
add esp, 8
inc eax
push eax
push 0x423d90
call esi
push 0x104
lea edx, [esp + 0x18]
push 0x423d90
push edx
call esi
jmp 0x4142d9
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ebp, eax
push ebp
call fcn.00414580
add esp, 4
test eax, eax
je 0x4142d9
mov eax, dword [eax + 0x80]
test eax, eax
je 0x4142d9
lea edi, [eax + ebp + 0x10]
mov eax, dword [eax + ebp + 0x10]
test eax, eax
je 0x4142d9
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov esi, dword [edi - 4]
add esi, ebp
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
je 0x4142ce
cmp eax, 0x414410
jae 0x4142ce
push 0x400
push esi
push 0x423d90
call ebx
push 0x14
push 0x423d90
push 0x423d7c
call ebx
mov eax, dword [edi + 0x14]
add edi, 0x14
test eax, eax
jne 0x41429c
pop ebx
push str.___
push 0x423d90
call dword [sym.imp.KERNEL32.dll_lstrcatA]
pop ebp
mov ecx, dword [esp + 0x11c]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [esp + 0x120]
push eax
push ecx
push 0x423d90
call edi
mov edx, 0x400
sub edx, eax
push edx
push 0x423d90
call edi
add eax, 0x423d90
push eax
call sub.MSVCRT.dll__vsnprintf
mov al, byte [0x42397c]
add esp, 0x10
test al, al
jne 0x41437c
push str.RAV.INI
push 0x400
push 0x42397c
push 0x41b408
push str.LOGNAME
push str.DEBUG
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov al, byte [0x42397c]
test al, al
jne 0x41437c
push 0x400
push 0x42397c
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push str..log
push 0x42397c
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x41b1fc
push 0x42397c
call sub.MSVCRT.dll_fopen
mov esi, eax
add esp, 8
test esi, esi
je 0x414407
push 2
push 0
push esi
call sub.MSVCRT.dll_fseek
lea eax, [esp + 0x14]
push eax
push esi
call sub.MSVCRT.dll_fgetpos
mov eax, dword [esp + 0x20]
add esp, 0x14
test eax, eax
jl 0x4143da
jg 0x4143c0
cmp dword [esp + 8], 0x100000
jbe 0x4143da
push esi
call sub.MSVCRT.dll_fclose
push 0x41b1f8
push 0x42397c
call sub.MSVCRT.dll_fopen
add esp, 0xc
mov esi, eax
push esi
push 0x423d90
call edi
push eax
push 1
push 0x423d90
call sub.MSVCRT.dll_fwrite
push esi
push 2
push 1
push 0x418950
call sub.MSVCRT.dll_fwrite
push esi
call sub.MSVCRT.dll_fclose
add esp, 0x24
pop edi
pop esi
add esp, 0x10c
ret