Function at 0x4015c0
Capabilities:
Get common file path
Hide graphical window

Disassembly:
mov eax, 0x94dc
call fcn.0040e5e0
mov eax, dword [0x416044]
xor eax, esp
mov dword [esp + 0x94d8], eax
push ebx
mov ebx, dword [sym.imp.USER32.dll_LoadStringW]
push esi
mov esi, dword [esp + 0x94e8]
push edi
mov edi, dword [esp + 0x94f4]
push 0x64
push 0x417c00
push 0x67
push esi
call ebx
push 0x64
push 0x417b38
push 0x6d
push esi
call ebx
mov eax, esi
call fcn.00401df0
push 0
push esi
push 0
push 0
push 0
push 0x80000000
push 0
push 0x80000000
push 0xcf0000
push 0x417c00
push 0x417b38
push 0
mov dword [0x417cc8], esi
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov ebx, eax
test ebx, ebx
je 0x401705
push 0
push ebx
call dword [sym.imp.USER32.dll_ShowWindow]
push ebx
call dword [sym.imp.USER32.dll_UpdateWindow]
push 0x6d
push esi
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
test edi, edi
je 0x401692
mov ecx, 0x1f40
mov eax, edi
mov edi, edi
cmp word [eax], 0
je 0x40170c
add eax, 2
sub ecx, 1
jne 0x401680
xor esi, esi
mov eax, 0x41
mov word [esp + 0x5664], ax
xor eax, eax
mov ecx, 0x2d
mov edx, 0x42
mov word [esp + 0x5666], cx
mov word [esp + 0x5668], dx
mov word [esp + 0x566a], ax
cmp esi, 2
jbe 0x401ddc
cmp word [edi + esi*2 - 2], 0x22
jne 0x40171c
cmp word [edi], 0x22
jne 0x40171c
lea ecx, [esi - 2]
push ecx
add edi, 2
push edi
lea edx, [esp + 0x566c]
push 0x1f40
push edx
call fcn.0040620f
add esp, 0x10
xor eax, eax
mov word [esp + esi*2 + 0x5660], ax
jmp 0x40175c
xor eax, eax
jmp 0x401d6f
test ecx, ecx
je 0x401692
mov esi, 0x1f40
sub esi, ecx
jmp 0x401694
lea eax, [esp + 0x5664]
mov ecx, eax
mov edx, 0x1f40
sub edi, ecx
lea esp, [esp]
lea ecx, [edx + 0x7fffe0be]
test ecx, ecx
je 0x401750
movzx ecx, word [edi + eax]
test cx, cx
je 0x401750
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x401730
jmp 0x401754
test edx, edx
jne 0x401757
sub eax, 2
xor edx, edx
mov word [eax], dx
mov ecx, 0x1f40
lea eax, [esp + 0x5664]
push ebp
lea esp, [esp]
cmp word [eax], 0
je 0x401783
add eax, 2
sub ecx, 1
jne 0x401770
jmp 0x401d69
test ecx, ecx
je 0x401d69
mov ebp, 0x1f40
sub ebp, ecx
cmp ebp, 2
jbe 0x401d69
lea ebx, [esp + 0x5668]
call fcn.004014d0
xor esi, esi
test ebp, ebp
jbe 0x401d69
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
lea edi, [esp + 0x1978]
cmp word [esp + esi*2 + 0x5668], 0x7c
jne 0x4017f8
cmp ebx, 0x12c
jae 0x4017f8
mov ecx, esi
sub ecx, eax
dec ecx
push ecx
lea edx, [esp + eax*2 + 0x566e]
push edx
push 0x104
push edi
call fcn.0040620f
add esp, 0x10
inc ebx
mov eax, esi
add edi, 0x208
inc esi
cmp esi, ebp
jb 0x4017c0
mov dword [esp + 0x14], ebx
test ebx, ebx
jbe 0x401d69
lea eax, [esp + 0x7d0]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea edx, [esp + 0x7d0]
call fcn.00401fe0
mov ecx, edx
push ecx
push str._scollection.davs
mov ecx, 0x104
lea ebx, [esp + 0x348]
call fcn.004010f0
lea eax, [esp + 0xa0]
mov esi, str.Smadav2957
mov ecx, eax
add esp, 8
mov edx, 0x1e
sub esi, ecx
lea esp, [esp]
lea ecx, [edx + 0x7fffffe0]
test ecx, ecx
je 0x401880
movzx ecx, word [esi + eax]
test cx, cx
je 0x401880
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x401860
jmp 0x401884
test edx, edx
jne 0x401887
sub eax, 2
xor edx, edx
lea ebx, [esp + 0x98]
mov word [eax], dx
call fcn.004014d0
mov eax, ebx
push eax
push 0x413cb8
mov ecx, 0x104
lea edi, [esp + 0xdc]
call fcn.00401090
lea ecx, [esp + 0x348]
push ecx
call fcn.00405f40
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x9e4]
mov esi, str.http:__
mov ecx, eax
add esp, 0xc
mov edx, 0x7d0
sub esi, ecx
lea ebx, [ebx]
lea ecx, [edx + 0x7ffff82e]
test ecx, ecx
je 0x401900
movzx ecx, word [esi + eax]
test cx, cx
je 0x401900
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x4018e0
jmp 0x401904
test edx, edx
jne 0x401907
sub eax, 2
xor edx, edx
mov word [eax], dx
push str.memberikan.com
lea eax, [esp + 0x9dc]
call fcn.00401000
push str._smadavstats162.php_statw
lea eax, [esp + 0x9dc]
call fcn.00401000
xor ebp, ebp
cmp dword [esp + 0x14], ebp
jbe 0x401b66
lea edi, [esp + 0x1978]
push edi
lea ecx, [esp + 0x1c]
call fcn.00401230
add esp, 4
mov ecx, 0x1f40
lea eax, [esp + 0x18]
cmp word [eax], 0
je 0x40199e
add eax, 2
sub ecx, 1
jne 0x401957
test edi, edi
je 0x401982
mov ecx, 0x104
mov eax, edi
cmp word [eax], 0
je 0x401a4a
add eax, 2
sub ecx, 1
jne 0x401970
xor eax, eax
lea ecx, [eax - 1]
jmp 0x401990
cmp word [edi + ecx*2], 0x5c
je 0x401a5e
dec ecx
jmp 0x401990
test ecx, ecx
je 0x401965
mov eax, 0x1f40
sub eax, ecx
cmp eax, 0xa
jbe 0x401965
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x4019c2
mov dword [0x417cd4], 0x10000
jmp 0x4019e7
cmp dword [eax], 2
je 0x4019d3
mov dword [0x417cd4], 0x80000
jmp 0x4019e7
mov ebx, dword [eax + 4]
lea eax, [esp + 0x18]
push eax
mov ecx, edi
call fcn.00405610
mov dword [0x417cd4], eax
lea eax, [esp + 0x548]
lea esi, [esp + 0x18]
mov ecx, eax
mov edx, 0x104
sub esi, ecx
jmp 0x401a00
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x401a20
movzx ecx, word [esi + eax]
test cx, cx
je 0x401a20
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x401a00
jmp 0x401a24
test edx, edx
jne 0x401a27
sub eax, 2
xor edx, edx
mov word [eax], dx
test ebp, ebp
jbe 0x401a41
push 0x413d24
lea eax, [esp + 0x9dc]
call fcn.00401000
lea eax, [esp + 0x18]
jmp 0x401b48
test ecx, ecx
je 0x401982
mov eax, 0x104
sub eax, ecx
jmp 0x401984
lea eax, [esp + 0x138]
mov esi, eax
lea ecx, [ecx + ecx + 2]
sub ecx, esi
mov edx, 0x104
lea esi, [ecx + edi]
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x401a95
movzx ecx, word [esi + eax]
test cx, cx
je 0x401a95
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x401a75
jmp 0x401a99
test edx, edx
jne 0x401a9c
sub eax, 2
xor edx, edx
mov word [eax], dx
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x401ab5
mov dword [0x417cd4], 0x10000
jmp 0x401ae1
cmp dword [eax], 2
je 0x401ac6
mov dword [0x417cd4], 0x80000
jmp 0x401ae1
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 4]
lea ecx, [esp + 0x138]
push ecx
mov ecx, edi
call fcn.00405610
mov dword [0x417cd4], eax
lea eax, [esp + 0x548]
lea esi, [esp + 0x138]
mov ecx, eax
mov edx, 0x104
sub esi, ecx
jmp 0x401b00
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x401b20
movzx ecx, word [esi + eax]
test cx, cx
je 0x401b20
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x401b00
jmp 0x401b24
test edx, edx
jne 0x401b27
sub eax, 2
xor edx, edx
mov word [eax], dx
test ebp, ebp
jbe 0x401b41
push 0x413d24
lea eax, [esp + 0x9dc]
call fcn.00401000
lea eax, [esp + 0x138]
push eax
lea eax, [esp + 0x9dc]
call fcn.00401000
inc ebp
add edi, 0x208
cmp ebp, dword [esp + 0x14]
jb 0x401941
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x401b7a
mov dword [0x417cd4], 0x10000
jmp 0x401bae
cmp dword [eax], 2
je 0x401b8b
mov dword [0x417cd4], 0x80000
jmp 0x401bae
mov edi, dword [esp + 0x10]
mov esi, dword [edi + 4]
call fcn.00405170
mov dword [0x417cd4], eax
test esi, esi
je 0x401ba5
call fcn.00405ff0
push edi
call fcn.004065dc
add esp, 4
lea ecx, [esp + 0x340]
push ecx
call fcn.00401190
add esp, 4
push 0
push 0
push 0
push 1
push 0
call dword [sym.imp.WININET.dll_InternetOpenW]
mov ebp, eax
test ebp, ebp
je 0x401d69
lea eax, [esp + 0x5c]
mov esi, str.SmdvPWDsec295702846
mov ecx, eax
mov edx, 0x1e
sub esi, ecx
lea ebx, [ebx]
lea ecx, [edx + 0x7fffffe0]
test ecx, ecx
je 0x401c10
movzx ecx, word [esi + eax]
test cx, cx
je 0x401c10
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x401bf0
jmp 0x401c14
test edx, edx
jne 0x401c17
sub eax, 2
xor edx, edx
lea ebx, [esp + 0x5c]
mov word [eax], dx
call fcn.004014d0
push 0
push 0x8000000
push 1
mov eax, ebx
push eax
push str.anonymous
push 0x15
push str.smadsoft.com
push ebp
call dword [sym.imp.WININET.dll_InternetConnectW]
mov esi, eax
test esi, esi
je 0x401d69
push str.incoming
push esi
call dword [sym.imp.WININET.dll_FtpSetCurrentDirectoryW]
lea ecx, [esp + 0x340]
push ecx
lea ecx, [esp + 0xf8]
call fcn.00401230
add esp, 4
mov ecx, 0x1f40
lea eax, [esp + 0xf4]
lea ecx, [ecx]
cmp word [eax], 0
je 0x401d89
add eax, 2
sub ecx, 1
jne 0x401c80
lea edx, [esp + 0x548]
push edx
push str._s.davs
mov ecx, 0x104
lea ebx, [esp + 0x140]
call fcn.004010f0
add esp, 8
push 0
push 2
mov eax, ebx
push eax
lea ecx, [esp + 0x34c]
push ecx
push esi
call dword [sym.imp.WININET.dll_FtpPutFileW]
mov edi, eax
push 0x413d24
lea eax, [esp + 0x9dc]
call fcn.00401000
mov edx, ebx
push edx
lea eax, [esp + 0x9dc]
call fcn.00401000
mov ebx, dword [sym.imp.WININET.dll_InternetCloseHandle]
push esi
call ebx
push ebp
call ebx
test edi, edi
je 0x401d5b
push 0
push 0
push 0
push 1
push str.SmadavStatw
call dword [sym.imp.WININET.dll_InternetOpenW]
mov esi, eax
test esi, esi
je 0x401d5b
push 0
push 0x80000000
push 0
push 0
lea eax, [esp + 0x9e8]
push eax
push esi
mov dword [esp + 0x2c], 0
call dword [sym.imp.WININET.dll_InternetOpenUrlW]
mov edi, eax
test edi, edi
je 0x401d55
lea ecx, [esp + 0x14]
push ecx
push 0x80
lea edx, [esp + 0x758]
push edx
push edi
call dword [sym.imp.WININET.dll_InternetReadFile]
push edi
call ebx
push esi
call ebx
lea eax, [esp + 0x340]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, 1
pop ebp
mov ecx, dword [esp + 0x94e4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0040603f
add esp, 0x94dc
ret 0x10
test ecx, ecx
je 0x401c92
mov eax, 0x1f40
sub eax, ecx
cmp eax, 0xa
jbe 0x401c92
push 0
push 2
lea edx, [esp + 0xfc]
push edx
lea eax, [esp + 0x34c]
push eax
push esi
call dword [sym.imp.WININET.dll_FtpPutFileW]
mov edi, eax
push 0x413d24
lea eax, [esp + 0x9dc]
call fcn.00401000
lea ecx, [esp + 0xf4]
push ecx
jmp 0x401cdf
mov eax, 1
jmp 0x401d6f