Function at 0x4261d0
Capabilities:
Delete directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x461da5
mov eax, dword fs:[0]
push eax
sub esp, 0x40
mov eax, dword [0x472008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x40], eax
mov byte [eax], 1
call fcn.00425480
test eax, eax
jne 0x42688b
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0xd8]
mov byte [ebp - 0x2d], al
lea eax, [ebp - 0x2d]
push eax
mov ecx, dword [ecx]
push 0x15
call fcn.0042c3f0
add esp, 8
test eax, eax
jne 0x42688b
movzx eax, byte [edi + 0x85]
lea esi, [edi + 0x78]
cmp dword [edi + 0x60], 3
mov dl, byte [edi + 0x68]
push eax
push esi
sete cl
call fcn.0042af20
xor eax, eax
lea ecx, [ebp - 0x28]
add esp, 8
mov dword [ebp - 0x28], eax
mov edx, esi
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
call fcn.0042b270
mov dword [ebp - 4], 0
cmp byte [ebp - 0x2d], 0
jne 0x426284
mov ecx, edi
call fcn.004256c0
mov ebx, dword [ebp - 0x24]
xor ecx, ecx
mov esi, 2
lea eax, [ebx + 1]
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0045e549
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
lea ecx, [ecx*2 + 2]
push ecx
push dword [ebp - 0x28]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0x10
mov byte [ebp - 4], 1
cmp dword [edi + 0x60], 3
jne 0x426303
mov edx, dword [ebp - 0x28]
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x5c
je 0x426386
cmp ecx, 0x2f
je 0x426386
cmp ecx, 0x61
jb 0x4262ee
cmp ecx, 0x7a
jbe 0x4262f8
cmp ecx, 0x41
jb 0x426303
cmp ecx, 0x5a
ja 0x426303
cmp word [edx + 2], 0x3a
je 0x426386
lea eax, [ebp - 0x1c]
push eax
lea edx, [edi + 0x48]
lea ecx, [ebp - 0x4c]
call fcn.00425360
add esp, 4
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
cmp eax, ecx
je 0x426377
mov eax, dword [eax + 4]
mov dword [ebp - 0x3c], eax
cmp eax, ebx
jbe 0x42635a
xor ecx, ecx
inc eax
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0045e549
push dword [ebp - 0x1c]
mov esi, eax
call fcn.0045e2f3
mov eax, dword [ebp - 0x3c]
add esp, 8
mov dword [ebp - 0x1c], esi
mov esi, 2
mov dword [ebp - 0x14], eax
mov ebx, eax
lea eax, [eax*2 + 2]
push eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x18], ebx
push dword [eax]
push dword [ebp - 0x1c]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov byte [ebp - 4], 1
push dword [ebp - 0x4c]
call fcn.0045e2f3
add esp, 4
cmp byte [edi + 0x84], 0
je 0x426415
lea ecx, [edi + 0x8c]
lea eax, [ebp - 0x1c]
cmp eax, ecx
je 0x4263f2
cmp ebx, dword [ecx + 8]
jbe 0x4263d4
xor ecx, ecx
lea eax, [ebx + 1]
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0045e549
push dword [edi + 0x8c]
mov esi, eax
call fcn.0045e2f3
lea ecx, [edi + 0x8c]
add esp, 8
mov dword [ecx], esi
mov dword [ecx + 8], ebx
lea eax, [ebx*2 + 2]
mov dword [ecx + 4], ebx
push eax
push dword [ebp - 0x1c]
push dword [ecx]
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea ecx, [edi + 0x8c]
cmp byte [ebp - 0x2d], 0
je 0x426407
push dword [ecx]
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
xor ebx, ebx
jmp 0x426876
mov ecx, edi
call fcn.00426f80
xor ebx, ebx
jmp 0x426876
cmp byte [edi + 0xa0], 0
jne 0x426441
mov esi, dword [ebp - 0x40]
lea eax, [ebp - 0x1c]
push esi
push eax
mov ecx, edi
call fcn.00425990
mov ebx, eax
test ebx, ebx
jne 0x426876
cmp byte [esi], al
jne 0x4264ab
mov ebx, dword [ebp - 0x18]
mov byte [esi], 1
lea ecx, [edi + 0x8c]
lea eax, [ebp - 0x1c]
cmp eax, ecx
je 0x42649f
cmp ebx, dword [ecx + 8]
jbe 0x426487
xor ecx, ecx
lea eax, [ebx + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0045e549
push dword [edi + 0x8c]
mov esi, eax
call fcn.0045e2f3
lea ecx, [edi + 0x8c]
add esp, 8
mov dword [ecx], esi
mov dword [ecx + 8], ebx
lea eax, [ebx*2 + 2]
mov dword [ecx + 4], ebx
push eax
push dword [ebp - 0x1c]
push dword [ecx]
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp byte [ebp - 0x2d], 0
je 0x4264b2
mov eax, dword [ebp - 0x40]
mov byte [eax], 0
xor ebx, ebx
jmp 0x426876
push 0x18
call fcn.0045e2c3
mov ebx, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x3c], ebx
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], eax
mov dword [ebx + 4], eax
mov dword [ebx], vtable.COutFileStream.0
mov dword [ebx + 8], 0xffffffff
mov byte [ebx + 0xc], al
mov dword [edi + 0xf8], ebx
mov byte [ebp - 4], 3
mov eax, dword [ebx]
push ebx
mov dword [ebp - 0x2c], ebx
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4642a0]
call esi
mov esi, dword [edi + 0xf8]
xor ecx, ecx
cmp byte [edi + 0xa0], cl
setne cl
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
lea ecx, [ecx*2 + 2]
mov dword [ebp - 0x34], ecx
mov byte [ebp - 4], 5
mov eax, dword [esi + 8]
cmp eax, 0xffffffff
je 0x42654a
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x34]
test eax, eax
jne 0x426543
xor al, al
jmp 0x42654c
mov dword [esi + 8], 0xffffffff
mov al, 1
mov byte [ebp - 4], 4
test al, al
je 0x42684d
push 0
push 0x80
push ecx
push 0
push 1
push 0x40000000
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esi + 8], eax
cmp eax, 0xffffffff
je 0x42684d
mov cl, byte [edi + 0xe8]
mov byte [edi + 0xd5], 1
test cl, cl
je 0x42670b
mov edx, dword [edi + 0xe4]
mov eax, dword [edi + 0xe0]
test edx, edx
jne 0x4265ad
test eax, eax
je 0x42670b
test edx, edx
ja 0x42670b
jb 0x4265c0
cmp eax, 0x1000
jae 0x42670b
cmp byte [edi + 0xd0], 0
je 0x42670b
mov eax, dword [edi + 0xcc]
and eax, 0xf0000000
cmp eax, 0xa0000000
jne 0x4265e3
mov al, 1
jmp 0x4265f5
test dword [edi + 0xcc], 0x400
je 0x42670b
xor al, al
mov edx, 0xd4
mov ecx, edi
mov byte [ecx + edx], al
mov esi, dword [edi + 0xe0]
cmp esi, dword [edi + 0x104]
je 0x42664d
mov eax, dword [edi + 0x100]
test eax, eax
je 0x42662a
push eax
call fcn.0045e2f3
add esp, 4
mov dword [edi + 0x100], 0
mov dword [edi + 0x104], 0
test esi, esi
je 0x42664d
push esi
call fcn.0045e549
add esp, 4
mov dword [edi + 0x100], eax
mov dword [edi + 0x104], esi
push 0x14
call fcn.0045e2c3
mov ecx, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x34], ecx
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 4], eax
mov dword [ecx], vtable.CBufPtrSeqOutStream.0
mov dword [edi + 0x108], ecx
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4642a0]
call esi
mov ecx, dword [edi + 0x10c]
test ecx, ecx
je 0x4266a0
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x4642a0]
call esi
mov eax, dword [ebp - 0x34]
mov dword [edi + 0x10c], eax
mov edx, dword [edi + 0x108]
mov ecx, dword [edi + 0x104]
mov eax, dword [edi + 0x100]
mov dword [edx + 8], eax
mov dword [edx + 0x10], 0
mov dword [edx + 0xc], ecx
mov ecx, dword [edi + 0x10c]
mov dword [ebp - 0x34], ecx
test ecx, ecx
je 0x4266e5
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4642a0]
call esi
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax]
test ecx, ecx
je 0x4266fe
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x4642a0]
call esi
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov dword [ecx], eax
jmp 0x426813
cmp byte [edi + 0x2d], 0
je 0x4267ad
cmp byte [edi + 0xa0], 0
jne 0x4267b6
test cl, cl
je 0x4267ad
mov edx, dword [edi + 0xe4]
mov eax, dword [edi + 0xe0]
test edx, edx
jne 0x426741
cmp eax, 0x1000
jbe 0x4267ad
mov ecx, dword [edi + 0xf8]
push edx
add ecx, 8
mov dword [edi + 0xf0], eax
push eax
mov dword [edi + 0xf4], edx
call fcn.0040eea0
mov byte [edi + 0xe9], al
test al, al
jne 0x426781
lea eax, [ebp - 0x1c]
mov ecx, edi
push eax
push str.Cannot_set_length_for_output_file
call fcn.00425210
mov ebx, eax
test ebx, ebx
jne 0x42685f
mov ecx, dword [edi + 0xf8]
lea ecx, [ecx + 8]
call fcn.0040ed80
test al, al
jne 0x4267ad
lea eax, [ebp - 0x1c]
mov ecx, edi
push eax
push str.Cannot_seek_to_begin_of_file
call fcn.00425210
mov ebx, eax
test ebx, ebx
jne 0x42685f
cmp byte [edi + 0xa0], 0
je 0x4267e2
mov ecx, dword [edi + 0xf8]
push 0
push 0
push dword [edi + 0x9c]
mov eax, dword [ecx]
push dword [edi + 0x98]
push ecx
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4642a0]
call esi
mov ebx, eax
test ebx, ebx
jne 0x42685f
mov ebx, dword [ebp - 0x3c]
push ebx
mov eax, dword [ebx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4642a0]
call esi
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax]
test ecx, ecx
je 0x426811
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x4642a0]
call esi
mov eax, dword [ebp - 0x38]
mov dword [eax], ebx
mov eax, dword [ebx]
push ebx
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4642a0]
call esi
mov ecx, dword [edi + 0xfc]
test ecx, ecx
je 0x42683d
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x4642a0]
call esi
mov eax, dword [ebp - 0x40]
mov dword [edi + 0xfc], ebx
xor ebx, ebx
mov byte [eax], 0
jmp 0x42685f
lea eax, [ebp - 0x1c]
mov ecx, edi
push eax
push str.Cannot_open_output_file
call fcn.00425210
mov ebx, eax
mov ecx, dword [ebp - 0x3c]
mov byte [ebp - 4], 0xb
push ecx
mov eax, dword [ecx]
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x4642a0]
call esi
push dword [ebp - 0x1c]
call fcn.0045e2f3
push dword [ebp - 0x28]
call fcn.0045e2f3
add esp, 8
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0045e090
mov esp, ebp
pop ebp
ret 8