Function at 0x4779ec
Capabilities:
Delete file
Get disk information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeac
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x154], ebx
mov dword [ebp - 0x150], ebx
mov dword [ebp - 0x140], ebx
mov dword [ebp - 0x14c], ebx
mov dword [ebp - 0x13c], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], ebx
mov esi, ecx
mov ebx, edx
mov dword [ebp - 0x14], eax
xor eax, eax
push ebp
push 0x477e86
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x88], 1
mov eax, dword [ebp - 0x14]
call fcn.00478e84
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jl 0x477e3b
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0xcc], 0
je 0x477e3b
xor eax, eax
mov dword [ebp - 0x30], eax
test esi, esi
jne 0x477a81
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x8c]
call fcn.00476744
mov esi, eax
lea ecx, [ebp - 0xc]
mov edx, 0x477ea0
mov eax, ebx
call fcn.00409edc
mov eax, ebx
call fcn.00409cb0
test al, al
je 0x477aa8
mov eax, ebx
call fcn.00405450
push eax
call sub.kernel32.dll_DeleteFileA
lea ecx, [ebp - 0x13c]
mov edx, 0x477ea0
mov eax, ebx
call fcn.00409edc
mov eax, dword [ebp - 0x13c]
lea edx, [ebp - 0x10]
call fcn.0040a05c
mov edx, esi
mov eax, dword [ebp - 0x14]
call fcn.0047828c
mov edi, eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x34]
mov dword [ebp - 0x28], eax
mov dl, 1
mov eax, dword [0x46bf5c]
call fcn.0046bfd8
mov dword [ebp - 0x2c], eax
xor edx, edx
push ebp
push 0x477e34
push dword fs:[edx]
mov dword fs:[edx], esp
mov edx, ebx
mov eax, dword [ebp - 0x2c]
call fcn.0046c39c
mov dl, 1
mov eax, dword [ebp - 0x2c]
call fcn.0046c104
xor eax, eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x2c]
call fcn.0046c0fc
test al, al
jne 0x477b40
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x44], 0
jne 0x477b40
cmp dword [eax + 0x40], 0
jne 0x477b40
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [edx + 0x30]
mov dword [eax + 0x40], ecx
mov ecx, dword [edx + 0x34]
mov dword [eax + 0x44], ecx
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x44], 0
jne 0x477b51
cmp dword [eax + 0x40], 0
jbe 0x477b90
jmp 0x477b53
jle 0x477b90
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xcc]
mov edx, dword [eax]
call dword [edx]
push edx
push eax
mov eax, dword [esi + 0x30]
mov edx, dword [esi + 0x34]
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x44]
mov eax, dword [eax + 0x40]
cmp edx, dword [esp + 4]
jne 0x477b8c
cmp eax, dword [esp]
pop edx
pop eax
jbe 0x477bbb
jmp 0x477b90
pop edx
pop eax
jle 0x477bbb
mov edx, 0x477eb0
mov eax, dword [ebp - 0x14]
call fcn.0046a980
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x88], 0
mov ecx, esi
mov edx, ebx
mov eax, dword [ebp - 0x14]
call fcn.0047781c
mov dword [ebp - 0x18], eax
jmp 0x477e0d
add edi, 0x1a
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x34]
test eax, eax
ja 0x477bcc
xor ecx, ecx
jmp 0x477bce
mov ecx, eax
add ecx, edi
mov eax, dword [ebp - 0x2c]
cmp dword [eax + 0x34], 0
jne 0x477be4
cmp dword [eax + 0x30], 0x7fffffff
jbe 0x477bed
jmp 0x477be6
jle 0x477bed
mov ebx, 0x7fffffff
jmp 0x477bf5
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x30]
mov ebx, eax
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x44], 0
jne 0x477c06
cmp dword [eax + 0x40], 0
jbe 0x477c30
jmp 0x477c08
jle 0x477c30
mov eax, ebx
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x44]
mov eax, dword [eax + 0x40]
cmp edx, dword [esp + 4]
jne 0x477c26
cmp eax, dword [esp]
pop edx
pop eax
jae 0x477c30
jmp 0x477c2a
pop edx
pop eax
jge 0x477c30
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax + 0x40]
cmp ebx, edi
jae 0x477c3b
mov dword [ebp - 0x18], 0xffffd5c6
cmp dword [ebp - 0x18], 0
jne 0x477e0d
mov eax, dword [ebp - 0x2c]
mov ebx, dword [eax + 0x24]
mov eax, ecx
xor edx, edx
div ebx
test edx, edx
je 0x477c60
mov eax, ecx
xor edx, edx
div ebx
inc eax
imul ebx
jmp 0x477c62
mov eax, ecx
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x34], eax
mov ecx, dword [ebp - 0x14]
mov dl, 1
mov eax, dword [0x471610]
call fcn.0047331c
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x30]
call fcn.0046f3f8
push 1
mov ecx, dword [ebp - 0x30]
mov edx, esi
mov eax, dword [ebp - 0x14]
call fcn.0047a224
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x477df9
mov eax, dword [ebp - 0x2c]
call fcn.0046c0fc
test al, al
jne 0x477df9
xor ebx, ebx
jmp 0x477df1
push 0
lea eax, [ebp - 0x140]
push eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x148], eax
mov byte [ebp - 0x144], 0xb
lea ecx, [ebp - 0x148]
mov edx, 0x2b1b
mov eax, dword [ebp - 0x14]
call fcn.0046b784
mov eax, dword [ebp - 0x140]
push eax
push 0
lea eax, [ebp - 0x14c]
push eax
mov dword [ebp - 0x148], 1
mov byte [ebp - 0x144], 0
lea ecx, [ebp - 0x148]
mov edx, 0x2b26
mov eax, dword [ebp - 0x14]
call fcn.0046b784
mov edx, dword [ebp - 0x14c]
lea eax, [ebp - 8]
pop ecx
call fcn.0040529c
push 0
movzx ecx, word [0x477ec8]
mov dl, 2
mov eax, dword [ebp - 8]
call fcn.00434cc8
mov eax, dword [ebp - 0x30]
cmp byte [eax + 0xc6], 1
jne 0x477d89
push 0
push 0
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x1c]
push eax
push 0x104
lea eax, [ebp - 0x138]
push eax
mov eax, dword [ebp - 0x2c]
add eax, 0x14
push eax
call sub.kernel32.dll_GetVolumeInformationA
mov edx, 0x477ecc
lea eax, [ebp - 0x138]
call fcn.0040a6c8
test eax, eax
jne 0x477df1
mov bl, 1
jmp 0x477df1
mov edi, dword [ebp - 0xc]
test edi, edi
je 0x477d95
sub edi, 4
mov edi, dword [edi]
lea edx, [ebp - 0x150]
mov eax, dword [ebp - 0xc]
call fcn.0040a094
mov eax, dword [ebp - 0x150]
mov dword [ebp - 0x34], eax
mov esi, dword [ebp - 0x34]
test esi, esi
je 0x477db8
sub esi, 4
mov esi, dword [esi]
lea eax, [ebp - 0x154]
push eax
mov ecx, edi
sub ecx, esi
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.004054b0
mov edx, dword [ebp - 0x154]
lea eax, [ebp - 4]
mov ecx, 0x477ee0
call fcn.0040529c
mov eax, dword [ebp - 4]
call fcn.00409cb0
test al, al
je 0x477df1
mov bl, 1
test bl, bl
je 0x477cb8
cmp dword [ebp - 0x18], 0
jne 0x477e0d
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
call fcn.0047a128
mov dword [ebp - 0x18], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x477e3b
lea eax, [ebp - 0x30]
call fcn.00410278
lea eax, [ebp - 0x2c]
call fcn.00410278
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
mov dword [eax + 0x34], edx
ret
cmp dword [ebp - 0x18], 0
jge 0x477e4b
mov dl, 1
mov eax, dword [ebp - 0x14]
call fcn.0046a7b4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x477e8d
lea eax, [ebp - 0x154]
mov edx, 3
call fcn.00404fb0
lea eax, [ebp - 0x140]
mov edx, 2
call fcn.00404fb0
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.00404fb0
ret