Function at 0x45f9d5
Capabilities:
Delete file
Get file size
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x63c
mov eax, dword [0x500144]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
and dword [ebp - 0x634], 0
and dword [ebp - 0x62c], 0
and dword [ebp - 0x628], 0
and dword [ebp - 0x630], 0
push ebx
push esi
push edi
mov ebx, ecx
mov edi, 0x104
xor ecx, ecx
mov word [ebp - 0x210], cx
lea ecx, [ebp - 0x418]
push edi
push ecx
push eax
call fcn.0046192f
lea edx, [ebp - 0x620]
mov dword [ebp - 0x63c], eax
call fcn.00499556
mov esi, eax
test esi, esi
jns 0x45fa90
mov eax, dword [section..data]
mov edi, section..data
cmp eax, edi
je 0x45fe10
test byte [eax + 0x1c], 8
je 0x45fe10
cmp byte [eax + 0x19], 2
jb 0x45fe10
call fcn.0042386b
push esi
push 0x40e998
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0xb
mov edx, 0x40ed20
pop ecx
call fcn.0042371b
jmp 0x45fe10
cmp dword [ebp + 8], 0
mov eax, 0x40e9c0
jne 0x45faa0
mov eax, 0x40e9d4
lea ecx, [ebp - 0x418]
push ecx
push eax
lea eax, [ebp - 0x620]
push eax
push 0x40e9ec
lea eax, [ebp - 0x210]
push edi
push eax
call fcn.0041f7a9
mov esi, eax
add esp, 0x18
test esi, esi
jns 0x45fb0c
mov eax, dword [section..data]
cmp eax, section..data
je 0x45fe10
test byte [eax + 0x1c], 8
je 0x45fe10
cmp byte [eax + 0x19], 2
jb 0x45fe10
call fcn.0042386b
push esi
push 0x409224
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0xc
jmp 0x45fa80
mov eax, dword [section..data]
mov edi, section..data
cmp eax, edi
je 0x45fb6b
test byte [eax + 0x1c], 1
je 0x45fb6b
cmp byte [eax + 0x19], 4
jb 0x45fb6b
cmp dword [ebp + 8], 0
mov dword [ebp - 0x624], 0x40ea08
jne 0x45fb40
mov dword [ebp - 0x624], 0x40ea10
call fcn.0042386b
lea ecx, [ebp - 0x210]
mov edx, 0x40ed20
push ecx
push dword [ebp - 0x624]
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0xd
pop ecx
call fcn.0043e9d7
xor eax, eax
push eax
push 0x8000000
push 3
push eax
push eax
push 0x80000000
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x624], eax
cmp eax, 0xffffffff
jne 0x45fbee
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x45fba9
movzx esi, si
or esi, 0x80070000
mov eax, dword [section..data]
cmp eax, edi
je 0x45fe10
test byte [eax + 0x1c], 1
je 0x45fe10
cmp byte [eax + 0x19], 2
jb 0x45fe10
call fcn.0042386b
push esi
push eax
mov eax, dword [section..data]
mov edx, 0x40ed20
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0xe
pop ecx
call fcn.00421fda
jmp 0x45fe10
xor ecx, ecx
push ecx
push ecx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x45fc59
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x45fc14
movzx esi, si
or esi, 0x80070000
mov eax, dword [section..data]
cmp eax, edi
je 0x45fe04
test byte [eax + 0x1c], 1
je 0x45fe04
cmp byte [eax + 0x19], 2
jb 0x45fe04
call fcn.0042386b
push esi
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0xf
mov edx, 0x40ed20
pop ecx
call fcn.00421fda
jmp 0x45fe04
lea eax, [ebp - 0x630]
push eax
push dword [ebp - 0x624]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, eax
mov dword [ebp - 0x628], ecx
cmp ecx, 0xffffffff
jne 0x45fce3
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x45fcdd
mov eax, dword [section..data]
cmp eax, edi
je 0x45fcbf
test byte [eax + 0x1c], 1
je 0x45fcbf
cmp byte [eax + 0x19], 2
jb 0x45fcbf
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.0042386b
push esi
push eax
mov eax, dword [section..data]
mov edx, 0x40ed20
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x10
pop ecx
call fcn.00421fda
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x45fe04
movzx esi, si
or esi, 0x80070000
jmp 0x45fe04
mov ecx, dword [ebp - 0x628]
mov eax, dword [ebp - 0x630]
mov dword [ebp - 0x638], eax
test eax, eax
jne 0x45fdc0
cmp ecx, 0x7fffffff
ja 0x45fdc0
push ecx
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x62c], eax
test eax, eax
jne 0x45fd59
mov ecx, dword [section..data]
cmp ecx, edi
je 0x45fd4f
test byte [ecx + 0x1c], 8
je 0x45fd4f
cmp byte [ecx + 0x19], 2
jb 0x45fd4f
call fcn.0042386b
push 0x40ea1c
push eax
mov eax, dword [section..data]
mov edx, 0x40ed20
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x12
pop ecx
call fcn.0042200a
mov esi, 0x8007000e
jmp 0x45fe04
push 0
lea ecx, [ebp - 0x634]
push ecx
push dword [ebp - 0x628]
push eax
push dword [ebp - 0x624]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x45fe04
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x45fd92
movzx esi, si
or esi, 0x80070000
mov eax, dword [section..data]
cmp eax, edi
je 0x45fe04
test byte [eax + 0x1c], 1
je 0x45fe04
cmp byte [eax + 0x19], 2
jb 0x45fe04
call fcn.0042386b
push esi
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x13
jmp 0x45fc49
mov eax, dword [section..data]
cmp eax, edi
je 0x45fdff
test byte [eax + 0x1c], 1
je 0x45fdff
cmp byte [eax + 0x19], 2
jb 0x45fdff
call fcn.0042386b
push dword [ebp - 0x628]
mov edx, 0x40ed20
push dword [ebp - 0x638]
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x11
pop ecx
call fcn.00429397
mov esi, 0x80004005
push dword [ebp - 0x624]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp word [ebp - 0x210], 0
je 0x45fe27
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [ebp + 8], 0
je 0x45fed6
and dword [ebx + 0x127c], 0
mov eax, dword [ebx + 0x1278]
test eax, eax
je 0x45fe50
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
and dword [ebx + 0x1278], 0
lea eax, [ebx + 0x1288]
mov dword [ebp - 0x624], eax
lea edi, [ebx + 0x1284]
xor ecx, ecx
test esi, esi
js 0x45ffb4
cmp dword [ebp + 8], 0
je 0x45ff21
lea esi, [ebx + 0x127c]
push esi
lea edi, [ebx + 0x1278]
push edi
push dword [ebp - 0x628]
push dword [ebp - 0x62c]
call fcn.00461cc4
test eax, eax
js 0x45ff11
mov eax, dword [section..data]
xor ecx, ecx
inc ecx
cmp eax, section..data
je 0x45ff19
test byte [eax + 0x1c], cl
je 0x45ff19
cmp byte [eax + 0x19], 5
jb 0x45ff19
call fcn.0042386b
push eax
mov eax, dword [section..data]
mov edx, 0x40ed20
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x14
pop ecx
call fcn.004238e7
xor ecx, ecx
inc ecx
jmp 0x45ff19
lea eax, [ebx + 0x1288]
and dword [eax], 0
lea edi, [ebx + 0x1284]
cmp dword [edi], 0
mov dword [ebp - 0x624], eax
je 0x45fe62
push dword [edi]
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor ecx, ecx
lea eax, [ebx + 0x1288]
mov dword [edi], ecx
mov dword [ebp - 0x624], eax
jmp 0x45fe64
and dword [edi], 0
and dword [esi], 0
xor ecx, ecx
mov dword [ebx + 0x1274], ecx
jmp 0x45ff8c
push eax
push edi
push dword [ebp - 0x628]
push dword [ebp - 0x62c]
call fcn.00461cc4
test eax, eax
js 0x45ff7a
mov eax, dword [section..data]
cmp eax, section..data
je 0x45ff6e
test byte [eax + 0x1c], 1
je 0x45ff6e
cmp byte [eax + 0x19], 5
jb 0x45ff6e
call fcn.0042386b
push eax
mov eax, dword [section..data]
mov edx, 0x40ed20
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x15
pop ecx
call fcn.004238e7
mov dword [ebx + 0x1280], 1
jmp 0x45ff8c
mov eax, dword [ebp - 0x624]
xor ecx, ecx
mov dword [eax], ecx
mov dword [edi], ecx
mov dword [ebx + 0x1280], ecx
mov eax, dword [ebp - 0x62c]
test eax, eax
je 0x45ff9d
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x63c]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.004fb5e0
leave
ret 8
cmp dword [ebp + 8], 0
je 0x45ff82
mov dword [ebx + 0x1274], ecx
mov dword [ebx + 0x1278], ecx
mov dword [ebx + 0x127c], ecx
jmp 0x45ff8c