Function at 0x59db54
Capabilities:
Check if file exists
Delete directory
Delete file
Get file attributes

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x60
push 0
push 0
dec ecx
jne 0x59db5c
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.00406b40
lea eax, [ebp - 0x2d0]
mov edx, dword [0x41718c]
call fcn.00407e5c
xor eax, eax
push ebp
push 0x59e973
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 9], 0
mov eax, dword [ebp - 4]
mov dword [eax + 0x6a8], 0
mov dword [eax + 0x6ac], 0
mov eax, dword [ebp - 4]
add eax, 0x680
mov edx, dword [ebp - 8]
call fcn.00406e3c
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x104]
call fcn.00406e84
mov eax, dword [ebp - 8]
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0
je 0x59dbe6
mov eax, dword [ebp - 0x44]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x44]
cmp word [eax + edx*2 - 2], 0x5c
jne 0x59dbfa
mov byte [ebp - 0x2d], 1
jmp 0x59dbfe
mov byte [ebp - 0x2d], 0
cmp byte [ebp - 0x2d], 0
je 0x59dd4a
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18c], 0
jne 0x59dc2c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18d], 0
jne 0x59dc2c
mov eax, dword [ebp - 8]
call fcn.0056cbf4
test al, al
jne 0x59dc4e
call fcn.00420fe8
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.0041f554
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x694]
mov dword [edx + 0xc], eax
jmp 0x59dcd1
mov eax, dword [ebp - 8]
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
je 0x59dc65
mov eax, dword [ebp - 0x48]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x34]
push eax
mov ecx, dword [ebp - 0x48]
dec ecx
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.00407b08
lea ecx, [ebp - 0x2d0]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x66c]
mov eax, dword [ebp - 0x34]
call fcn.0041ef50
test eax, eax
jne 0x59dcb4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
mov edx, dword [ebp - 0x2d0]
mov dword [eax + 0xc], edx
lea eax, [ebp - 0x2d0]
call fcn.0041efc4
jmp 0x59dcd1
call fcn.00420fe8
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.0041f554
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x694]
mov dword [edx + 0xc], eax
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.005733a8
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.00573320
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
mov word [eax + 0x64], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
mov word [eax + 0x26], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
xor edx, edx
mov dword [eax + 0x10], edx
mov eax, dword [ebp - 8]
call fcn.0056cbf4
test al, al
je 0x59dec1
mov eax, dword [ebp - 8]
call fcn.0056cf58
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x694]
mov dword [edx + 0x28], eax
jmp 0x59dec1
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18c], 0
jne 0x59de86
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18d], 0
jne 0x59de86
cmp byte [ebp - 0x2d], 0
jne 0x59de86
mov eax, dword [ebp - 8]
call fcn.0056ce84
test al, al
jne 0x59ddab
mov eax, dword [ebp - 4]
cmp word [eax + 0x612], 0
je 0x59e90f
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x614]
call dword [ebx + 0x610]
jmp 0x59e90f
mov eax, dword [ebp - 8]
call fcn.0056cf58
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x694]
mov dword [edx + 0x28], eax
mov byte [ebp - 0x35], 0
xor eax, eax
push ebp
push 0x59de12
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov ax, word [eax + 0x66a]
or ax, 0
push eax
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x110]
push eax
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x575fb4]
call fcn.00576648
mov edx, dword [ebp - 4]
mov dword [edx + 0x678], eax
mov byte [ebp - 0x35], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59de5b
cmp byte [ebp - 0x35], 0
jne 0x59ddc3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x678]
call fcn.00576748
call fcn.0041ec88
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x694]
mov dword [edx + 0xc], eax
jmp 0x59dec1
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18c], 0
je 0x59dea4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x188]
mov edx, dword [ebp - 4]
mov dword [edx + 0x678], eax
call fcn.00420fe8
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.0041f554
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x694]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x67c], edx
xor eax, eax
push ebp
push 0x59e885
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18d], 0
je 0x59df0b
cmp byte [ebp - 0x2d], 0
jne 0x59df0b
mov eax, dword [ebp - 4]
push dword [eax + 0x19c]
push dword [eax + 0x198]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.005733a8
jmp 0x59df2e
cmp byte [ebp - 0x2d], 0
jne 0x59df2e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x678]
mov edx, dword [eax]
call dword [edx]
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.005733a8
mov eax, dword [ebp - 4]
cmp byte [eax + 0x5cc], 0
je 0x59df71
lea ecx, [ebp - 0x2d4]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.00577be0
mov edx, dword [ebp - 0x2d4]
lea eax, [ebp - 8]
call fcn.00406e84
cmp dword [ebp - 0x28], 0
je 0x59df71
lea ecx, [ebp - 0x28]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x104]
xor edx, edx
call fcn.00577be0
cmp byte [ebp - 0x2d], 0
jne 0x59df9b
lea edx, [ebp - 0x2d8]
mov eax, dword [ebp - 8]
call fcn.0056d16c
mov edx, dword [ebp - 0x2d8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.00574b7c
jmp 0x59dfab
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
xor edx, edx
call fcn.00574b7c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x674]
call fcn.004445fc
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.00573298
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
mov word [eax + 0x26], 0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x134]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.00573424
mov eax, dword [ebp - 4]
cmp byte [eax + 0x5b6], 0
je 0x59e129
lea edx, [ebp - 0x2dc]
mov eax, dword [ebp - 8]
call fcn.0056d0b8
mov edx, dword [ebp - 0x2dc]
lea eax, [ebp - 0x1c]
mov ecx, 0x59e990
call fcn.00407998
lea ecx, [ebp - 0x2e0]
mov edx, 2
mov eax, dword [ebp - 0x1c]
call fcn.00577364
mov eax, dword [ebp - 0x2e0]
mov edx, 0x59e9a0
call fcn.00407ad0
jne 0x59e068
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0
je 0x59e05c
mov eax, dword [ebp - 0x4c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
mov edx, dword [ebp - 0x4c]
dec edx
lea eax, [ebp - 0x1c]
call fcn.004078c0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x108]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x59e097
mov eax, dword [ebp - 4]
cmp byte [eax + 0x5b7], 0
je 0x59e097
lea ecx, [ebp - 0x2e4]
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 4]
call fcn.0058cb10
mov eax, dword [ebp - 4]
cmp byte [eax + 0x5b8], 0
jne 0x59e118
cmp dword [ebp - 0x1c], 0
je 0x59e118
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
call fcn.0041f1f8
cmp dword [ebp - 0x2c], 0
je 0x59e0e1
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0
je 0x59e0d1
mov eax, dword [ebp - 0x50]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x1c]
mov ecx, dword [ebp - 0x50]
mov edx, 1
call fcn.00407b50
lea ecx, [ebp - 0x2e8]
mov edx, 1
mov eax, dword [ebp - 0x1c]
call fcn.005773ec
mov eax, dword [ebp - 0x2e8]
mov edx, 0x59e990
call fcn.00407ad0
jne 0x59e118
lea eax, [ebp - 0x1c]
mov ecx, 1
mov edx, 1
call fcn.00407b50
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
mov edx, dword [ebp - 0x1c]
call fcn.00574c24
lea ecx, [ebp - 0x20]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x694]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x688]
mov ebx, dword [eax]
call dword [ebx + 0x48]
test al, al
je 0x59e1ef
mov byte [ebp - 9], 0
mov eax, dword [ebp - 4]
cmp word [eax + 0xda], 0
je 0x59e17a
mov eax, dword [ebp - 8]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x35]
push eax
mov ebx, dword [ebp - 4]
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0xdc]
call dword [ebx + 0xd8]
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18c], 0
jne 0x59e1e5
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18d], 0
jne 0x59e1e5
cmp byte [ebp - 0x2d], 0
jne 0x59e1e5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x678]
mov edx, dword [eax]
call dword [edx]
mov dword [ebp - 0x2f0], eax
mov dword [ebp - 0x2ec], edx
fild qword [ebp - 0x2f0]
mov eax, dword [ebp - 4]
fild qword [eax + 0x5a0]
fsubrp st(1)
mov eax, dword [ebp - 4]
fistp qword [eax + 0x5a0]
wait
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x678]
call fcn.00404ff0
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x678], edx
call fcn.00406254
jmp 0x59e90f
mov byte [ebp - 0x21], 0
mov eax, dword [ebp - 4]
cmp word [eax + 0x5f2], 0
je 0x59e222
mov eax, dword [ebp - 4]
add eax, 0x694
push eax
lea eax, [ebp - 0x21]
push eax
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x5f4]
call dword [ebx + 0x5f0]
cmp byte [ebp - 0x21], 0
je 0x59e2d0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18c], 0
jne 0x59e297
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18d], 0
jne 0x59e297
cmp byte [ebp - 0x2d], 0
jne 0x59e297
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x678]
mov edx, dword [eax]
call dword [edx]
mov dword [ebp - 0x2f0], eax
mov dword [ebp - 0x2ec], edx
fild qword [ebp - 0x2f0]
mov eax, dword [ebp - 4]
fild qword [eax + 0x5a0]
fsubrp st(1)
mov eax, dword [ebp - 4]
fistp qword [eax + 0x5a0]
wait
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x678]
call fcn.00404ff0
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x678], edx
mov eax, dword [ebp - 4]
cmp word [eax + 0xda], 0
je 0x59e2c2
mov eax, dword [ebp - 8]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x35]
push eax
mov ebx, dword [ebp - 4]
mov cl, 7
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0xdc]
call dword [ebx + 0xd8]
mov byte [ebp - 9], 0
call fcn.00406254
jmp 0x59e90f
mov eax, dword [ebp - 4]
cmp dword [eax + 0x48], 0
je 0x59e302
cmp byte [ebp - 0x2d], 0
jne 0x59e302
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
or word [eax + 8], 1
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x671]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x694]
mov byte [edx + 0x4c], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c8]
cmp byte [eax + 0x21], 0
je 0x59e36e
mov eax, dword [ebp - 4]
call fcn.0059d12c
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.00574b24
cdq
cmp edx, dword [esp + 4]
jne 0x59e339
cmp eax, dword [esp]
pop edx
pop eax
jb 0x59e36e
jmp 0x59e33d
pop edx
pop eax
jl 0x59e36e
mov eax, dword [ebp - 4]
call fcn.0059d268
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x134]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.00573424
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.00573298
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c8]
cmp byte [eax + 0x21], 0
je 0x59e3ee
cmp byte [ebp - 0x2d], 0
jne 0x59e3ee
lea edx, [ebp - 0x2f8]
mov eax, dword [ebp - 4]
call fcn.005a0278
mov eax, dword [ebp - 0x2f8]
lea edx, [ebp - 0x2f4]
call fcn.00577b44
mov edx, dword [ebp - 0x2f4]
mov eax, dword [ebp - 4]
add eax, 0x69c
call fcn.00406e3c
push 0xff00
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x10d]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x110]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x69c]
mov dl, 1
mov eax, dword [0x575fb4]
call fcn.00576648
mov edx, dword [ebp - 4]
mov dword [edx + 0x67c], eax
jmp 0x59e405
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x674]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0057428c
cmp byte [ebp - 0x2d], 0
je 0x59e447
mov eax, dword [ebp - 4]
cmp word [eax + 0x602], 0
je 0x59e439
push 0
push 0
push 0
push 0
push 0
push 0
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x604]
call dword [ebx + 0x600]
mov byte [ebp - 9], 1
call fcn.00406254
jmp 0x59e90f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x674]
call fcn.004445fc
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x48], 0
je 0x59e4b1
cmp byte [ebp - 0x2d], 0
jne 0x59e4b1
push ebp
call fcn.0059d508
pop ecx
mov eax, dword [ebp - 4]
not dword [eax + 0x13c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x13c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x694]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x674]
call fcn.004445fc
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x48]
mov eax, dword [ebp - 4]
call fcn.0059e9a8
mov eax, dword [ebp - 4]
mov dword [eax + 0x13c], 0xffffffff
mov eax, dword [ebp - 4]
cmp dword [eax + 0x5b0], 0
je 0x59e4e6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp - 4]
call fcn.0059a3dc
test al, al
je 0x59e596
push ebp
lea eax, [ebp - 0x40]
call fcn.0059da84
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.00573368
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.00573320
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18d], 0
jne 0x59e573
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.00573368
cmp edx, dword [ebp - 0x3c]
jne 0x59e534
cmp eax, dword [ebp - 0x40]
jbe 0x59e55f
jmp 0x59e536
jle 0x59e55f
mov eax, dword [ebp - 8]
push eax
push 0
lea edx, [ebp - 0x2fc]
mov eax, 0xd0
call fcn.0041e6b8
mov ecx, dword [ebp - 0x2fc]
mov edx, 0xd0
mov eax, dword [ebp - 4]
call fcn.0058fb90
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.005733a8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
mov word [eax + 0x64], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
mov word [eax + 0x26], 0
jmp 0x59e616
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 4]
call fcn.00599590
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.00573320
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18d], 0
jne 0x59e616
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.00573368
cmp edx, dword [ebp - 0x3c]
jne 0x59e5d7
cmp eax, dword [ebp - 0x40]
jbe 0x59e602
jmp 0x59e5d9
jle 0x59e602
mov eax, dword [ebp - 8]
push eax
push 0
lea edx, [ebp - 0x300]
mov eax, 0xd0
call fcn.0041e6b8
mov ecx, dword [ebp - 0x300]
mov edx, 0xd0
mov eax, dword [ebp - 4]
call fcn.0058fb90
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.005733a8
mov eax, dword [ebp - 4]
cmp dword [eax + 0x48], 0
je 0x59e65e
mov eax, dword [ebp - 4]
cmp byte [eax + 0x671], 0
je 0x59e65e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c8]
cmp byte [eax + 0x21], 0
jne 0x59e64d
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x674]
mov eax, dword [ebp - 4]
call fcn.0059ed0c
jmp 0x59e65e
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x67c]
mov eax, dword [ebp - 4]
call fcn.0059ed0c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c8]
cmp byte [eax + 0x21], 0
jne 0x59e693
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x674]
call fcn.004445fc
sub eax, dword [ebp - 0x18]
sbb edx, dword [ebp - 0x14]
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.00573320
jmp 0x59e6b0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x67c]
mov edx, dword [eax]
call dword [edx]
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.00573320
mov eax, dword [ebp - 4]
not dword [eax + 0x13c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x13c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x694]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x5b0], 2
jg 0x59e6ea
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
or word [eax + 8], 4
jmp 0x59e704
mov eax, dword [ebp - 4]
cmp dword [eax + 0x5b0], 8
jl 0x59e704
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
or word [eax + 8], 2
mov eax, dword [ebp - 4]
cmp dword [eax + 0x48], 0
je 0x59e734
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
or word [eax + 8], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c8]
cmp byte [eax + 0x21], 0
je 0x59e734
mov eax, dword [ebp - 4]
cmp dword [eax + 0x5b0], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x674]
call fcn.004445fc
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.00573258
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x674]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x674]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0057428c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c8]
cmp byte [eax + 0x21], 0
je 0x59e797
push ebp
call fcn.0059d6b4
pop ecx
jmp 0x59e7ad
push dword [ebp - 0x14]
push dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x674]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov byte [ebp - 9], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x59e88f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x67c]
call fcn.00404ff0
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x67c], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x69c]
call fcn.0040774c
push eax
call sub.kernel32.dll_DeleteFileW
cmp eax, 1
sbb eax, eax
inc eax
mov byte [ebp - 0x51], al
cmp byte [ebp - 0x51], 0
jne 0x59e853
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x69c]
call fcn.0040774c
push eax
call sub.kernel32.dll_GetFileAttributesW
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], 0xffffffff
je 0x59e84a
test byte [ebp - 0x57], 4
je 0x59e84a
test byte [ebp - 0x58], 0x10
je 0x59e84a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x69c]
call fcn.0040774c
push eax
call sub.kernel32.dll_RemoveDirectoryW
cmp eax, 1
sbb eax, eax
inc eax
mov byte [ebp - 0x51], al
jmp 0x59e853
mov eax, dword [ebp - 0x5c]
push eax
call sub.kernel32.dll_SetLastError
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18c], 0
jne 0x59e884
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18d], 0
jne 0x59e884
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x678]
call fcn.00404ff0
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x678], edx
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x59e97a
lea eax, [ebp - 0x300]
mov edx, 4
call fcn.00406abc
lea eax, [ebp - 0x2e8]
mov edx, 6
call fcn.00406abc
lea eax, [ebp - 0x2d0]
mov edx, dword [0x41718c]
call fcn.00407f34
lea eax, [ebp - 0x34]
call fcn.00406a5c
lea eax, [ebp - 0x2c]
mov edx, 2
call fcn.00406abc
lea eax, [ebp - 0x1c]
call fcn.00406a5c
lea eax, [ebp - 8]
call fcn.00406a5c
ret