Function at 0x40ad20
Capabilities:
Check if file exists
Delete file
Hash data with md5
Move file

Disassembly:
push 0xffffffffffffffff
push 0x517f8b
mov eax, dword fs:[0]
push eax
sub esp, 0x404
mov eax, dword [0x5685f0]
xor eax, esp
mov dword [esp + 0x400], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5685f0]
xor eax, esp
push eax
lea eax, [esp + 0x418]
mov dword fs:[0], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], ecx
push 0x1b
push str.http:__downsrf.eastday.com_
lea edx, [esp + 0x434]
xor ebx, ebx
push edx
mov dword [esp + 0x42c], ebx
xor esi, esi
call fcn.00407b20
cmp eax, 0xffffffff
jne 0x40ada7
push 0x1b
push str.http:__down.znyshurufa.com_
lea eax, [esp + 0x434]
push eax
call fcn.00407b20
cmp eax, 0xffffffff
je 0x40adac
mov esi, 1
push 0x1c
push str.https:__downsrf.eastday.com_
lea ecx, [esp + 0x434]
push ecx
call fcn.00407b20
cmp eax, 0xffffffff
jne 0x40adfd
push 0x1c
push str.https:__down.znyshurufa.com_
lea edx, [esp + 0x434]
push edx
call fcn.00407b20
cmp eax, 0xffffffff
jne 0x40adfd
cmp esi, ebx
jne 0x40adfd
cmp dword [esp + 0x444], 0x10
jb 0x40b7fb
mov eax, dword [esp + 0x430]
push eax
jmp 0x40b7f3
push 0x206
lea ecx, [esp + 0x212]
push ebx
push ecx
mov word [esp + 0x218], bx
call fcn.0042faa0
lea edx, [esp + 0xc4]
add esp, 0xc
push edx
lea ecx, [esp + 0x430]
call fcn.004076d0
add esp, 4
mov byte [esp + 0x420], 1
mov esi, dword [esp + 0xbc]
mov ebp, 8
cmp dword [esp + 0xd0], ebp
jae 0x40ae56
lea esi, [esp + 0xbc]
lea edi, [esp + 0x20c]
call fcn.004075f0
cmp dword [esp + 0x444], 0x10
mov eax, dword [esp + 0x430]
mov byte [esp + 0x15c], bl
mov dword [esp + 0x108], ebx
mov dword [esp + 0x104], ebx
mov dword [esp + 0xf4], 0x67452301
mov dword [esp + 0xf8], 0xefcdab89
mov dword [esp + 0xfc], 0x98badcfe
mov dword [esp + 0x100], 0x10325476
jae 0x40aebb
lea eax, [esp + 0x430]
push eax
mov eax, dword [esp + 0x444]
lea ecx, [esp + 0xf8]
call fcn.00407dc0
lea edi, [esp + 0x64]
lea eax, [esp + 0xf4]
call fcn.00408830
lea eax, [esp + 0x48]
push eax
mov ecx, edi
mov byte [esp + 0x424], 2
call fcn.004076d0
add esp, 4
mov byte [esp + 0x420], 3
cmp dword [esp + 0x60], ebp
mov eax, dword [esp + 0x4c]
jae 0x40af0c
lea eax, [esp + 0x4c]
push eax
call fcn.00402c90
mov ebx, str.DownLoadFile
lea edx, [esp + 0x30]
mov ecx, eax
call fcn.00407420
mov byte [esp + 0x420], 4
mov eax, dword [esp + 0x30]
mov edi, 8
cmp dword [esp + 0x44], edi
jae 0x40af3d
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40afb3
call fcn.00402c90
cmp dword [eax + 0x58], edi
jb 0x40af57
mov edx, dword [eax + 0x44]
jmp 0x40af5a
lea edx, [eax + 0x44]
mov eax, edx
lea esi, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40af60
sub eax, esi
sar eax, 1
push eax
push edx
lea esi, [esp + 0x34]
call fcn.00401250
push 7
push str.Config_
mov ecx, esi
call fcn.00402590
lea eax, [esp + 0x20c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40af92
sub eax, edx
sar eax, 1
push eax
lea ecx, [esp + 0x210]
push ecx
lea ecx, [esp + 0x34]
call fcn.00402590
sub esp, 0x1c
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
mov dword [ecx + 0x14], eax
push 0xffffffffffffffff
mov dword [ecx + 0x18], 7
mov word [ecx + 4], ax
push eax
lea eax, [esp + 0x50]
call fcn.004012f0
lea edx, [esp + 0x9c]
push edx
call fcn.0040bb30
mov byte [esp + 0x420], 5
cmp dword [esp + 0x60], edi
mov eax, dword [esp + 0x4c]
jae 0x40affb
lea eax, [esp + 0x4c]
push eax
call fcn.00402c90
mov ebx, str.FileMD5
lea edx, [esp + 0xa0]
mov ecx, eax
call fcn.00407420
mov byte [esp + 0x420], 6
mov ecx, dword [esp + 0xa0]
mov ebp, 8
cmp dword [esp + 0xb4], ebp
jae 0x40b038
lea ecx, [esp + 0xa0]
cmp dword [esp + 0x98], ebp
mov eax, dword [esp + 0x84]
jae 0x40b04f
lea eax, [esp + 0x84]
push ecx
push eax
call fcn.0042d6bc
add esp, 8
test eax, eax
jne 0x40b07f
mov eax, dword [esp + 0x94]
push 0x55c3b8
xor edi, edi
lea ecx, [esp + 0x84]
call fcn.004038d0
test eax, eax
jne 0x40b224
call fcn.004075a0
xor ebx, ebx
push 0x103
mov esi, eax
lea eax, [esp + 0xf9]
push ebx
push eax
mov byte [esp + 0x100], bl
call fcn.0042faa0
add esp, 0xc
push esi
lea ecx, [esp + 0xf8]
push 0x55d32c
push ecx
call fcn.0042c313
add esp, 0xc
push 1
push 0x55d330
lea eax, [esp + 0x434]
call fcn.00407990
lea eax, [esp + 0xf4]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x40b0d8
sub eax, edx
push eax
lea edx, [esp + 0xf8]
push edx
lea eax, [esp + 0x434]
call fcn.00407990
sub esp, 0x1c
mov esi, esp
lea eax, [esp + 0x228]
mov dword [esi + 0x18], 7
mov dword [esi + 0x14], ebx
mov dword [esp + 0x38], esp
mov word [esi + 4], bx
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x40b120
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x22c]
push eax
call fcn.00401250
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x58], esp
push ecx
lea ecx, [esp + 0x468]
mov byte [esp + 0x45c], 7
call fcn.004076d0
add esp, 4
lea edx, [esp + 0x10c]
push edx
mov byte [esp + 0x45c], 6
call fcn.0040b850
mov byte [esp + 0x420], 8
cmp dword [esp + 0x44], ebp
mov eax, dword [esp + 0x30]
jae 0x40b189
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [esp + 0x44], ebp
mov ecx, dword [esp + 0x30]
jae 0x40b19e
lea ecx, [esp + 0x30]
cmp dword [esp + 0xec], ebp
mov eax, dword [esp + 0xd8]
jae 0x40b1b5
lea eax, [esp + 0xd8]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
cmp dword [esp + 0x44], ebp
mov edi, dword [esp + 0x30]
jae 0x40b1cb
lea edi, [esp + 0x30]
cmp dword [esp + 0x60], ebp
mov esi, dword [esp + 0x4c]
jae 0x40b1d9
lea esi, [esp + 0x4c]
call fcn.00402c90
cmp dword [eax + 0x11c], ebp
jb 0x40b1ee
mov eax, dword [eax + 0x108]
jmp 0x40b1f3
add eax, 0x108
push eax
push edi
push esi
push str.DownLoadFile
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov byte [esp + 0x420], 6
cmp dword [esp + 0xec], ebp
jb 0x40b226
mov eax, dword [esp + 0xd8]
push eax
call fcn.0040eb10
add esp, 4
jmp 0x40b226
xor ebx, ebx
cmp dword [esp + 0x44], ebp
mov eax, dword [esp + 0x30]
jae 0x40b234
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40b276
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x450]
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push edx
mov byte [ecx + 4], bl
call fcn.00403c80
mov esi, dword [esp + 0x34]
push esi
call fcn.0040aaa0
mov edi, eax
jmp 0x40b39f
cmp dword [esp + 0x44], ebp
mov eax, dword [esp + 0x30]
jae 0x40b284
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0xf8]
push eax
call fcn.0040bed0
mov byte [esp + 0x420], 9
mov ecx, dword [esp + 0xf4]
mov eax, dword [ecx + 4]
test byte [esp + eax + 0xfc], 6
jne 0x40b2d9
mov ecx, dword [esp + eax + 0x11c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x24]
push 1
push 1
push ebx
lea eax, [esp + 0xe0]
push eax
call edx
mov ecx, dword [esp + 0xdc]
mov eax, dword [esp + 0xd4]
jmp 0x40b2e7
mov eax, dword [0x51f4c8]
xor ecx, ecx
mov dword [esp + 0xe0], ebx
lea edi, [eax + ecx]
lea eax, [edi + 0xa]
push eax
call fcn.0040eb15
mov ebp, dword [esp + 0x1c]
add esp, 4
lea ecx, [edi + 1]
push ecx
push ebx
push eax
mov dword [ebp], eax
call fcn.0042faa0
add esp, 0xc
lea esi, [esp + 0xf4]
call fcn.0040be50
mov eax, dword [ebp]
push eax
mov edx, esi
push edx
mov ecx, edi
call fcn.004088c0
lea esi, [esp + 0xfc]
call fcn.00408a20
test eax, eax
jne 0x40b369
mov eax, dword [esp + 0xf4]
mov ecx, dword [eax + 4]
mov eax, dword [esp + ecx + 0xfc]
lea ecx, [esp + ecx + 0xf4]
or eax, 2
cmp dword [ecx + 0x28], ebx
jne 0x40b358
or eax, 4
and eax, 0x17
test dword [ecx + 0xc], eax
mov dword [ecx + 8], eax
je 0x40b369
push ebx
call fcn.004098a0
lea ecx, [esp + 0x14c]
mov byte [esp + 0x420], 6
call fcn.0040bff0
lea ecx, [esp + 0x14c]
push ecx
mov dword [esp + method.std::basic_ios_char__struct_std::char_traits_char__.virtual_0], vtable.std::ios_base.0
call fcn.00447a17
mov esi, ebp
add esp, 4
mov ebp, 8
cmp edi, ebx
jne 0x40b4ca
cmp dword [esp + 0xb4], ebp
jb 0x40b3c0
mov edx, dword [esp + 0xa0]
push edx
call fcn.0040eb10
add esp, 4
cmp dword [esp + 0x98], ebp
mov dword [esp + 0xb4], 7
mov dword [esp + 0xb0], ebx
mov word [esp + 0xa0], bx
jb 0x40b3f3
mov eax, dword [esp + 0x84]
push eax
call fcn.0040eb10
add esp, 4
cmp dword [esp + 0x44], ebp
mov dword [esp + 0x98], 7
mov dword [esp + 0x94], ebx
mov word [esp + 0x84], bx
jb 0x40b420
mov ecx, dword [esp + 0x30]
push ecx
call fcn.0040eb10
add esp, 4
cmp dword [esp + 0x60], ebp
mov dword [esp + 0x44], 7
mov dword [esp + 0x40], ebx
mov word [esp + 0x30], bx
jb 0x40b444
mov edx, dword [esp + 0x4c]
push edx
call fcn.0040eb10
add esp, 4
mov esi, 0x10
cmp dword [esp + 0x7c], esi
mov dword [esp + 0x60], 7
mov dword [esp + 0x5c], ebx
mov word [esp + 0x4c], bx
jb 0x40b46d
mov eax, dword [esp + 0x68]
push eax
call fcn.0040eb10
add esp, 4
cmp dword [esp + 0xd0], ebp
mov dword [esp + 0x7c], 0xf
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], bl
jb 0x40b496
mov ecx, dword [esp + 0xbc]
push ecx
call fcn.0040eb10
add esp, 4
cmp dword [esp + 0x444], esi
mov dword [esp + 0xd0], 7
mov dword [esp + 0xcc], ebx
mov word [esp + 0xbc], bx
jb 0x40b7fb
mov edx, dword [esp + 0x430]
push edx
jmp 0x40b7f3
mov eax, dword [0x55d334]
mov dl, byte [0x55d33c]
mov ecx, dword [0x55d338]
mov dword [esp + 0x200], eax
mov byte [esp + 0x208], dl
lea eax, [esp + 0x200]
lea edx, [esp + 0xf4]
mov dword [esp + 0x204], ecx
call fcn.00409be0
xor eax, eax
lea ecx, [esp + 0x170]
lea esp, [esp]
mov edx, dword [ecx - 4]
mov dword [esp + eax*4 + 0x174], edx
mov edx, dword [ecx]
mov dword [esp + eax*4 + 0x178], edx
add eax, 2
sub ecx, ebp
cmp eax, 0x20
jl 0x40b510
mov ecx, dword [esi]
xor eax, eax
push edi
mov edx, ecx
lea ebx, [esp + 0xf8]
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1fc], eax
call fcn.0040a970
mov ecx, dword [esi]
add esp, 4
lea eax, [esp + 0x28]
push eax
add edi, 0xfffffff4
push edi
add ecx, 0xc
push ecx
call fcn.004f6a80
xor ebx, ebx
cmp eax, ebx
je 0x40b6e3
cmp byte [eax], 0x4d
je 0x40b57e
cmp byte [eax + 1], 0x5a
jne 0x40b6e3
push eax
call fcn.0040d9a0
mov edi, eax
add esp, 4
cmp edi, ebx
je 0x40b66b
push str.run_lib
mov ecx, edi
call fcn.0040dad0
mov esi, eax
add esp, 4
cmp esi, ebx
jne 0x40b5bf
push 0x55c24c
mov ecx, edi
call fcn.0040dad0
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x40b66b
push 0x103
lea edx, [esp + 0xf9]
push ebx
push edx
mov byte [esp + 0x100], bl
call fcn.0042faa0
mov ebp, dword [esp + 0x30]
mov edi, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
add esp, 0xc
push ebx
push ebx
push ebx
push ebx
push 0xffffffffffffffff
push ebp
push ebx
push 1
call edi
push ebx
push ebx
push eax
lea eax, [esp + 0x100]
push eax
push 0xffffffffffffffff
push ebp
push ebx
push 1
call edi
lea ecx, [esp + 0xf4]
push ecx
call esi
add esp, 4
test eax, eax
je 0x40b66b
lea ecx, [esp + 0x9c]
call fcn.004011f0
lea ecx, [esp + 0x80]
call fcn.004011f0
lea ecx, [esp + 0x2c]
call fcn.004011f0
lea ecx, [esp + 0x48]
call fcn.004011f0
lea ecx, [esp + 0x64]
call fcn.00404270
lea ecx, [esp + 0xb8]
call fcn.004011f0
lea ecx, [esp + 0x42c]
call fcn.00404270
mov eax, 1
jmp 0x40b7fd
lea ecx, [esp + 0x9c]
call fcn.004011f0
lea ecx, [esp + 0x80]
call fcn.004011f0
lea ecx, [esp + 0x2c]
call fcn.004011f0
lea ecx, [esp + 0x48]
call fcn.004011f0
mov esi, 0x10
cmp dword [esp + 0x7c], esi
jb 0x40b6ad
mov edx, dword [esp + 0x68]
push edx
call fcn.0040eb10
add esp, 4
lea ecx, [esp + 0xb8]
mov dword [esp + 0x7c], 0xf
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], bl
call fcn.004011f0
cmp dword [esp + 0x444], esi
jb 0x40b7fb
mov eax, dword [esp + 0x430]
push eax
jmp 0x40b7f3
mov edi, 8
cmp dword [esp + 0xb4], edi
jb 0x40b701
mov ecx, dword [esp + 0xa0]
push ecx
call fcn.0040eb10
add esp, 4
cmp dword [esp + 0x98], edi
mov esi, 7
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb0], ebx
mov word [esp + 0xa0], bx
jb 0x40b735
mov edx, dword [esp + 0x84]
push edx
call fcn.0040eb10
add esp, 4
cmp dword [esp + 0x44], edi
mov dword [esp + 0x98], esi
mov dword [esp + 0x94], ebx
mov word [esp + 0x84], bx
jb 0x40b75e
mov eax, dword [esp + 0x30]
push eax
call fcn.0040eb10
add esp, 4
cmp dword [esp + 0x60], edi
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], ebx
mov word [esp + 0x30], bx
jb 0x40b77e
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.0040eb10
add esp, 4
mov ebp, 0x10
cmp dword [esp + 0x7c], ebp
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], ebx
mov word [esp + 0x4c], bx
jb 0x40b7a3
mov edx, dword [esp + 0x68]
push edx
call fcn.0040eb10
add esp, 4
cmp dword [esp + 0xd0], edi
mov dword [esp + 0x7c], 0xf
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], bl
jb 0x40b7cc
mov eax, dword [esp + 0xbc]
push eax
call fcn.0040eb10
add esp, 4
cmp dword [esp + 0x444], ebp
mov dword [esp + 0xd0], esi
mov dword [esp + 0xcc], ebx
mov word [esp + 0xbc], bx
jb 0x40b7fb
mov ecx, dword [esp + 0x430]
push ecx
call fcn.0040eb10
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x418]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x400]
xor ecx, esp
call fcn.00429fbb
add esp, 0x410
ret 0x20