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

Disassembly:
push 0xffffffffffffffff
push 0x444a06
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.00414930
xor ebx, ebx
mov dword [esp + 0x948], ebx
mov dword [esp + 0x20], ebx
call fcn.0043ad9c
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.00415b60
lea eax, [ebp + 0x800]
mov edi, 0x446a11
mov esi, eax
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x418a33
push 0xfffffffffffffffd
call fcn.00424a4c
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 0x418a40
lea eax, [esp + 0x130]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x418a54
sub eax, edx
cmp byte [esp + eax + 0x12f], 0x5c
jne 0x418a81
lea eax, [esp + 0x130]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x418a71
sub eax, edx
mov byte [esp + eax + 0x12f], cl
push 0x44849c
push str.filelist.txt
call fcn.0042547a
mov edi, eax
add esp, 8
cmp edi, ebx
mov dword [esp + 0x14], edi
je 0x419131
mov al, byte [edi + 0xc]
xor esi, esi
test al, 0x10
mov dword [esp + 0x24], esi
jne 0x418ad2
mov edi, edi
push edi
lea eax, [esp + 0x544]
push 0x400
push eax
call fcn.00426fee
mov al, byte [edi + 0xc]
add esp, 0xc
inc esi
test al, 0x10
je 0x418ab0
mov dword [esp + 0x24], esi
push edi
call fcn.00427481
mov al, byte [edi + 0xc]
add esp, 4
test al, 0x10
jne 0x418cd7
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.00426fee
lea edx, [esp + 0x54c]
push 0xd
push edx
call fcn.00425170
add esp, 0x14
test eax, eax
je 0x418b25
mov byte [eax], 0
lea eax, [esp + 0x540]
push 0xa
push eax
call fcn.00425170
add esp, 8
test eax, eax
je 0x418b3e
mov byte [eax], 0
lea ecx, [esp + 0x540]
push 0x4485dc
push ecx
call fcn.00424b40
add esp, 8
test eax, eax
jne 0x418b70
lea edx, [esp + 0x540]
push 0x4485d8
push edx
call fcn.00424b40
add esp, 8
test eax, eax
je 0x418b77
mov byte [eax], 0
mov bl, 1
jmp 0x418b79
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 0x418b87
sub eax, edx
push eax
lea eax, [esp + 0x544]
push eax
lea ecx, [esp + 0x18]
call fcn.00402e40
lea ecx, [esp + 0x10]
call fcn.00402fc0
lea ecx, [esp + 0x10]
call fcn.00402bb0
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 0x418bc1
lea ecx, [esp + 0x540]
push ecx
call fcn.00425545
lea edx, [esp + 0x544]
push 0x2c
push edx
call fcn.00425170
mov esi, eax
add esp, 0xc
test esi, esi
je 0x418ccd
inc esi
push esi
call fcn.00425545
push 0x2c
push esi
call fcn.00425170
add esp, 0xc
test eax, eax
je 0x418ccd
inc eax
lea edx, [esp + 0x2c]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x418c15
lea eax, [esp + 0x2c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x418c26
sub eax, edx
mov dword [esp + 0x28], eax
je 0x418ccd
lea eax, [esp + 0x2c]
push 0x4485c4
push eax
call fcn.00424b40
mov esi, eax
add esp, 8
test esi, esi
jne 0x418c65
lea ecx, [esp + 0x2c]
push 0x4485c0
push ecx
call fcn.00424b40
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.00424a8c
add esp, 0x10
test bl, bl
jne 0x418ca2
test esi, esi
jne 0x418ca2
lea edx, [esp + 0x338]
push edx
lea ecx, [esp + 0x1c]
call fcn.00414a00
jmp 0x418cb8
mov eax, dword [esp + 0x1c]
push eax
lea ecx, [esp + 0x33c]
push ecx
lea ecx, [esp + 0x20]
call fcn.00414c50
inc dword [esp + 0x20]
fild dword [esp + 0x20]
fidiv dword [esp + 0x24]
fmul dword [0x448254]
fstp dword [ebp]
test byte [edi + 0xc], 0x10
je 0x418af1
mov esi, dword [esp + 0x14]
push esi
call fcn.00427481
add esp, 4
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
test byte [esi + 0xc], 0x10
jne 0x418fe2
jmp 0x418d00
mov edx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x544]
push 0x400
push eax
mov byte [esp + 0x54c], 0
call fcn.00426fee
lea ecx, [esp + 0x54c]
push 0xd
push ecx
call fcn.00425170
add esp, 0x14
test eax, eax
je 0x418d38
mov byte [eax], 0
lea edx, [esp + 0x540]
push 0xa
push edx
call fcn.00425170
add esp, 8
test eax, eax
je 0x418d51
mov byte [eax], 0
lea eax, [esp + 0x540]
push 0x4485dc
push eax
call fcn.00424b40
add esp, 8
test eax, eax
jne 0x418d83
lea ecx, [esp + 0x540]
push 0x4485d8
push ecx
call fcn.00424b40
add esp, 8
test eax, eax
je 0x418d8a
mov byte [eax], 0
mov bl, 1
jmp 0x418d8c
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 0x418da0
sub eax, edx
push eax
lea edx, [esp + 0x544]
push edx
lea ecx, [esp + 0x18]
call fcn.00402e40
lea ecx, [esp + 0x10]
call fcn.00402fc0
lea ecx, [esp + 0x10]
call fcn.00402bb0
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 0x418de0
lea eax, [esp + 0x540]
push eax
call fcn.00425545
lea ecx, [esp + 0x544]
push 0x2c
push ecx
call fcn.00425170
mov esi, eax
add esp, 0xc
test esi, esi
je 0x418fd4
inc esi
push esi
call fcn.00425545
push 0x2c
push esi
call fcn.00425170
add esp, 0xc
test eax, eax
je 0x418fd4
inc eax
lea edx, [esp + 0x2c]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x418e34
lea eax, [esp + 0x2c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x418e45
sub eax, edx
mov dword [esp + 0x28], eax
je 0x418fd4
lea edx, [esp + 0x2c]
push 0x4485c4
push edx
call fcn.00424b40
mov esi, eax
add esp, 8
test esi, esi
jne 0x418e84
lea eax, [esp + 0x2c]
push 0x4485c0
push eax
call fcn.00424b40
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.00424a8c
add esp, 0x10
test bl, bl
jne 0x418eae
test esi, esi
je 0x418ec4
mov ecx, dword [esp + 0x1c]
push ecx
lea edx, [esp + 0x33c]
push edx
lea ecx, [esp + 0x20]
call fcn.00414c50
xor eax, eax
jmp 0x418ed0
mov cl, byte [esp + eax + 0x338]
mov byte [esp + eax + 0x234], cl
inc eax
test cl, cl
jne 0x418ed0
lea eax, [esp + 0x338]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x418ef0
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 0x418f38
test cl, cl
je 0x418f34
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x418f38
add eax, 2
add esi, 2
test cl, cl
jne 0x418f10
xor eax, eax
jmp 0x418f3d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x418fd4
mov ebx, dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
lea edi, [esp + 0x338]
lea eax, [esp + 0x234]
sub edi, eax
jmp 0x418f60
lea ecx, [edi + ebp]
cmp byte [esp + ecx + 0x234], 0x5c
jne 0x418f98
push ebp
lea edx, [esp + 0x33c]
push edx
lea eax, [esp + 0x23c]
push eax
call fcn.00425030
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 0x418fcb
test cl, cl
je 0x418fc7
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x418fcb
add eax, 2
add esi, 2
test cl, cl
jne 0x418fa7
xor eax, eax
jmp 0x418fd0
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x418f60
mov eax, dword [esp + 0x14]
test byte [eax + 0xc], 0x10
je 0x418d00
mov ecx, dword [esp + 0x14]
push ecx
call fcn.0042527a
lea edx, [esp + 0x134]
push edx
lea eax, [esp + 0x34]
push str._s_filelist.txt
push eax
call fcn.00424a8c
lea ecx, [esp + 0x3c]
push ecx
call fcn.00426c69
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 0x419030
sub eax, edx
cmp byte [esp + eax + 0x43b], 0x5c
jne 0x419060
lea eax, [esp + 0x43c]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x419050
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.00424a8c
lea edx, [esp + 0x38]
push edx
call fcn.00426c69
lea eax, [esp + 0x140]
push eax
lea ecx, [esp + 0x40]
push str._scache.dat
push ecx
call fcn.00424a8c
lea edx, [esp + 0x48]
push edx
call fcn.00426c69
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 0x4190c0
sub eax, edx
mov edi, eax
test edi, edi
jle 0x41914d
mov ebp, dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
nop
cmp byte [esp + edi + 0x130], 0x5c
jne 0x41912a
lea ecx, [edi - 1]
push ecx
lea edx, [esp + 0x134]
push edx
lea eax, [esp + 0x23c]
push eax
call fcn.00425030
add esp, 0xc
mov byte [esp + edi + 0x234], 0
xor esi, esi
lea ecx, [esp + 0x234]
push ecx
call ebp
test eax, eax
jne 0x41912a
push 0x64
call ebx
inc esi
cmp esi, 0xa
jl 0x419110
jmp 0x41914d
dec edi
test edi, edi
jg 0x4190e0
jmp 0x41914d
mov al, byte [ebp + 0x2710]
test al, al
je 0x41914d
push ebx
push str.filelist.txt
push str.No_cache_filelist
push ebx
call dword [0x457308]
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 0x419173
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.00415b50
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