Function at 0x409800
Capabilities:
Delete file
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x575efb
mov eax, dword fs:[0]
push eax
sub esp, 0x104
mov eax, dword [0x5d61f0]
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 dword [ebp - 0xf0], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x10c], 0
mov dword [ebp - 4], 0
mov eax, dword [ebp + 0xc]
or ebx, 0xffffffff
cmp dword [eax - 0xc], 0
mov esi, 1
jne 0x40991d
lea eax, [ecx + 0x16c]
push str.setting.ini
push eax
lea eax, [ebp - 0xfc]
push eax
call fcn.0040de30
add esp, 0xc
mov byte [ebp - 4], 1
mov edi, dword [eax]
mov eax, dword [ebp + 0xc]
mov edx, esi
mov ecx, dword [eax - 8]
sub edx, dword [eax - 4]
sub ecx, 0x104
or ecx, edx
jge 0x4098a9
push 0x104
lea ecx, [ebp + 0xc]
call fcn.00402390
mov eax, dword [ebp + 0xc]
push edi
push 0x104
push eax
push 0x5ac810
push str.downlink
push str.Config
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0xfc]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4098e8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp + 0xc]
push dword [eax - 8]
push eax
call fcn.0054a435
mov ecx, eax
add esp, 8
test ecx, ecx
js 0x409939
mov eax, dword [ebp + 0xc]
cmp ecx, dword [eax - 8]
jg 0x409939
mov dword [eax - 0xc], ecx
mov eax, dword [ebp + 0xc]
xor edx, edx
mov word [eax + ecx*2], dx
mov eax, dword [ebp + 0xc]
cmp dword [eax - 0xc], edx
je 0x40a15e
call fcn.004290db
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x409943
push 0x80004005
call fcn.00402650
push 0x80070057
call fcn.00402650
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x108], edi
mov eax, dword [ebp - 0xf0]
add eax, 0x16c
push str.setting.ini
mov byte [ebp - 4], 2
push eax
mov dword [ebp - 0xec], eax
lea eax, [ebp - 0xf4]
push eax
call fcn.0040de30
add esp, 0xc
mov byte [ebp - 4], 3
mov eax, dword [eax]
mov dword [ebp - 0xfc], eax
mov eax, dword [edi - 8]
mov ecx, esi
sub ecx, dword [edi - 4]
sub eax, 0x104
or eax, ecx
jge 0x4099b0
push 0x104
lea ecx, [ebp - 0x108]
call fcn.00402390
mov edi, dword [ebp - 0x108]
push dword [ebp - 0xfc]
push 0x104
push edi
push 0x5ac810
push str.downkey
push str.Config
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0xf4]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4099f4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [edi - 8]
push edi
call fcn.0054a435
add esp, 8
test eax, eax
js 0x409939
cmp eax, dword [edi - 8]
jg 0x409939
xor ecx, ecx
mov dword [edi - 0xc], eax
mov word [edi + eax*2], cx
call fcn.004290db
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x409a36
push 0x80004005
call fcn.00402650
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0xfc], esi
push str.setting.ini
mov byte [ebp - 4], 4
push dword [ebp - 0xec]
lea eax, [ebp - 0xe8]
push eax
call fcn.0040de30
add esp, 0xc
mov byte [ebp - 4], 5
mov eax, dword [eax]
mov dword [ebp - 0xf4], eax
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x409a9a
push 0x104
lea ecx, [ebp - 0xfc]
call fcn.00402390
mov esi, dword [ebp - 0xfc]
push dword [ebp - 0xf4]
push 0x104
push esi
push 0x5ac810
push str.downmd5
push str.Config
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0xe8]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409ade
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [esi - 8]
push esi
call fcn.0054a435
add esp, 8
test eax, eax
js 0x409939
cmp eax, dword [esi - 8]
jg 0x409939
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xf4], ecx
mov ecx, dword [eax - 0xc]
push 0x2f
push eax
mov dword [ebp - 0xe8], ecx
call fcn.0054aed1
add esp, 8
test eax, eax
jne 0x409b2a
or eax, 0xffffffff
jmp 0x409b2f
sub eax, dword [ebp + 0xc]
sar eax, 1
mov ecx, dword [ebp - 0xe8]
sub ecx, eax
dec ecx
push ecx
lea eax, [ebp - 0xf4]
push eax
lea ecx, [ebp + 0xc]
call fcn.004041e0
push ecx
mov eax, esp
push str.data_
mov byte [ebp - 4], 6
push dword [ebp - 0xec]
push eax
call fcn.0040de30
add esp, 0xc
call fcn.00407050
add esp, 4
lea eax, [ebp - 0xe4]
push str.data_
push dword [ebp - 0xec]
push eax
call fcn.0040de30
add esp, 0xc
lea ecx, [ebp - 0xf4]
push ecx
push eax
lea eax, [ebp - 0xe8]
push eax
mov byte [ebp - 4], 7
call fcn.0040c720
add esp, 0xc
mov ecx, dword [ebp - 0xf0]
add ecx, 0x170
push eax
mov byte [ebp - 4], 8
call fcn.00402530
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0xe8]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409bd9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0xe4]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409bfc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0xf0]
push ecx
mov eax, dword [eax + 0x170]
sub eax, 0x10
mov ebx, esp
push eax
call fcn.00402680
add eax, 0x10
add esp, 4
mov dword [ebx], eax
call fcn.0041a200
add esp, 4
test eax, eax
je 0x409d9c
lea eax, [ebp - 0xe4]
push eax
mov dword [ebp - 0xe8], 0
call fcn.0040a210
push str.setting.ini
push eax
lea eax, [ebp - 0xe8]
push eax
mov byte [ebp - 4], 9
call fcn.0040de30
add esp, 0xc
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0xe4]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409c7f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0xe8]
mov ebx, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push 0x5ac810
push str.downlink
push str.Config
call ebx
push dword [ebp - 0xe8]
push 0x5ac810
push str.downkey
push str.Config
call ebx
push dword [ebp - 0xe8]
push 0x5ac810
push str.downmd5
push str.Config
call ebx
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ecx + 0x170]
sub eax, 0x10
push eax
call fcn.00402680
mov ecx, dword [ebp - 0x104]
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0xe8]
add eax, 0x10
add edx, 0xfffffff0
mov dword [ecx], eax
or ebx, 0xffffffff
add esp, 4
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409d13
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0xf4]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409d36
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409d53
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409d70
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp + 0xc]
add esi, 0xfffffff0
lea eax, [esi + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x409d91
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x104]
jmp 0x40a1b6
push ecx
lea ecx, [ebp - 0xe0]
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x20], 0
call fcn.0041a6b0
mov byte [ebp - 4], 0xc
call fcn.004290db
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x409dfe
push 0x80004005
call fcn.00402650
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xe8], eax
mov byte [ebp - 4], 0xd
push str.MonVideoDesktop.exe
push dword [ebp - 0xec]
lea eax, [ebp - 0x100]
push eax
mov dword [ebp - 0x100], 0
call fcn.0040de30
add esp, 8
mov byte [ebp - 4], 0xe
mov ecx, esp
mov dword [ebp - 0xe4], esp
push 0x5ad28c
mov dword [ebp - 0x14], 0
call fcn.00402110
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x100]
push ecx
add eax, 0xfffffff0
mov ebx, esp
push eax
call fcn.00402680
add eax, 0x10
mov dword [ebx], eax
add esp, 4
lea eax, [ebp - 0x14]
push eax
mov byte [ebp - 4], 0xe
call fcn.004085e0
mov eax, dword [ebp - 0xf0]
mov byte [ebp - 4], 0x10
push dword [eax + 0x160]
lea eax, [ebp - 0xe8]
push dword [ebp - 0x14]
push edi
push str.http:__mengluht.707891.com_cgi_VideoDeskTopDown.ashx_videodesktop_downcountdo_Key_sversion_schannel_s
push eax
call fcn.00404a00
push ecx
mov ecx, esp
push 0x5ac810
call fcn.0040c800
mov ebx, dword [ebp - 0xe8]
push ebx
lea ecx, [ebp - 0xe0]
call fcn.0041ab00
mov eax, dword [ebp - 0xf0]
push ecx
mov eax, dword [eax + 0x170]
sub eax, 0x10
mov dword [ebp - 0xec], esp
mov dword [ebp - 0xe4], esp
push eax
call fcn.00402680
mov ecx, dword [ebp - 0xe4]
add eax, 0x10
mov dword [ecx], eax
mov byte [ebp - 4], 0x11
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
mov dword [ebp - 0xe4], esp
push eax
call fcn.00402680
mov edx, dword [ebp - 0xe4]
add eax, 0x10
mov dword [edx], eax
add esp, 4
mov ecx, 1
mov byte [ebp - 4], 0x10
call fcn.004013e0
add esp, 4
mov dword [ebp - 0xe4], esp
mov eax, dword [ebp - 0xf0]
mov eax, dword [eax + 0x170]
sub eax, 0x10
push eax
call fcn.00402680
mov ecx, dword [ebp - 0xe4]
add eax, 0x10
mov dword [ecx], eax
add esp, 4
lea ecx, [ebp - 0xec]
call fcn.00405840
add esp, 4
mov byte [ebp - 4], 0x12
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x409f76
push 0x80004005
call fcn.00402650
push ecx
push esi
call fcn.0054ad65
add esp, 8
test eax, eax
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0xec]
setne byte [ebp - 0xf5]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409fad
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0xf5], 0
je 0x409fcd
mov eax, dword [ebp - 0xf0]
push dword [eax + 0x170]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x40a091
lea eax, [ebp - 0xe4]
push eax
mov dword [ebp - 0xec], 0
call fcn.0040a210
push str.setting.ini
push eax
lea eax, [ebp - 0xec]
push eax
mov byte [ebp - 4], 0x13
call fcn.0040de30
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0xe4]
add edx, 0xfffffff0
add esp, 0xc
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40a020
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0xec]
push 0x5ac810
push str.downlink
push str.Config
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push dword [ebp - 0xec]
push 0x5ac810
push str.downkey
push str.Config
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push dword [ebp - 0xec]
push 0x5ac810
push str.downmd5
push str.Config
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov edx, dword [ebp - 0xec]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40a091
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40a0b2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x100]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40a0d6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [ebx - 0x10]
or ebx, 0xffffffff
mov byte [ebp - 4], 0xc
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40a0f6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0xe0]
call fcn.0041a7c0
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0xf4]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40a124
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40a141
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40a15e
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0xf0]
push 0
push 0
push 0xbb9
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, dword [esi + 0x170]
sub eax, 0x10
push eax
call fcn.00402680
mov esi, dword [ebp - 0x104]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp + 0xc]
add eax, 0x10
add edx, 0xfffffff0
mov dword [esi], eax
add esp, 4
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x40a1b4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, esi
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.0054940a
mov esp, ebp
pop ebp
ret 8