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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x364
mov eax, dword [0x4424f4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
push esi
push edi
xor edi, edi
lea esi, [ebx + 0x20]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 4
mov edx, 0x40af2c
pop ecx
call fcn.0041e7a8
and dword [ebx + 0x48], edi
cmp dword [ebx + 0x38], 2
je 0x43c634
cmp dword [0x442534], 0xffffffff
jne 0x43c622
push ecx
push 2
pop edx
call fcn.0041e30f
mov edx, 0x40af44
push 2
pop ecx
call fcn.0041e767
jmp 0x43cb86
mov ecx, dword [ebx + 0x50]
mov dword [ebx + 0x38], 3
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x43c641
sub ecx, edx
lea edi, [ecx + 1]
push edi
call fcn.00440dea
mov dword [ebp - 0x324], eax
pop ecx
test eax, eax
jne 0x43c67c
cmp dword [0x442534], 0xffffffff
mov edi, 0x8007000e
jne 0x43c675
push ecx
push 2
pop edx
call fcn.0041e30f
mov edx, 0x40af80
jmp 0x43c627
push dword [ebx + 0x50]
mov edx, edi
mov ecx, eax
call fcn.0041c519
push 0x3c
pop esi
push esi
xor edi, edi
lea eax, [ebp - 0x364]
push edi
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [ebp - 0x364], esi
mov esi, dword [ebx + 0x22c]
lea eax, [ebp - 0x208]
mov dword [ebp - 0x354], eax
mov ecx, 0x104
lea eax, [ebp - 0x30c]
mov dword [ebp - 0x350], ecx
mov dword [ebp - 0x338], eax
lea eax, [ebp - 0x364]
push eax
push edi
push edi
push dword [ebp - 0x324]
mov dword [ebp - 0x334], ecx
mov ecx, esi
call dword [0x445628]
call esi
test eax, eax
jne 0x43c71e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jne 0x43c701
push 0x57
pop edi
test edi, edi
jle 0x43c70c
movzx edi, di
or edi, 0x80070000
push edi
push 0x40afac
push 2
call fcn.0041e83a
jmp 0x43cb68
mov esi, dword [ebx + 0x230]
mov ecx, esi
push edi
push edi
push 3
push edi
push edi
push dword [ebp - 0x34c]
push dword [ebp - 0x354]
push dword [ebx + 0x70]
call dword [0x445628]
call esi
mov dword [ebx + 0x74], eax
test eax, eax
jne 0x43c76e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jne 0x43c75b
push 0x57
pop edi
test edi, edi
jle 0x43c766
movzx edi, di
or edi, 0x80070000
push edi
push 0x40afd4
jmp 0x43c712
mov esi, dword [ebx + 0x240]
mov ecx, esi
push edi
push 0x4400200
push edi
push edi
push edi
push dword [ebp - 0x338]
push 0x40b000
push eax
call dword [0x445628]
call esi
mov edi, eax
mov dword [ebp - 0x314], edi
mov dword [ebx + 0x78], edi
test edi, edi
jne 0x43c7c9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jne 0x43c7b3
push 0x57
pop edi
test edi, edi
jle 0x43c7be
movzx edi, di
or edi, 0x80070000
push edi
push 0x40b004
jmp 0x43c712
lea eax, [ebx + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 4
mov edx, 0x40b030
pop ecx
call fcn.0041e7a8
mov esi, dword [ebx + 0x244]
xor eax, eax
push eax
push eax
push eax
push eax
push edi
mov ecx, esi
call dword [0x445628]
call esi
test eax, eax
je 0x43cafa
mov esi, dword [ebx + 0x248]
lea eax, [ebp - 0x318]
push 0
push eax
lea eax, [ebp - 0x320]
mov dword [ebp - 0x318], 4
push eax
push 0x20000013
push edi
mov ecx, esi
call dword [0x445628]
call esi
test eax, eax
je 0x43cadc
mov eax, dword [ebp - 0x320]
sub eax, 0xc8
je 0x43c8ec
sub eax, 0xc9
je 0x43c88c
dec eax
sub eax, 1
je 0x43c88c
sub eax, 1
je 0x43c885
sub eax, 3
je 0x43c87e
sub eax, 1
je 0x43c877
sub eax, 0x5c
je 0x43c870
mov eax, 0x800710e0
jmp 0x43c891
mov eax, 0x8007003a
jmp 0x43c891
mov eax, 0x8007041d
jmp 0x43c891
mov eax, 0x80070041
jmp 0x43c891
mov eax, 0x80070002
jmp 0x43c891
mov eax, 0x80070005
push eax
push 0x40b0c4
push 2
call fcn.0041e83a
add esp, 0xc
cmp dword [ebp - 0x320], 0x197
jne 0x43c8d8
mov esi, dword [ebx + 0x23c]
mov ecx, esi
push 0
push 7
push 0x2eee
push edi
push dword [ebx + 0x128c]
call dword [0x445628]
call esi
cmp eax, 0x2f00
je 0x43c7e0
lea esi, [ebx + 0x20]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, 0x80072efd
jmp 0x43cb6e
lea esi, [ebx + 0x20]
xor edi, edi
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebx + 0x38], 3
je 0x43c95f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jne 0x43c90f
push 0x57
pop edi
test edi, edi
jle 0x43c91a
movzx edi, di
or edi, 0x80070000
mov esi, dword [ebx + 0x238]
mov ecx, esi
push dword [ebx + 0x74]
call dword [0x445628]
call esi
mov esi, dword [ebx + 0x238]
mov ecx, esi
push dword [ebx + 0x78]
and dword [ebx + 0x74], 0
call dword [0x445628]
call esi
and dword [ebx + 0x78], 0
push edi
push 0x40b0f8
push 2
call fcn.0041e83a
mov edi, 0x80004004
jmp 0x43cb68
push esi
mov dword [ebx + 0x38], 4
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebx + 0x248]
lea ecx, [ebp - 0x318]
push 0
push ecx
lea eax, [ebx + 0x40]
mov dword [ebp - 0x318], 4
push eax
push 0x20000005
push dword [ebp - 0x314]
mov ecx, esi
call dword [0x445628]
call esi
test eax, eax
jne 0x43c9b5
push 0x40b120
push 4
call fcn.0041e83a
or dword [ebx + 0x40], 0xffffffff
pop ecx
pop ecx
and dword [ebp - 0x310], edi
and dword [ebp - 0x328], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea ecx, [ebp - 0x310]
mov dword [ebp - 0x31c], eax
push ecx
lea eax, [ebx + 0x278]
push 0x1000
push eax
jmp 0x43ca50
cmp dword [ebp - 0x310], edi
je 0x43ca9a
push 0
lea eax, [ebp - 0x328]
push eax
push dword [ebp - 0x310]
lea esi, [ebx + 0x278]
push esi
push dword [ebx + 0x7c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x43cab8
mov eax, dword [ebp - 0x310]
add dword [ebx + 0x44], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x31c]
mov ecx, 0x3e8
cmp eax, ecx
jb 0x43ca43
xor edx, edx
div ecx
xor edx, edx
mov ecx, eax
mov eax, dword [ebx + 0x44]
div ecx
mov dword [ebx + 0x48], eax
lea eax, [ebp - 0x310]
push eax
push 0x1000
push esi
mov esi, dword [ebx + 0x234]
mov ecx, esi
push dword [ebp - 0x314]
call dword [0x445628]
call esi
test eax, eax
jne 0x43c9e2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jne 0x43ca7f
push 0x57
pop edi
test edi, edi
jle 0x43ca8a
movzx edi, di
or edi, 0x80070000
push edi
push 0x40b150
push 2
call fcn.0041e83a
add esp, 0xc
lea esi, [ebx + 0x20]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebx + 0x38], 4
je 0x43cb6e
mov edi, 0x80004004
jmp 0x43cb6e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jne 0x43cac9
push 0x57
pop edi
test edi, edi
jle 0x43cad4
movzx edi, di
or edi, 0x80070000
push edi
push 0x40b184
jmp 0x43ca90
lea esi, [ebx + 0x20]
mov edi, 0x8007000d
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push edi
push 0x40b08c
push 2
call fcn.0041e83a
jmp 0x43cb6b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jne 0x43cb0b
push 0x57
pop edi
test edi, edi
jle 0x43cb16
movzx edi, di
or edi, 0x80070000
lea eax, [ebx + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [ebx + 0x24c]
lea eax, [ebp - 0x31c]
and dword [ebp - 0x314], 0
mov ecx, esi
push eax
lea eax, [ebp - 0x104]
mov dword [ebp - 0x31c], 0x100
push eax
lea eax, [ebp - 0x314]
push eax
call dword [0x445628]
call esi
push edi
push 0x40b05c
push 2
call fcn.0041e83a
mov edi, 0x80072efd
lea esi, [ebx + 0x20]
add esp, 0xc
push dword [ebp - 0x324]
call fcn.00440db7
pop ecx
cmp edi, 0x80004004
je 0x43cc41
push 4
mov edx, 0x40b1b0
pop ecx
call fcn.0041e7a8
mov eax, edi
mov dword [ebx + 0x3c], edi
sar eax, 0x1f
and eax, 0xfffffffc
add eax, 5
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x7c], 0xffffffff
je 0x43cbb7
push dword [ebx + 0x7c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or dword [ebx + 0x7c], 0xffffffff
test edi, edi
jns 0x43cbcc
cmp dword [ebx + 0x60], 0
je 0x43cbcc
push dword [ebx + 0x54]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x43cbd0
and dword [ebx + 0x60], 0
mov edi, dword [ebx + 0x274]
and dword [ebx + 0x274], 0
test edi, edi
je 0x43cc09
mov esi, dword [ebx + 0x4c]
lea eax, [ebx + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [edi]
push esi
push edi
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x445628]
call esi
lea esi, [ebx + 0x20]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebx + 0x38], 5
je 0x43cc41
cmp dword [ebx + 0x50], 0
je 0x43cc26
push 0x2f
push dword [ebx + 0x50]
call dword [sym.imp.msvcrt.dll_strrchr]
pop ecx
pop ecx
test eax, eax
jne 0x43cc2b
mov eax, 0x40b1c8
push dword [ebx + 0x40]
push dword [ebx + 0x44]
push eax
push 0x40b1d0
push 4
call fcn.0041e83a
add esp, 0x14
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00441130
leave
ret