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

Disassembly:
push 0xffffffffffffffff
push 0x43e477
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x540
push ebx
push ebp
push esi
push edi
mov edi, ecx
lea ecx, [esp + 0x18]
mov dword [esp + 0x24], edi
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [esp + 0x56c]
mov edx, dword [esp + 0x568]
xor ebx, ebx
lea eax, [esp + 0x50]
push ebx
push 0x40
push eax
push ecx
push edx
mov dword [esp + 0x56c], ebx
call fcn.004014e0
add esp, 0x14
test eax, eax
jge 0x428b3c
mov eax, dword [esp + 0x560]
push 0x2f
mov ecx, dword [eax + 0x168]
add ecx, 0xa
push ecx
push 0x46f
mov edx, dword [eax + 0x40]
push edx
jmp 0x429422
mov ebp, dword [esp + 0x560]
mov al, byte [ebp + 0x48]
cmp al, 0xe0
jne 0x429060
lea eax, [esp + 0x50]
push ebx
push eax
push 0x80
push ebx
call fcn.00401720
add esp, 0x10
cmp eax, ebx
je 0x428be5
lea ecx, [eax + eax*4]
lea eax, [esp + 0x18]
mov edx, dword [esp + ecx*4 + 0x60]
push edx
push 0x448dcc
push eax
call sub.MFC42.DLL_CString::Format
add esp, 0xc
lea ecx, [esp + 0x18]
lea esi, [edi + 0x164]
push ecx
mov ecx, esi
call sub.MFC42.DLL_CString::operator_2
push ebx
push 0x449890
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x428bd5
add eax, 4
lea edx, [esp + 0x1c]
push eax
push edx
mov ecx, esi
call sub.MFC42.DLL_CString::Left
push eax
mov ecx, esi
mov byte [esp + 0x55c], 1
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 0x1c]
mov byte [esp + 0x558], 0
call sub.MFC42.DLL_CString::CString
push ebx
mov ecx, esi
call sub.MFC42.DLL_CString::GetBuffer
push eax
mov ecx, edi
call fcn.0042aae0
lea eax, [esp + 0x50]
push ebx
push eax
push 0x81
push ebx
call fcn.00401720
add esp, 0x10
cmp eax, ebx
je 0x428c17
lea ecx, [eax + eax*4]
lea eax, [esp + 0x18]
mov edx, dword [esp + ecx*4 + 0x60]
push edx
push 0x449884
push eax
call sub.MFC42.DLL_CString::Format
add esp, 0xc
lea ecx, [esp + 0x50]
push ebx
push ecx
push 0x82
push ebx
call fcn.00401720
add esp, 0x10
cmp eax, ebx
je 0x428cc2
lea edx, [eax + eax*4]
lea ecx, [esp + 0x18]
mov eax, dword [esp + edx*4 + 0x60]
push eax
push 0x449874
push ecx
call sub.MFC42.DLL_CString::Format
add esp, 0xc
lea edx, [esp + 0x18]
lea ecx, [esp + 0x10]
push edx
call sub.MFC42.DLL_CString::CString_3
push 0x44901c
lea ecx, [esp + 0x14]
mov byte [esp + 0x55c], 2
call sub.MFC42.DLL_CString::Find
cmp eax, 0xffffffff
je 0x428c7b
mov dword [edi + 0x24], ebx
jmp 0x428cb1
push 0x449018
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Find
cmp eax, 0xffffffff
je 0x428c97
mov dword [edi + 0x24], 1
jmp 0x428cb1
push 0x44986c
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Find
cmp eax, 0xffffffff
je 0x428cb1
mov dword [edi + 0x24], 2
lea ecx, [esp + 0x10]
mov byte [esp + 0x558], 0
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0x50]
push ebx
push eax
push 0x83
push ebx
call fcn.00401720
add esp, 0x10
cmp eax, ebx
je 0x428d13
lea ecx, [eax + eax*4]
lea eax, [esp + 0x18]
mov edx, dword [esp + ecx*4 + 0x60]
push edx
push 0x44985c
push eax
call sub.MFC42.DLL_CString::Format
add esp, 0xc
lea ecx, [esp + 0x18]
push 0x449854
call sub.MFC42.DLL_CString::Find
cmp eax, 0xffffffff
je 0x428d0c
mov dword [edi + 0x28], ebx
jmp 0x428d13
mov dword [edi + 0x28], 1
lea ecx, [esp + 0x50]
push ebx
push ecx
push 0x84
push ebx
call fcn.00401720
add esp, 0x10
cmp eax, ebx
je 0x428d45
lea edx, [eax + eax*4]
lea ecx, [esp + 0x18]
mov eax, dword [esp + edx*4 + 0x60]
push eax
push 0x449844
push ecx
call sub.MFC42.DLL_CString::Format
add esp, 0xc
lea edx, [esp + 0x50]
push ebx
push edx
push 0x85
push ebx
call fcn.00401720
add esp, 0x10
cmp eax, ebx
je 0x428d77
lea eax, [eax + eax*4]
lea edx, [esp + 0x18]
mov ecx, dword [esp + eax*4 + 0x60]
push ecx
push 0x449838
push edx
call sub.MFC42.DLL_CString::Format
add esp, 0xc
lea eax, [esp + 0x50]
push ebx
push eax
push 0x86
push ebx
call fcn.00401720
add esp, 0x10
cmp eax, ebx
je 0x429045
lea esi, [eax + eax*4]
xor edx, edx
shl esi, 2
mov edi, 0x38
mov ecx, dword [esp + esi + 0x5c]
mov eax, ecx
div edi
test edx, edx
je 0x428db7
mov edx, dword [esp + 0x24]
xor edi, edi
mov dword [edx + 0x20], edi
jmp 0x428db9
xor edi, edi
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x20], edi
je 0x428f44
mov eax, 0x24924925
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
mov edx, dword [ebp + 0x15c]
shr ecx, 5
mov dword [edx + 0x780], ecx
mov eax, dword [ebp + 0x154]
cmp eax, edi
mov dword [esp + 0x14], ecx
je 0x428e00
push eax
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
mov dword [ebp + 0x154], edi
mov eax, dword [esp + esi + 0x5c]
push eax
call dword [sym.imp.MSVCRT.dll_malloc]
mov ecx, dword [esp + esi + 0x60]
mov esi, dword [esp + esi + 0x64]
mov edx, ecx
mov edi, eax
shr ecx, 2
mov dword [ebp + 0x154], eax
mov eax, dword [esp + 0x18]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add esp, 4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ebx, dword [ebp + 0x154]
test eax, eax
jle 0x429045
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x10]
mov ecx, dword [ebp + 0x15c]
mov esi, edx
mov edi, ebx
add esi, ecx
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x1c], esi
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0xf
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x20]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 0x15c]
lea ecx, [ebx + 0x18]
push ecx
lea ecx, [edx + eax + 0x18]
push ecx
call dword [sym.imp.MSVCRT.dll_strncpy]
add esp, 0xc
mov edi, 0x448eec
mov esi, ebx
mov dl, byte [esi]
mov cl, byte [edi]
mov al, dl
cmp dl, cl
jne 0x428ec6
test al, al
je 0x428ec2
mov cl, byte [esi + 1]
mov dl, byte [edi + 1]
mov al, cl
cmp cl, dl
jne 0x428ec6
add esi, 2
add edi, 2
test al, al
jne 0x428e9e
xor eax, eax
jmp 0x428ecb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x428eee
mov edx, dword [ebp + 0x15c]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
lea eax, [esi + edx + 0x18]
mov ecx, edi
push eax
call fcn.0042a970
mov dword [edi + 0x2c], eax
jmp 0x428ef2
mov esi, dword [esp + 0x10]
mov ecx, dword [ebp + 0x15c]
mov edx, dword [ebx + 0x2c]
add ebx, 0x38
mov dword [esi + ecx + 0x2c], edx
mov eax, dword [ebp + 0x15c]
mov ecx, dword [ebx - 8]
mov dword [esi + eax + 0x30], ecx
mov edx, dword [ebp + 0x15c]
mov eax, dword [ebx - 0x10]
mov dword [esi + edx + 0x28], eax
mov ecx, dword [ebp + 0x15c]
mov edx, dword [ebx - 4]
mov eax, dword [esp + 0x14]
mov dword [esi + ecx + 0x34], edx
add esi, 0x38
dec eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], eax
jne 0x428e4a
jmp 0x429045
mov eax, 0xcccccccd
mul ecx
mov eax, dword [ebp + 0x15c]
mov ebx, edx
shr ebx, 5
mov dword [eax + 0x780], ebx
mov eax, dword [ebp + 0x154]
cmp eax, edi
mov dword [esp + 0x1c], ebx
je 0x428f7a
push eax
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
mov dword [ebp + 0x154], edi
mov ecx, dword [esp + esi + 0x5c]
push ecx
call dword [sym.imp.MSVCRT.dll_malloc]
mov ecx, dword [esp + esi + 0x60]
mov esi, dword [esp + esi + 0x64]
mov edx, ecx
mov edi, eax
shr ecx, 2
mov dword [ebp + 0x154], eax
add esp, 4
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebp + 0x154]
test ebx, ebx
jle 0x429045
mov eax, dword [esp + 0x1c]
xor ebx, ebx
mov dword [esp + 0x14], eax
mov ecx, dword [ebp + 0x15c]
mov edi, edx
xor eax, eax
add edx, 0x28
lea esi, [ecx + ebx + 0x460]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x1c], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x1c]
add ebx, 0x28
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x15c]
mov eax, dword [edx - 0xc]
mov dword [ecx + ebx + 0x454], eax
mov ecx, dword [ebp + 0x15c]
mov eax, dword [edx - 8]
mov dword [ecx + ebx + 0x458], eax
mov ecx, dword [ebp + 0x15c]
mov eax, dword [edx - 0x10]
mov dword [ecx + ebx + 0x450], eax
mov ecx, dword [ebp + 0x15c]
mov eax, dword [edx - 4]
mov dword [ecx + ebx + 0x45c], eax
mov eax, dword [esp + 0x14]
dec eax
mov dword [esp + 0x14], eax
jne 0x428fbe
lea ecx, [esp + 0x50]
push 0
push ecx
push 0x87
push 0
call fcn.00401720
add esp, 0x10
jmp 0x429428
cmp al, 0xe1
jne 0x42938c
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0x1c]
mov byte [esp + 0x558], 3
call sub.MFC42.DLL_CString::CString_2
lea edx, [esp + 0x50]
push ebx
push edx
push 0x99
push ebx
mov byte [esp + 0x568], 4
call fcn.00401720
add esp, 0x10
cmp eax, ebx
je 0x42934b
lea eax, [eax + eax*4]
mov ecx, dword [esp + eax*4 + 0x60]
mov al, byte [ecx]
test al, al
je 0x4290c7
push eax
mov ecx, ebp
call fcn.00428780
mov dword [ebp + 0x1c], 1
jmp 0x42934b
xor edx, edx
xor esi, esi
mov dword [esp + 0x40], edx
push 0x4000
mov dword [esp + 0x48], edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x4c], edx
mov ebx, 4
mov dword [esp + 0x50], edx
mov dword [esp + 0x2c], esi
call sub.MFC42.DLL_operatornew
add esp, 4
mov edi, eax
mov dword [esp + 0x10], edi
push esi
push esi
push 1
push esi
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [esp + 0x4c], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x34], eax
lea esi, [ebp + 0x54]
mov eax, dword [esi]
push 0x4000
push edi
mov ecx, esi
call dword [eax + 0x3c]
test eax, eax
mov dword [esp + 0x20], eax
je 0x429194
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x429194
mov ecx, dword [esp + 0x28]
push eax
push edi
push ecx
call fcn.004038b0
mov edx, dword [esp + 0x2c]
add esp, 0xc
cmp edx, 0x4000
mov dword [esp + 0x28], eax
jae 0x4291cd
mov dword [esp + 0x2c], eax
mov eax, 0x4000
sub eax, edx
cmp eax, 4
jbe 0x429167
mov eax, 4
mov edi, dword [esp + 0x10]
mov ecx, eax
add edi, edx
mov edx, ecx
lea esi, [esp + 0x2c]
mov ebx, 4
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x20]
add edx, eax
sub ebx, eax
mov dword [esp + 0x20], edx
jmp 0x4291c9
test ebx, ebx
je 0x429260
cmp ebx, 4
jne 0x4291a9
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
mov edi, dword [esp + 0x10]
mov ecx, ebx
lea esi, [esp + 0x30]
mov edx, ecx
sub esi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x20], ebx
xor ebx, ebx
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x568]
push edx
push eax
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x42921b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
jne 0x429253
mov edx, dword [esp + 0x4c]
push 0x3e8
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x429253
mov eax, dword [ebp + 0x54]
lea esi, [ebp + 0x54]
mov ecx, esi
call dword [eax + 0x14]
lea eax, [eax + eax*4]
xor edx, edx
mov ecx, dword [ebp + 0x168]
lea eax, [eax + eax*4]
shl eax, 2
div dword [ebp + 0x158]
push eax
push ecx
push 0x472
mov edx, dword [ebp + 0x40]
push edx
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x429117
mov dword [ebp + 0x1c], 1
push edi
jmp 0x429343
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], eax
fild qword [esp + 0x2c]
mov dword [esp + 0x38], 0
sub esp, 8
lea ecx, [esp + 0x24]
fisub dword [esp + 0x3c]
fmul dword [0x441818]
fstp qword [esp]
push 0x449828
push ecx
call sub.MFC42.DLL_CString::Format
add esp, 0x10
lea ecx, [esp + 0x14]
push 0x449810
call fcn.0043ac24
push 0x1e
push ecx
lea edx, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [esp + 0x2c]
call fcn.00428080
mov eax, dword [esp + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov eax, dword [esp + 0x564]
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x20]
push ecx
push edx
push 6
push edi
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x429372
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
jne 0x42932c
xor esi, esi
mov eax, dword [ebp + 4]
test eax, eax
je 0x42932c
mov ecx, dword [esp + 0x4c]
push 0x3e8
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x429372
inc esi
cmp esi, 0x3c
jl 0x42930b
mov esi, dword [esp + 0x10]
mov dword [ebp + 0x1c], 1
mov ecx, ebp
mov al, byte [esi + 5]
push eax
call fcn.00428780
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x1c]
mov byte [esp + 0x558], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x558], 0
call sub.MFC42.DLL_CString::CString
jmp 0x429428
mov eax, dword [esp + 0x10]
mov ecx, 3
mov edi, 0x449808
mov esi, eax
xor edx, edx
repe cmpsw word [esi], word es:[edi]
jne 0x42932c
push eax
jmp 0x429343
cmp al, 0xe2
jne 0x4293bc
lea ecx, [esp + 0x50]
push ebx
push ecx
push 0x99
push ebx
call fcn.00401720
add esp, 0x10
cmp eax, ebx
je 0x429410
lea edx, [eax + eax*4]
mov eax, dword [esp + edx*4 + 0x60]
cmp byte [eax], 0
jne 0x4293b8
push 0x30
jmp 0x4293ea
push 0x31
jmp 0x4293fe
cmp al, 0xe5
je 0x4293c4
cmp al, 0xe6
jne 0x429428
lea ecx, [esp + 0x50]
push ebx
push ecx
push 0x99
push ebx
call fcn.00401720
add esp, 0x10
cmp eax, ebx
je 0x429410
lea edx, [eax + eax*4]
mov eax, dword [esp + edx*4 + 0x60]
cmp byte [eax], 0
jne 0x4293fc
push 0x33
mov ecx, dword [ebp + 0x168]
push ecx
push 0x46f
mov edx, dword [ebp + 0x40]
push edx
jmp 0x429422
push 0x34
mov eax, dword [ebp + 0x168]
push eax
push 0x46f
mov ecx, dword [ebp + 0x40]
push ecx
jmp 0x429422
mov edx, dword [ebp + 0x168]
push 0x32
push edx
push 0x46f
mov eax, dword [ebp + 0x40]
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
lea ecx, [esp + 0x18]
mov dword [esp + 0x558], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x550]
pop edi
pop esi
pop ebp
xor eax, eax
mov dword fs:[0], ecx
pop ebx
add esp, 0x54c
ret 0x10