Function at 0x59c3e8
Capabilities:
Delete file
Get file size

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff98
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x48], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
lea eax, [ebp - 0x40]
mov edx, dword [0x546530]
call fcn.00403e48
lea esi, [ebp - 8]
xor eax, eax
push ebp
push 0x59c83b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [esi]
cmp byte [eax + 0x45c], 0
je 0x59c477
mov eax, dword [esi]
mov byte [eax + 0x45d], 1
mov eax, dword [0x672298]
inc dword [eax]
lea eax, [ebp - 0x44]
call fcn.005399a4
mov edx, dword [ebp - 0x44]
mov cl, byte [0x59c84c]
mov eax, dword [esi]
call fcn.0059d584
mov ebx, eax
mov eax, dword [0x672298]
dec dword [eax]
mov eax, dword [esi]
mov byte [eax + 0x45d], 0
test bl, bl
jne 0x59c80a
mov eax, dword [esi]
call fcn.005fb918
jmp 0x59c80a
mov eax, dword [esi]
cmp byte [eax + 0x427], 0
jne 0x59c496
xor edx, edx
mov eax, dword [esi]
call fcn.0059c070
test al, al
jne 0x59c496
mov bl, 1
jmp 0x59c80a
mov byte [ebp - 1], 0xff
mov eax, dword [esi]
cmp byte [eax + 0x3f5], 0
je 0x59c568
mov eax, dword [esi]
mov eax, dword [eax + 0x160]
mov ecx, 1
mov edx, 0x80000000
call fcn.0065c53c
cmp eax, 0xffffffff
jne 0x59c506
mov ebx, dword [0x671bb0]
mov ebx, dword [ebx]
call sub.kernel32.dll_GetLastError
cmp eax, 0x20
jne 0x59c4df
mov ebx, dword [0x672468]
mov ebx, dword [ebx]
mov eax, dword [esi]
mov edx, dword [eax + 0x160]
mov eax, ebx
call fcn.00623554
mov eax, dword [esi]
mov edx, dword [eax + 0x160]
mov cl, 1
mov eax, dword [esi]
call fcn.0059c850
mov ebx, eax
jmp 0x59c7c9
push eax
call sub.kernel32.dll_CloseHandle
push 3
mov eax, dword [esi]
mov edx, dword [eax + 0x160]
mov eax, dword [0x671d94]
mov eax, dword [eax]
mov cl, 3
call fcn.00623644
sub ax, 6
je 0x59c531
dec ax
je 0x59c549
jmp 0x59c561
mov eax, dword [esi]
mov edx, dword [eax + 0x160]
xor ecx, ecx
mov eax, dword [esi]
call fcn.0059c850
mov ebx, eax
jmp 0x59c7c9
mov eax, dword [esi]
mov edx, dword [eax + 0x160]
mov cl, 1
mov eax, dword [esi]
call fcn.0059c850
mov ebx, eax
jmp 0x59c7c9
mov bl, 1
jmp 0x59c7c9
mov eax, dword [esi]
cmp byte [eax + 0x3f6], 0
je 0x59c59f
mov eax, dword [esi]
mov edx, dword [eax + 0x160]
mov eax, dword [0x67319c]
mov eax, dword [eax]
call fcn.006234a0
mov eax, dword [esi]
mov edx, dword [eax + 0x160]
mov cl, 1
mov eax, dword [esi]
call fcn.0059c850
mov ebx, eax
jmp 0x59c7c9
mov eax, dword [esi]
cmp byte [eax + 0x427], 0
jne 0x59c5c0
mov eax, dword [esi]
cmp byte [eax + 0x43c], 0
jne 0x59c5c0
push ebp
call fcn.0059c2f4
pop ecx
test al, al
je 0x59c623
lea eax, [ebp - 0xc]
mov edx, dword [esi]
mov edx, dword [edx + 0x160]
call fcn.004038bc
push ebp
call fcn.0059c2f4
pop ecx
test al, al
je 0x59c5fe
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 0xc]
call fcn.00658904
mov ecx, dword [ebp - 0x44]
mov eax, dword [0x672ce4]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
mov edx, dword [eax + 8]
lea eax, [ebp - 0xc]
call fcn.00403b24
mov cl, 1
mov edx, dword [ebp - 0xc]
mov eax, dword [esi]
call fcn.0059c850
mov ebx, eax
cmp bl, 1
jne 0x59c7c9
mov eax, dword [esi]
mov byte [eax + 0x431], 0
jmp 0x59c7c9
mov eax, dword [esi]
mov ecx, dword [eax + 0x168]
xor edx, edx
mov eax, dword [esi]
call fcn.005bca00
test al, al
je 0x59c6bd
mov eax, dword [0x6722cc]
mov eax, dword [eax + 4]
call fcn.0053cdd8
mov ebx, eax
call fcn.005093e8
mov eax, dword [eax + 0x19c]
mov dword [eax + 0x60], ebx
mov eax, dword [esi]
mov byte [eax + 0x432], 1
lea eax, [ebp - 0x48]
mov edx, dword [0x6722cc]
mov edx, dword [edx + 4]
mov ecx, dword [0x6723c4]
mov edx, dword [ecx + edx*4]
call fcn.00403a34
mov edx, dword [ebp - 0x48]
lea ecx, [ebp - 0x44]
mov eax, dword [esi]
mov eax, dword [eax + 0x160]
call fcn.00658754
mov edx, dword [ebp - 0x44]
mov cl, 1
mov eax, dword [esi]
call fcn.0059c850
mov ebx, eax
mov eax, dword [esi]
mov byte [eax + 0x432], 0
cmp bl, 1
jne 0x59c7c9
mov eax, dword [esi]
mov byte [eax + 0x431], 0
jmp 0x59c7c9
mov eax, dword [esi]
mov ebx, dword [eax + 0x164]
test ebx, ebx
jne 0x59c6e1
mov eax, dword [esi]
mov edx, dword [eax + 0x160]
xor ecx, ecx
mov eax, dword [esi]
call fcn.0059c850
mov ebx, eax
jmp 0x59c7c9
mov eax, ebx
call fcn.006201a8
test al, al
jne 0x59c70b
mov eax, dword [esi]
call fcn.005bcb08
mov eax, dword [esi]
mov edx, dword [eax + 0x160]
xor ecx, ecx
mov eax, dword [esi]
call fcn.0059c850
mov ebx, eax
jmp 0x59c7c9
mov cl, byte [0x59c84c]
xor edx, edx
mov eax, dword [esi]
call fcn.005474ec
test al, al
je 0x59c7c7
mov eax, dword [esi]
inc dword [eax + 0x1cc]
mov byte [ebp - 0x40], 0
lea edx, [ebp - 0x68]
mov eax, dword [esi]
call fcn.005c8b04
push esi
lea esi, [ebp - 0x68]
lea edi, [ebp - 0x3c]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
pop esi
mov eax, dword [esi]
mov eax, dword [eax + 0x168]
mov dword [ebp - 0x1c], eax
mov al, byte [0x59c84c]
mov byte [ebp - 0x3e], al
mov eax, dword [esi]
mov eax, dword [eax + 0x16c]
mov dword [ebp - 0x18], eax
mov eax, dword [esi]
mov al, byte [eax + 0x170]
mov byte [ebp - 0x3f], al
lea edx, [ebp - 0x40]
mov eax, dword [esi]
call fcn.005bc404
mov ebx, eax
test bl, bl
jne 0x59c787
mov eax, dword [esi]
call fcn.005fb918
push 0
mov eax, dword [esi]
mov eax, dword [eax + 0x164]
push eax
call sub.kernel32.dll_GetFileSize
mov edx, dword [esi]
mov dword [edx + 0x1b8], eax
mov eax, dword [esi]
call fcn.005bcb08
mov eax, dword [esi]
mov eax, dword [eax + 0x160]
mov ecx, 1
mov edx, 0xc0000000
call fcn.0065c53c
mov edx, dword [esi]
mov dword [edx + 0x164], eax
jmp 0x59c7c9
mov bl, 1
test bl, bl
jne 0x59c80a
mov eax, dword [esi]
cmp byte [eax + 0x43d], 0
je 0x59c80a
mov eax, dword [esi]
mov eax, dword [eax + 0x34]
push eax
call sub.kernel32.dll_CloseHandle
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
push eax
call sub.kernel32.dll_DeleteFileW
mov eax, dword [esi]
xor edx, edx
mov dword [eax + 0x34], edx
mov eax, dword [esi]
mov dword [eax + 0x4b8], 0x80000000
mov eax, dword [esi]
mov byte [eax + 0x43d], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x59c842
lea eax, [ebp - 0x48]
mov edx, 2
call fcn.00403898
lea eax, [ebp - 0x40]
mov edx, dword [0x546530]
call fcn.00403f10
lea eax, [ebp - 0xc]
call fcn.00403880
ret