Function at 0x45bd50
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x11b4
call fcn.00465040
mov eax, dword [0x4c07e0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
push edi
mov dword [ebp - 0x11b4], eax
mov eax, dword [ebp + 0x10]
push 0x800
mov dword [ebp - 0x11a4], eax
lea eax, [ebp - 0x844]
push ebx
push eax
mov dword [ebp - 0x119c], ebx
call fcn.00466b60
push 0x400
lea eax, [ebp - 0x844]
push esi
push eax
call fcn.00401ae0
lea ecx, [ebp - 0x844]
add esp, 0x18
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45bdb7
sub ecx, edx
cmp byte [ebp + ecx - 0x845], 0x5c
je 0x45bde4
lea edi, [ebp - 0x844]
dec edi
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x45bdd1
mov ax, word [0x496378]
mov word [edi], ax
lea ecx, [ebp - 0x844]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45bdf0
sub ecx, edx
lea esi, [ebp - 0x844]
push str..WASTESTATE
add esi, ecx
push 0x4b01d0
push esi
mov dword [ebp - 0x118c], esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x1184]
push eax
lea eax, [ebp - 0x844]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
mov dword [ebp - 0x11a0], edi
cmp edi, 0xffffffff
je 0x45c170
test byte [ebp - 0x1184], 0x10
jne 0x45c14e
lea eax, [ebp - 0x1158]
push eax
push 0x104
push esi
call fcn.0046b5c5
add esp, 0xc
lea eax, [ebp - 0x844]
push 0
push 0
push 4
push 0
push 0
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
mov dword [ebp - 0x1198], ebx
cmp ebx, 0xffffffff
je 0x45c148
push 0
lea eax, [ebp - 0x1188]
mov dword [ebp - 0x1190], 0
push eax
push 4
lea eax, [ebp - 0x11a8]
mov dword [ebp - 0x1194], 0
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x45bf5f
cmp dword [ebp - 0x1188], 4
jne 0x45bf5f
cmp dword [ebp - 0x11a8], 0xfffffefe
jne 0x45bf5f
push 0
lea eax, [ebp - 0x1188]
push eax
push 4
lea eax, [ebp - 0x11ac]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x45bf5f
cmp dword [ebp - 0x1188], 4
jne 0x45bf5f
cmp dword [ebp - 0x11ac], 0x101
jne 0x45bf5f
push 0
lea eax, [ebp - 0x1188]
push eax
push 4
lea eax, [ebp - 0x1190]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x45bf5f
cmp dword [ebp - 0x1188], 4
jne 0x45bf5f
push 0
lea eax, [ebp - 0x1188]
push eax
push 4
lea eax, [ebp - 0x1194]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x45bf5f
cmp dword [ebp - 0x1188], 4
je 0x45bf73
mov dword [ebp - 0x1194], 0
mov dword [ebp - 0x1190], 0
mov ecx, esi
xor edi, edi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45bf80
mov eax, dword [ebp - 0x118c]
sub ecx, edx
add esi, ecx
cmp esi, eax
jbe 0x45bfbe
mov ebx, eax
push 0xb
push str..WASTESTATE
push esi
call fcn.0047cbbd
add esp, 0xc
test eax, eax
je 0x45bfb0
dec esi
cmp esi, ebx
ja 0x45bf97
mov eax, dword [ebp - 0x118c]
cmp esi, eax
mov ebx, dword [ebp - 0x1198]
jne 0x45bfca
mov edi, 2
jmp 0x45c0c8
push 0
push 0
push 4
push 0
push 0
push 0xc0000000
lea eax, [ebp - 0x844]
mov byte [esi], 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x45c0c8
lea eax, [ebp - 0x1198]
mov dword [ebp - 0x1198], edi
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push esi
mov dword [ebp - 0x11b0], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x1188], edi
je 0x45c0c3
mov eax, dword [ebp - 0x11a4]
cmp dword [eax], edi
jne 0x45c0c8
push 0x800
lea eax, [ebp - 0x1044]
push 0
push eax
call fcn.00466b60
push dword [ebp - 0x1198]
lea eax, [ebp - 0x24]
push dword [ebp - 0x11b0]
push eax
call fcn.00450390
push dword [ebp - 0x1194]
lea eax, [ebp - 0x44]
push dword [ebp - 0x1190]
push eax
call fcn.00450390
add esp, 0x24
cmp dword [ebp - 0x1190], edi
jne 0x45c0a0
cmp dword [ebp - 0x1194], edi
jne 0x45c0a0
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x118c]
lea eax, [ebp - 0x1044]
push str.Partial_download__s_is__s._Delete_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x45c0c3
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x118c]
lea eax, [ebp - 0x1044]
push str.Partial_download__s_is__s_of__s._Delete_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
mov edi, 1
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
je 0x45c13c
lea eax, [ebp - 0x844]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp edi, 2
jge 0x45c123
mov edx, str..WASTESTATE
mov esi, edx
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x45c0f0
lea edi, [ebp - 0x844]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x45c100
mov ecx, edx
lea eax, [ebp - 0x844]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov esi, dword [ebp - 0x118c]
mov ebx, 1
mov edi, dword [ebp - 0x11a0]
mov dword [ebp - 0x119c], ebx
jmp 0x45c14e
mov esi, dword [ebp - 0x118c]
mov edi, dword [ebp - 0x11a0]
mov ebx, dword [ebp - 0x119c]
lea eax, [ebp - 0x1184]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x45be40
push dword [ebp - 0x11a0]
call dword [sym.imp.KERNEL32.dll_FindClose]
push 0x490ce0
push 2
push esi
call fcn.0046b5c5
add esp, 0xc
lea eax, [ebp - 0x1184]
push eax
lea eax, [ebp - 0x844]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x45c27e
nop
test byte [ebp - 0x1184], 0x10
je 0x45c261
mov ecx, 0x4af3b0
lea eax, [ebp - 0x1158]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x45c1d8
test dl, dl
je 0x45c1d4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x45c1d8
add eax, 2
add ecx, 2
test dl, dl
jne 0x45c1b8
xor eax, eax
jmp 0x45c1dd
sbb eax, eax
or eax, 1
test eax, eax
je 0x45c261
mov ecx, 0x491da0
lea eax, [ebp - 0x1158]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x45c210
test dl, dl
je 0x45c20c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x45c210
add eax, 2
add ecx, 2
test dl, dl
jne 0x45c1f0
xor eax, eax
jmp 0x45c215
sbb eax, eax
or eax, 1
test eax, eax
je 0x45c261
lea eax, [ebp - 0x1158]
push eax
push 0x104
push esi
call fcn.0046b5c5
push dword [ebp - 0x11a4]
lea eax, [ebp - 0x844]
push dword [ebp - 0x11b4]
push eax
call fcn.0045bd50
add esp, 0x18
test eax, eax
je 0x45c261
lea eax, [ebp - 0x844]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
test eax, eax
mov eax, 1
cmovne ebx, eax
lea eax, [ebp - 0x1184]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x45c1a0
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00464e2f
mov esp, ebp
pop ebp
ret