Function at 0x42c620
Capabilities:
Delete file
Get disk information

Disassembly:
push 0xffffffffffffffff
push 0x47c4d2
mov eax, dword fs:[0]
push eax
sub esp, 0xc4
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a9128]
xor eax, esp
push eax
lea eax, [esp + 0xd8]
mov dword fs:[0], eax
lea ecx, [esp + 0x6c]
call fcn.004078a0
lea ecx, [esp + 0xb4]
mov dword [esp + 0xe0], 0
call fcn.004078a0
lea ecx, [esp + 0x48]
mov byte [esp + 0xe0], 1
call fcn.004078a0
lea ecx, [esp + 0x90]
mov byte [esp + 0xe0], 2
call fcn.004078a0
mov byte [esp + 0xe0], 3
call fcn.00434e50
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42c6b4
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x6c]
mov byte [esp + 0xe0], 4
call fcn.00407900
lea ecx, [esp + 0xb4]
call fcn.00407900
lea ecx, [esp + 0x48]
call fcn.00407900
lea ecx, [esp + 0x90]
call fcn.00407900
mov ebp, dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
push 0
push 0
call ebp
mov esi, eax
lea ecx, [esi + 1]
push ecx
call fcn.0043379c
add esp, 4
mov edi, eax
push edi
push esi
call ebp
mov eax, edi
lea edx, [eax + 1]
jmp 0x42c720
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x42c720
sub eax, edx
mov esi, eax
call fcn.00434e50
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42c747
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x34], eax
test esi, esi
mov byte [esp + 0xe0], 5
jbe 0x42c99b
mov bl, 8
lea esp, [esp]
test edi, edi
jne 0x42c778
xor eax, eax
jmp 0x42c78b
mov eax, edi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x42c780
sub eax, edx
push eax
push edi
lea ecx, [esp + 0x3c]
call fcn.00401910
mov ebp, dword [esp + 0x34]
cmp dword [ebp - 0xc], 0
jl 0x42c9f0
mov cl, byte [ebp]
mov byte [esp + 0x20], cl
mov edx, dword [esp + 0x20]
push edx
call fcn.0040ad80
add esp, 4
test eax, eax
je 0x42c7d3
lea edi, [edi + esi + 1]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x42c7c5
jmp 0x42c989
cmp dword [ebp - 0xc], 0
jl 0x42c9f0
mov al, byte [ebp]
mov byte [esp + 0x1c], al
mov ecx, dword [esp + 0x1c]
push 0
push ecx
lea edx, [esp + 0x38]
push edx
call fcn.0040b970
push str.mi.dat
push eax
lea eax, [esp + 0x2c]
push eax
mov byte [esp + 0xf8], 6
call fcn.00401d00
add esp, 0x18
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xe4], 7
call fcn.00401b60
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0xe0], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c84a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0xe0], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c872
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], 6
jle 0x42c8a6
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x70]
call fcn.00408480
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0xb8]
call fcn.00408850
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [ebp - 0xc], 0
jl 0x42c9f0
mov dl, byte [ebp]
mov byte [esp + 0x28], dl
mov eax, dword [esp + 0x28]
push 0
push eax
lea ecx, [esp + 0x2c]
push ecx
call fcn.0040b970
push str.wei.dat
push eax
lea edx, [esp + 0x40]
push edx
mov byte [esp + 0xf8], bl
call fcn.00401d00
add esp, 0x18
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xe4], 9
call fcn.00401b60
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0xe0], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c91b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0xe0], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c943
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], 7
jle 0x42c977
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x4c]
call fcn.00408480
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x94]
call fcn.00408850
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea edi, [edi + esi + 1]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x42c980
sub eax, edx
mov esi, eax
test esi, esi
ja 0x42c770
mov ebp, dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
push edi
call fcn.00433797
add esp, 4
push 0
push 0
call ebp
mov esi, eax
lea edx, [esi + 1]
push edx
call fcn.0043379c
add esp, 4
mov edi, eax
push edi
push esi
mov dword [esp + 0x20], edi
call ebp
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x42c9c7
sub eax, edx
mov dword [esp + 0x1c], eax
call fcn.00434e50
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42c9fa
push 0x80004005
call fcn.00401000
push 0x80070057
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebp, [eax + 0x10]
mov dword [esp + 0x20], ebp
cmp dword [esp + 0x1c], 0
mov esi, dword [esp + 0x18]
mov bl, 0xa
mov byte [esp + 0xe0], bl
jbe 0x42cda5
test esi, esi
jne 0x42ca2a
xor eax, eax
jmp 0x42ca3b
mov eax, esi
lea edx, [eax + 1]
nop
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x42ca30
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x28]
call fcn.00401910
lea ecx, [esp + 0x6c]
call fcn.00407900
mov eax, dword [esp + 0xbc]
test eax, eax
mov ebp, dword [esp + 0x20]
mov edi, eax
je 0x42cb22
test edi, edi
mov eax, edi
je 0x42ce8e
mov esi, dword [eax + 8]
test esi, esi
mov edi, dword [edi]
je 0x42cb16
mov eax, dword [esi + 4]
cmp dword [eax - 0xc], 0
lea ecx, [esi + 4]
jl 0x42c9f0
cmp dword [ebp - 0xc], 0
mov al, byte [eax]
jl 0x42c9f0
cmp al, byte [ebp]
jne 0x42cb16
mov eax, dword [ecx]
cmp dword [eax - 0xc], 0
jl 0x42c9f0
cmp byte [eax], 0x3a
jne 0x42cac5
mov edx, dword [esi + 0x10]
push edx
lea eax, [esi + 8]
push eax
add esi, 0xc
push esi
push ecx
lea ecx, [esp + 0x7c]
call fcn.004086c0
jmp 0x42cb16
push 1
lea edx, [esp + 0x28]
push edx
call fcn.004019c0
mov ecx, dword [esi + 0x10]
push ecx
lea edx, [esi + 8]
push edx
add esi, 0xc
push esi
push eax
lea ecx, [esp + 0x7c]
mov byte [esp + 0xf0], 0xb
call fcn.004086c0
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0xe0], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42cb16
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
jne 0x42ca64
mov esi, dword [esp + 0x18]
cmp dword [esp + 0x8c], 0
jle 0x42cbe6
cmp dword [ebp - 0xc], 0
jl 0x42c9f0
mov cl, byte [ebp]
mov byte [esp + 0x2c], cl
mov edx, dword [esp + 0x2c]
push 1
push edx
lea eax, [esp + 0x38]
push eax
call fcn.0040b970
push str.mi.dat
push eax
lea ecx, [esp + 0x3c]
push ecx
mov byte [esp + 0xf8], 0xc
call fcn.00401d00
add esp, 0x18
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xe4], 0xd
call fcn.00401b60
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0xe0], 0xc
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42cba7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0xe0], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42cbce
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], 6
jle 0x42cbe6
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x70]
call fcn.00407e00
lea ecx, [esp + 0x48]
call fcn.00407900
mov eax, dword [esp + 0x98]
test eax, eax
mov edi, eax
je 0x42ccbe
test edi, edi
mov eax, edi
je 0x42ce8e
mov esi, dword [eax + 8]
test esi, esi
mov edi, dword [edi]
je 0x42ccb2
mov eax, dword [esi + 4]
cmp dword [eax - 0xc], 0
lea ecx, [esi + 4]
jl 0x42c9f0
cmp dword [ebp - 0xc], 0
mov al, byte [eax]
jl 0x42c9f0
cmp al, byte [ebp]
jne 0x42ccb2
mov eax, dword [ecx]
cmp dword [eax - 0xc], 0
jl 0x42c9f0
cmp byte [eax], 0x3a
jne 0x42cc61
mov eax, dword [esi + 0x10]
push eax
lea edx, [esi + 8]
push edx
add esi, 0xc
push esi
push ecx
lea ecx, [esp + 0x58]
call fcn.004086c0
jmp 0x42ccb2
push 1
lea eax, [esp + 0x44]
push eax
call fcn.004019c0
mov ecx, dword [esi + 0x10]
push ecx
lea edx, [esi + 8]
push edx
add esi, 0xc
push esi
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0xf0], 0xe
call fcn.004086c0
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0xe0], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ccb2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
jne 0x42cc00
mov esi, dword [esp + 0x18]
cmp dword [esp + 0x68], 0
jle 0x42cd7f
cmp dword [ebp - 0xc], 0
jl 0x42c9f0
mov cl, byte [ebp]
mov byte [esp + 0x38], cl
mov edx, dword [esp + 0x38]
push 1
push edx
lea eax, [esp + 0x4c]
push eax
call fcn.0040b970
push str.wei.dat
push eax
lea ecx, [esp + 0x50]
push ecx
mov byte [esp + 0xf8], 0xf
call fcn.00401d00
add esp, 0x18
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xe4], 0x10
call fcn.00401b60
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov byte [esp + 0xe0], 0xf
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42cd40
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
mov byte [esp + 0xe0], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42cd67
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], 7
jle 0x42cd7f
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x4c]
call fcn.00407e00
mov eax, dword [esp + 0x1c]
lea esi, [esi + eax + 1]
mov eax, esi
mov dword [esp + 0x18], esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x42cd90
sub eax, edx
mov dword [esp + 0x1c], eax
jne 0x42ca22
push esi
call fcn.00433797
lea eax, [ebp - 0x10]
add esp, 4
mov byte [esp + 0xe0], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42cdd2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
mov byte [esp + 0xe0], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42cdfa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0xe0], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ce22
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x90]
mov byte [esp + 0xe0], 2
call fcn.00407960
lea ecx, [esp + 0x48]
mov byte [esp + 0xe0], 1
call fcn.00407960
lea ecx, [esp + 0xb4]
mov byte [esp + 0xe0], 0
call fcn.00407960
lea ecx, [esp + 0x6c]
mov dword [esp + 0xe0], 0xffffffff
call fcn.00407960
mov eax, 1
mov ecx, dword [esp + 0xd8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd0
ret
jmp fcn.00433e1f