Function at 0x407fc6
Capabilities:
Check http status code
Connect to http server
Copy file
Get file attributes
Move file
Read and send data from client to server
Read data from internet
Read file on windows
Receive data
Send data
Send http request
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42f464
mov eax, dword fs:[0]
push eax
mov eax, 0x97e8
call fcn.00410c60
mov eax, dword [0x442070]
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 esi, ecx
mov dword [ebp - 0x97dc], esi
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
mov dword [ebp - 0x97bc], eax
xor eax, eax
mov dword [ebp - 0x97e0], ecx
push ecx
lea ecx, [ebp - 0x97b4]
mov dword [ebp - 0x97c8], ebx
mov dword [ebp - 0x97c4], edi
mov dword [ebp - 0x97d8], eax
mov byte [ebp - 0x97b5], al
call fcn.00407856
cmp dword [ebp - 0x7a70], 0
jne 0x408060
test ebx, ebx
je 0x408058
push str.Protocol_not_supported
push 5
push edi
call ebx
add esp, 0xc
xor eax, eax
inc eax
jmp 0x408d0b
xor eax, eax
push eax
push eax
push dword [ebp - 0x7a70]
lea eax, [ebp - 0x96f4]
push eax
lea eax, [ebp - 0x9774]
push eax
push dword [ebp - 0x9274]
lea eax, [ebp - 0x9674]
push eax
push dword [esi + 4]
call dword [sym.imp.WININET.dll_InternetConnectW]
mov dword [ebp - 0x97c0], eax
xor ecx, ecx
mov dword [ebp - 4], ecx
test eax, eax
jne 0x4080b6
test ebx, ebx
je 0x4080ae
push str.InternetConnect___failed
push 5
push edi
call ebx
add esp, 0xc
or edi, 0xffffffff
jmp 0x408d09
xor ebx, ebx
mov edx, ebx
movzx ecx, word [ebp + edx - 0x9270]
lea edx, [edx + 2]
mov word [ebp + edx - 0x2a16], cx
test cx, cx
jne 0x4080ba
lea edx, [ebp - 0x8a70]
mov esi, edx
mov cx, word [edx]
add edx, 2
cmp cx, bx
jne 0x4080da
lea edi, [ebp - 0x2a14]
sub edx, esi
sub edi, 2
mov cx, word [edi + 2]
add edi, 2
cmp cx, bx
jne 0x4080f0
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp dword [ebp - 0x7a70], 3
rep movsb byte es:[edi], byte [esi]
jne 0x408d51
cmp dword [ebp - 0x9274], 0x1bb
mov edx, 0xc00000
push ebx
mov ecx, 0x400000
mov dword [ebp - 0x97f4], 0x43cb5c
cmove ecx, edx
mov dword [ebp - 0x97f0], ebx
push ecx
mov dword [ebp - 0x97ec], ecx
lea ecx, [ebp - 0x97f4]
push ecx
push ebx
push ebx
lea ecx, [ebp - 0x2a14]
push ecx
push str.HEAD
push eax
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
mov ebx, eax
mov dword [ebp - 0x97e8], ebx
xor eax, eax
mov byte [ebp - 4], 1
mov esi, dword [sym.imp.WININET.dll_HttpSendRequestW]
push eax
push eax
push eax
push eax
push ebx
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x4081f0
call edi
cmp eax, 0x2f19
jne 0x4081dc
lea eax, [ebp - 0x97d4]
mov dword [ebp - 0x97d4], 4
push eax
lea eax, [ebp - 0x97d0]
push eax
push 0x1f
push ebx
call dword [sym.imp.WININET.dll_InternetQueryOptionW]
or dword [ebp - 0x97d0], 0x80
lea eax, [ebp - 0x97d0]
push 4
push eax
push 0x1f
push ebx
call dword [sym.imp.WININET.dll_InternetSetOptionW]
xor eax, eax
push eax
push eax
push eax
push eax
push ebx
call esi
test eax, eax
jne 0x4081f0
call edi
cmp eax, 0x2efd
jne 0x4081f0
push 0x18
mov esi, dword [ebp - 0x97c0]
jmp 0x408d43
mov esi, dword [ebp - 0x97dc]
mov ecx, esi
push ebx
call fcn.00407e5a
mov ecx, esi
call fcn.00407df4
push 0x13
pop edi
push edi
xor eax, eax
push ebx
mov dword [ebp - 0x97e4], eax
call fcn.00407d07
cmp eax, 0xc8
je 0x4082d9
cmp eax, 0x12c
jle 0x4081e3
cmp eax, 0x12e
jle 0x40823b
cmp eax, 0x194
jne 0x4081e3
push 0x16
jmp 0x4081e5
mov esi, dword [ebp - 0x97c0]
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push esi
call edi
xor eax, eax
mov esi, eax
mov dword [ebp - 0x97c0], esi
test ebx, ebx
je 0x408265
push ebx
call edi
xor eax, eax
mov ebx, eax
mov dword [ebp - 0x97e8], ebx
mov edi, dword [ebp - 0x97dc]
mov ecx, edi
push str.Location:
call fcn.00407d88
lea edx, [ebp - 0x7a14]
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
lea eax, [eax + 2]
test cx, cx
jne 0x40827f
mov eax, dword [ebp - 0x97c8]
cmp word [ebp - 0x7a14], si
jne 0x4082b9
test eax, eax
je 0x408bc9
push str.Redirected_to_unknown_location
push 5
push dword [ebp - 0x97c4]
call eax
jmp 0x408bc6
push dword [ebp - 0x97c4]
mov ecx, edi
push eax
push dword [ebp - 0x97bc]
lea eax, [ebp - 0x7a14]
push eax
call fcn.00407fc6
jmp 0x408a75
push 5
push ebx
call fcn.00407d07
mov dword [ebp - 0x97e4], eax
test ebx, ebx
je 0x4082fe
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
xor eax, eax
mov ebx, eax
mov dword [ebp - 0x97e8], ebx
jmp 0x408300
xor eax, eax
push str.Content_Type:
mov ecx, esi
mov byte [ebp - 0x97b6], al
call fcn.00407d88
lea edx, [ebp - 0x214]
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
lea eax, [eax + 2]
test cx, cx
jne 0x40831a
lea eax, [ebp - 0x214]
push str.text_html
push eax
call fcn.0041205e
pop ecx
pop ecx
test eax, eax
jne 0x408357
lea eax, [ebp - 0x214]
push str.text_plain
push eax
call fcn.0041205e
pop ecx
pop ecx
test eax, eax
je 0x40838e
mov esi, dword [ebp - 0x97c8]
mov byte [ebp - 0x97b6], 1
test esi, esi
je 0x408394
push dword [ebp - 0x97e0]
push 6
push dword [ebp - 0x97c4]
call esi
add esp, 0xc
neg al
sbb al, al
add al, 1
mov byte [ebp - 0x97b5], al
je 0x408394
jmp 0x40879f
mov esi, dword [ebp - 0x97c8]
xor eax, eax
push 0x400
push eax
lea eax, [ebp - 0x1614]
push eax
call fcn.00412e60
push 0x2f
pop eax
push eax
lea eax, [ebp - 0x9270]
push eax
call fcn.00411fb0
mov ecx, eax
add esp, 0x14
test ecx, ecx
je 0x4083f5
push 0x2f
pop esi
add ecx, 2
lea edi, [ebp - 0x1614]
mov edx, ecx
sub edi, ecx
movzx eax, word [edx]
mov word [edi + edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x4083d1
push esi
push ecx
call fcn.00411fb0
pop ecx
pop ecx
mov ecx, eax
test ecx, ecx
jne 0x4083c4
mov esi, dword [ebp - 0x97c8]
lea eax, [ebp - 0x1614]
push 0x3f
push eax
call fcn.00411fb0
pop ecx
pop ecx
test eax, eax
je 0x40840e
xor ecx, ecx
mov word [eax], cx
test esi, esi
je 0x408466
mov edi, dword [ebp - 0x97c4]
lea eax, [ebp - 0x1614]
push eax
push 7
push edi
call esi
add esp, 0xc
neg al
sbb al, al
add al, 1
je 0x408436
push 0x15
jmp 0x4081e5
lea eax, [ebp - 0x97e4]
push eax
push 1
push edi
call esi
add esp, 0xc
neg al
sbb al, al
add al, 1
mov byte [ebp - 0x97b5], al
je 0x408466
xor eax, eax
push eax
push 3
push edi
call esi
add esp, 0xc
or edi, 0xffffffff
jmp 0x40879f
mov edx, dword [ebp - 0x97bc]
test edx, edx
je 0x408490
xor eax, eax
cmp word [edx], ax
je 0x408490
lea ecx, [ebp - 0xa14]
sub ecx, edx
movzx eax, word [edx]
mov word [ecx + edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x40847f
jmp 0x4084a8
mov eax, dword [0x43cbf4]
mov dword [ebp - 0xa14], eax
mov ax, word [0x43cbf8]
mov word [ebp - 0xa10], ax
xor edx, edx
mov ecx, edx
push 0x5c
pop esi
cmp word [ebp - 0xa14], cx
je 0x4084d8
push 0x2f
lea eax, [ebp - 0xa14]
pop edi
cmp word [eax], di
jne 0x4084c9
mov word [eax], si
inc ecx
lea eax, [ebp - 0xa14]
lea eax, [eax + ecx*2]
cmp word [eax], dx
jne 0x4084c1
cmp word [ebp + ecx*2 - 0xa16], si
jne 0x40851e
lea edx, [ebp - 0x1614]
xor ecx, ecx
mov esi, edx
mov ax, word [edx]
add edx, 2
cmp ax, cx
jne 0x4084ec
lea edi, [ebp - 0xa14]
sub edx, esi
sub edi, 2
mov ax, word [edi + 2]
add edi, 2
cmp ax, cx
jne 0x408502
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
xor edx, edx
rep movsb byte es:[edi], byte [esi]
mov ecx, edx
movzx eax, word [ebp + ecx - 0xa14]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x1216], ax
test ax, ax
jne 0x408520
lea edi, [ebp - 0x1214]
sub edi, 2
mov ax, word [edi + 2]
add edi, 2
cmp ax, dx
jne 0x408541
mov esi, str..dul_
push str.Last_Modified:
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x97dc]
mov ecx, edi
call fcn.00407d88
lea edx, [ebp - 0x1a14]
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
lea eax, [eax + 2]
test cx, cx
jne 0x40856f
lea ecx, [ebp - 0x1a14]
call fcn.00407618
lea ecx, [ebp - 0xa14]
mov dword [ebp - 0x97e0], eax
mov dword [ebp - 0x97d4], edx
call fcn.0040780a
mov esi, eax
mov dword [ebp - 0x97bc], edx
xor eax, eax
push 0x30
push eax
lea eax, [ebp - 0x7a6c]
push eax
call fcn.00412e60
mov eax, dword [ebp - 0x97bc]
mov ecx, esi
add esp, 0xc
or ecx, eax
je 0x4086f3
cmp esi, dword [ebp - 0x97e0]
jne 0x4086f3
cmp eax, dword [ebp - 0x97d4]
jne 0x4086f3
lea eax, [ebp - 0x7a6c]
push eax
lea eax, [ebp - 0xa14]
push eax
call fcn.004191b1
pop ecx
pop ecx
test eax, eax
jne 0x4086f3
mov eax, dword [ebp - 0x7a58]
cmp eax, dword [ebp - 0x97e4]
jne 0x4086f3
mov eax, dword [ebp - 0x97c8]
test eax, eax
je 0x40862f
push str.File_exists__aborting
push 5
push dword [ebp - 0x97c4]
call eax
add esp, 0xc
cmp byte [ebp - 0x97b6], 0
je 0x4086ea
xor ecx, ecx
lea eax, [ebp - 0x97d4]
push ecx
push eax
push ecx
push 0x40
lea eax, [ebp - 0xa14]
push 0x8002
push eax
call fcn.0041a60c
mov ecx, dword [ebp - 0x97d4]
or edx, 0xffffffff
test eax, eax
cmovne ecx, edx
push ecx
mov dword [ebp - 0x97e0], ecx
call fcn.00416fd8
mov edi, eax
lea esi, [edi + 1]
push esi
call fcn.00410046
push esi
xor ecx, ecx
mov dword [ebp - 0x97d4], eax
push ecx
push eax
call fcn.00412e60
mov esi, dword [ebp - 0x97e0]
push edi
mov edi, dword [ebp - 0x97d4]
push edi
push esi
call fcn.00417ff3
push esi
call fcn.004192a9
mov eax, dword [ebp - 0x97c8]
add esp, 0x3c
test eax, eax
je 0x4086cc
push edi
push 8
push dword [ebp - 0x97c4]
call eax
add esp, 0xc
neg al
sbb al, al
inc al
jmp 0x4086d2
mov al, byte [ebp - 0x97b5]
test al, al
je 0x4086e3
lea eax, [ebp - 0xa14]
push eax
call fcn.0041af6a
pop ecx
push edi
call fcn.00410072
pop ecx
xor eax, eax
mov edi, eax
jmp 0x40879f
xor eax, eax
lea ecx, [ebp - 0x1214]
mov dword [ebp - 0x97cc], eax
call fcn.0040780a
or eax, edx
je 0x408757
lea eax, [ebp - 0x7a6c]
push eax
lea eax, [ebp - 0x1214]
push eax
call fcn.004191b1
pop ecx
pop ecx
test eax, eax
jne 0x408757
xor ecx, ecx
lea eax, [ebp - 0x97bc]
push ecx
push eax
push ecx
push 0x40
lea eax, [ebp - 0x1214]
push 0x8002
push eax
call fcn.0041a60c
add esp, 0x18
or edx, 0xffffffff
test eax, eax
mov eax, dword [ebp - 0x7a58]
mov dword [ebp - 0x97cc], eax
jmp 0x40878d
lea eax, [ebp - 0x1214]
push eax
call fcn.0041af6a
xor eax, eax
push eax
lea eax, [ebp - 0x97bc]
push eax
push 0x180
push 0x40
lea eax, [ebp - 0x1214]
push 0x8302
push eax
call fcn.0041a60c
add esp, 0x1c
or edx, 0xffffffff
test eax, eax
mov ecx, dword [ebp - 0x97bc]
cmovne ecx, edx
mov dword [edi + 0xc], ecx
cmp ecx, edx
jne 0x4087aa
mov edi, edx
mov esi, dword [ebp - 0x97c0]
jmp 0x408d44
lea eax, [ebp - 0x1214]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
or eax, 2
push eax
lea eax, [ebp - 0x1214]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, dword [ebp - 0x97cc]
mov esi, dword [ebp - 0x97c0]
cmp eax, dword [ebp - 0x97e4]
jge 0x408a82
xor ecx, ecx
lea eax, [ebp - 0x97f4]
push ecx
push dword [ebp - 0x97ec]
push eax
push ecx
push ecx
lea eax, [ebp - 0x2a14]
push eax
push 0x43cc54
push esi
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
push dword [ebp - 0x97cc]
mov ebx, eax
lea eax, [ebp - 0x114]
push str.Range:_bytes_d__r_n
push eax
mov dword [ebp - 0x97e8], ebx
call dword [sym.imp.USER32.dll_wsprintfW]
lea ecx, [ebp - 0x114]
add esp, 0xc
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x97d8]
jne 0x408831
xor eax, eax
sub ecx, edx
push eax
push eax
sar ecx, 1
lea eax, [ebp - 0x114]
push ecx
push eax
push ebx
call dword [sym.imp.WININET.dll_HttpSendRequestW]
test eax, eax
jne 0x4088d4
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x2f19
jne 0x4088bc
lea eax, [ebp - 0x97d8]
mov dword [ebp - 0x97d8], 4
push eax
lea eax, [ebp - 0x97bc]
push eax
push 0x1f
push ebx
call dword [sym.imp.WININET.dll_InternetQueryOptionW]
or dword [ebp - 0x97bc], 0x80
lea eax, [ebp - 0x97bc]
push 4
push eax
push 0x1f
push ebx
call dword [sym.imp.WININET.dll_InternetSetOptionW]
xor eax, eax
push eax
push eax
push eax
push eax
push ebx
call dword [sym.imp.WININET.dll_HttpSendRequestW]
test eax, eax
jne 0x4088d4
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x4088d4
push dword [edi + 0xc]
call fcn.004192a9
or dword [edi + 0xc], 0xffffffff
pop ecx
push 0x17
jmp 0x408d43
push ebx
mov ecx, edi
call fcn.00407e5a
mov ecx, edi
call fcn.00407df4
push 0x13
push ebx
call fcn.00407d07
add eax, 0xffffff38
cmp eax, 0x64
jb 0x408925
mov eax, dword [ebp - 0x97c8]
test eax, eax
je 0x408911
push str.Sould_be__2xx_
push 5
push dword [ebp - 0x97c4]
call eax
add esp, 0xc
push dword [edi + 0xc]
call fcn.004192a9
or dword [edi + 0xc], 0xffffffff
pop ecx
push 0x19
jmp 0x408d43
push str.Content_Range:_bytes
mov ecx, edi
call fcn.00407d88
lea edx, [ebp - 0x114]
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
lea eax, [eax + 2]
test cx, cx
jne 0x408939
lea eax, [ebp - 0x114]
push eax
call fcn.00417ab7
xor esi, esi
mov dword [ebp - 0x97cc], eax
push esi
push eax
push dword [edi + 0xc]
call fcn.00419fe6
push 0x2800
call fcn.00410046
mov edi, dword [ebp - 0x97c8]
add esp, 0x14
mov dword [ebp - 0x97d0], esi
mov esi, dword [ebp - 0x97dc]
mov dword [ebp - 0x97bc], eax
jmp 0x408993
mov eax, dword [ebp - 0x97bc]
lea ecx, [ebp - 0x97d0]
push ecx
push 0x2800
push eax
push ebx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x4089b1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp - 0x97d0], 0
je 0x408a0d
push dword [ebp - 0x97d0]
push dword [ebp - 0x97bc]
push dword [esi + 0xc]
call fcn.00419954
mov eax, dword [ebp - 0x97d0]
add esp, 0xc
add dword [ebp - 0x97cc], eax
test edi, edi
je 0x408a03
lea eax, [ebp - 0x97cc]
push eax
push 4
push dword [ebp - 0x97c4]
call edi
add esp, 0xc
neg al
sbb al, al
inc al
mov byte [ebp - 0x97b5], al
jmp 0x408a09
mov al, byte [ebp - 0x97b5]
test al, al
je 0x40898d
push dword [ebp - 0x97bc]
call fcn.00410072
mov eax, dword [ebp - 0x97cc]
mov esi, dword [ebp - 0x97c0]
pop ecx
cmp eax, dword [ebp - 0x97e4]
je 0x408a7c
test edi, edi
je 0x408a49
push str.Error_during_downloading__network_error
push 5
push dword [ebp - 0x97c4]
call edi
mov eax, dword [ebp - 0x97cc]
add esp, 0xc
mov edi, dword [ebp - 0x97dc]
push eax
push dword [edi + 0xc]
call fcn.0041acfa
push dword [edi + 0xc]
call fcn.004192a9
lea eax, [ebp - 0x1214]
push eax
call fcn.0041af6a
add esp, 0x10
or eax, 0xffffffff
mov dword [edi + 0xc], eax
mov edi, eax
jmp 0x408d44
mov edi, dword [ebp - 0x97dc]
push eax
push dword [edi + 0xc]
call fcn.0041acfa
push dword [edi + 0xc]
call fcn.004192a9
mov eax, dword [ebp - 0x97d4]
mov ecx, dword [ebp - 0x97e0]
mov dword [ebp - 0x7a20], eax
mov dword [ebp - 0x7a18], eax
lea eax, [ebp - 0x7a24]
push eax
lea eax, [ebp - 0x1214]
mov dword [ebp - 0x7a24], ecx
push eax
mov dword [ebp - 0x7a1c], ecx
call fcn.00416ebd
or dword [edi + 0xc], 0xffffffff
add esp, 0x14
cmp byte [ebp - 0x97b6], 0
je 0x408ba6
xor ecx, ecx
lea eax, [ebp - 0x97d8]
push ecx
push eax
push ecx
push 0x40
lea eax, [ebp - 0x1214]
push 0x8002
push eax
call fcn.0041a60c
mov ecx, dword [ebp - 0x97d8]
test eax, eax
push 0xffffffffffffffff
pop eax
cmovne ecx, eax
push ecx
mov dword [ebp - 0x97ec], ecx
call fcn.00416fd8
mov dword [ebp - 0x97d8], eax
lea edi, [eax + 1]
push edi
call fcn.00410046
push edi
xor ecx, ecx
mov dword [ebp - 0x97bc], eax
push ecx
push eax
call fcn.00412e60
push dword [ebp - 0x97d8]
mov edi, dword [ebp - 0x97ec]
push dword [ebp - 0x97bc]
push edi
call fcn.00417ff3
push edi
call fcn.004192a9
mov edi, dword [ebp - 0x97c8]
add esp, 0x3c
test edi, edi
je 0x408b81
push dword [ebp - 0x97bc]
push 8
push dword [ebp - 0x97c4]
call edi
add esp, 0xc
neg al
sbb al, al
inc al
mov byte [ebp - 0x97b5], al
jmp 0x408b87
mov al, byte [ebp - 0x97b5]
test al, al
je 0x408b98
lea eax, [ebp - 0x1214]
push eax
call fcn.0041af6a
pop ecx
push dword [ebp - 0x97bc]
call fcn.00410072
pop ecx
jmp 0x408bac
mov edi, dword [ebp - 0x97c8]
cmp byte [ebp - 0x97b5], 0
je 0x408bd1
test edi, edi
je 0x408bc9
xor eax, eax
push eax
push 3
push dword [ebp - 0x97c4]
call edi
add esp, 0xc
or edi, 0xffffffff
jmp 0x408d44
lea eax, [ebp - 0xa14]
push eax
call fcn.0041af6a
lea eax, [ebp - 0xa14]
push eax
lea eax, [ebp - 0x1214]
push eax
call fcn.00419c70
add esp, 0xc
test eax, eax
je 0x408c34
xor eax, eax
push eax
lea eax, [ebp - 0xa14]
push eax
lea eax, [ebp - 0x1214]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x408c34
call fcn.004013ee
test edi, edi
je 0x408c2d
push str.Error_during_renaming_or_copying_tmp_file
push 5
push dword [ebp - 0x97c4]
call edi
add esp, 0xc
push 0x12
jmp 0x408d43
lea eax, [ebp - 0xa14]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
and eax, 0xfffffffd
push eax
lea eax, [ebp - 0xa14]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor eax, eax
mov dword [ebp - 0x7a20], eax
mov dword [ebp - 0x7a1c], eax
mov dword [ebp - 0x7a18], eax
lea eax, [ebp - 0xa14]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x7a3c]
call fcn.0040192c
push ecx
lea edx, [ebp - 0x7a20]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x7a3c]
call fcn.0040cc1e
test eax, eax
mov byte [ebp - 4], 2
pop ecx
setne byte [ebp - 0x97b6]
lea ecx, [ebp - 0x7a3c]
xor eax, eax
push eax
push 1
call fcn.0040195d
cmp byte [ebp - 0x97b6], 0
jne 0x408d29
mov eax, dword [ebp - 0x7a20]
cmp byte [eax], 0x4d
jne 0x408d29
cmp byte [eax + 1], 0x5a
jne 0x408d29
cmp byte [eax + 2], 0x90
jne 0x408d29
test edi, edi
je 0x408ce4
xor eax, eax
push eax
push 9
push dword [ebp - 0x97c4]
call edi
add esp, 0xc
lea ecx, [ebp - 0x7a20]
call fcn.00408d5e
test ebx, ebx
je 0x408cfa
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
xor ebx, ebx
mov edi, ebx
test esi, esi
je 0x408d09
push esi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, edi
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.0040fb37
mov esp, ebp
pop ebp
ret 0x10
lea eax, [ebp - 0xa14]
push eax
call fcn.0041af6a
pop ecx
lea ecx, [ebp - 0x7a20]
call fcn.00408d5e
push 0x14
pop edi
test ebx, ebx
je 0x408cfe
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x408cfe
mov esi, dword [ebp - 0x97c0]
jmp 0x408cfc