Function at 0x593dd0
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 [0x53da40]
call fcn.00403e48
lea esi, [ebp - 8]
xor eax, eax
push ebp
push 0x594219
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [esi]
cmp byte [eax + 0x45c], 0
je 0x593e5f
mov eax, dword [esi]
mov byte [eax + 0x45d], 1
mov eax, dword [0x669498]
inc dword [eax]
lea eax, [ebp - 0x44]
call fcn.00530b04
mov edx, dword [ebp - 0x44]
mov cl, byte [0x59422c]
mov eax, dword [esi]
call fcn.00595454
mov ebx, eax
mov eax, dword [0x669498]
dec dword [eax]
mov eax, dword [esi]
mov byte [eax + 0x45d], 0
test bl, bl
jne 0x5941e8
mov eax, dword [esi]
call fcn.005f4c10
jmp 0x5941e8
mov eax, dword [esi]
cmp byte [eax + 0x427], 0
jne 0x593e7e
xor edx, edx
mov eax, dword [esi]
call fcn.00593a58
test al, al
jne 0x593e7e
mov bl, 1
jmp 0x5941e8
mov byte [ebp - 1], 0xff
mov eax, dword [esi]
cmp byte [eax + 0x3f5], 0
je 0x593f48
mov eax, dword [esi]
mov eax, dword [eax + 0x160]
mov ecx, 1
mov edx, 0x80000000
call fcn.006585a4
cmp eax, 0xffffffff
jne 0x593ee8
call sub.kernel32.dll_GetLastError
cmp eax, 0x20
jne 0x593ebe
mov eax, 0x594230
jmp 0x593ec3
mov eax, 0x594258
mov edx, dword [esi]
mov edx, dword [edx + 0x160]
call fcn.0061f9ec
mov eax, dword [esi]
mov edx, dword [eax + 0x160]
mov cl, 1
mov eax, dword [esi]
call fcn.00594330
mov ebx, eax
jmp 0x5941a7
push eax
call sub.kernel32.dll_CloseHandle
push 3
mov eax, dword [esi]
mov edx, dword [eax + 0x160]
mov eax, 0x594270
mov cl, 3
call fcn.0061fadc
sub ax, 6
je 0x593f11
dec ax
je 0x593f29
jmp 0x593f41
mov eax, dword [esi]
mov edx, dword [eax + 0x160]
xor ecx, ecx
mov eax, dword [esi]
call fcn.00594330
mov ebx, eax
jmp 0x5941a7
mov eax, dword [esi]
mov edx, dword [eax + 0x160]
mov cl, 1
mov eax, dword [esi]
call fcn.00594330
mov ebx, eax
jmp 0x5941a7
mov bl, 1
jmp 0x5941a7
mov eax, dword [esi]
cmp byte [eax + 0x3f6], 0
je 0x593f7d
mov eax, dword [esi]
mov edx, dword [eax + 0x160]
mov eax, 0x594308
call fcn.0061f938
mov eax, dword [esi]
mov edx, dword [eax + 0x160]
mov cl, 1
mov eax, dword [esi]
call fcn.00594330
mov ebx, eax
jmp 0x5941a7
mov eax, dword [esi]
cmp byte [eax + 0x427], 0
jne 0x593f9e
mov eax, dword [esi]
cmp byte [eax + 0x43c], 0
jne 0x593f9e
push ebp
call fcn.00593cdc
pop ecx
test al, al
je 0x594001
lea eax, [ebp - 0xc]
mov edx, dword [esi]
mov edx, dword [edx + 0x160]
call fcn.004038bc
push ebp
call fcn.00593cdc
pop ecx
test al, al
je 0x593fdc
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 0xc]
call fcn.00654994
mov ecx, dword [ebp - 0x44]
mov eax, dword [0x6698dc]
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.00594330
mov ebx, eax
cmp bl, 1
jne 0x5941a7
mov eax, dword [esi]
mov byte [eax + 0x431], 0
jmp 0x5941a7
mov eax, dword [esi]
mov ecx, dword [eax + 0x168]
xor edx, edx
mov eax, dword [esi]
call fcn.005b4bb4
test al, al
je 0x59409b
mov eax, dword [0x6694ac]
mov eax, dword [eax + 4]
call fcn.00534234
mov ebx, eax
call fcn.004fe288
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 [0x6694ac]
mov edx, dword [edx + 4]
mov ecx, dword [0x66950c]
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.006547e4
mov edx, dword [ebp - 0x44]
mov cl, 1
mov eax, dword [esi]
call fcn.00594330
mov ebx, eax
mov eax, dword [esi]
mov byte [eax + 0x432], 0
cmp bl, 1
jne 0x5941a7
mov eax, dword [esi]
mov byte [eax + 0x431], 0
jmp 0x5941a7
mov eax, dword [esi]
mov ebx, dword [eax + 0x164]
test ebx, ebx
jne 0x5940bf
mov eax, dword [esi]
mov edx, dword [eax + 0x160]
xor ecx, ecx
mov eax, dword [esi]
call fcn.00594330
mov ebx, eax
jmp 0x5941a7
mov eax, ebx
call fcn.0061c7f0
test al, al
jne 0x5940e9
mov eax, dword [esi]
call fcn.005b4db0
mov eax, dword [esi]
mov edx, dword [eax + 0x160]
xor ecx, ecx
mov eax, dword [esi]
call fcn.00594330
mov ebx, eax
jmp 0x5941a7
mov cl, byte [0x59422c]
xor edx, edx
mov eax, dword [esi]
call fcn.0053e9fc
test al, al
je 0x5941a5
mov eax, dword [esi]
inc dword [eax + 0x1cc]
mov byte [ebp - 0x40], 0
lea edx, [ebp - 0x68]
mov eax, dword [esi]
call fcn.005c0e14
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 [0x59422c]
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.005b45b8
mov ebx, eax
test bl, bl
jne 0x594165
mov eax, dword [esi]
call fcn.005f4c10
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.005b4db0
mov eax, dword [esi]
mov eax, dword [eax + 0x160]
mov ecx, 1
mov edx, 0xc0000000
call fcn.006585a4
mov edx, dword [esi]
mov dword [edx + 0x164], eax
jmp 0x5941a7
mov bl, 1
test bl, bl
jne 0x5941e8
mov eax, dword [esi]
cmp byte [eax + 0x43d], 0
je 0x5941e8
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 0x594220
lea eax, [ebp - 0x48]
mov edx, 2
call fcn.00403898
lea eax, [ebp - 0x40]
mov edx, dword [0x53da40]
call fcn.00403f10
lea eax, [ebp - 0xc]
call fcn.00403880
ret