Function at 0x4063e0
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x431b0a
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
mov eax, dword [0x44606c]
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 dword [ebp - 0x54], edi
xor eax, eax
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x50], eax
call fcn.004021c0
mov ecx, eax
test ecx, ecx
je 0x406b35
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov ebx, 0x440dd0
mov dword [ebp - 4], 0
shr ebx, 0x10
lea ecx, [ebp - 0x18]
test ebx, ebx
jne 0x40645b
mov eax, 0x440dd0
movzx esi, ax
push esi
mov dword [ebp - 0x40], esi
call fcn.004098b0
jmp 0x406472
push 0
push 0x440dd0
call fcn.00409ad0
mov eax, 0x440dd0
movzx esi, ax
mov dword [ebp - 0x40], esi
mov dword [ebp - 4], 1
call fcn.004021c0
mov ecx, eax
test ecx, ecx
je 0x406b3f
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
test ebx, ebx
jne 0x4064a6
push esi
call fcn.004098b0
jmp 0x4064b2
push 0
push 0x440dd0
call fcn.00409ad0
mov byte [ebp - 4], 3
lea edx, [ebp - 0x4c]
mov ecx, dword [0x44800c]
mov dword [ebp - 0x4c], 0
call fcn.00405cd0
mov esi, eax
call fcn.004021c0
mov ecx, eax
test ecx, ecx
je 0x406b49
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 4
test esi, esi
jne 0x4064f3
xor ecx, ecx
jmp 0x406501
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4064f8
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x1c]
call fcn.00409ad0
mov byte [ebp - 4], 5
push dword [0x44800c]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov esi, dword [ebp - 0x1c]
mov eax, dword [esi - 0xc]
cmp eax, 1
jge 0x4065dc
call fcn.004021c0
mov ecx, eax
test ecx, ecx
je 0x406b53
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi], eax
mov byte [ebp - 4], 6
mov ecx, edi
test ebx, ebx
jne 0x406557
push dword [ebp - 0x40]
call fcn.004098b0
jmp 0x406563
push 0
push 0x440dd0
call fcn.00409ad0
or ebx, 0xffffffff
mov byte [ebp - 4], 3
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x406581
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40659f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x4065be
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, edi
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.00413261
mov esp, ebp
pop ebp
ret
or ebx, 0xffffffff
test eax, eax
jns 0x4065e7
or ecx, ebx
jmp 0x4065fe
push str.____
push esi
call fcn.0041c495
mov ecx, eax
add esp, 8
sub ecx, esi
test eax, eax
cmove ecx, ebx
push ecx
lea eax, [ebp - 0x44]
mov dword [ebp - 0x40], ecx
push eax
lea ecx, [ebp - 0x1c]
call fcn.004077a0
mov byte [ebp - 4], 7
mov edx, dword [eax]
mov edi, dword [ebp - 0x18]
lea eax, [edx - 0x10]
lea ecx, [edi - 0x10]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], ecx
cmp eax, ecx
je 0x406671
cmp dword [ecx + 0xc], 0
lea edi, [ecx + 0xc]
jl 0x406662
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x406662
mov ecx, dword [ebp - 0x4c]
call fcn.004099f0
mov dword [ebp - 0x4c], eax
mov ecx, ebx
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x40665a
mov edi, dword [ebp - 0x48]
push edi
mov ecx, dword [edi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x4c]
lea edi, [eax + 0x10]
mov dword [ebp - 0x18], edi
jmp 0x406671
push dword [edx - 0xc]
lea ecx, [ebp - 0x18]
push edx
call fcn.00409ad0
mov edi, dword [ebp - 0x18]
mov byte [ebp - 4], 5
mov eax, ebx
mov edx, dword [ebp - 0x44]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40668f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x40]
mov ecx, dword [esi - 0xc]
sub ecx, edx
lea eax, [edx + 4]
xor edx, edx
test eax, eax
cmovns edx, eax
xor eax, eax
add ecx, 0xfffffffc
mov dword [ebp - 0x48], edx
cmovns eax, ecx
mov dword [ebp - 0x44], eax
mov eax, 0x7fffffff
mov ecx, dword [ebp - 0x44]
sub eax, edx
cmp eax, ecx
jl 0x406b2b
lea eax, [ecx + edx]
cmp eax, dword [esi - 0xc]
mov eax, dword [esi - 0xc]
jle 0x4066d0
mov ecx, eax
sub ecx, edx
cmp edx, eax
mov dword [ebp - 0x40], 0
mov eax, dword [ebp - 0x40]
cmovle eax, ecx
mov dword [ebp - 0x40], eax
test edx, edx
jne 0x406750
add eax, edx
cmp eax, dword [esi - 0xc]
jne 0x406750
mov ecx, dword [esi - 0x10]
add esi, 0xfffffff0
mov dword [ebp - 0x4c], esi
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
mov ecx, eax
lea eax, [esi + 0xc]
jl 0x406715
cmp ecx, dword [esi]
jne 0x406715
lock inc dword [eax]
lea eax, [esi + 0x10]
mov dword [ebp - 0x40], eax
jmp 0x406787
mov eax, dword [ecx]
push 1
push dword [esi + 4]
call dword [eax]
mov ecx, eax
mov dword [ebp - 0x44], ecx
test ecx, ecx
je 0x406b5d
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
lea eax, [esi + 0x10]
mov edx, dword [esi + 4]
add ecx, 0x10
inc edx
push edx
push eax
call fcn.00409a50
mov esi, dword [ebp - 0x44]
add esp, 8
lea eax, [esi + 0x10]
mov dword [ebp - 0x40], eax
jmp 0x406787
mov ecx, dword [esi - 0x10]
lea eax, [esi - 0x10]
mov dword [ebp - 0x4c], eax
test ecx, ecx
je 0x406766
mov eax, dword [ecx]
call dword [eax + 0x10]
test eax, eax
jne 0x406772
call fcn.004021c0
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
push eax
push dword [ebp - 0x40]
mov eax, dword [ebp - 0x48]
lea ecx, [ebp - 0x40]
add eax, esi
push eax
call fcn.00409290
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x50], 2
mov byte [ebp - 4], 8
lea edx, [eax - 0x10]
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x48], edx
lea ecx, [esi - 0x10]
mov dword [ebp - 0x44], ecx
cmp edx, ecx
je 0x4067f1
cmp dword [ecx + 0xc], 0
jl 0x4067df
mov esi, dword [ebp - 0x44]
mov ecx, dword [edx]
cmp ecx, dword [esi]
jne 0x4067df
mov ecx, edx
call fcn.004099f0
mov dword [ebp - 0x44], eax
lea edx, [esi + 0xc]
mov ecx, ebx
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4067d7
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x44]
lea esi, [eax + 0x10]
mov dword [ebp - 0x14], esi
jmp 0x4067ee
push dword [eax - 0xc]
lea ecx, [ebp - 0x14]
push eax
call fcn.00409ad0
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x48]
mov byte [ebp - 4], 5
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x406809
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esi - 0xc], 0
jge 0x406814
or ecx, 0xffffffff
jmp 0x40682b
push 0x441394
push esi
call fcn.0041c495
mov ecx, eax
add esp, 8
sub ecx, esi
test eax, eax
cmove ecx, ebx
push ecx
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x14]
call fcn.004077a0
mov byte [ebp - 4], 9
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x40], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x44], eax
cmp eax, ecx
je 0x406898
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x406889
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x406889
mov ecx, dword [ebp - 0x44]
call fcn.004099f0
mov dword [ebp - 0x44], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x406881
mov esi, dword [ebp - 0x40]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x44]
lea esi, [eax + 0x10]
mov dword [ebp - 0x14], esi
jmp 0x406898
push dword [edx - 0xc]
lea ecx, [ebp - 0x14]
push edx
call fcn.00409ad0
mov esi, dword [ebp - 0x14]
mov byte [ebp - 4], 5
mov eax, ebx
mov edx, dword [ebp - 0x48]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4068b6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 0x20], 0
mov byte [ebp - 4], 0xa
mov eax, dword [0x447f78]
mov dword [ebp - 0x40], 0
mov ecx, dword [eax - 0x10]
test ecx, ecx
je 0x4068df
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, eax
test ecx, ecx
jne 0x4068f5
call fcn.004021c0
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
mov ecx, eax
test ecx, ecx
je 0x406b62
mov eax, dword [ecx]
call dword [eax + 0xc]
mov edx, dword [0x447f78]
lea ecx, [ebp - 0x40]
push 3
push 0x44139c
add eax, 0x10
mov dword [ebp - 0x50], 6
push dword [edx - 0xc]
mov dword [ebp - 0x40], eax
call fcn.00409310
add esp, 0xc
lea eax, [ebp - 0x18]
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x54]
push eax
call fcn.004076e0
add esp, 4
mov dword [ebp - 0x44], eax
mov byte [ebp - 4], 0xc
mov ecx, dword [eax]
mov dword [ebp - 0x48], 0
mov ecx, dword [ecx - 0x10]
test ecx, ecx
je 0x406956
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, eax
test ecx, ecx
jne 0x40696c
call fcn.004021c0
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
mov ecx, eax
test ecx, ecx
je 0x406b6c
mov eax, dword [ecx]
call dword [eax + 0xc]
mov edx, dword [ebp - 0x44]
lea ecx, [ebp - 0x48]
push 3
push 0x441398
add eax, 0x10
mov dword [ebp - 0x50], 0xe
mov edx, dword [edx]
mov dword [ebp - 0x48], eax
push dword [edx - 0xc]
call fcn.00409310
add esp, 0xc
lea eax, [ebp - 0x14]
lea edx, [ebp - 0x48]
lea ecx, [ebp - 0x20]
push eax
call fcn.004076e0
add esp, 4
mov dword [ebp - 0x50], 6
mov byte [ebp - 4], 0xe
mov eax, ebx
mov edx, dword [ebp - 0x48]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4069cf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xf
mov eax, ebx
mov edx, dword [ebp - 0x54]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4069ed
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x10
mov eax, ebx
mov edx, dword [ebp - 0x40]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x406a0b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x20]
mov edx, eax
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
mov byte [ebp - 0x3c], 0
lea ecx, [edx + 1]
mov dword [ebp - 0x44], ecx
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x406a28
sub edx, dword [ebp - 0x44]
lea ecx, [ebp - 0x3c]
push edx
push eax
call fcn.00409390
sub esp, 0x18
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x24], 0
mov ecx, esp
push eax
call fcn.004079e0
lea ecx, [ebp - 0x24]
call fcn.00405880
mov edx, dword [ebp - 0x24]
add esp, 0x18
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x406a7a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x28]
cmp edx, 0x10
jb 0x406ab2
mov ecx, dword [ebp - 0x3c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406aa8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x406b76
push edx
push ecx
call fcn.004137b1
add esp, 8
mov byte [ebp - 4], 5
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x406ad0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
mov eax, ebx
mov edx, dword [ebp - 0x4c]
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x406aeb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x406b06
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
add edi, 0xfffffff0
lock xadd dword [edi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x4065c0
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4065c0
push 0x80070216
call fcn.00402030
push 0x80004005
call fcn.00402030
push 0x80004005
call fcn.00402030
push 0x80004005
call fcn.00402030
push 0x80004005
call fcn.00402030
call fcn.00409cc0
push 0x80004005
call fcn.00402030
push 0x80004005
call fcn.00402030
call fcn.004189c5
int3