Function at 0x47dc08
Capabilities:
Delete file
Get common file path
Get http content length
Read data from internet
Receive data

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x10083
push 0
push 0
dec ecx
jne 0x47dc11
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov esi, edx
mov ebx, eax
mov eax, dword [ebp - 4]
call fcn.00405010
mov eax, dword [ebp + 0xc]
call fcn.00405010
xor eax, eax
push ebp
push 0x47e33e
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 5], 0
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 4]
call fcn.00404bf8
lea ecx, [ebp - 0x14]
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.0047d680
push 3
push 0
mov ecx, dword [ebp - 0x14]
mov edx, 0x393
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0x38]
cmp byte [ebx + 0x69], 2
jne 0x47dda1
lea edx, [ebp - 0x803c8]
mov eax, dword [ebp + 0xc]
call fcn.004096ec
cmp dword [ebp - 0x803c8], 0
jne 0x47dca4
lea eax, [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 0xc]
call fcn.00404e6c
jmp 0x47dcaf
lea eax, [ebp - 0x14]
mov edx, dword [ebp + 0xc]
call fcn.00404bf8
push 0
mov eax, dword [ebp - 0x14]
call fcn.00405020
mov edx, eax
lea eax, [ebp - 0x803cc]
call fcn.00404d58
mov eax, dword [ebp - 0x803cc]
push eax
mov eax, dword [ebp - 4]
call fcn.00405020
mov edx, eax
lea eax, [ebp - 0x803d0]
call fcn.00404d58
mov edx, dword [ebp - 0x803d0]
mov eax, ebx
pop ecx
call fcn.0047d8a4
test al, al
je 0x47dd98
mov edx, dword [ebp - 0x14]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x4c]
cmp byte [ebp + 8], 0
je 0x47dd32
lea edx, [ebp - 0x803d4]
mov eax, dword [ebp - 0x14]
call fcn.00408a20
mov edx, dword [ebp - 0x803d4]
mov eax, 0x47e35c
call fcn.00405164
test eax, eax
jne 0x47dd32
mov eax, dword [ebp - 0x14]
call fcn.0047d1c0
cmp byte [ebp + 8], 0
je 0x47dd8f
lea edx, [ebp - 0x803d8]
mov eax, dword [ebp - 0x14]
call fcn.00408a20
mov edx, dword [ebp - 0x803d8]
mov eax, 0x47e35c
call fcn.00405164
test eax, eax
je 0x47dd8f
push 3
push 0
mov ecx, dword [ebp - 0x14]
mov edx, 0x3c5
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0x38]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x14]
call fcn.0047999c
cmp byte [ebx + 0x191], 0
jne 0x47dd8f
mov eax, dword [ebp - 0x14]
call fcn.00405020
push eax
call sub.kernel32.dll_DeleteFileA
mov byte [ebp - 5], 1
jmp 0x47e2f3
mov byte [ebp - 5], 0
jmp 0x47e2f3
mov eax, dword [ebx + 0x64]
push eax
lea eax, [ebp - 0x803dc]
push eax
mov ecx, dword [ebx + 0x60]
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.0047d77c
mov edx, dword [ebp - 0x803dc]
lea eax, [ebp - 4]
call fcn.00404bf8
cmp byte [ebx + 0x69], 0
jne 0x47de55
cmp dword [ebx + 0x40], 0
je 0x47de03
cmp byte [ebx + 0x120], 0
jne 0x47de03
lea ecx, [ebp - 0x30]
mov edx, dword [ebx + 0x40]
mov eax, ebx
call fcn.0047d550
mov eax, dword [ebp - 0x30]
call fcn.00405020
push eax
push esi
call sub.wininet.dll_FtpSetCurrentDirectoryA
mov byte [ebx + 0x120], 1
push 0
push 0x84000000
lea eax, [ebp - 0x803c4]
push eax
mov eax, dword [ebp - 0x14]
call fcn.00405020
mov edi, eax
push edi
push esi
call sub.wininet.dll_FtpFindFirstFileA
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x47de34
mov eax, dword [ebp - 0x20]
push eax
call sub.wininet.dll_InternetCloseHandle
mov eax, dword [ebp - 0x803a4]
mov dword [ebp - 0x2c], eax
push 0
push 2
push 0x80000000
push edi
push esi
call sub.wininet.dll_FtpOpenFileA
mov dword [ebp - 0x1c], eax
jmp 0x47df62
mov edi, 0x84000100
cmp byte [ebx + 0x154], 0
je 0x47de69
or edi, 0x400000
cmp byte [ebx + 0x155], 0
je 0x47de78
or edi, 0x20000000
cmp dword [ebx + 0x70], 0
jne 0x47de84
cmp dword [ebx + 0x4c], 0
je 0x47decf
push 0x47e36c
push dword [ebx + 0x70]
push 0x47e38c
push dword [ebx + 0x4c]
lea eax, [ebp - 0x803e4]
mov edx, 3
call fcn.00404ee0
mov eax, dword [ebp - 0x803e4]
lea edx, [ebp - 0x803e0]
call fcn.00479df0
push dword [ebp - 0x803e0]
push 0x47e398
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00404ee0
jmp 0x47ded7
lea eax, [ebp - 0xc]
call fcn.00404b60
push 0
push edi
mov eax, dword [ebp - 0xc]
call fcn.00404e20
push eax
mov eax, dword [ebp - 0xc]
call fcn.00405020
push eax
mov eax, dword [ebp - 4]
call fcn.00405020
push eax
push esi
call sub.wininet.dll_InternetOpenUrlA
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x24], 4
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x1c], 0
je 0x47df62
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x2c]
push eax
push 0x20000013
mov eax, dword [ebp - 0x1c]
push eax
call sub.wininet.dll_HttpQueryInfoA
cmp dword [ebp - 0x2c], 0x12c
jb 0x47df62
push 6
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x2c]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x803e8]
call fcn.0040902c
mov ecx, dword [ebp - 0x803e8]
mov edx, 0x394
mov eax, ebx
mov ebx, dword [eax]
call dword [ebx + 0x38]
jmp 0x47e2f3
cmp dword [ebp - 0x1c], 0
jne 0x47df80
push 2
push 1
mov ecx, dword [ebp - 0x18]
mov edx, 0x395
mov eax, ebx
mov ebx, dword [eax]
call dword [ebx + 0x38]
jmp 0x47e2f3
lea ecx, [ebp - 0x803ec]
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.0047d680
mov ecx, dword [ebp - 0x803ec]
lea eax, [ebp - 0x14]
mov edx, dword [ebp + 0xc]
call fcn.00404e6c
cmp byte [ebx + 0x141], 0
je 0x47dfd6
lea eax, [ebp - 0x80137]
push eax
push 0
push 0x47e3a0
lea eax, [ebp - 0x803f0]
call fcn.0047c1f4
mov eax, dword [ebp - 0x803f0]
call fcn.00405020
push eax
call sub.kernel32.dll_GetTempFileNameA
jmp 0x47dff5
lea eax, [ebp - 0x80137]
push eax
push 0
push 0x47e3a0
mov eax, dword [ebx + 0x150]
call fcn.00405020
push eax
call sub.kernel32.dll_GetTempFileNameA
lea eax, [ebp - 0x803f4]
lea edx, [ebp - 0x80137]
mov ecx, 0x105
call fcn.00404dd0
mov edx, dword [ebp - 0x803f4]
lea eax, [ebp - 0x80284]
call fcn.0040328c
mov edx, 1
lea eax, [ebp - 0x80284]
call fcn.00403698
call fcn.00402c1c
mov dword [ebp - 0x10], 0x80000
cmp byte [ebx + 0x69], 1
jne 0x47e069
xor eax, eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 4
xor eax, eax
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x2c]
push eax
push 0x20000005
mov eax, dword [ebp - 0x1c]
push eax
call sub.wininet.dll_HttpQueryInfoA
xor esi, esi
mov byte [ebp - 0x31], 0
mov byte [ebp - 0x32], 0
jmp 0x47e108
mov eax, dword [0x48701c]
mov eax, dword [eax]
call fcn.00463020
lea eax, [ebp - 0x10]
push eax
push 0x80000
lea eax, [ebp - 0x80032]
push eax
mov eax, dword [ebp - 0x1c]
push eax
call sub.wininet.dll_InternetReadFile
test eax, eax
jne 0x47e0a7
mov byte [ebp - 0x32], 1
jmp 0x47e118
cmp dword [ebp - 0x10], 0
jbe 0x47e0d1
cmp dword [ebp - 0x10], 0x80000
ja 0x47e0d1
push 0
lea edx, [ebp - 0x80032]
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x80284]
call fcn.004033e8
call fcn.00402c1c
add esi, dword [ebp - 0x10]
cmp word [ebx + 0x8a], 0
je 0x47e0f4
push esi
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x14]
mov edx, ebx
mov eax, dword [ebx + 0x8c]
call dword [ebx + 0x88]
lea edx, [ebp - 0x31]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x48]
cmp dword [ebp - 0x10], 0
jbe 0x47e108
mov byte [ebp - 5], 1
cmp dword [ebp - 0x10], 0
jbe 0x47e118
cmp byte [ebp - 0x31], 0
je 0x47e078
mov eax, dword [ebp - 0x1c]
push eax
call sub.wininet.dll_InternetCloseHandle
lea eax, [ebp - 0x80284]
call fcn.00403408
call fcn.00402c1c
mov al, byte [ebp - 0x31]
mov byte [ebx + 0x181], al
mov al, byte [ebp - 0x31]
or al, byte [ebp - 0x32]
je 0x47e19d
lea edx, [ebp - 0x803f8]
lea eax, [ebp - 0x80137]
call fcn.00409b6c
mov eax, dword [ebp - 0x803f8]
call fcn.004095f4
test al, al
jne 0x47e194
lea edx, [ebp - 0x80400]
lea eax, [ebp - 0x80137]
call fcn.00409b6c
mov ecx, dword [ebp - 0x80400]
lea eax, [ebp - 0x803fc]
mov edx, 0x47e3b0
call fcn.00404e6c
mov eax, dword [ebp - 0x803fc]
call fcn.0047c090
mov byte [ebp - 5], 0
jmp 0x47e2f3
mov eax, dword [ebp - 0x14]
call fcn.00409518
test al, al
je 0x47e1eb
mov eax, dword [ebp - 0x14]
call fcn.004095f4
test al, al
jne 0x47e1eb
mov eax, dword [ebp - 0x14]
call fcn.0047d884
mov eax, dword [ebp - 0x14]
call fcn.004095f4
test al, al
jne 0x47e1eb
mov byte [ebp - 5], 0
lea eax, [ebp - 0x80404]
mov ecx, dword [ebp - 0x14]
mov edx, 0x47e3b0
call fcn.00404e6c
mov eax, dword [ebp - 0x80404]
call fcn.0047c090
lea edx, [ebp - 0x80408]
lea eax, [ebp - 0x80137]
call fcn.00409b6c
mov eax, dword [ebp - 0x80408]
mov edx, dword [ebp - 0x14]
call fcn.0040960c
test al, al
jne 0x47e251
mov byte [ebp - 5], 0
push 0x47e3d0
lea edx, [ebp - 0x80410]
lea eax, [ebp - 0x80137]
call fcn.00409b6c
push dword [ebp - 0x80410]
push 0x47e3f0
push dword [ebp - 0x14]
lea eax, [ebp - 0x8040c]
mov edx, 4
call fcn.00404ee0
mov eax, dword [ebp - 0x8040c]
call fcn.0047c090
mov edx, dword [ebp - 0x14]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x4c]
cmp byte [ebp + 8], 0
je 0x47e29a
lea edx, [ebp - 0x80418]
mov eax, dword [ebp - 0x14]
call fcn.00409724
mov eax, dword [ebp - 0x80418]
lea edx, [ebp - 0x80414]
call fcn.00408a20
mov eax, dword [ebp - 0x80414]
mov edx, 0x47e35c
call fcn.00404f6c
je 0x47e29a
mov eax, dword [ebp - 0x14]
call fcn.0047d1c0
cmp byte [ebp + 8], 0
je 0x47e2f3
lea edx, [ebp - 0x80420]
mov eax, dword [ebp - 0x14]
call fcn.00409724
mov eax, dword [ebp - 0x80420]
lea edx, [ebp - 0x8041c]
call fcn.00408a20
mov eax, dword [ebp - 0x8041c]
mov edx, 0x47e35c
call fcn.00404f6c
jne 0x47e2f3
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x14]
call fcn.0047999c
cmp byte [ebx + 0x191], 0
jne 0x47e2f3
mov eax, dword [ebp - 0x14]
call fcn.00405020
push eax
call sub.kernel32.dll_DeleteFileA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47e345
lea eax, [ebp - 0x80420]
mov edx, 0x17
call fcn.00404b84
lea eax, [ebp - 0x30]
call fcn.00404b60
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.00404b84
lea eax, [ebp - 0xc]
call fcn.00404b60
lea eax, [ebp - 4]
call fcn.00404b60
lea eax, [ebp + 0xc]
call fcn.00404b60
ret