Function at 0x414aa0
Capabilities:
Check http status code
Connect to http server
Download and write a file
Parse url
Read data from internet
Receive and write data from server to client
Receive data
Send data
Send http request
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4908c4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb4c
push esi
push edi
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp + 0x60]
push 0
push 0x4ad568
mov dword [ebp - 4], 4
call fcn.0040e8f0
mov edi, dword [ebp + 8]
lea ecx, [ebp - 0xf0]
push edi
call fcn.00410ef0
sub esp, 8
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xf0]
call fcn.0041de80
mov esi, 0x7ffffffe
cmp eax, 0xffffffff
jne 0x414c80
push 8
xor eax, eax
mov dword [ebp - 0x54], 0
push str.https:__
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 7
mov word [ebp - 0x54], ax
call fcn.0040e8f0
mov ecx, dword [ebp - 0x20]
lea eax, [ebp - 0x9c]
push eax
mov byte [ebp - 4], 6
call fcn.00411530
mov byte [ebp - 4], 7
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x414b56
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
lea ecx, [ebp - 0x54]
call fcn.00411030
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x88]
cmp edx, 8
jb 0x414ba6
mov ecx, dword [ebp - 0x9c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x414b9c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c23
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov edx, dword [ebp - 0x44]
mov eax, esi
sub eax, edx
cmp eax, dword [ebp - 0xe0]
jb 0x416c28
cmp dword [ebp - 0x40], 8
lea ecx, [ebp - 0x54]
push dword [ebp - 0xe0]
cmovae ecx, dword [ebp - 0x54]
lea eax, [ebp - 0xf0]
cmp dword [ebp - 0xdc], 8
cmovae eax, dword [ebp - 0xf0]
push eax
push edx
push ecx
lea eax, [ebp - 0x54]
push eax
push dword [ebp - 0x18]
lea ecx, [ebp - 0x84]
call fcn.00423050
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0xf0]
call fcn.0041e080
mov edx, dword [ebp - 0x70]
cmp edx, 8
jb 0x414c42
mov ecx, dword [ebp - 0x84]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x414c38
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x40]
cmp edx, 8
jb 0x414c80
mov ecx, dword [ebp - 0x54]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x414c76
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
cmp dword [ebp - 0xdc], 8
lea eax, [ebp - 0x558]
mov dword [ebp - 0x14c], eax
lea ecx, [ebp - 0x15c]
lea eax, [ebp - 0x758]
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x140], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x958]
movlpd qword [ebp - 0x158], xmm0
mov dword [ebp - 0x138], eax
lea eax, [ebp - 0xb58]
push ecx
mov dword [ebp - 0x130], eax
lea eax, [ebp - 0xf0]
cmovae eax, dword [ebp - 0xf0]
push 0
push dword [ebp - 0xe0]
mov dword [ebp - 0x144], 0
push eax
movlpd qword [ebp - 0x128], xmm0
mov dword [ebp - 0x15c], 0x3c
mov dword [ebp - 0x148], 0x100
mov dword [ebp - 0x13c], 0x100
mov dword [ebp - 0x134], 0x100
mov dword [ebp - 0x12c], 0x100
call dword [sym.imp.WININET.dll_InternetCrackUrlW]
test eax, eax
jne 0x414e96
mov ecx, dword [ebp - 0xe0]
sub esi, ecx
cmp esi, 7
jb 0x416c5f
cmp dword [ebp - 0xdc], 8
lea eax, [ebp - 0xf0]
push ecx
cmovae eax, dword [ebp - 0xf0]
lea ecx, [ebp - 0x84]
push eax
push 7
push str.Bad_URL
lea eax, [ebp - 0xf0]
push eax
push dword [ebp - 0x18]
call fcn.00423050
mov ecx, dword [ebp + 0x60]
lea eax, [ebp - 0x84]
push eax
call fcn.0041e080
mov edx, dword [ebp - 0x70]
cmp edx, 8
jb 0x414dca
mov ecx, dword [ebp - 0x84]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x414dc0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
lea ecx, [ebp - 0x9c]
call fcn.004126f0
push 0x13
push str.InternetCrackUrl__
push 0
mov ecx, eax
mov byte [ebp - 4], 8
call fcn.00423330
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x6c], xmm0
movq xmm0, qword [eax + 0x10]
mov word [eax], cx
mov ecx, dword [ebp + 0x64]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
lea eax, [ebp - 0x6c]
push eax
movq qword [ebp - 0x5c], xmm0
call fcn.0041e080
mov edx, dword [ebp - 0x58]
cmp edx, 8
jb 0x414e53
mov ecx, dword [ebp - 0x6c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x414e49
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c2d
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov edx, dword [ebp - 0x88]
cmp edx, 8
jb 0x416bd6
mov ecx, dword [ebp - 0x9c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x415799
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c2d
jmp 0x415799
push 0
push 0
push 3
push dword [ebp - 0x138]
push dword [ebp - 0x140]
push dword [ebp - 0x144]
push dword [ebp - 0x14c]
push dword [ebp - 0x10]
call dword [sym.imp.WININET.dll_InternetConnectW]
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x4150ab
mov ecx, dword [ebp + 0x60]
push 0x1a
push str.Error_connecting_to_server
call fcn.0040e8f0
lea ecx, [ebp - 0x9c]
call fcn.004126f0
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 9
mov ecx, dword [edi + 0x10]
sub esi, ecx
cmp esi, 0x12
jb 0x416c32
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x414f03
mov eax, dword [edi]
push ecx
push eax
push 0x12
push str.InternetConnect__
push edi
push dword [ebp - 0x18]
lea ecx, [ebp - 0x38]
call fcn.00423050
push 3
push 0x4ae58c
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0xa
call fcn.00411030
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x6c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x5c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x6c]
push dword [ebp - 0x10]
lea ecx, [ebp - 0x84]
push eax
push dword [ebp - 0x18]
call fcn.00422ea0
mov ecx, dword [ebp + 0x64]
lea eax, [ebp - 0x84]
push eax
call fcn.0041e080
mov edx, dword [ebp - 0x70]
cmp edx, 8
jb 0x414fb4
mov ecx, dword [ebp - 0x84]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x414faa
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c37
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x58]
cmp edx, 8
jb 0x414ff2
mov ecx, dword [ebp - 0x6c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x414fe8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c37
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x24]
cmp edx, 8
jb 0x415030
mov ecx, dword [ebp - 0x38]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x415026
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c37
push edx
push ecx
call fcn.0046a77c
add esp, 8
xor eax, eax
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 7
mov word [ebp - 0x38], ax
cmp edx, 8
jb 0x415088
mov ecx, dword [ebp - 0x9c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41507e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c37
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov ecx, dword [ebp + 0xb4]
test ecx, ecx
je 0x416bd6
mov dword [ebp - 0x10], 2
lea edx, [ebp - 0x10]
mov eax, dword [ecx]
push edx
call dword [eax + 8]
jmp 0x416bd6
mov eax, dword [ebp - 0x20]
push 4
mov eax, dword [eax + 0x48]
mov dword [ebp - 0x118], eax
lea eax, [ebp - 0x118]
push eax
push 6
push ecx
call dword [sym.imp.WININET.dll_InternetSetOptionW]
test eax, eax
jne 0x415269
cmp dword [ebp + 0x8c], eax
je 0x415269
push 0x22
mov dword [ebp - 0x38], eax
lea ecx, [ebp - 0x38]
push str.Cant_set_internet_receive_timeout
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], 7
mov word [ebp - 0x38], ax
call fcn.0040e8f0
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0xc
call fcn.004126f0
push 0x14
push str.InternetSetOption__
push 0
mov ecx, eax
mov byte [ebp - 4], 0xd
call fcn.00423330
mov dword [ebp - 0x54], 0
xor ecx, ecx
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x54], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x44], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp + 0x8c]
test ecx, ecx
je 0x416c3c
mov eax, dword [ecx]
lea edx, [ebp - 0x54]
push edx
lea edx, [ebp - 0x38]
push edx
call dword [eax + 8]
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x40]
cmp edx, 8
jb 0x4151b6
mov ecx, dword [ebp - 0x54]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4151ac
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c41
push edx
push ecx
call fcn.0046a77c
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0xa8]
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 7
mov word [ebp - 0x54], ax
cmp edx, 8
jb 0x41520e
mov ecx, dword [ebp - 0xbc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x415204
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c41
push edx
push ecx
call fcn.0046a77c
add esp, 8
xor eax, eax
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], 7
mov word [ebp - 0xbc], ax
cmp edx, 8
jb 0x415269
mov ecx, dword [ebp - 0x38]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41525f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c41
push edx
push ecx
call fcn.0046a77c
add esp, 8
cmp dword [ebp - 0x150], 4
mov ecx, 0x84802000
push 0
mov eax, 0x84002000
mov dword [ebp - 0x120], 0x4ae378
cmove eax, ecx
mov dword [ebp - 0x11c], 0
push eax
lea eax, [ebp - 0x120]
push eax
push 0
push 0
push dword [ebp - 0x130]
push 0x4ae7b8
push dword [ebp - 0x1c]
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x415579
mov ecx, dword [ebp + 0x60]
push 0x1c
push str.Error_opening_server_request
call fcn.0040e8f0
lea ecx, [ebp - 0x9c]
call fcn.004126f0
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 0xf
mov ecx, dword [edi + 0x10]
sub esi, ecx
cmp esi, 0x12
jb 0x416c46
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x4152f7
mov eax, dword [edi]
push ecx
push eax
push 0x12
push str.HttpOpenRequest__
push edi
push dword [ebp - 0x18]
lea ecx, [ebp - 0x38]
call fcn.00423050
push 3
push 0x4ae58c
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x10
call fcn.00411030
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x6c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x5c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x6c]
push dword [ebp - 0x10]
lea ecx, [ebp - 0x84]
push eax
push dword [ebp - 0x18]
call fcn.00422ea0
mov ecx, dword [ebp + 0x64]
lea eax, [ebp - 0x84]
push eax
call fcn.0041e080
mov edx, dword [ebp - 0x70]
cmp edx, 8
jb 0x4153a8
mov ecx, dword [ebp - 0x84]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41539e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c4b
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x58]
cmp edx, 8
jb 0x4153e6
mov ecx, dword [ebp - 0x6c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4153dc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c4b
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x24]
cmp edx, 8
jb 0x415424
mov ecx, dword [ebp - 0x38]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41541a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c4b
push edx
push ecx
call fcn.0046a77c
add esp, 8
xor eax, eax
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 7
mov word [ebp - 0x38], ax
cmp edx, 8
jb 0x41547c
mov ecx, dword [ebp - 0x9c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x415472
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c4b
push edx
push ecx
call fcn.0046a77c
add esp, 8
xor eax, eax
mov dword [ebp - 0x38], 0
push eax
push 0x4ad568
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 7
mov word [ebp - 0x38], ax
call fcn.0040e8f0
xor eax, eax
mov byte [ebp - 4], 0x12
push eax
mov dword [ebp - 0x54], 0
lea ecx, [ebp - 0x54]
push 0x4ad568
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 7
mov word [ebp - 0x54], ax
call fcn.0040e8f0
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0x13
push eax
lea eax, [ebp - 0x54]
push eax
push 0
lea edx, [ebp - 0x1c]
lea ecx, [ebp - 0x14]
call fcn.00412b70
mov edx, dword [ebp - 0x40]
add esp, 0xc
cmp edx, 8
jb 0x415528
mov ecx, dword [ebp - 0x54]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41551e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov edx, dword [ebp - 0x24]
xor eax, eax
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 7
mov word [ebp - 0x54], ax
cmp edx, 8
jb 0x416bd6
lea edx, [edx*2 + 2]
mov ecx, dword [ebp - 0x38]
mov eax, ecx
cmp edx, 0x1000
jb 0x415799
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
jmp 0x415799
lea ecx, [ebp + 0x24]
call fcn.00412430
mov dword [ebp - 0x10], eax
test eax, eax
je 0x4157a8
cmp eax, 0xb7
je 0x4157a8
mov ecx, dword [ebp + 0x60]
push 0x1f
push str.Unable_to_create_directory_path
call fcn.0040e8f0
mov edx, dword [ebp - 0x10]
lea ecx, [ebp - 0x9c]
call fcn.00411320
mov edi, eax
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp + 0x34]
sub esi, ecx
cmp esi, 0xe
jb 0x416c55
cmp dword [ebp + 0x38], 8
lea eax, [ebp + 0x24]
push 0xe
cmovae eax, dword [ebp + 0x24]
push str.___Error_Code
push ecx
push eax
lea eax, [ebp + 0x24]
push eax
push dword [ebp - 0x18]
lea ecx, [ebp - 0x6c]
call fcn.00423050
push edi
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 0x15
push eax
push dword [ebp - 0x18]
lea ecx, [ebp - 0x84]
call fcn.00422ea0
mov ecx, dword [ebp + 0x64]
lea eax, [ebp - 0x84]
push eax
call fcn.0041e080
mov edx, dword [ebp - 0x70]
cmp edx, 8
jb 0x41564e
mov ecx, dword [ebp - 0x84]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x415644
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c5a
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0x58]
cmp edx, 8
jb 0x41568c
mov ecx, dword [ebp - 0x6c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x415682
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c5a
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x88]
cmp edx, 8
jb 0x4156d0
mov ecx, dword [ebp - 0x9c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4156c6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c5a
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov ecx, dword [ebp + 0xb4]
test ecx, ecx
je 0x4156ea
mov dword [ebp - 0x10], 3
lea edx, [ebp - 0x10]
mov eax, dword [ecx]
push edx
call dword [eax + 8]
xor eax, eax
mov dword [ebp - 0x38], 0
push eax
push 0x4ad568
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 7
mov word [ebp - 0x38], ax
call fcn.0040e8f0
xor eax, eax
mov byte [ebp - 4], 0x16
push eax
mov dword [ebp - 0x54], 0
lea ecx, [ebp - 0x54]
push 0x4ad568
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 7
mov word [ebp - 0x54], ax
call fcn.0040e8f0
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0x17
push eax
lea eax, [ebp - 0x54]
push eax
push 0
lea edx, [ebp - 0x1c]
lea ecx, [ebp - 0x14]
call fcn.00412b70
mov edx, dword [ebp - 0x40]
add esp, 0xc
cmp edx, 8
jb 0x415528
mov ecx, dword [ebp - 0x54]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41551e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
jmp 0x41551e
push edx
push ecx
call fcn.0046a77c
add esp, 8
jmp 0x416bd6
cmp dword [ebp + 0x38], 8
lea eax, [ebp + 0x24]
push 0
cmovae eax, dword [ebp + 0x24]
push 0x80
push 2
push 0
push 0
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x3c], eax
cmp eax, 0xffffffff
jne 0x415937
mov ecx, dword [ebp + 0x34]
sub esi, ecx
cmp esi, 0x16
jb 0x416c5f
cmp dword [ebp + 0x38], 8
lea eax, [ebp + 0x24]
push ecx
cmovae eax, dword [ebp + 0x24]
lea ecx, [ebp - 0x84]
push eax
push 0x16
push str.Error_writing_to_file
lea eax, [ebp + 0x24]
push eax
push dword [ebp - 0x18]
call fcn.00423050
mov ecx, dword [ebp + 0x60]
lea eax, [ebp - 0x84]
push eax
call fcn.0041e080
mov edx, dword [ebp - 0x70]
cmp edx, 8
jb 0x415858
mov ecx, dword [ebp - 0x84]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41584e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
lea ecx, [ebp - 0x9c]
call fcn.004126f0
push 0xd
push str.CreateFile__
push 0
mov ecx, eax
mov byte [ebp - 4], 0x18
call fcn.00423330
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x6c], xmm0
movq xmm0, qword [eax + 0x10]
mov word [eax], cx
mov ecx, dword [ebp + 0x64]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
lea eax, [ebp - 0x6c]
push eax
movq qword [ebp - 0x5c], xmm0
call fcn.0041e080
mov edx, dword [ebp - 0x58]
cmp edx, 8
jb 0x4158e1
mov ecx, dword [ebp - 0x6c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4158d7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x88]
cmp edx, 8
jb 0x415925
mov ecx, dword [ebp - 0x9c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41591b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov eax, dword [ebp - 0x20]
add eax, 0x58
push eax
lea eax, [ebp + 0x24]
push eax
push 0xffffffffffffffff
jmp 0x416bc8
push 0
push 0
push 0
push 0
push dword [ebp - 0x14]
call dword [sym.imp.WININET.dll_HttpSendRequestW]
test eax, eax
jne 0x415b11
mov ecx, dword [ebp + 0x60]
push 0x1f
push str.Error_communicating_with_server
call fcn.0040e8f0
lea ecx, [ebp - 0x9c]
call fcn.004126f0
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 0x19
mov ecx, dword [edi + 0x10]
sub esi, ecx
cmp esi, 0x12
jb 0x416c64
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x415989
mov eax, dword [edi]
push ecx
push eax
push 0x12
push str.HttpSendRequest__
push edi
push dword [ebp - 0x18]
lea ecx, [ebp - 0x38]
call fcn.00423050
push 3
push 0x4ae58c
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x1a
call fcn.00411030
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x6c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x5c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0x6c]
push dword [ebp - 0x10]
lea ecx, [ebp - 0x84]
push eax
push dword [ebp - 0x18]
call fcn.00422ea0
mov ecx, dword [ebp + 0x64]
lea eax, [ebp - 0x84]
push eax
call fcn.0041e080
mov edx, dword [ebp - 0x70]
cmp edx, 8
jb 0x415a3a
mov ecx, dword [ebp - 0x84]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x415a30
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov byte [ebp - 4], 0x1a
mov edx, dword [ebp - 0x58]
cmp edx, 8
jb 0x415a78
mov ecx, dword [ebp - 0x6c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x415a6e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov byte [ebp - 4], 0x19
mov edx, dword [ebp - 0x24]
cmp edx, 8
jb 0x415ab6
mov ecx, dword [ebp - 0x38]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x415aac
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
xor eax, eax
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 7
mov word [ebp - 0x38], ax
cmp edx, 8
jb 0x416bba
mov ecx, dword [ebp - 0x9c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x415d24
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x415d24
jmp 0x416c50
push 0x190
lea eax, [ebp - 0x358]
push 0
push eax
call fcn.0046c540
add esp, 0xc
mov dword [ebp - 0xc0], 0x190
lea eax, [ebp - 0xa0]
mov dword [ebp - 0xa0], 0
push eax
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0x358]
push eax
push 0x13
push dword [ebp - 0x14]
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
xor ecx, ecx
mov word [ebp - 0x1ca], cx
test eax, eax
jne 0x415d33
mov ecx, dword [ebp + 0x60]
push 0x1f
push str.Error_communicating_with_server
call fcn.0040e8f0
lea ecx, [ebp - 0x9c]
call fcn.004126f0
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 0x1c
mov ecx, dword [edi + 0x10]
sub esi, ecx
cmp esi, 0x10
jb 0x416c69
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x415ba5
mov eax, dword [edi]
push ecx
push eax
push 0x10
push str.HttpQueryInfo__
push edi
push dword [ebp - 0x18]
lea ecx, [ebp - 0x38]
call fcn.00423050
push 3
push 0x4ae58c
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x1d
call fcn.00411030
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x6c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x5c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 0x1e
lea eax, [ebp - 0x6c]
push dword [ebp - 0x10]
lea ecx, [ebp - 0x84]
push eax
push dword [ebp - 0x18]
call fcn.00422ea0
mov ecx, dword [ebp + 0x64]
lea eax, [ebp - 0x84]
push eax
call fcn.0041e080
mov edx, dword [ebp - 0x70]
cmp edx, 8
jb 0x415c56
mov ecx, dword [ebp - 0x84]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x415c4c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov byte [ebp - 4], 0x1d
mov edx, dword [ebp - 0x58]
cmp edx, 8
jb 0x415c94
mov ecx, dword [ebp - 0x6c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x415c8a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov byte [ebp - 4], 0x1c
mov edx, dword [ebp - 0x24]
cmp edx, 8
jb 0x415cd2
mov ecx, dword [ebp - 0x38]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x415cc8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
xor eax, eax
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 7
mov word [ebp - 0x38], ax
cmp edx, 8
jb 0x416bba
mov ecx, dword [ebp - 0x9c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x415d24
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
jmp 0x416bba
lea eax, [ebp - 0x358]
push eax
call fcn.0046faae
add esp, 4
mov dword [ebp - 0x10], eax
lea ecx, [eax - 0xc8]
cmp ecx, 0x64
jb 0x416376
push 0
mov dword [ebp - 0x38], 0
lea ecx, [ebp - 0x38]
push 0x4ad0cb
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
call fcn.0040ea50
mov byte [ebp - 4], 0x1f
lea edx, [ebp - 0x38]
push ecx
mov ecx, dword [ebp - 0x14]
call fcn.00412b00
mov ecx, dword [ebp + 0x60]
add esp, 4
cmp dword [ebp - 0x10], 0x194
jne 0x415f7a
push 0x21
push str.File_was_not_found_on_the_server.
call fcn.0040e8f0
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x9c]
push eax
call fcn.004503b0
add esp, 8
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 0x20
mov ecx, dword [edi + 0x10]
sub esi, ecx
cmp esi, 0xb
jb 0x416c6e
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x415ddd
mov eax, dword [edi]
push ecx
push eax
push 0xb
push str.HTTP_404__
push edi
push dword [ebp - 0x18]
lea ecx, [ebp - 0xbc]
call fcn.00423050
push 9
push str.___Reply:
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0x21
call fcn.00411030
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x6c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x5c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 0x22
lea eax, [ebp - 0x6c]
push dword [ebp - 0x10]
lea ecx, [ebp - 0x84]
push eax
push dword [ebp - 0x18]
call fcn.00422ea0
mov ecx, dword [ebp + 0x64]
lea eax, [ebp - 0x84]
push eax
call fcn.0041e080
mov edx, dword [ebp - 0x70]
cmp edx, 8
jb 0x415e94
mov ecx, dword [ebp - 0x84]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x415e8a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov byte [ebp - 4], 0x21
mov edx, dword [ebp - 0x58]
cmp edx, 8
jb 0x415ed2
mov ecx, dword [ebp - 0x6c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x415ec8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov byte [ebp - 4], 0x20
mov edx, dword [ebp - 0xa8]
cmp edx, 8
jb 0x415f16
mov ecx, dword [ebp - 0xbc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x415f0c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x1f
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], 7
mov word [ebp - 0xbc], ax
cmp edx, 8
jb 0x416348
mov ecx, dword [ebp - 0x9c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41633e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x41633e
jmp 0x416c50
push 0x20
push str.Error_communicating_with_server.
call fcn.0040e8f0
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0xd8]
push eax
call fcn.004503b0
add esp, 8
mov esi, eax
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x6c]
mov edx, dword [ebp - 0x10]
call fcn.00411320
push 4
push str.HTTP
push 0
mov ecx, eax
mov byte [ebp - 4], 0x24
call fcn.00423330
mov dword [ebp - 0xbc], 0
xor ecx, ecx
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xbc], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0xac], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
push 3
push 0x4ae58c
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0x25
call fcn.00411030
mov dword [ebp - 0x108], 0
xor ecx, ecx
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x108], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0xf8], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 0x26
mov eax, edi
cmp dword [edi + 0x14], 8
jb 0x416072
mov eax, dword [edi]
push dword [edi + 0x10]
lea ecx, [ebp - 0x108]
push eax
call fcn.00411030
mov dword [ebp - 0x54], 0
xor ecx, ecx
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x54], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x44], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
push 9
push str.___Reply:
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0x27
call fcn.00411030
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x84], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x74], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
push esi
lea eax, [ebp - 0x84]
mov byte [ebp - 4], 0x28
push eax
push dword [ebp - 0x18]
lea ecx, [ebp - 0x9c]
call fcn.00422ea0
mov ecx, dword [ebp + 0x64]
lea eax, [ebp - 0x9c]
push eax
call fcn.0041e080
mov edx, dword [ebp - 0x88]
cmp edx, 8
jb 0x41615d
mov ecx, dword [ebp - 0x9c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x416153
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov byte [ebp - 4], 0x27
mov edx, dword [ebp - 0x70]
cmp edx, 8
jb 0x41619e
mov ecx, dword [ebp - 0x84]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x416194
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov byte [ebp - 4], 0x26
mov edx, dword [ebp - 0x40]
cmp edx, 8
jb 0x4161dc
mov ecx, dword [ebp - 0x54]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4161d2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x25
mov edx, dword [ebp - 0xf4]
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 7
mov word [ebp - 0x54], ax
cmp edx, 8
jb 0x416234
mov ecx, dword [ebp - 0x108]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41622a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x24
mov edx, dword [ebp - 0xa8]
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 7
mov word [ebp - 0x108], ax
cmp edx, 8
jb 0x416295
mov ecx, dword [ebp - 0xbc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41628b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x23
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], 7
mov word [ebp - 0xbc], ax
cmp edx, 8
jb 0x4162f0
mov ecx, dword [ebp - 0x6c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4162e6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x1f
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 7
mov word [ebp - 0x6c], ax
cmp edx, 8
jb 0x416348
mov ecx, dword [ebp - 0xd8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41633e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c50
push edx
push ecx
call fcn.0046a77c
add esp, 8
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
add eax, 0x58
lea ecx, [ebp - 0x14]
push eax
lea eax, [ebp + 0x24]
push eax
push dword [ebp - 0x3c]
call fcn.00412b70
mov edx, dword [ebp - 0x24]
add esp, 0xc
cmp edx, 0x10
jb 0x416bd6
inc edx
jmp 0x41554f
lea eax, [ebp - 0xa0]
mov dword [ebp - 0xc0], 0x190
push eax
lea eax, [ebp - 0xc0]
mov dword [ebp - 0xa0], 0
push eax
lea eax, [ebp - 0x358]
push eax
push 5
push dword [ebp - 0x14]
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
lea eax, [ebp - 0x358]
push eax
call fcn.0046faae
mov esi, eax
add esp, 4
mov dword [ebp - 0x10], esi
cmp esi, 1
jge 0x4165a5
mov esi, dword [ebp + 0x3c]
cmp dword [ebp + 0x5c], 0
jl 0x41685e
jg 0x4163e0
cmp dword [ebp + 0x58], 0
jbe 0x41685e
lea eax, [ebp + 0xc]
push eax
call fcn.004524b0
add esp, 4
test al, al
je 0x41685e
lea eax, [ebp - 0xa0]
mov dword [ebp - 0xa0], 0
push eax
lea eax, [ebp - 0xa4]
mov dword [ebp - 0xa4], 0x10
push eax
lea eax, [ebp - 0x4c]
push eax
push 0x4000000b
push dword [ebp - 0x14]
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
test eax, eax
je 0x4167fd
movzx eax, word [ebp - 0x40]
mov dword [ebp - 0x114], eax
movzx eax, word [ebp - 0x42]
mov dword [ebp - 0x110], eax
movzx eax, word [ebp - 0x44]
mov dword [ebp - 0x10c], eax
movzx eax, word [ebp - 0x46]
mov dword [ebp - 0x108], eax
movzx eax, word [ebp - 0x4a]
dec eax
mov dword [ebp - 0xf4], 0xffffffff
mov dword [ebp - 0x104], eax
movzx eax, word [ebp - 0x4c]
sub eax, 0x76c
mov dword [ebp - 0x100], eax
lea eax, [ebp - 0x114]
push eax
call fcn.004701cc
mov ecx, dword [ebp + 0x5c]
add esp, 4
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x58]
add eax, 0x3c
mov dword [ebp - 0x18], edx
adc ecx, 0
cmp edx, ecx
jl 0x41685e
jg 0x4164b0
cmp dword [ebp - 0x10], eax
jbe 0x41685e
mov ecx, dword [ebp + 0x60]
push str.File_is_not_for_this_publish
call fcn.00410bc0
push dword [ebp + 0x5c]
lea ecx, [ebp - 0xbc]
push dword [ebp + 0x58]
call fcn.004113d0
mov esi, eax
push dword [ebp - 0x18]
mov byte [ebp - 4], 0x37
lea ecx, [ebp - 0x38]
push dword [ebp - 0x10]
call fcn.004113d0
push eax
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 0x38
push str.Modified_Date__
push eax
call fcn.00421b30
push str.__Newer_Than_Project_PublishDate__
mov edx, eax
mov byte [ebp - 4], 0x39
lea ecx, [ebp - 0x84]
call fcn.004217c0
push esi
mov edx, eax
mov byte [ebp - 4], 0x3a
lea ecx, [ebp - 0x9c]
call fcn.00421560
push 0x4ae2c0
mov edx, eax
mov byte [ebp - 4], 0x3b
lea ecx, [ebp - 0xd8]
call fcn.004217c0
mov ecx, dword [ebp + 0x64]
add esp, 0x28
push eax
call fcn.0041e080
lea ecx, [ebp - 0xd8]
call fcn.0040e140
lea ecx, [ebp - 0x9c]
call fcn.0040e140
lea ecx, [ebp - 0x84]
call fcn.0040e140
lea ecx, [ebp - 0x6c]
call fcn.0040e140
lea ecx, [ebp - 0x38]
call fcn.0040e140
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 5
call fcn.0040e140
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
add eax, 0x58
lea ecx, [ebp - 0x14]
push eax
lea eax, [ebp + 0x24]
push eax
push dword [ebp - 0x3c]
call fcn.00412b70
add esp, 0xc
mov esi, 3
jmp 0x416bdb
mov edx, dword [ebp + 0x3c]
cmp edx, esi
je 0x4163ca
test edx, edx
jle 0x4163ca
lea ecx, [ebp - 0x6c]
call fcn.00411320
mov esi, eax
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0x84]
mov edx, dword [ebp - 0x10]
call fcn.00411320
push 0x14
push str.Server_says_file_is
push 0
mov ecx, eax
mov byte [ebp - 4], 0x2a
call fcn.00423330
mov dword [ebp - 0x108], 0
xor ecx, ecx
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x108], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0xf8], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
push 0x1c
push str._but_feed_says_it_should_be
lea ecx, [ebp - 0x108]
mov byte [ebp - 4], 0x2b
call fcn.00411030
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x9c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x8c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
push esi
lea eax, [ebp - 0x9c]
mov byte [ebp - 4], 0x2c
push eax
push dword [ebp - 0x18]
lea ecx, [ebp - 0xd8]
call fcn.00422ea0
push 2
push 0x4ae9d8
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0x2d
call fcn.00411030
mov dword [ebp - 0xbc], 0
xor ecx, ecx
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xbc], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0xac], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 0x2e
mov eax, edi
cmp dword [edi + 0x14], 8
jb 0x4166f6
mov eax, dword [edi]
push dword [edi + 0x10]
lea ecx, [ebp - 0xbc]
push eax
call fcn.00411030
push eax
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
call fcn.00411000
lea ecx, [ebp - 0xbc]
call fcn.0040e140
lea ecx, [ebp - 0xd8]
call fcn.0040e140
lea ecx, [ebp - 0x9c]
call fcn.0040e140
lea ecx, [ebp - 0x108]
call fcn.0040e140
lea ecx, [ebp - 0x84]
call fcn.0040e140
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x35
call fcn.0040e140
mov esi, dword [ebp - 0x20]
cmp byte [esi + 0x4c], 0
je 0x4167be
cmp dword [ebp + 0x8c], 0
je 0x4167aa
push str.Warning___File_not_correct_size
lea ecx, [ebp - 0x9c]
call fcn.0040e1a0
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0x36
push eax
lea eax, [ebp - 0x9c]
push eax
lea ecx, [ebp + 0x68]
call fcn.0041ce50
lea ecx, [ebp - 0x9c]
call fcn.0040e140
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 5
call fcn.0040e140
mov esi, dword [ebp - 0x10]
jmp 0x4163ca
mov ecx, dword [ebp + 0x60]
push str.Error___File_not_correct_size
call fcn.00410bc0
mov ecx, dword [ebp + 0x64]
lea eax, [ebp - 0x38]
push eax
call fcn.0041e050
lea eax, [esi + 0x58]
push eax
lea eax, [ebp + 0x24]
push eax
push dword [ebp - 0x3c]
lea edx, [ebp - 0x1c]
lea ecx, [ebp - 0x14]
call fcn.00412b70
add esp, 0xc
lea ecx, [ebp - 0x38]
call fcn.0040e140
jmp 0x416bd6
cmp dword [ebp + 0x8c], 0
je 0x41685e
push str.File_will_be_downloaded_anyway
lea ecx, [ebp - 0x9c]
call fcn.0040e1a0
push str.Server_did_not_return_a_modified_date
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0x3c
call fcn.0040e1a0
lea eax, [ebp - 0x9c]
mov byte [ebp - 4], 0x3d
push eax
lea eax, [ebp - 0xd8]
push eax
lea ecx, [ebp + 0x68]
call fcn.0041ce50
lea ecx, [ebp - 0xd8]
call fcn.0040e140
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 5
call fcn.0040e140
lea ecx, [ebp - 0x1c8]
call fcn.004514c0
nop dword [eax]
mov eax, 0x190
cmp esi, 1
jl 0x41687f
cmp esi, eax
cmovb eax, esi
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], 0
push ecx
push eax
lea eax, [ebp - 0x358]
push eax
push dword [ebp - 0x14]
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x416b66
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x416934
push 0
lea ecx, [ebp - 0xa4]
mov dword [ebp - 0xa4], 0
push ecx
push eax
lea eax, [ebp - 0x358]
push eax
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, dword [ebp - 0x10]
neg eax
sbb eax, eax
and eax, dword [ebp - 0xa4]
mov dword [ebp - 0xa4], eax
cmp eax, ecx
jne 0x41690d
sub esi, ecx
cmp dword [ebp + 0x50], 0
je 0x416870
push ecx
lea eax, [ebp - 0x358]
push eax
lea ecx, [ebp - 0x1c8]
call fcn.00451d10
jmp 0x416870
mov ecx, dword [ebp + 0x60]
push str.Error_saving_file_to_disk
call fcn.00410bc0
lea ecx, [ebp - 0x9c]
call fcn.004126f0
push eax
mov byte [ebp - 4], 0x4c
push str.WriteFile__
jmp 0x416b88
test esi, esi
jg 0x416ae0
cmp dword [ebp + 0x50], 0
je 0x416a73
lea ecx, [ebp - 0x1c8]
call fcn.004514f0
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x1c8]
call fcn.004515e0
push 0x10
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0xd8]
push eax
call fcn.00451dd0
push eax
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 0x41
push eax
call fcn.0044e0f0
add esp, 0x14
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0x43
call fcn.0040e370
lea edx, [ebp + 0x40]
lea ecx, [ebp - 0x6c]
call fcn.00421d40
test al, al
je 0x416a6b
push str.___feed_says_file_hash_is
mov edx, edi
lea ecx, [ebp - 0xbc]
call fcn.00421750
lea ecx, [ebp + 0x40]
mov byte [ebp - 4], 0x44
push ecx
mov edx, eax
lea ecx, [ebp - 0x38]
call fcn.00421500
push str._but_downloaded_file_hash_is
mov edx, eax
mov byte [ebp - 4], 0x45
lea ecx, [ebp - 0x9c]
call fcn.004217c0
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x46
push ecx
mov edx, eax
lea ecx, [ebp - 0x84]
call fcn.00421500
add esp, 0x10
lea ecx, [ebp - 0x9c]
call fcn.0040e140
lea ecx, [ebp - 0x38]
call fcn.0040e140
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0x4a
call fcn.0040e140
mov esi, dword [ebp - 0x20]
cmp byte [esi + 0x4d], 0
je 0x416a93
cmp dword [ebp + 0x8c], 0
je 0x416a60
push str.Error___Incorrect_hash
lea ecx, [ebp - 0xd8]
call fcn.0040e1a0
lea eax, [ebp - 0x84]
mov byte [ebp - 4], 0x4b
push eax
lea eax, [ebp - 0xd8]
push eax
lea ecx, [ebp + 0x68]
call fcn.0041ce50
lea ecx, [ebp - 0xd8]
call fcn.0040e140
lea ecx, [ebp - 0x84]
call fcn.0040e140
lea ecx, [ebp - 0x6c]
call fcn.0040e140
push dword [ebp - 0x14]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
push dword [ebp - 0x1c]
call esi
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor esi, esi
jmp 0x416bdb
mov ecx, dword [ebp + 0x60]
push str.Error___Incorrect_hash
call fcn.00410bc0
mov ecx, dword [ebp + 0x64]
lea eax, [ebp - 0x84]
push eax
call fcn.0041e050
lea eax, [esi + 0x58]
push eax
lea eax, [ebp + 0x24]
push eax
push dword [ebp - 0x3c]
lea edx, [ebp - 0x1c]
lea ecx, [ebp - 0x14]
call fcn.00412b70
add esp, 0xc
lea ecx, [ebp - 0x84]
call fcn.0040e140
lea ecx, [ebp - 0x6c]
call fcn.0040e140
jmp 0x416bd6
mov ecx, dword [ebp + 0x60]
push str.Incomplete_file_download
call fcn.00410bc0
lea ecx, [ebp - 0x6c]
call fcn.004126f0
mov esi, eax
push edi
mov edx, str.InternetReadFile__
mov byte [ebp - 4], 0x3e
lea ecx, [ebp - 0x84]
call fcn.00421ad0
push 0x4ae58c
mov edx, eax
mov byte [ebp - 4], 0x3f
lea ecx, [ebp - 0x9c]
call fcn.004217c0
push esi
mov edx, eax
mov byte [ebp - 4], 0x40
lea ecx, [ebp - 0xd8]
call fcn.00421560
mov ecx, dword [ebp + 0x64]
add esp, 0xc
push eax
call fcn.0041e080
lea ecx, [ebp - 0xd8]
call fcn.0040e140
lea ecx, [ebp - 0x9c]
call fcn.0040e140
lea ecx, [ebp - 0x84]
call fcn.0040e140
lea ecx, [ebp - 0x6c]
jmp 0x416bb1
mov ecx, dword [ebp + 0x60]
push str.Error_downloading_file_to_disk
call fcn.00410bc0
lea ecx, [ebp - 0x9c]
call fcn.004126f0
push eax
mov byte [ebp - 4], 0x4d
push str.InternetReadFile__
lea eax, [ebp - 0xd8]
push eax
call fcn.00421b30
mov ecx, dword [ebp + 0x64]
add esp, 0xc
push eax
call fcn.0041e080
lea ecx, [ebp - 0xd8]
call fcn.0040e140
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 5
call fcn.0040e140
mov eax, dword [ebp - 0x20]
add eax, 0x58
push eax
lea eax, [ebp + 0x24]
push eax
push dword [ebp - 0x3c]
lea edx, [ebp - 0x1c]
lea ecx, [ebp - 0x14]
call fcn.00412b70
add esp, 0xc
mov esi, 1
lea ecx, [ebp - 0xf0]
call fcn.0040e140
lea ecx, [ebp + 0xc]
call fcn.0040e140
lea ecx, [ebp + 0x24]
call fcn.0040e140
lea ecx, [ebp + 0x40]
call fcn.0040e140
lea ecx, [ebp + 0x68]
call fcn.0040b5b0
lea ecx, [ebp + 0x90]
call fcn.0040b5b0
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
call fcn.0046fcb0
call fcn.0040a9a0
call fcn.0046fcb0
call fcn.0040a9a0
call fcn.0046fcb0
call fcn.004551e3
call fcn.0046fcb0
call fcn.0040a9a0
call fcn.0046fcb0
call fcn.0046fcb0
call fcn.0040a9a0
call fcn.0046fcb0
call fcn.0040a9a0
call fcn.0040a9a0
call fcn.0040a9a0
call fcn.0040a9a0
int3