Function at 0x4044d0
Capabilities:
Delete directory
Terminate process

Disassembly:
push 0xffffffffffffffff
push 0x429ba6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x82c
push ebx
push ebp
push esi
mov ebp, ecx
push edi
lea ecx, [esp + 0x18]
call fcn.00407c20
xor ebx, ebx
mov dword [esp + 0x844], ebx
mov dword [esp + 0x20], ebx
call fcn.00421821
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x10], eax
xor eax, eax
mov al, byte [ebp + 0x2710]
lea ecx, [esp + 0x18]
mov byte [esp + 0x844], 1
push eax
call fcn.004072d0
lea eax, [ebp + 0x800]
mov edi, 0x42bdd2
mov esi, eax
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x404553
push 0xfffffffffffffffd
call fcn.0040d358
lea edx, [esp + 0x2c]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x404560
lea eax, [esp + 0x2c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404571
sub eax, edx
cmp byte [esp + eax + 0x2b], 0x5c
jne 0x404595
lea eax, [esp + 0x2c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404588
sub eax, edx
mov byte [esp + eax + 0x2b], cl
push 0x42c2c0
push str.filelist.txt
call fcn.0040dadb
mov edi, eax
add esp, 8
cmp edi, ebx
mov dword [esp + 0x14], edi
je 0x404bdf
mov al, byte [edi + 0xc]
xor esi, esi
test al, 0x10
mov dword [esp + 0x24], esi
jne 0x4045e4
push edi
lea eax, [esp + 0x440]
push 0x400
push eax
call fcn.0040f0fd
mov al, byte [edi + 0xc]
add esp, 0xc
inc esi
test al, 0x10
je 0x4045c2
mov dword [esp + 0x24], esi
push edi
call fcn.0040f074
mov al, byte [edi + 0xc]
add esp, 4
test al, 0x10
jne 0x404807
mov ebp, dword [esp + 0x84c]
mov edi, dword [esp + 0x14]
push edi
lea ecx, [esp + 0x440]
push 0x400
push ecx
mov byte [esp + 0x448], 0
call fcn.0040f0fd
lea edx, [esp + 0x448]
push 0xd
push edx
call fcn.0040dcc0
add esp, 0x14
test eax, eax
je 0x404637
mov byte [eax], 0
lea eax, [esp + 0x43c]
push 0xa
push eax
call fcn.0040dcc0
add esp, 8
test eax, eax
je 0x404650
mov byte [eax], 0
lea ecx, [esp + 0x43c]
push 0x42c2ac
push ecx
call fcn.0040d480
add esp, 8
test eax, eax
jne 0x404682
lea edx, [esp + 0x43c]
push 0x42c2a8
push edx
call fcn.0040d480
add esp, 8
test eax, eax
je 0x404689
mov byte [eax], 0
mov bl, 1
jmp 0x40468b
xor bl, bl
lea eax, [esp + 0x43c]
mov byte [esp + 0x1c], bl
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4046a0
sub eax, edx
push eax
lea eax, [esp + 0x440]
push eax
lea ecx, [esp + 0x18]
call fcn.00403f10
lea ecx, [esp + 0x10]
call fcn.00403fb0
lea ecx, [esp + 0x10]
call fcn.00404000
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x43c]
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4046e0
lea ecx, [esp + 0x43c]
push ecx
call fcn.0040d478
lea edx, [esp + 0x440]
push 0x2c
push edx
call fcn.0040dcc0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4047fd
inc esi
push esi
call fcn.0040d478
push 0x2c
push esi
call fcn.0040dcc0
add esp, 0xc
test eax, eax
je 0x4047fd
inc eax
lea edx, [esp + 0x130]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x404737
lea eax, [esp + 0x130]
lea edx, [eax + 1]
jmp 0x404750
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404750
sub eax, edx
mov dword [esp + 0x28], eax
je 0x4047fd
lea eax, [esp + 0x130]
push 0x42c2a4
push eax
call fcn.0040d480
mov esi, eax
add esp, 8
test esi, esi
jne 0x404795
lea ecx, [esp + 0x130]
push 0x42c2a0
push ecx
call fcn.0040d480
add esp, 8
mov esi, eax
lea edx, [esp + 0x130]
push edx
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x340]
push str._s_s
push ecx
call fcn.0040d398
add esp, 0x10
test bl, bl
jne 0x4047d2
test esi, esi
jne 0x4047d2
lea edx, [esp + 0x338]
push edx
lea ecx, [esp + 0x1c]
call fcn.00407700
jmp 0x4047e8
mov eax, dword [esp + 0x1c]
push eax
lea ecx, [esp + 0x33c]
push ecx
lea ecx, [esp + 0x20]
call fcn.00407940
inc dword [esp + 0x20]
fild dword [esp + 0x20]
fidiv dword [esp + 0x24]
fmul dword [0x42c29c]
fstp dword [ebp]
test byte [edi + 0xc], 0x10
je 0x404603
mov esi, dword [esp + 0x14]
push esi
call fcn.0040f074
add esp, 4
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
test byte [esi + 0xc], 0x10
jne 0x404b10
jmp 0x404830
mov edx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x440]
push 0x400
push eax
mov byte [esp + 0x448], 0
call fcn.0040f0fd
lea ecx, [esp + 0x448]
push 0xd
push ecx
call fcn.0040dcc0
add esp, 0x14
test eax, eax
je 0x404868
mov byte [eax], 0
lea edx, [esp + 0x43c]
push 0xa
push edx
call fcn.0040dcc0
add esp, 8
test eax, eax
je 0x404881
mov byte [eax], 0
lea eax, [esp + 0x43c]
push 0x42c2ac
push eax
call fcn.0040d480
add esp, 8
test eax, eax
jne 0x4048b3
lea ecx, [esp + 0x43c]
push 0x42c2a8
push ecx
call fcn.0040d480
add esp, 8
test eax, eax
je 0x4048ba
mov byte [eax], 0
mov bl, 1
jmp 0x4048bc
xor bl, bl
lea eax, [esp + 0x43c]
mov byte [esp + 0x1c], bl
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4048d0
sub eax, edx
push eax
lea edx, [esp + 0x440]
push edx
lea ecx, [esp + 0x18]
call fcn.00403f10
lea ecx, [esp + 0x10]
call fcn.00403fb0
lea ecx, [esp + 0x10]
call fcn.00404000
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x43c]
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x404910
lea eax, [esp + 0x43c]
push eax
call fcn.0040d478
lea ecx, [esp + 0x440]
push 0x2c
push ecx
call fcn.0040dcc0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x404b02
inc esi
push esi
call fcn.0040d478
push 0x2c
push esi
call fcn.0040dcc0
add esp, 0xc
test eax, eax
je 0x404b02
inc eax
lea edx, [esp + 0x130]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x404967
lea eax, [esp + 0x130]
lea edx, [eax + 1]
jmp 0x404980
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404980
sub eax, edx
mov dword [esp + 0x28], eax
je 0x404b02
lea edx, [esp + 0x130]
push 0x42c2a4
push edx
call fcn.0040d480
mov esi, eax
add esp, 8
test esi, esi
jne 0x4049c5
lea eax, [esp + 0x130]
push 0x42c2a0
push eax
call fcn.0040d480
add esp, 8
mov esi, eax
lea ecx, [esp + 0x130]
push ecx
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x340]
push str._s_s
push eax
call fcn.0040d398
add esp, 0x10
test bl, bl
jne 0x4049ef
test esi, esi
je 0x404a05
mov ecx, dword [esp + 0x1c]
push ecx
lea edx, [esp + 0x33c]
push edx
lea ecx, [esp + 0x20]
call fcn.00407940
xor eax, eax
jmp 0x404a10
mov cl, byte [esp + eax + 0x338]
mov byte [esp + eax + 0x234], cl
inc eax
test cl, cl
jne 0x404a10
lea eax, [esp + 0x338]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404a30
sub eax, edx
mov ebp, eax
lea esi, [esp + 0x2c]
lea eax, [esp + 0x234]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x404a6e
test cl, cl
je 0x404a6a
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x404a6e
add eax, 2
add esi, 2
test cl, cl
jne 0x404a46
xor eax, eax
jmp 0x404a73
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x404b02
mov ebx, dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
lea edi, [esp + 0x338]
lea eax, [esp + 0x234]
sub edi, eax
lea ecx, [edi + ebp]
cmp byte [esp + ecx + 0x234], 0x5c
jne 0x404ac9
push ebp
lea edx, [esp + 0x33c]
push edx
lea eax, [esp + 0x23c]
push eax
call fcn.0040ea40
add esp, 0xc
lea ecx, [esp + 0x234]
push ecx
mov byte [esp + ebp + 0x238], 0
call ebx
dec ebp
lea esi, [esp + 0x2c]
lea eax, [esp + 0x234]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x404af9
test cl, cl
je 0x404af5
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x404af9
add eax, 2
add esi, 2
test cl, cl
jne 0x404ad5
xor eax, eax
jmp 0x404afe
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x404a91
mov eax, dword [esp + 0x14]
test byte [eax + 0xc], 0x10
je 0x404830
mov ecx, dword [esp + 0x14]
push ecx
call fcn.0040f023
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x138]
push str._s_filelist.txt
push eax
call fcn.0040d398
lea ecx, [esp + 0x140]
push ecx
call fcn.0040efad
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x148]
push str._scache.dat
push eax
call fcn.0040d398
lea ecx, [esp + 0x150]
push ecx
call fcn.0040efad
add esp, 0x24
lea edx, [esp + 0x2c]
push edx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
lea eax, [esp + 0x2c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404b77
sub eax, edx
mov edi, eax
test edi, edi
jle 0x404bfb
mov ebp, dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
cmp byte [esp + edi + 0x2c], 0x5c
jne 0x404bd8
lea eax, [edi - 1]
push eax
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x23c]
push edx
call fcn.0040ea40
add esp, 0xc
mov byte [esp + edi + 0x234], 0
xor esi, esi
lea esp, [esp]
lea eax, [esp + 0x234]
push eax
call ebp
test eax, eax
jne 0x404bd8
push 0x64
call ebx
inc esi
cmp esi, 0xa
jl 0x404bc0
dec edi
test edi, edi
jg 0x404b92
jmp 0x404bfb
mov al, byte [ebp + 0x2710]
test al, al
je 0x404bfb
push ebx
push str.filelist.txt
push str.No_cache_filelist
push ebx
call dword [0x43a2bc]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x844], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404c21
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea ecx, [esp + 0x18]
mov dword [esp + 0x844], 0xffffffff
call fcn.004029f0
mov ecx, dword [esp + 0x83c]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x838
ret 4