Function at 0x59afb4
Capabilities:
Delete file
Get file size

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff90
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 8], ebx
mov ebx, ecx
mov dword [ebp - 4], edx
mov edi, eax
lea eax, [ebp - 4]
call fcn.00403e28
lea eax, [ebp - 0x44]
mov edx, dword [0x543b14]
call fcn.00403e48
xor eax, eax
push ebp
push 0x59b757
push dword fs:[eax]
mov dword fs:[eax], esp
test bl, bl
je 0x59b2b6
mov dl, 1
mov eax, edi
call fcn.0059a68c
test al, al
jne 0x59b012
mov bl, 1
jmp 0x59b719
cmp byte [edi + 0x454], 0
je 0x59b06e
lea edx, [ebp - 0x48]
mov eax, edi
call fcn.005661c8
mov eax, dword [ebp - 0x48]
push eax
lea eax, [ebp - 0x4c]
mov edx, dword [0x672428]
mov edx, dword [edx + 0x22]
mov ecx, dword [0x6723dc]
mov edx, dword [ecx + edx*4]
call fcn.00403a34
mov edx, dword [ebp - 0x4c]
lea ecx, [ebp - 4]
pop eax
call fcn.0065ced8
mov eax, dword [0x672428]
mov eax, dword [eax + 0x22]
call fcn.00539b1c
mov esi, eax
call fcn.00501d74
mov eax, dword [eax + 0x198]
mov dword [eax + 0x64], esi
jmp 0x59b0e0
cmp byte [edi + 0x429], 0
jne 0x59b0e0
mov eax, dword [edi + 0x160]
call fcn.00539b90
test al, al
je 0x59b0a3
mov eax, dword [edi + 0x160]
call fcn.00539b1c
mov esi, eax
call fcn.00501d74
mov eax, dword [eax + 0x198]
mov dword [eax + 0x64], esi
jmp 0x59b0e0
call fcn.00501d74
mov eax, dword [eax + 0x198]
mov eax, dword [eax + 0x64]
call fcn.00539b40
mov edx, dword [0x6723dc]
mov edx, dword [edx + eax*4]
lea eax, [ebp - 0x4c]
call fcn.00403a34
mov edx, dword [ebp - 0x4c]
lea ecx, [ebp - 0x48]
mov eax, dword [ebp - 4]
call fcn.0065ced8
mov edx, dword [ebp - 0x48]
lea eax, [ebp - 4]
call fcn.004038bc
lea edx, [ebp - 0x48]
mov eax, dword [ebp - 4]
call fcn.0065d0b8
cmp dword [ebp - 0x48], 0
jne 0x59b0fe
lea eax, [ebp - 4]
mov edx, 0x59b76c
call fcn.00403ac4
cmp byte [edi + 0x41e], 0
je 0x59b130
mov eax, dword [0x672428]
test byte [eax + 0x208], 2
je 0x59b130
lea eax, [ebp - 0x48]
push eax
xor ecx, ecx
mov edx, dword [ebp - 4]
mov eax, edi
call fcn.00566318
mov edx, dword [ebp - 0x48]
lea eax, [ebp - 4]
call fcn.004038bc
call fcn.00501d74
mov eax, dword [eax + 0x198]
add eax, 0x3c
mov edx, dword [ebp - 4]
call fcn.004038bc
call fcn.00501d74
mov eax, dword [eax + 0x198]
add eax, 0x34
mov edx, 0x59b778
call fcn.004032c8
call fcn.005397ec
add eax, 0x80
mov edx, dword [edi + 0x158]
call fcn.004038bc
call fcn.005397ec
add eax, 0x84
mov edx, dword [edi + 0x170]
call fcn.004032c8
cmp byte [edi + 0x41e], 0
jne 0x59b1ac
cmp byte [edi + 0x434], 0
jne 0x59b1ac
call fcn.00501d74
mov eax, dword [eax + 0x198]
mov byte [eax + 0x8a], 1
call fcn.00501d74
mov eax, dword [eax + 0x198]
mov byte [eax + 0x5a], 0xff
call fcn.00501d74
mov eax, dword [eax + 0x198]
mov edx, dword [eax]
call dword [edx + 0x28]
test al, al
jne 0x59b1ef
mov bl, 1
call fcn.00501d74
call fcn.004fed6c
call fcn.005397ec
add eax, 0x80
call fcn.00403880
jmp 0x59b719
call fcn.00501d74
call fcn.004fed6c
call fcn.00501d74
mov eax, dword [eax + 0x198]
lea edx, [ebp - 4]
call fcn.006371a0
call fcn.00501d74
mov eax, dword [eax + 0x198]
mov eax, dword [eax + 0x64]
call fcn.00539b40
mov esi, eax
call fcn.005397ec
mov edx, dword [ebp - 4]
call fcn.00537c8c
test al, al
je 0x59b256
mov edx, dword [edi + 0x158]
mov eax, dword [ebp - 4]
call fcn.0065ce24
test al, al
jne 0x59b256
mov eax, 0x59b78c
mov edx, dword [ebp - 4]
call fcn.006296e0
jmp 0x59b188
cmp byte [edi + 0x3ed], 0
je 0x59b286
mov edx, dword [edi + 0x158]
mov eax, dword [ebp - 4]
call fcn.0065ce24
test al, al
je 0x59b286
mov eax, 0x59b88c
mov edx, dword [edi + 0x158]
call fcn.006296e0
jmp 0x59b188
cmp byte [edi + 0x3ee], 0
je 0x59b2bc
mov edx, dword [edi + 0x158]
mov eax, dword [ebp - 4]
call fcn.0065ce24
test al, al
je 0x59b2bc
mov eax, 0x59b8b4
mov edx, dword [edi + 0x158]
call fcn.0062967c
jmp 0x59b188
mov esi, dword [edi + 0x160]
cmp esi, 6
jne 0x59b2d5
xor edx, edx
mov eax, edi
call fcn.0059a724
test al, al
jne 0x59b2d5
mov bl, 1
jmp 0x59b6f9
cmp byte [0x66dec4], 0
je 0x59b36d
mov ecx, esi
xor edx, edx
mov eax, edi
call fcn.005bc774
test al, al
je 0x59b36d
mov byte [edi + 0x429], 1
mov eax, dword [0x672428]
mov eax, dword [eax + 0xc0]
call fcn.00539b1c
mov ebx, eax
call fcn.00501d74
mov eax, dword [eax + 0x198]
mov dword [eax + 0x64], ebx
lea eax, [ebp - 0x4c]
mov edx, dword [0x672428]
mov edx, dword [edx + 0xc0]
mov ecx, dword [0x6723dc]
mov edx, dword [ecx + edx*4]
call fcn.00403a34
mov edx, dword [ebp - 0x4c]
lea ecx, [ebp - 0x48]
mov eax, dword [ebp - 4]
call fcn.0065ced8
mov edx, dword [ebp - 0x48]
mov cl, 1
mov eax, edi
call fcn.0059afb4
mov ebx, eax
mov byte [edi + 0x429], 0
cmp bl, 1
jne 0x59b6f9
mov byte [edi + 0x428], 0
jmp 0x59b6f9
cmp byte [0x6752d5], 0
jne 0x59b39d
mov eax, dword [ebp - 4]
call fcn.0065cc54
test al, al
je 0x59b39d
lea edx, [ebp - 4]
mov cl, byte [0x59b8dc]
mov eax, edi
call fcn.00544a8c
test al, al
jne 0x59b39d
mov bl, 1
jmp 0x59b6f9
cmp esi, 4
sete al
test al, bl
je 0x59b401
cmp dword [edi + 0x160], 4
jne 0x59b3b9
cmp byte [edi + 0x41e], 0
jne 0x59b401
lea eax, [edi + 0x170]
call fcn.004c69d4
test al, al
je 0x59b3eb
call fcn.004236a0
lea ecx, [ebp - 0x50]
mov edx, dword [edi + 0x170]
call fcn.0042307c
mov edx, dword [ebp - 0x50]
lea eax, [edi + 0x170]
call fcn.004032c8
jmp 0x59b401
mov bl, 1
call fcn.005397ec
add eax, 0x80
call fcn.00403880
jmp 0x59b719
cmp dword [edi + 0x15c], 0
je 0x59b420
mov eax, dword [edi + 0x15c]
call fcn.006264cc
test al, al
jne 0x59b420
mov eax, edi
call fcn.005bc984
mov eax, dword [edi + 0x15c]
mov dword [ebp - 0xc], eax
mov edx, dword [edi + 0x158]
mov eax, dword [ebp - 4]
call fcn.0065ce24
xor al, 1
mov byte [ebp - 0xd], al
cmp dword [edi + 0x15c], 0
sete al
or al, byte [ebp - 0xd]
je 0x59b4a8
mov eax, dword [ebp - 4]
call fcn.00660d7c
mov dword [edi + 0x15c], eax
cmp dword [edi + 0x15c], 0xffffffff
jne 0x59b4a8
lea ecx, [ebp - 0x50]
mov eax, 0x59b8e0
mov edx, dword [ebp - 4]
call fcn.0065d968
mov eax, dword [ebp - 0x50]
mov cx, word [0x59b8fc]
mov dl, 1
call fcn.0062941c
cmp ax, 2
jne 0x59b44b
mov eax, dword [ebp - 0xc]
mov dword [edi + 0x15c], eax
mov bl, 2
call fcn.005397ec
add eax, 0x80
call fcn.00403880
jmp 0x59b719
lea eax, [ebp - 8]
mov edx, dword [edi + 0x158]
call fcn.004038bc
lea eax, [edi + 0x158]
mov edx, dword [ebp - 4]
call fcn.004038bc
mov byte [ebp - 0x44], 0
lea edx, [ebp - 0x70]
mov eax, edi
call fcn.005c8d98
push esi
push edi
lea esi, [ebp - 0x70]
lea edi, [ebp - 0x40]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov dword [ebp - 0x20], esi
mov eax, dword [edi + 0x164]
mov dword [ebp - 0x1c], eax
mov al, byte [edi + 0x168]
mov byte [ebp - 0x43], al
mov al, byte [0x59b900]
mov byte [ebp - 0x42], al
cmp byte [edi + 0x454], 0
je 0x59b50d
or byte [ebp - 0x42], 1
test bl, bl
je 0x59b51d
mov dword [edi + 0x1c4], 1
jmp 0x59b523
inc dword [edi + 0x1c4]
lea edx, [ebp - 0x44]
mov eax, edi
call fcn.005bc150
mov ebx, eax
test bl, bl
jne 0x59b6b2
cmp byte [0x6752d5], 0
je 0x59b54c
mov eax, edi
call fcn.005bc984
jmp 0x59b6e6
mov eax, dword [ebp - 0xc]
cmp eax, dword [edi + 0x15c]
je 0x59b575
cmp dword [ebp - 0xc], 0
je 0x59b575
cmp byte [ebp - 0xd], 0
jne 0x59b56c
cmp dword [edi + 0x160], 2
je 0x59b575
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_CloseHandle
mov eax, edi
call fcn.005fdc04
mov byte [edi + 0x3ed], 0
mov byte [edi + 0x3ee], 0
push 0
mov eax, dword [edi + 0x15c]
push eax
call sub.kernel32.dll_GetFileSize
mov dword [edi + 0x1b0], eax
call fcn.0065deb8
fstp qword [edi + 0x198]
wait
mov eax, dword [edi + 0x198]
mov dword [edi + 0x1a0], eax
mov eax, dword [edi + 0x19c]
mov dword [edi + 0x1a4], eax
mov eax, edi
call fcn.005bc984
cmp byte [edi + 0x454], 0
jne 0x59b5fc
mov eax, dword [edi + 0x158]
call fcn.00626348
test al, al
jne 0x59b5fc
mov ecx, 1
mov edx, 0xc0000000
mov eax, dword [edi + 0x158]
call fcn.00660d68
mov dword [edi + 0x15c], eax
cmp byte [edi + 0x454], 0
je 0x59b61b
lea eax, [edi + 0x158]
mov edx, dword [ebp - 8]
call fcn.004038bc
mov eax, dword [0x672428]
mov dword [eax + 0x22], esi
cmp byte [edi + 0x42d], 0
jne 0x59b6e6
mov eax, dword [edi + 0x16c]
call fcn.0044e638
call fcn.00501d74
mov esi, eax
push 0x401
push 0
push 0
mov eax, esi
call fcn.0064a424
push eax
call sub.user32.dll_RedrawWindow
mov byte [esi + 0x27f], 1
mov byte [esi + 0x280], 1
call fcn.00501d7c
lea edx, [ebp - 0x48]
mov eax, dword [ebp - 8]
call fcn.0065cfe0
mov eax, dword [ebp - 0x48]
push eax
lea edx, [ebp - 0x4c]
mov eax, dword [edi + 0x158]
call fcn.0065cfe0
mov eax, dword [ebp - 0x4c]
pop edx
call fcn.0065ce24
test al, al
jne 0x59b6e6
lea edx, [ebp - 0x48]
mov eax, dword [edi + 0x158]
call fcn.0065cfe0
mov edx, dword [ebp - 0x48]
mov eax, dword [0x672714]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
add eax, 8
call fcn.004038bc
jmp 0x59b6e6
mov eax, dword [edi + 0x15c]
cmp eax, dword [ebp - 0xc]
je 0x59b6e6
push eax
call sub.kernel32.dll_CloseHandle
mov eax, dword [edi + 0x158]
push eax
call sub.kernel32.dll_DeleteFileW
mov eax, dword [ebp - 0xc]
mov dword [edi + 0x15c], eax
lea eax, [edi + 0x158]
mov edx, dword [ebp - 8]
call fcn.004038bc
cmp byte [0x6752d5], 0
jne 0x59b6f9
call fcn.00501d74
call fcn.004fed6c
call fcn.005397ec
add eax, 0x80
call fcn.00403880
call fcn.00501d74
mov byte [eax + 0x281], 1
call fcn.00501d7c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x59b75e
lea eax, [ebp - 0x50]
call fcn.00403274
lea eax, [ebp - 0x4c]
mov edx, 2
call fcn.00403898
lea eax, [ebp - 0x44]
mov edx, dword [0x543b14]
call fcn.00403f10
lea eax, [ebp - 8]
mov edx, 2
call fcn.00403898
ret