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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x11dc
call fcn.00479f40
push ebx
push esi
push edi
push 0x200
lea eax, [esp + 0xbec]
push 0
push eax
call fcn.00474130
push 0x200
lea ecx, [esp + 0x28]
push 0
push ecx
call fcn.00474130
push 0x12c
lea edx, [esp + 0x23a]
push 0
push edx
mov byte [esp + 0x23e], 0
mov byte [esp + 0x23f], 2
mov byte [esp + 0x23c], 0x52
mov byte [esp + 0x23d], 0x36
call fcn.00474130
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 4]
mov ecx, dword [eax]
add esp, 0x24
test esi, esi
mov dword [esp + 0x21e], ecx
je 0x44e2a8
mov dl, byte [eax + 4]
add eax, 8
push esi
push eax
lea eax, [esp + 0x22b]
push eax
mov byte [esp + 0x22e], dl
call fcn.00476380
lea eax, [esi + 5]
add esp, 0xc
cmp eax, 4
jne 0x44e1fa
mov byte [esp + 0x222], 0
mov eax, 5
mov edx, eax
sar edx, 8
mov byte [esp + 0x21d], al
add eax, 6
mov ecx, eax
mov byte [esp + 0x21c], dl
sar ecx, 8
xor edx, edx
xor ebx, ebx
test eax, eax
mov byte [esp + 0x18], cl
mov byte [esp + 0x19], al
jle 0x44e353
lea esp, [esp]
cmp eax, 0xfa
mov byte [esp + 0x1c], 0
mov byte [esp + 0x1a], dh
mov byte [esp + 0x1b], dl
mov byte [esp + 0x1d], 0xfa
jg 0x44e24d
mov byte [esp + 0x1d], al
movzx esi, dx
lea esi, [esp + esi + 0x218]
mov ecx, 0x3e
lea edi, [esp + 0x1e]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movzx edi, bx
sub eax, 0xfa
lea edi, [esp + edi + 0xde8]
mov ecx, 0x40
lea esi, [esp + 0x18]
add edx, 0xfa
add ebx, 0x100
test eax, eax
rep movsd dword es:[edi], dword [esi]
jg 0x44e230
cmp dword [0x4d78dc], 0
je 0x44e2f9
cmp bx, 0x100
mov ebx, dword [ebp + 8]
jbe 0x44e2c7
mov eax, 0x200
jmp 0x44e2d6
cmp dword [eax + 0x108], 0
je 0x44e1ed
mov cl, byte [eax + 0x108]
mov byte [esp + 0x222], cl
jmp 0x44e1f5
mov edx, ebx
imul edx, edx, 0x83c
movzx eax, word [edx + 0x4d8118]
mov ecx, ebx
imul ecx, ecx, 0x83c
movzx edx, byte [ecx + 0x4d78e8]
push eax
lea eax, [esp + 0xdec]
push eax
push edx
call fcn.00451b90
add esp, 0xc
jmp 0x44e356
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov esi, dword [ebp + 8]
imul esi, esi, 0x83c
mov eax, dword [esi + 0x4d78e4]
push 0
push 0
push 0
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp bx, 0x100
mov eax, 0x200
ja 0x44e330
movzx eax, word [esi + 0x4d8118]
push 0
lea ecx, [esp + 0x14]
push ecx
push eax
mov eax, dword [esi + 0x4d78e4]
lea edx, [esp + 0xdf4]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x44e353
call edi
mov ebx, dword [ebp + 8]
push 0x200
lea ecx, [esp + 0x1c]
push 0
push ecx
call fcn.00474130
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [0x4d78dc], 0
je 0x44e3d0
mov eax, ebx
imul eax, eax, 0x83c
movzx edx, word [eax + 0x4d8118]
push edx
movzx edx, byte [eax + 0x4d78e8]
lea ecx, [esp + 0x1c]
push ecx
push edx
call fcn.00451aa0
add esp, 0xc
test eax, eax
jne 0x44e4af
mov eax, 0x200
lea ecx, [esp + 0x18]
lea edx, [esp + 0xbe8]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x44e448
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x44e3b6
jmp 0x44e444
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, ebx
imul esi, esi, 0x83c
mov ecx, dword [esi + 0x4d78e4]
push 0
push 0
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
movzx eax, word [esi + 0x4d8118]
push 0
lea edx, [esp + 0x18]
push edx
mov edx, dword [esi + 0x4d78e4]
push eax
lea ecx, [esp + 0x24]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x44e530
mov eax, 0x200
lea ecx, [esp + 0x18]
lea edx, [esp + 0xbe8]
lea ebx, [ebx]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x44e448
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x44e430
test eax, eax
je 0x44e4a5
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x44e497
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x44e4a5
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x44e497
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x44e4a5
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x44e497
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x44e4a5
movzx eax, byte [ecx]
movzx esi, byte [edx]
sub esi, eax
je 0x44e4a5
test esi, esi
mov eax, 1
jg 0x44e4a7
or eax, 0xffffffff
jmp 0x44e4a7
xor eax, eax
test eax, eax
je 0x44e370
movzx dx, byte [esp + 0x1a]
movzx edi, byte [esp + 0x18]
movzx ax, byte [esp + 0x1b]
movzx ecx, byte [esp + 0x19]
movzx esi, byte [esp + 0x1c]
shl dx, 8
add dx, ax
shl edi, 8
movzx eax, dx
add edi, ecx
movzx ecx, byte [esp + 0x1d]
shl esi, 8
add esi, ecx
movzx ebx, ax
push esi
lea edx, [esp + 0x22]
push edx
lea eax, [esp + ebx + 0x220]
push eax
call fcn.00476380
add ebx, esi
add esp, 0xc
cmp edi, ebx
jne 0x44e353
movzx esi, byte [esp + 0x21c]
movzx ecx, byte [esp + 0x21d]
shl esi, 8
add esi, ecx
add edi, 0xfffffffa
cmp edi, esi
je 0x44e53e
mov eax, 0xa0100014
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, 0xf0100004
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
movzx edx, byte [esp + esi + 0x21d]
movzx eax, byte [esp + esi + 0x21c]
push edx
push eax
call fcn.0044de00
mov edi, eax
mov eax, dword [ebp + 0xc]
push esi
lea ecx, [esp + 0x22a]
mov dword [eax + 0x108], esi
push ecx
add eax, 0x10c
push eax
call fcn.00476380
add esp, 0x14
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8