Function at 0x4044d0
Capabilities:
Delete directory
Get common file path
Terminate process

Disassembly:
push 0xffffffffffffffff
push 0x42b6b6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x930
push ebx
push ebp
push esi
mov ebp, ecx
push edi
lea ecx, [esp + 0x18]
call fcn.00407ae0
xor ebx, ebx
mov dword [esp + 0x948], ebx
mov dword [esp + 0x20], ebx
call fcn.00423331
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 + 0x948], 1
push eax
call fcn.00407650
lea eax, [ebp + 0x800]
mov edi, 0x42ddd2
mov esi, eax
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x404553
push 0xfffffffffffffffd
call fcn.0040e894
lea edx, [esp + 0x130]
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 + 0x130]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404574
sub eax, edx
cmp byte [esp + eax + 0x12f], 0x5c
jne 0x4045a1
lea eax, [esp + 0x130]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404591
sub eax, edx
mov byte [esp + eax + 0x12f], cl
push 0x42e2cc
push str.filelist.txt
call fcn.0040f01b
mov edi, eax
add esp, 8
cmp edi, ebx
mov dword [esp + 0x14], edi
je 0x404c51
mov al, byte [edi + 0xc]
xor esi, esi
test al, 0x10
mov dword [esp + 0x24], esi
jne 0x4045f2
mov edi, edi
push edi
lea eax, [esp + 0x544]
push 0x400
push eax
call fcn.0041063d
mov al, byte [edi + 0xc]
add esp, 0xc
inc esi
test al, 0x10
je 0x4045d0
mov dword [esp + 0x24], esi
push edi
call fcn.004105b4
mov al, byte [edi + 0xc]
add esp, 4
test al, 0x10
jne 0x4047f7
mov ebp, dword [esp + 0x950]
mov edi, dword [esp + 0x14]
push edi
lea ecx, [esp + 0x544]
push 0x400
push ecx
mov byte [esp + 0x54c], 0
call fcn.0041063d
lea edx, [esp + 0x54c]
push 0xd
push edx
call fcn.0040f200
add esp, 0x14
test eax, eax
je 0x404645
mov byte [eax], 0
lea eax, [esp + 0x540]
push 0xa
push eax
call fcn.0040f200
add esp, 8
test eax, eax
je 0x40465e
mov byte [eax], 0
lea ecx, [esp + 0x540]
push 0x42e2b8
push ecx
call fcn.0040e9c0
add esp, 8
test eax, eax
jne 0x404690
lea edx, [esp + 0x540]
push 0x42e2b4
push edx
call fcn.0040e9c0
add esp, 8
test eax, eax
je 0x404697
mov byte [eax], 0
mov bl, 1
jmp 0x404699
xor bl, bl
lea eax, [esp + 0x540]
mov byte [esp + 0x1c], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4046a7
sub eax, edx
push eax
lea eax, [esp + 0x544]
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 + 0x540]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4046e1
lea ecx, [esp + 0x540]
push ecx
call fcn.0040e9b4
lea edx, [esp + 0x544]
push 0x2c
push edx
call fcn.0040f200
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4047ed
inc esi
push esi
call fcn.0040e9b4
push 0x2c
push esi
call fcn.0040f200
add esp, 0xc
test eax, eax
je 0x4047ed
inc eax
lea edx, [esp + 0x2c]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x404735
lea eax, [esp + 0x2c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404746
sub eax, edx
mov dword [esp + 0x28], eax
je 0x4047ed
lea eax, [esp + 0x2c]
push 0x42e2b0
push eax
call fcn.0040e9c0
mov esi, eax
add esp, 8
test esi, esi
jne 0x404785
lea ecx, [esp + 0x2c]
push 0x42e2ac
push ecx
call fcn.0040e9c0
add esp, 8
mov esi, eax
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x134]
push eax
lea ecx, [esp + 0x340]
push str._s_s
push ecx
call fcn.0040e8d4
add esp, 0x10
test bl, bl
jne 0x4047c2
test esi, esi
jne 0x4047c2
lea edx, [esp + 0x338]
push edx
lea ecx, [esp + 0x1c]
call fcn.00407bb0
jmp 0x4047d8
mov eax, dword [esp + 0x1c]
push eax
lea ecx, [esp + 0x33c]
push ecx
lea ecx, [esp + 0x20]
call fcn.00407e00
inc dword [esp + 0x20]
fild dword [esp + 0x20]
fidiv dword [esp + 0x24]
fmul dword [0x42e2a8]
fstp dword [ebp]
test byte [edi + 0xc], 0x10
je 0x404611
mov esi, dword [esp + 0x14]
push esi
call fcn.004105b4
add esp, 4
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
test byte [esi + 0xc], 0x10
jne 0x404b02
jmp 0x404820
mov edx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x544]
push 0x400
push eax
mov byte [esp + 0x54c], 0
call fcn.0041063d
lea ecx, [esp + 0x54c]
push 0xd
push ecx
call fcn.0040f200
add esp, 0x14
test eax, eax
je 0x404858
mov byte [eax], 0
lea edx, [esp + 0x540]
push 0xa
push edx
call fcn.0040f200
add esp, 8
test eax, eax
je 0x404871
mov byte [eax], 0
lea eax, [esp + 0x540]
push 0x42e2b8
push eax
call fcn.0040e9c0
add esp, 8
test eax, eax
jne 0x4048a3
lea ecx, [esp + 0x540]
push 0x42e2b4
push ecx
call fcn.0040e9c0
add esp, 8
test eax, eax
je 0x4048aa
mov byte [eax], 0
mov bl, 1
jmp 0x4048ac
xor bl, bl
lea eax, [esp + 0x540]
mov byte [esp + 0x1c], bl
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4048c0
sub eax, edx
push eax
lea edx, [esp + 0x544]
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 + 0x540]
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x404900
lea eax, [esp + 0x540]
push eax
call fcn.0040e9b4
lea ecx, [esp + 0x544]
push 0x2c
push ecx
call fcn.0040f200
mov esi, eax
add esp, 0xc
test esi, esi
je 0x404af4
inc esi
push esi
call fcn.0040e9b4
push 0x2c
push esi
call fcn.0040f200
add esp, 0xc
test eax, eax
je 0x404af4
inc eax
lea edx, [esp + 0x2c]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x404954
lea eax, [esp + 0x2c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404965
sub eax, edx
mov dword [esp + 0x28], eax
je 0x404af4
lea edx, [esp + 0x2c]
push 0x42e2b0
push edx
call fcn.0040e9c0
mov esi, eax
add esp, 8
test esi, esi
jne 0x4049a4
lea eax, [esp + 0x2c]
push 0x42e2ac
push eax
call fcn.0040e9c0
add esp, 8
mov esi, eax
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x134]
push edx
lea eax, [esp + 0x340]
push str._s_s
push eax
call fcn.0040e8d4
add esp, 0x10
test bl, bl
jne 0x4049ce
test esi, esi
je 0x4049e4
mov ecx, dword [esp + 0x1c]
push ecx
lea edx, [esp + 0x33c]
push edx
lea ecx, [esp + 0x20]
call fcn.00407e00
xor eax, eax
jmp 0x4049f0
mov cl, byte [esp + eax + 0x338]
mov byte [esp + eax + 0x234], cl
inc eax
test cl, cl
jne 0x4049f0
lea eax, [esp + 0x338]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404a10
sub eax, edx
mov ebp, eax
lea esi, [esp + 0x130]
lea eax, [esp + 0x234]
lea esp, [esp]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x404a58
test cl, cl
je 0x404a54
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x404a58
add eax, 2
add esi, 2
test cl, cl
jne 0x404a30
xor eax, eax
jmp 0x404a5d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x404af4
mov ebx, dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
lea edi, [esp + 0x338]
lea eax, [esp + 0x234]
sub edi, eax
jmp 0x404a80
lea ecx, [edi + ebp]
cmp byte [esp + ecx + 0x234], 0x5c
jne 0x404ab8
push ebp
lea edx, [esp + 0x33c]
push edx
lea eax, [esp + 0x23c]
push eax
call fcn.0040ff80
add esp, 0xc
lea ecx, [esp + 0x234]
push ecx
mov byte [esp + ebp + 0x238], 0
call ebx
dec ebp
lea esi, [esp + 0x130]
lea eax, [esp + 0x234]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x404aeb
test cl, cl
je 0x404ae7
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x404aeb
add eax, 2
add esi, 2
test cl, cl
jne 0x404ac7
xor eax, eax
jmp 0x404af0
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x404a80
mov eax, dword [esp + 0x14]
test byte [eax + 0xc], 0x10
je 0x404820
mov ecx, dword [esp + 0x14]
push ecx
call fcn.00410563
lea edx, [esp + 0x134]
push edx
lea eax, [esp + 0x34]
push str._s_filelist.txt
push eax
call fcn.0040e8d4
lea ecx, [esp + 0x3c]
push ecx
call fcn.004104ed
add esp, 0x14
lea edx, [esp + 0x43c]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [esp + 0x43c]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404b50
sub eax, edx
cmp byte [esp + eax + 0x43b], 0x5c
jne 0x404b80
lea eax, [esp + 0x43c]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404b70
sub eax, edx
mov byte [esp + eax + 0x43b], cl
lea eax, [esp + 0x43c]
push eax
lea ecx, [esp + 0x30]
push str._s_filelist.txt
push ecx
call fcn.0040e8d4
lea edx, [esp + 0x38]
push edx
call fcn.004104ed
lea eax, [esp + 0x140]
push eax
lea ecx, [esp + 0x40]
push str._scache.dat
push ecx
call fcn.0040e8d4
lea edx, [esp + 0x48]
push edx
call fcn.004104ed
add esp, 0x20
lea eax, [esp + 0x130]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
lea eax, [esp + 0x130]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404be0
sub eax, edx
mov edi, eax
test edi, edi
jle 0x404c6d
mov ebp, dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
nop
cmp byte [esp + edi + 0x130], 0x5c
jne 0x404c4a
lea ecx, [edi - 1]
push ecx
lea edx, [esp + 0x134]
push edx
lea eax, [esp + 0x23c]
push eax
call fcn.0040ff80
add esp, 0xc
mov byte [esp + edi + 0x234], 0
xor esi, esi
lea ecx, [esp + 0x234]
push ecx
call ebp
test eax, eax
jne 0x404c4a
push 0x64
call ebx
inc esi
cmp esi, 0xa
jl 0x404c30
jmp 0x404c6d
dec edi
test edi, edi
jg 0x404c00
jmp 0x404c6d
mov al, byte [ebp + 0x2710]
test al, al
je 0x404c6d
push ebx
push str.filelist.txt
push str.No_cache_filelist
push ebx
call dword [0x43c2f8]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x948], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x404c93
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea ecx, [esp + 0x18]
mov dword [esp + 0x948], 0xffffffff
call fcn.004067d0
mov ecx, dword [esp + 0x940]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x93c
ret 4