Function at 0x409520
Capabilities:
Delete file
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x440fa0
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4558c0]
xor eax, esp
push eax
lea eax, [esp + 0x3c]
mov dword fs:[0], eax
mov ebx, dword [esp + 0x4c]
call fcn.0040cccf
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x409565
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x44], 0
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, 0x104
or eax, ecx
jge 0x4095a3
push 0x104
lea ecx, [esp + 0x20]
call fcn.00401ea0
mov edi, dword [esp + 0x1c]
push 0x104
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, dword [edi - 8]
push eax
push edi
call fcn.004296ab
add esp, 8
test eax, eax
jl 0x409c3a
cmp eax, dword [edi - 8]
jg 0x409c3a
mov dword [edi - 0xc], eax
xor ecx, ecx
push 0x5c
mov word [edi + eax*2], cx
mov esi, dword [edi - 0xc]
push edi
call fcn.00429bf9
add esp, 8
test eax, eax
jne 0x4095ef
or eax, 0xffffffff
jmp 0x4095f3
sub eax, edi
sar eax, 1
sub esi, eax
dec esi
push esi
lea edx, [esp + 0x34]
push edx
lea ecx, [esp + 0x24]
call fcn.00403a10
lea ecx, [ebx + 0x104]
push eax
mov byte [esp + 0x48], 1
call fcn.00401b80
mov byte [esp + 0x44], 0
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40963b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebx + 0x20]
push 1
push 0
push ecx
mov dword [ebx + 0xf0], 1
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [ebx + 0xf8]
mov edx, dword [ebx + 0x20]
push 0
push 0x32
push eax
push edx
call dword [sym.imp.USER32.dll_SetTimer]
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.Youxun.exe
call fcn.00401800
call fcn.004080b0
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.MiniThunderPlatform.exe
call fcn.00401800
call fcn.004080b0
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.shoujizhushou.exe
call fcn.00401800
call fcn.004080b0
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.Youxun.exe
call fcn.00401800
call fcn.004080b0
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.MiniThunderPlatform.exe
call fcn.00401800
call fcn.004080b0
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.shoujizhushou.exe
call fcn.00401800
call fcn.004080b0
call fcn.0040cccf
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x409706
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
lea eax, [ebx + 0x10c]
mov byte [esp + 0x44], 2
mov ecx, dword [eax]
push str.Youxun.exe
push ecx
lea edx, [esp + 0x2c]
push 0x44863c
push edx
call fcn.004045e0
mov eax, dword [esp + 0x34]
add esp, 0x10
add eax, 0xfffffff0
mov dword [esp + 0x30], eax
mov ebp, dword [esp + 0x30]
push ecx
mov ecx, dword [ebp]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x30], esp
mov edi, esp
call eax
cmp dword [ebp + 0xc], 0
lea ecx, [ebp + 0xc]
jl 0x409776
cmp eax, dword [ebp]
jne 0x409776
mov esi, ebp
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x4097b1
mov ecx, dword [ebp + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov esi, eax
test esi, esi
je 0x409c35
mov eax, dword [ebp + 4]
mov dword [esi + 4], eax
mov eax, dword [ebp + 4]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [ebp + 0x10]
push edx
lea eax, [eax + eax + 2]
push eax
lea ecx, [esi + 0x10]
push ecx
call fcn.0042956a
add esp, 0x10
add esi, 0x10
mov dword [edi], esi
call fcn.00408370
test eax, eax
je 0x409c44
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x448c90
call fcn.00401800
mov byte [esp + 0x48], 3
push ecx
mov ecx, dword [ebp]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x20], esp
mov edi, esp
call eax
cmp dword [ebp + 0xc], 0
lea ecx, [ebp + 0xc]
jl 0x409805
cmp eax, dword [ebp]
jne 0x409805
mov esi, ebp
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x409840
mov ecx, dword [ebp + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov esi, eax
test esi, esi
je 0x409c35
mov eax, dword [ebp + 4]
mov dword [esi + 4], eax
mov eax, dword [ebp + 4]
lea ecx, [eax + eax + 2]
push ecx
add ebp, 0x10
lea edx, [eax + eax + 2]
push ebp
push edx
lea eax, [esi + 0x10]
push eax
call fcn.0042956a
add esp, 0x10
lea ecx, [esp + 0x30]
add esi, 0x10
mov dword [edi], esi
push ecx
mov byte [esp + 0x50], 2
call fcn.0040a020
mov ebp, dword [esp + 0x4c]
mov byte [esp + 0x44], 4
mov ecx, dword [eax]
mov esi, dword [ebp + 0x108]
lea edi, [ebp + 0x108]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x4098be
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x4098b2
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4098b2
push eax
call fcn.00401ef0
mov dword [esp + 0x30], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x4098a7
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [esp + 0x2c]
add ecx, 0x10
mov dword [edi], ecx
jmp 0x4098be
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, edi
call fcn.00401df0
mov byte [esp + 0x44], 2
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4098e3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.0040cccf
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x40955b
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x18], edi
mov byte [esp + 0x44], 5
mov edx, dword [ebp + 0x10c]
mov eax, dword [edx - 0xc]
lea ecx, [ebp + 0x10c]
dec eax
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00403a90
mov byte [esp + 0x44], 6
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
lea esi, [edi - 0x10]
cmp eax, esi
je 0x40998e
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x40997c
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x40997c
push eax
call fcn.00401ef0
mov edi, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x409973
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [esp + 0x18], edi
jmp 0x40998e
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x20]
call fcn.00401df0
mov edi, dword [esp + 0x18]
mov byte [esp + 0x44], 5
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4099b3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [edi - 0xc]
push 0x5c
push edi
call fcn.00429bf9
add esp, 8
test eax, eax
jne 0x4099ca
or eax, 0xffffffff
jmp 0x4099ce
sub eax, edi
sar eax, 1
sub esi, eax
dec esi
push esi
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esp + 0x20]
call fcn.00403a10
mov byte [esp + 0x44], 7
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
lea esi, [edi - 0x10]
cmp eax, esi
je 0x409a3c
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x409a2a
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x409a2a
push eax
call fcn.00401ef0
mov edi, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x409a21
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [esp + 0x18], edi
jmp 0x409a3c
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x20]
call fcn.00401df0
mov edi, dword [esp + 0x18]
mov byte [esp + 0x44], 5
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409a61
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x4c]
mov esi, dword [eax + 0x10c]
add eax, 0x10c
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
mov dword [esp + 0x30], esp
mov ebp, esp
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x409a9e
cmp eax, dword [esi]
jne 0x409a9e
mov ebx, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x409ad9
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x409c35
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.0042956a
add esp, 0x10
add ebx, 0x10
mov dword [ebp], ebx
call fcn.00402690
mov esi, dword [edi - 0xc]
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, esi
add esp, 4
or eax, ecx
jge 0x409b09
push esi
lea ecx, [esp + 0x1c]
call fcn.00401ea0
mov edi, dword [esp + 0x18]
lea ecx, [esi + 1]
push ecx
push edi
call fcn.00429be2
add esp, 8
test esi, esi
jl 0x409c3a
cmp esi, dword [edi - 8]
jg 0x409c3a
xor edx, edx
mov dword [edi - 0xc], esi
mov word [edi + esi*2], dx
mov ecx, str.youxunbox
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x409b5d
test dx, dx
je 0x409b59
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x409b5d
add eax, 4
add ecx, 4
test dx, dx
jne 0x409b37
xor eax, eax
jmp 0x409b62
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x409c02
mov ebp, dword [esp + 0x4c]
mov esi, dword [ebp + 0x10c]
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
sub esi, 0x10
mov dword [esp + 0x30], esp
mov dword [esp + 0x30], esp
call edx
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x409bb9
cmp eax, dword [esi]
jne 0x409bb9
mov ebx, esi
mov eax, 1
lock xadd dword [ecx], eax
mov ecx, dword [esp + 0x30]
add ebx, 0x10
mov dword [ecx], ebx
mov ecx, ebp
call fcn.004084c0
jmp 0x409c0b
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x409c35
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.0042956a
mov ecx, dword [esp + 0x40]
add ebx, 0x10
mov dword [ecx], ebx
add esp, 0x10
mov ecx, ebp
call fcn.004084c0
jmp 0x409c0b
mov esi, dword [esp + 0x4c]
call fcn.0040a330
add edi, 0xfffffff0
mov byte [esp + 0x44], 2
lea edx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x409746
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
jmp 0x409746
call fcn.004022a0
push 0x80070057
call fcn.00401090
call fcn.0040cccf
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x409c5e
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0x44], 8
call fcn.0040cccf
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x409c8d
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x18]
push ecx
mov byte [esp + 0x48], 9
mov edi, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
push 0xb
push 0
mov dword [esp + 0x24], 0
call edi
test eax, eax
jne 0x409ccc
lea ebx, [esp + 0x18]
lea esi, [esp + 0x20]
call fcn.00408440
mov edx, dword [esp + 0x20]
push 0x4483b8
push edx
lea eax, [esp + 0x30]
push 0x4483c0
push eax
call fcn.004045e0
mov ebx, dword [esp + 0x38]
add esp, 0xc
add ebx, 0xfffffff0
mov dword [esp + 0x38], esp
mov esi, esp
push ebx
mov dword [esp + 0x3c], ebx
call fcn.00401ef0
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.00408370
test eax, eax
je 0x409d2e
push ecx
mov dword [esp + 0x34], esp
mov esi, esp
push ebx
call fcn.00401ef0
mov ecx, dword [esp + 0x54]
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.004084c0
call fcn.0040cccf
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x409d48
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [esp + 0x30], ebx
mov byte [esp + 0x44], 0xa
call fcn.0040cccf
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x409d77
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x2c]
push ecx
push 0x10
mov byte [esp + 0x4c], 0xb
push 0
mov dword [esp + 0x38], 0
call edi
test eax, eax
jne 0x409db4
lea ebx, [esp + 0x2c]
lea esi, [esp + 0x30]
call fcn.00408440
mov ebx, dword [esp + 0x30]
push 0x4483b8
push ebx
lea edx, [esp + 0x20]
push str._s_s
push edx
call fcn.004045e0
mov esi, dword [esp + 0x28]
add esp, 0xc
add esi, 0xfffffff0
mov dword [esp + 0x3c], esp
mov edi, esp
push esi
call fcn.00401ef0
add eax, 0x10
add esp, 4
mov dword [edi], eax
call fcn.00408370
test eax, eax
je 0x409dfb
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov edi, dword [esp + 0x4c]
push edi
call fcn.00408ad0
mov ecx, dword [edi + 0x20]
push 1
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov byte [esp + 0x44], 0xa
lea edx, [esi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x409e31
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
lea eax, [ebx - 0x10]
mov byte [esp + 0x44], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409e52
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x44], 8
mov eax, dword [esp + 0x34]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409e74
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x44], 2
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409e99
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x44], 0
lea ecx, [ebp + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409eb8
mov ecx, dword [ebp]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebp
call edx
mov dword [esp + 0x44], 0xffffffff
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409ee0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x3c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret 4