Function at 0x40526a
Capabilities:
Check for time delay via gettickcount
Check http status code
Connect to http server
Create http request
Get http response content encoding
Make an http request with a cookie
Read data from internet
Receive data
Send data
Send http request

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x438766
mov eax, dword fs:[0]
push eax
mov eax, 0x1bb4
call fcn.0041af30
mov eax, dword [0x45106c]
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 dword [ebp - 0x1b60], ecx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov dword [ebp - 0x1b48], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x1b44], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x1b20], eax
mov al, byte [ebp + 0x18]
mov byte [ebp - 0x1b01], al
mov al, byte [ebp + 0x1c]
mov byte [ebp - 0x1af1], al
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x1b1c], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x1ad8], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0x1b2c], eax
mov eax, dword [ebp + 0x30]
mov dword [ebp - 0x1b30], eax
mov eax, dword [ebp + 0x3c]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x1b24], eax
mov al, byte [ebp + 0x40]
mov byte [ebp - 0x1b02], al
mov eax, dword [ebp + 0x44]
mov dword [ebp - 0x1b0c], eax
mov al, byte [ebp + 0x48]
mov byte [ebp - 0x1b25], al
mov eax, dword [ebp + 0x4c]
mov dword [ebp - 0x1ad0], eax
mov eax, dword [ebp + 0x58]
mov dword [ebp - 0x1ba8], eax
mov al, byte [ebp + 0x6c]
mov byte [ebp - 0x1b3d], al
mov al, byte [ebp + 0x70]
mov byte [ebp - 0x1af9], al
mov al, byte [ebp + 0x74]
mov byte [ebp - 0x1b12], al
mov eax, dword [ebp + 0x78]
mov dword [ebp - 0x1ac8], edi
mov dword [ebp - 0x1bbc], eax
mov dword [ebp - 0x1bc0], ecx
mov dword [ebp - 4], ecx
mov esi, ecx
jmp 0x405367
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0x1b08], ecx
lea eax, [ebp - 0x1b18]
mov dword [ebp - 0x1b18], 4
push eax
test esi, esi
lea eax, [ebp - 0x1b08]
push eax
setne bl
add ebx, 0x49
push ebx
push ecx
call dword [sym.imp.WININET.dll_InternetQueryOptionW]
mov eax, dword [ebp - 0x1b08]
push 0x40
pop ecx
cmp eax, ecx
cmovb eax, ecx
mov dword [ebp - 0x1b5c], eax
cmp dword [ebp - 0x1b08], eax
je 0x4053de
push 4
lea eax, [ebp - 0x1b5c]
push eax
push ebx
xor eax, eax
push eax
call dword [sym.imp.WININET.dll_InternetSetOptionW]
lea eax, [ebp - 0x1b18]
push eax
lea eax, [ebp - 0x1b5c]
push eax
push ebx
xor eax, eax
push eax
call dword [sym.imp.WININET.dll_InternetQueryOptionW]
inc esi
cmp esi, 2
jl 0x405365
lea ecx, [ebp - 0x1ba4]
call fcn.00404065
mov eax, dword [ebp - 0x1b24]
lea ebx, [ebp - 0x1ba4]
test eax, eax
lea ecx, [ebp - 0x1ac4]
cmovne ebx, eax
mov dword [ebp - 0x1b08], ebx
call fcn.00404065
push 3
pop ecx
mov byte [ebp - 4], cl
mov ecx, ebx
push eax
call fcn.004074f4
lea ecx, [ebp - 0x1ab4]
mov byte [ebp - 4], 2
call fcn.00410108
lea ecx, [ebp - 0x1ac4]
call fcn.004049ad
mov eax, dword [ebp + 0x34]
xor ecx, ecx
and eax, dword [ebp + 0x38]
inc ecx
mov edx, dword [ebp - 0x1b30]
cmp eax, 0xffffffff
je 0x4054ec
mov byte [ebp - 0x1b11], cl
cmp edx, dword [ebp + 0x38]
jl 0x405574
jg 0x405471
mov ecx, dword [ebp - 0x1b2c]
cmp ecx, dword [ebp + 0x34]
jbe 0x40557a
push 0x83
push 0x80004005
push ecx
mov esi, esp
call fcn.00413c5e
push eax
mov ecx, esi
call fcn.00413a4e
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
lea eax, [ebp - 0x1ae8]
mov byte [ebp - 4], 4
push eax
mov ecx, edi
call fcn.0040153c
mov ecx, dword [ebp - 0x1ae0]
lea ecx, [ecx - 0x10]
call fcn.004142bb
lea ecx, [ebp - 0x1b94]
call fcn.00410108
lea ecx, [ebp - 0x1ba4]
call fcn.004049ad
mov ecx, dword [ebp + 0x5c]
add ecx, 0xfffffff0
call fcn.004142bb
mov ecx, dword [ebp + 0x80]
add ecx, 0xfffffff0
call fcn.004142bb
mov eax, edi
jmp 0x4074d6
mov ecx, dword [ebp - 0x1b2c]
xor ebx, ebx
mov eax, ecx
mov byte [ebp - 0x1b11], bl
or eax, edx
je 0x40557c
push 0x85
push 0x80004005
push ecx
mov esi, esp
call fcn.00413c5e
push eax
mov ecx, esi
call fcn.00413a4e
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 5
lea eax, [ebp - 0x1ae8]
mov ecx, edi
push eax
call fcn.0040153c
mov ecx, dword [ebp - 0x1ae0]
lea ecx, [ecx - 0x10]
call fcn.004142bb
lea ecx, [ebp - 0x1b94]
call fcn.00410108
lea ecx, [ebp - 0x1ba4]
call fcn.004049ad
mov ecx, dword [ebp + 0x5c]
lea ecx, [ecx - 0x10]
call fcn.004142bb
mov ecx, dword [ebp + 0x80]
lea ecx, [ecx - 0x10]
jmp 0x4054e0
mov ecx, dword [ebp - 0x1b2c]
xor ebx, ebx
cmp byte [ebp + 0x50], 0
je 0x4055c2
cmp byte [ebp - 0x1b01], 0
jne 0x4055c2
cmp byte [ebp - 0x1af9], 0
jne 0x4055c2
push 0x89
push 0x80004005
push ecx
mov esi, esp
call fcn.00413c5e
push eax
mov ecx, esi
call fcn.00413a4e
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 6
jmp 0x405529
mov eax, dword [ebp - 0x1b20]
test eax, eax
je 0x4055dd
push 0x3f
pop esi
cmp word [eax], si
jne 0x4055dd
add eax, 2
mov dword [ebp - 0x1b20], eax
push ebx
push ebx
push edx
push ecx
mov ecx, dword [ebp - 0x1b60]
lea eax, [ebp - 0x1bb8]
push ebx
push eax
call fcn.0040827b
mov byte [ebp - 4], 7
cmp dword [ebp - 0x1bb8], 0
jge 0x4056ac
cmp dword [ebp - 0x1bb4], 0
mov eax, 0x98
cmovne eax, dword [ebp - 0x1bb4]
push eax
push dword [ebp - 0x1bb8]
push ecx
mov esi, esp
mov dword [ebp - 0x1ad8], esi
mov edi, dword [ebp - 0x1bb0]
lea ecx, [edi - 0x10]
call fcn.0041423d
add eax, 0x10
lea ecx, [ebp - 0x1ae8]
mov dword [esi], eax
call fcn.004142d3
mov ecx, dword [ebp - 0x1ac8]
lea eax, [ebp - 0x1ae8]
push eax
mov byte [ebp - 4], 8
call fcn.0040153c
mov ecx, dword [ebp - 0x1ae0]
lea ecx, [ecx - 0x10]
call fcn.004142bb
lea ecx, [edi - 0x10]
call fcn.004142bb
lea ecx, [ebp - 0x1b94]
call fcn.00410108
lea ecx, [ebp - 0x1ba4]
call fcn.004049ad
mov ecx, dword [ebp + 0x5c]
lea ecx, [ecx - 0x10]
call fcn.004142bb
mov ecx, dword [ebp + 0x80]
lea ecx, [ecx - 0x10]
call fcn.004142bb
mov eax, dword [ebp - 0x1ac8]
jmp 0x4074d6
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x1bb0]
lea ecx, [ecx - 0x10]
call fcn.004142bb
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, dword [ebp - 0x1b1c]
mov dword [ebp - 0x1bac], eax
test ebx, ebx
je 0x4056e6
lea eax, [ebp - 0x1b1c]
mov ecx, ebx
push eax
call fcn.0040445d
push 2
jmp 0x4056f6
xor eax, eax
lea ecx, [ebp - 0x1b24]
push eax
call fcn.00414128
push 4
pop ecx
mov dword [ebp - 0x1b00], ecx
xor ecx, ecx
push ecx
push ecx
push dword [eax]
xor eax, eax
cmp byte [ebp - 0x1b02], al
push 3
sete al
test ebx, ebx
pop esi
cmovne eax, esi
push eax
push dword [ebp + 0x5c]
call dword [sym.imp.WININET.dll_InternetOpenW]
mov ebx, eax
mov dword [ebp - 0x1af8], ebx
mov dword [ebp - 4], 0xa
mov eax, dword [ebp - 0x1b00]
test al, 4
je 0x405756
mov ecx, dword [ebp - 0x1b24]
and eax, 0xfffffffb
mov dword [ebp - 0x1b00], eax
lea ecx, [ecx - 0x10]
call fcn.004142bb
mov eax, dword [ebp - 0x1b00]
mov byte [ebp - 4], 0xb
test al, 2
je 0x40576c
mov ecx, dword [ebp - 0x1b1c]
lea ecx, [ecx - 0x10]
call fcn.004142bb
test ebx, ebx
setne al
test al, al
jne 0x4057e8
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0xaa
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov esi, esp
call fcn.00413c5e
push eax
mov ecx, esi
call fcn.00413a4e
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x1ae8]
mov ecx, edi
push eax
call fcn.0040153c
mov ecx, dword [ebp - 0x1ae0]
lea ecx, [ecx - 0x10]
call fcn.004142bb
test ebx, ebx
je 0x405545
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x405545
cmp dword [ebp + 0x60], 0
je 0x40584e
push 4
lea eax, [ebp + 0x60]
push eax
push 2
push ebx
call dword [sym.imp.WININET.dll_InternetSetOptionW]
test eax, eax
setne al
test al, al
jne 0x40584e
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0xad
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov esi, esp
call fcn.00413c5e
push eax
mov ecx, esi
call fcn.00413a4e
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0xd
jmp 0x4057b8
cmp dword [ebp + 0x64], 0
je 0x4058b4
push 4
lea eax, [ebp + 0x64]
push eax
push 5
push ebx
call dword [sym.imp.WININET.dll_InternetSetOptionW]
test eax, eax
setne al
test al, al
jne 0x4058b4
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0xb0
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov esi, esp
call fcn.00413c5e
push eax
mov ecx, esi
call fcn.00413a4e
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0xe
jmp 0x4057b8
cmp dword [ebp + 0x68], 0
je 0x40591a
push 4
lea eax, [ebp + 0x68]
push eax
push 6
push ebx
call dword [sym.imp.WININET.dll_InternetSetOptionW]
test eax, eax
setne al
test al, al
jne 0x40591a
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0xb3
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov esi, esp
call fcn.00413c5e
push eax
mov ecx, esi
call fcn.00413a4e
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0xf
jmp 0x4057b8
mov ax, word [ebp + 0x28]
movzx ecx, ax
test ax, ax
jne 0x40593b
cmp byte [ebp - 0x1af1], 0
mov ecx, 0x1bb
push 0x50
pop eax
cmovne eax, ecx
movzx ecx, ax
xor eax, eax
mov edx, 0x84880200
cmp byte [ebp - 0x1af1], 0
push eax
mov eax, 0x84080200
cmovne eax, edx
push eax
push esi
xor eax, eax
push eax
push eax
push ecx
push dword [ebp - 0x1b48]
push ebx
call dword [sym.imp.WININET.dll_InternetConnectW]
mov esi, eax
mov dword [ebp - 0x1adc], esi
test esi, esi
mov byte [ebp - 4], 0x10
setne al
test al, al
jne 0x4059f4
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0xcd
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov edi, esp
call fcn.00413c5e
push eax
mov ecx, edi
call fcn.00413a4e
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov edi, dword [ebp - 0x1ac8]
lea eax, [ebp - 0x1ae8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x11
call fcn.0040153c
mov ecx, dword [ebp - 0x1ae0]
lea ecx, [ecx - 0x10]
call fcn.004142bb
test esi, esi
je 0x4057d4
push esi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x4057d4
call fcn.00413c5e
push eax
lea ecx, [ebp - 0x1ad4]
call fcn.00413a4e
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x1b24]
push dword [ebp - 0x1b44]
call fcn.00414128
push eax
lea ecx, [ebp - 0x1ad4]
mov byte [ebp - 4], 0x13
call fcn.004136ae
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x1b24]
lea ecx, [ecx - 0x10]
call fcn.004142bb
mov edi, dword [ebp - 0x1b20]
test edi, edi
je 0x405aa1
xor eax, eax
cmp word [edi], ax
je 0x405aa1
push 0x4452a4
lea ecx, [ebp - 0x1b1c]
call fcn.00414128
push edi
mov edx, eax
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x1b24]
call fcn.0040fd4a
pop ecx
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x1ad4]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.0041305b
mov ecx, dword [ebp - 0x1b24]
lea ecx, [ecx - 0x10]
call fcn.004142bb
mov ecx, dword [ebp - 0x1b1c]
lea ecx, [ecx - 0x10]
call fcn.004142bb
xor eax, eax
xor edi, edi
cmp byte [ebp - 0x1b3d], al
mov ecx, 0xc000
push edi
cmovne eax, ecx
mov edx, 0x84c80300
cmp byte [ebp - 0x1b25], 0
mov ecx, 0x200000
cmovne ecx, eax
cmp byte [ebp - 0x1af1], 0
mov eax, 0x84480300
cmovne eax, edx
or ecx, eax
xor eax, eax
cmp byte [ebp - 0x1b12], 0
push ecx
push 0x45192c
push eax
push eax
push dword [ebp - 0x1ad4]
mov ecx, 0x44557c
mov eax, str.DELETE
cmove eax, ecx
cmp byte [ebp - 0x1af9], 0
mov ecx, 0x445564
cmove ecx, eax
cmp byte [ebp - 0x1b01], 0
mov eax, str.POST
cmove eax, ecx
push eax
push esi
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
mov edi, eax
mov dword [ebp - 0x1af0], edi
test edi, edi
mov byte [ebp - 4], 0x16
setne al
test al, al
jne 0x405bdf
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0xf5
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov dword [ebp - 0x1b24], esp
call fcn.00413c5e
mov ecx, dword [ebp - 0x1b24]
push eax
call fcn.00413a4e
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov ecx, dword [ebp - 0x1ac8]
lea eax, [ebp - 0x1ae8]
push eax
mov byte [ebp - 4], 0x17
call fcn.0040153c
mov ecx, dword [ebp - 0x1ae0]
lea ecx, [ecx - 0x10]
call fcn.004142bb
test edi, edi
je 0x405bb2
push edi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov ecx, dword [ebp - 0x1ad4]
lea ecx, [ecx - 0x10]
call fcn.004142bb
test esi, esi
je 0x405bcb
push esi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
test ebx, ebx
je 0x405672
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x405672
call fcn.00413c5e
push eax
lea ecx, [ebp - 0x1acc]
call fcn.00413a4e
mov eax, dword [ebp - 0x1ba8]
mov byte [ebp - 4], 0x18
test eax, eax
je 0x405c0a
push eax
lea ecx, [ebp - 0x1acc]
call fcn.004140fd
cmp byte [ebp - 0x1b01], 0
je 0x405c32
cmp byte [ebp + 0x50], 0
jne 0x405c32
mov esi, str.Content_Type:_application_x_www_form_urlencoded_r_n
push esi
call fcn.0041f66d
pop ecx
push eax
push esi
lea ecx, [ebp - 0x1acc]
call fcn.0041305b
mov eax, dword [ebp - 0x1b0c]
test eax, eax
je 0x405c78
push eax
lea eax, [ebp - 0x1b0c]
push str.Referer:__ws_r_n
push eax
call fcn.00401b1f
add esp, 0xc
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x1acc]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.0041305b
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x1b0c]
lea ecx, [ecx - 0x10]
call fcn.004142bb
cmp byte [ebp - 0x1b11], 0
je 0x405cdd
call fcn.00413c5e
push eax
lea ecx, [ebp - 0x1b18]
call fcn.00413a4e
push dword [ebp + 0x38]
lea eax, [ebp - 0x1b18]
mov byte [ebp - 4], 0x1a
push dword [ebp + 0x34]
push dword [ebp - 0x1b30]
push dword [ebp - 0x1b2c]
push str.Range:_bytes_I64d__I64d_r_n
push eax
call fcn.004135a6
mov esi, dword [ebp - 0x1b18]
lea ecx, [ebp - 0x1acc]
add esp, 0x18
push dword [esi - 0xc]
push esi
call fcn.0041305b
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 0x18
call fcn.004142bb
mov ecx, dword [ebp - 0x1ad0]
test ecx, ecx
je 0x405d6f
xor eax, eax
mov dword [ebp - 0x1b0c], eax
mov eax, dword [ecx + 4]
sub eax, dword [ecx]
sar eax, 2
test eax, eax
je 0x405d6f
mov edi, dword [ebp - 0x1b0c]
mov ebx, ecx
call fcn.00413c5e
push eax
lea ecx, [ebp - 0x1b18]
call fcn.00413a4e
mov byte [ebp - 4], 0x1b
mov eax, dword [ebx]
push dword [eax + edi*4]
lea eax, [ebp - 0x1b18]
push str.Cookie:__ws_r_n
push eax
call fcn.004135a6
mov esi, dword [ebp - 0x1b18]
lea ecx, [ebp - 0x1acc]
add esp, 0xc
push dword [esi - 0xc]
push esi
call fcn.0041305b
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 0x18
call fcn.004142bb
mov eax, dword [ebx + 4]
inc edi
sub eax, dword [ebx]
sar eax, 2
cmp edi, eax
jb 0x405d07
mov ebx, dword [ebp - 0x1af8]
mov edi, dword [ebp - 0x1af0]
xor ecx, ecx
mov esi, ecx
mov dword [ebp - 0x1b24], esi
mov byte [ebp - 4], 0x1c
mov byte [ebp - 0x1b20], cl
mov eax, dword [ebp - 0x1ad8]
test eax, eax
je 0x405dca
push eax
mov edx, edi
lea ecx, [ebp - 0x1b54]
call fcn.0040507a
pop ecx
mov byte [ebp - 4], 0x1d
cmp dword [ebp - 0x1b54], 0
jl 0x40640c
mov byte [ebp - 4], 0x1c
mov ecx, dword [ebp - 0x1b4c]
lea ecx, [ecx - 0x10]
call fcn.004142bb
xor eax, eax
inc eax
xor ecx, ecx
mov byte [ebp - 0x1b20], al
cmp dword [ebp + 0x54], 0
je 0x405dd5
mov edx, dword [ebp + 0x54]
jmp 0x405de8
mov eax, dword [ebp - 0x1bbc]
test eax, eax
je 0x405df0
push eax
call fcn.00421160
pop ecx
mov edx, eax
mov dword [ebp - 0x1b00], edx
jmp 0x405df8
mov edx, ecx
mov dword [ebp - 0x1b00], ecx
xor eax, eax
mov byte [ebp - 0x1af1], al
mov byte [ebp - 0x1af9], al
cmp byte [ebp + 0x50], 0
je 0x405e6a
push 9
xor eax, eax
lea edi, [ebp - 0x1ab0]
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x1acc]
xor edi, edi
mov ecx, eax
mov dword [ebp - 0x1ab4], 0x28
cmp dword [eax - 0xc], edi
cmove ecx, edi
mov edi, dword [ebp - 0x1af0]
mov dword [ebp - 0x1aac], ecx
xor ecx, ecx
mov eax, dword [eax - 0xc]
test eax, eax
mov dword [ebp - 0x1a98], edx
cmove eax, ecx
mov dword [ebp - 0x1aa8], eax
xor eax, eax
push eax
push eax
push eax
lea eax, [ebp - 0x1ab4]
push eax
push edi
call dword [sym.imp.WININET.dll_HttpSendRequestExW]
jmp 0x405ebe
mov eax, dword [ebp - 0x1acc]
and dword [ebp - 0x1b0c], 0
mov ecx, dword [eax - 0xc]
test ecx, ecx
mov edx, ecx
cmove edx, dword [ebp - 0x1b0c]
mov dword [ebp - 0x1b0c], edx
mov edx, eax
xor eax, eax
test ecx, ecx
mov cl, byte [ebp - 0x1b01]
cmove edx, eax
test cl, cl
cmovne eax, dword [ebp - 0x1b00]
push eax
xor eax, eax
test cl, cl
cmovne eax, dword [ebp - 0x1bbc]
push eax
push dword [ebp - 0x1b0c]
push edx
push edi
call dword [sym.imp.WININET.dll_HttpSendRequestW]
test eax, eax
jne 0x406168
call fcn.0041393c
cmp byte [ebp + 0x84], 0
je 0x405f5b
cmp eax, 0x80072f19
jne 0x405f5b
cmp byte [ebp - 0x1af9], 0
jne 0x405f5b
xor eax, eax
mov dword [ebp - 0x1b0c], 4
inc eax
mov byte [ebp - 0x1af9], al
xor eax, eax
mov dword [ebp - 0x1ad0], eax
lea eax, [ebp - 0x1b0c]
push eax
lea eax, [ebp - 0x1ad0]
push eax
push 0x1f
push edi
call dword [sym.imp.WININET.dll_InternetQueryOptionW]
test eax, eax
setne al
test al, al
je 0x406523
or dword [ebp - 0x1ad0], 0x80
lea eax, [ebp - 0x1ad0]
push 4
push eax
push 0x1f
push edi
call dword [sym.imp.WININET.dll_InternetSetOptionW]
test eax, eax
setne al
test al, al
je 0x4064d6
mov edx, dword [ebp - 0x1b00]
jmp 0x405e06
cmp byte [ebp + 0x7c], 0
je 0x4068e9
cmp eax, 0x80072f0d
jne 0x4068e9
cmp byte [ebp - 0x1af1], 0
jne 0x4068e9
xor eax, eax
inc eax
mov byte [ebp - 0x1af1], al
xor eax, eax
mov dword [ebp - 0x1ad0], eax
lea eax, [ebp - 0x1b0c]
mov byte [ebp - 4], 0x21
push eax
lea eax, [ebp - 0x1ad0]
mov dword [ebp - 0x1b0c], 4
push eax
push 0x69
push edi
call dword [sym.imp.WININET.dll_InternetQueryOptionW]
test eax, eax
setne al
test al, al
je 0x406899
mov eax, dword [ebp - 0x1ad0]
xor ecx, ecx
inc ecx
cmp dword [eax + 0xc], ecx
jne 0x406863
cmp dword [eax + 4], 0x20
jne 0x406851
cmp dword [eax + 8], 0x100
jne 0x406826
mov eax, dword [eax + 0x10]
mov eax, dword [eax]
cmp dword [eax + 0xc], ecx
jne 0x4067bf
mov eax, dword [eax + 0x10]
lea edi, [ebp - 0x23]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
xor eax, eax
mov byte [ebp - 0x24], al
stosd dword es:[edi], eax
mov dword [ebp - 0x1b44], 0x14
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x1b44]
push eax
lea eax, [ebp - 0x24]
push eax
push 3
push ecx
call dword [sym.imp.CRYPT32.dll_CertGetCertificateContextProperty]
test eax, eax
setne al
test al, al
je 0x4066ed
cmp dword [ebp - 0x1b44], 0x14
sete al
test al, al
je 0x4066ca
push ecx
lea eax, [ebp + 0x80]
mov ecx, esp
push eax
lea edi, [ebp - 0x1aa0]
call fcn.00414296
mov edx, edi
lea ecx, [ebp - 0x1b6c]
call fcn.00404d10
pop ecx
mov byte [ebp - 4], 0x27
cmp dword [ebp - 0x1b6c], 0
jl 0x406668
mov ecx, dword [ebp - 0x1b64]
add ecx, 0xfffffff0
call fcn.004142bb
push 0x14
mov eax, edi
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.0041ca73
add esp, 0xc
neg eax
sbb al, al
add al, 1
je 0x406642
mov byte [ebp - 4], 0x1c
cmp dword [ebp - 0x1ad0], 0
je 0x4060c3
push dword [ebp - 0x1ad0]
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateChain]
mov edi, dword [ebp - 0x1af0]
xor eax, eax
mov dword [ebp - 0x1ad0], eax
lea eax, [ebp - 0x1b0c]
push eax
lea eax, [ebp - 0x1ad0]
mov dword [ebp - 0x1b0c], 4
push eax
push 0x1f
push edi
call dword [sym.imp.WININET.dll_InternetQueryOptionW]
test eax, eax
setne al
test al, al
je 0x40658e
or dword [ebp - 0x1ad0], 0x1100
lea eax, [ebp - 0x1ad0]
push 4
push eax
push 0x1f
push edi
call dword [sym.imp.WININET.dll_InternetSetOptionW]
test eax, eax
setne al
test al, al
jne 0x405f50
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x1a5
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x2b
jmp 0x4065c9
cmp byte [ebp + 0x50], 0
je 0x4062e5
mov edx, dword [ebp - 0x1b00]
xor eax, eax
mov dword [ebp - 0x1b18], edx
mov ecx, eax
mov dword [ebp - 0x1b1c], ecx
mov dword [ebp - 0x1ad0], eax
mov dword [ebp - 0x1b5c], eax
test edx, edx
je 0x4062cc
push 0
push edx
xor edx, edx
push edx
push eax
push ecx
mov ecx, dword [ebp - 0x1b60]
lea eax, [ebp - 0x1ae8]
push eax
call fcn.00404434
mov byte [ebp - 4], 0x2c
cmp dword [ebp - 0x1ae8], 0
jl 0x4065c9
mov eax, dword [ebp - 0x1b18]
mov edx, 0x1000
cmp eax, edx
cmova eax, edx
xor ecx, ecx
mov dword [ebp - 0x1b48], ecx
lea ecx, [ebp - 0x1b48]
push ecx
push eax
mov dword [ebp - 0x1b0c], eax
mov eax, dword [ebp - 0x1b5c]
add eax, dword [ebp - 0x1bbc]
push eax
push edi
call dword [sym.imp.WININET.dll_InternetWriteFile]
test eax, eax
setne al
test al, al
je 0x40695d
mov ecx, dword [ebp - 0x1b48]
cmp ecx, dword [ebp - 0x1b0c]
sete al
test al, al
je 0x406917
add dword [ebp - 0x1ad0], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov dword [ebp - 0x1ba8], eax
xor eax, eax
sub ecx, dword [ebp - 0x1bac]
push eax
pop edx
sbb eax, edx
mov dword [ebp - 0x1b0c], eax
js 0x40628d
jg 0x406258
mov eax, 0x3e8
cmp ecx, eax
jbe 0x40628d
mov eax, dword [ebp - 0x1ad0]
mov edx, 0x3e8
push dword [ebp - 0x1b0c]
mul edx
push ecx
push edx
push eax
call fcn.0041a6d0
mov dword [ebp - 0x1b1c], eax
mov eax, dword [ebp - 0x1ba8]
mov dword [ebp - 0x1bac], eax
xor eax, eax
mov dword [ebp - 0x1ad0], eax
mov byte [ebp - 4], 0x1c
mov ecx, dword [ebp - 0x1ae0]
add ecx, 0xfffffff0
call fcn.004142bb
mov eax, dword [ebp - 0x1b5c]
mov ecx, 0x1000
sub dword [ebp - 0x1b18], ecx
add eax, ecx
mov edx, dword [ebp - 0x1b00]
mov ecx, dword [ebp - 0x1b1c]
mov dword [ebp - 0x1b5c], eax
cmp eax, edx
jb 0x40619c
xor eax, eax
push eax
push eax
push eax
push edi
call dword [sym.imp.WININET.dll_HttpEndRequestW]
test eax, eax
setne al
test al, al
je 0x40699a
xor eax, eax
mov dword [ebp - 0x1b0c], 4
push eax
lea eax, [ebp - 0x1b0c]
push eax
push dword [ebp - 0x1b08]
push 0x20000013
push edi
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
setne al
test al, al
je 0x40740a
mov eax, dword [ebp - 0x1b08]
cmp dword [eax], 0x197
jne 0x406aa1
cmp byte [ebp - 0x1b20], 0
jne 0x406a78
lea ecx, [ebp - 0x1b38]
call fcn.00407580
mov ecx, dword [ebp - 0x1b60]
lea edx, [ebp - 0x1b02]
xor eax, eax
mov byte [ebp - 4], 0x31
push esi
mov byte [ebp - 0x1b02], al
mov eax, dword [ecx]
push edx
lea edx, [ebp - 0x1b38]
push edx
call dword [eax + 0x10]
test al, al
je 0x406a52
lea eax, [ebp - 0x1b38]
mov edx, edi
push eax
lea ecx, [ebp - 0x1bb8]
call fcn.0040507a
pop ecx
mov byte [ebp - 4], 0x32
cmp dword [ebp - 0x1bb8], 0
jl 0x4069da
mov byte [ebp - 4], 0x31
mov ecx, dword [ebp - 0x1bb0]
lea ecx, [ecx - 0x10]
call fcn.004142bb
push 8
call fcn.0041a2e1
pop ecx
mov dword [ebp - 0x1aec], eax
lea ecx, [ebp - 0x1b38]
mov byte [ebp - 4], 0x34
push ecx
mov ecx, eax
call fcn.004075eb
push eax
lea ecx, [ebp - 0x1b24]
call fcn.0040ed42
mov eax, dword [ebp - 0x1b20]
cmp byte [ebp - 0x1b02], 0
push 1
pop ecx
movzx eax, al
cmove eax, ecx
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x1b38]
mov dword [ebp - 0x1b20], eax
call fcn.004075d2
mov esi, dword [ebp - 0x1b24]
xor ecx, ecx
jmp 0x405d83
cmp dword [ebp - 0x1b50], 0
mov eax, 0x12e
cmovne eax, dword [ebp - 0x1b50]
push eax
push dword [ebp - 0x1b54]
push ecx
mov dword [ebp - 0x1ad8], esp
mov eax, dword [ebp - 0x1b4c]
add eax, 0xfffffff0
mov ecx, eax
mov dword [ebp - 0x1b0c], eax
call fcn.0041423d
mov ecx, esp
add eax, 0x10
mov dword [ecx], eax
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov ecx, dword [ebp - 0x1ac8]
lea eax, [ebp - 0x1ae8]
push eax
mov byte [ebp - 4], 0x1e
call fcn.0040153c
mov ecx, dword [ebp - 0x1ae0]
lea ecx, [ecx - 0x10]
call fcn.004142bb
mov ecx, dword [ebp - 0x1b0c]
call fcn.004142bb
test esi, esi
je 0x406490
push ecx
mov ecx, esi
call fcn.0040febc
mov ecx, dword [ebp - 0x1acc]
lea ecx, [ecx - 0x10]
call fcn.004142bb
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
test edi, edi
je 0x4064ab
push edi
call esi
mov ecx, dword [ebp - 0x1ad4]
lea ecx, [ecx - 0x10]
call fcn.004142bb
mov eax, dword [ebp - 0x1adc]
test eax, eax
je 0x4064c6
push eax
call esi
test ebx, ebx
je 0x405672
push ebx
call esi
jmp 0x405672
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x15f
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov dword [ebp - 0x1ad8], esp
call fcn.00413c5e
mov ecx, dword [ebp - 0x1ad8]
push eax
call fcn.00413a4e
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x20
jmp 0x40656e
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x15d
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov dword [ebp - 0x1ad8], esp
call fcn.00413c5e
mov ecx, dword [ebp - 0x1ad8]
push eax
call fcn.00413a4e
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp - 0x1ac8]
lea eax, [ebp - 0x1ae8]
push eax
call fcn.0040153c
mov ecx, dword [ebp - 0x1ae0]
add ecx, 0xfffffff0
jmp 0x40647f
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x19c
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x2a
mov ecx, dword [ebp - 0x1ac8]
lea eax, [ebp - 0x1ae8]
push eax
call fcn.0040153c
mov ecx, dword [ebp - 0x1ae0]
add ecx, 0xfffffff0
call fcn.004142bb
test esi, esi
je 0x4065f5
push ecx
mov ecx, esi
call fcn.0040febc
mov ecx, dword [ebp - 0x1acc]
lea ecx, [ecx - 0x10]
call fcn.004142bb
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
test edi, edi
je 0x406610
push edi
call esi
mov ecx, dword [ebp - 0x1ad4]
lea ecx, [ecx - 0x10]
call fcn.004142bb
mov eax, dword [ebp - 0x1adc]
test eax, eax
je 0x40662b
push eax
call esi
test ebx, ebx
je 0x406632
push ebx
call esi
lea ecx, [ebp - 0x1ba4]
call fcn.00404ba1
jmp 0x405688
push 0x192
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x29
jmp 0x406728
cmp dword [ebp - 0x1b68], 0
mov eax, 0x190
cmovne eax, dword [ebp - 0x1b68]
push eax
push dword [ebp - 0x1b6c]
lea eax, [ebp - 0x1b64]
push ecx
mov ecx, esp
push eax
call fcn.00414296
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov edi, dword [ebp - 0x1ac8]
lea eax, [ebp - 0x1ae8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x28
call fcn.0040153c
mov ecx, dword [ebp - 0x1ae0]
lea ecx, [ecx - 0x10]
call fcn.004142bb
mov ecx, dword [ebp - 0x1b64]
jmp 0x406742
push 0x18d
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x26
jmp 0x406728
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x18c
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x25
mov edi, dword [ebp - 0x1ac8]
lea eax, [ebp - 0x1ae8]
push eax
mov ecx, edi
call fcn.0040153c
mov ecx, dword [ebp - 0x1ae0]
add ecx, 0xfffffff0
call fcn.004142bb
cmp dword [ebp - 0x1ad0], 0
je 0x406767
push dword [ebp - 0x1ad0]
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateChain]
xor eax, eax
mov dword [ebp - 0x1ad0], eax
test esi, esi
je 0x406773
push ecx
mov ecx, esi
call fcn.0040febc
mov ecx, dword [ebp - 0x1acc]
lea ecx, [ecx - 0x10]
call fcn.004142bb
mov eax, dword [ebp - 0x1af0]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
test eax, eax
je 0x406794
push eax
call esi
mov ecx, dword [ebp - 0x1ad4]
lea ecx, [ecx - 0x10]
call fcn.004142bb
mov eax, dword [ebp - 0x1adc]
test eax, eax
je 0x4067af
push eax
call esi
test ebx, ebx
je 0x405545
push ebx
call esi
jmp 0x405545
push 0x186
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x24
mov ecx, dword [ebp - 0x1ac8]
lea eax, [ebp - 0x1ae8]
push eax
call fcn.0040153c
mov ecx, dword [ebp - 0x1ae0]
add ecx, 0xfffffff0
call fcn.004142bb
cmp dword [ebp - 0x1ad0], 0
je 0x406484
push dword [ebp - 0x1ad0]
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateChain]
xor eax, eax
mov dword [ebp - 0x1ad0], eax
jmp 0x406484
push 0x180
push 0x80004005
push ecx
mov ecx, esp
push dword [eax + 8]
push str.0x_08x
push ecx
call fcn.00401b1f
mov ecx, dword [ebp - 0x1ac8]
add esp, 0xc
call fcn.004142d3
jmp 0x406800
push 0x17d
push 0x80004005
push ecx
mov ecx, esp
push dword [eax + 4]
jmp 0x406836
push 0x17a
push 0x80004005
push ecx
mov dword [ebp - 0x1ad8], esp
call fcn.00413c5e
mov ecx, dword [ebp - 0x1ad8]
push eax
call fcn.00413a4e
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x23
jmp 0x4067e0
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x177
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov dword [ebp - 0x1ad8], esp
call fcn.00413c5e
mov ecx, dword [ebp - 0x1ad8]
push eax
call fcn.00413a4e
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x22
jmp 0x4067e0
push 0x16d
push eax
push ecx
mov dword [ebp - 0x1ad8], esp
call fcn.00413c5e
mov ecx, dword [ebp - 0x1ad8]
push eax
call fcn.00413a4e
mov ecx, dword [ebp - 0x1ac8]
call fcn.004142d3
jmp 0x406484
push 0x1c9
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1b54]
call fcn.004142d3
mov byte [ebp - 4], 0x2e
mov ecx, dword [ebp - 0x1ac8]
lea eax, [ebp - 0x1b54]
push eax
call fcn.0040153c
mov ecx, dword [ebp - 0x1b4c]
lea ecx, [ecx - 0x10]
call fcn.004142bb
jmp 0x4065db
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x1c8
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1b54]
call fcn.004142d3
mov byte [ebp - 4], 0x2d
jmp 0x406938
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x1d7
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x2f
jmp 0x407445
cmp dword [ebp - 0x1bb4], 0
mov eax, 0x1f1
cmovne eax, dword [ebp - 0x1bb4]
push eax
push dword [ebp - 0x1bb8]
lea eax, [ebp - 0x1bb0]
push ecx
mov ecx, esp
push eax
call fcn.00414296
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov ebx, dword [ebp - 0x1ac8]
lea eax, [ebp - 0x1ae8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x33
call fcn.0040153c
mov ecx, dword [ebp - 0x1ae0]
lea ecx, [ecx - 0x10]
call fcn.004142bb
mov ecx, dword [ebp - 0x1bb0]
lea ecx, [ecx - 0x10]
call fcn.004142bb
lea ecx, [ebp - 0x1b38]
call fcn.004075d2
jmp 0x407467
push 0x1ee
push 0x80004004
push ecx
mov ecx, esp
push str.Proxy_authentication
call fcn.00414128
mov ebx, dword [ebp - 0x1ac8]
mov ecx, ebx
call fcn.004142d3
jmp 0x406a42
push 0x1e5
push 0x80004005
push ecx
mov ecx, esp
push str.Proxy_authentication_failed
call fcn.00414128
mov ebx, dword [ebp - 0x1ac8]
mov ecx, ebx
call fcn.004142d3
jmp 0x407467
push 0x208
xor ebx, ebx
lea eax, [ebp - 0x22c]
push ebx
push eax
call fcn.0041b4e0
add esp, 0xc
mov dword [ebp - 0x1ad8], 0x208
lea eax, [ebp - 0x1ad8]
push ebx
push eax
lea eax, [ebp - 0x22c]
push eax
push 0x1d
push edi
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
mov ebx, dword [ebp - 0x1b08]
lea ecx, [ebx + 0xc]
test eax, eax
je 0x406af5
lea eax, [ebp - 0x22c]
push eax
call fcn.004140fd
jmp 0x406afa
call fcn.00413e84
push ecx
lea ecx, [ebp - 0x1ae8]
call fcn.0040ecfd
mov byte [ebp - 4], 0x35
mov ecx, dword [ebp - 0x1ae8]
mov eax, dword [ebp - 0x1ae4]
sub eax, ecx
sar eax, 1
add eax, eax
mov dword [ebp - 0x1ad8], eax
xor eax, eax
push eax
mov word [ecx], ax
lea eax, [ebp - 0x1ad8]
push eax
push ecx
push 0x21
push edi
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
lea eax, [ebx + 8]
mov dword [ebp - 0x1b18], eax
mov ecx, eax
je 0x406b55
push dword [ebp - 0x1ae8]
call fcn.004140fd
jmp 0x406b5a
call fcn.00413e84
lea ecx, [ebp - 0x1ae8]
mov byte [ebp - 4], 0x1c
call fcn.004100e0
xor ecx, ecx
lea eax, [ebp - 0x22c]
push 0x208
push ecx
push eax
mov dword [ebx + 0x28], ecx
mov dword [ebx + 0x2c], ecx
call fcn.0041b4e0
add esp, 0xc
mov dword [ebp - 0x1ad8], 0x208
xor eax, eax
push eax
lea eax, [ebp - 0x1ad8]
push eax
lea eax, [ebp - 0x22c]
push eax
push 5
push edi
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x406bf5
lea eax, [ebx + 0x28]
push eax
lea eax, [ebp - 0x22c]
push str._I64d
push eax
call fcn.00413032
add esp, 0xc
dec eax
neg eax
sbb al, al
add al, 1
jne 0x406c3a
push 0x22d
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x36
jmp 0x407445
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x2f76
jne 0x406c0c
xor ecx, ecx
mov dword [ebx + 0x28], ecx
mov dword [ebx + 0x2c], ecx
jmp 0x406c3a
call fcn.0041393c
xor ecx, ecx
mov edx, eax
push ecx
push ecx
lea ecx, [ebp - 0x1b0c]
call fcn.004131cf
pop ecx
pop ecx
xor ecx, ecx
mov dword [ebx + 0x28], ecx
mov dword [ebx + 0x2c], ecx
mov ecx, dword [ebp - 0x1b0c]
lea ecx, [ecx - 0x10]
call fcn.004142bb
xor eax, eax
push 0x1860
push eax
lea eax, [ebp - 0x1a8c]
push eax
call fcn.0041b4e0
add esp, 0xc
mov dword [ebp - 0x1b44], 0x1860
xor eax, eax
mov dword [ebp - 0x1b48], eax
lea eax, [ebp - 0x1b48]
push eax
lea eax, [ebp - 0x1b44]
push eax
lea eax, [ebp - 0x1a8c]
push eax
push 0x2b
push edi
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x406cee
lea eax, [ebx + 0x10]
mov dword [ebp - 0x1ad8], eax
mov ebx, eax
lea eax, [ebp - 0x1a8c]
push eax
lea ecx, [ebp - 0x1b1c]
call fcn.00414128
lea eax, [ebp - 0x1b1c]
mov byte [ebp - 4], 0x37
push eax
mov ecx, ebx
call fcn.0040ef52
mov byte [ebp - 4], 0x1c
mov ecx, dword [ebp - 0x1b1c]
lea ecx, [ecx - 0x10]
call fcn.004142bb
lea eax, [ebp - 0x1b48]
push eax
lea eax, [ebp - 0x1b44]
push eax
lea eax, [ebp - 0x1a8c]
push eax
push 0x2b
push edi
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
jne 0x406c90
mov ebx, dword [ebp - 0x1b08]
cmp byte [ebp - 0x1b11], 0
jne 0x406d08
mov eax, dword [ebx + 0x28]
mov dword [ebx + 0x30], eax
mov eax, dword [ebx + 0x2c]
mov dword [ebx + 0x34], eax
jmp 0x406f82
cmp dword [ebx], 0xce
je 0x406d86
lea ecx, [ebp - 0x1b08]
call fcn.00413a3a
mov byte [ebp - 4], 0x38
lea eax, [ebp - 0x1b08]
push dword [ebx + 0x28]
push dword [ebp + 0x34]
push dword [ebp - 0x1b2c]
push dword [ebx]
push str._d___d__d__d_
push eax
call fcn.004135a6
add esp, 0x18
lea eax, [ebp - 0x1b08]
cmp dword [ebx], 0xc8
jne 0x406d7a
push 0x27f
push 0x80040701
push ecx
mov ecx, esp
push eax
call fcn.00414296
mov ebx, dword [ebp - 0x1ac8]
mov ecx, ebx
call fcn.004142d3
mov ecx, dword [ebp - 0x1b08]
jmp 0x40745f
push 0x282
push 0x80004005
jmp 0x406d59
mov edx, dword [ebx + 0x28]
mov eax, edx
mov ecx, dword [ebx + 0x2c]
or eax, ecx
mov dword [ebp - 0x1ad8], ecx
je 0x406de2
mov eax, dword [ebp + 0x34]
sub eax, dword [ebp - 0x1b2c]
mov ecx, dword [ebp + 0x38]
sbb ecx, dword [ebp - 0x1b30]
add eax, 1
adc ecx, 0
cmp edx, eax
jne 0x406dbc
cmp dword [ebp - 0x1ad8], ecx
je 0x406de2
push 0x287
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x39
jmp 0x407445
xor eax, eax
push 0x208
push eax
lea eax, [ebp - 0x22c]
push eax
call fcn.0041b4e0
add esp, 0xc
mov dword [ebp - 0x1ad8], 0x208
xor eax, eax
push eax
lea eax, [ebp - 0x1ad8]
push eax
lea eax, [ebp - 0x22c]
push eax
push 0x35
push edi
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
setne al
test al, al
jne 0x406e66
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x28f
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x3a
jmp 0x407445
xor eax, eax
mov dword [ebp - 0x1b38], eax
mov dword [ebp - 0x1b34], eax
mov dword [ebp - 0x1b10], eax
mov dword [ebp - 0x1b0c], eax
lea eax, [ebx + 0x30]
push eax
lea eax, [ebp - 0x1b10]
push eax
lea eax, [ebp - 0x1b38]
push eax
lea eax, [ebp - 0x22c]
push str.bytes__I64d__I64d__I64d
push eax
call fcn.00413032
add esp, 0x14
cmp eax, 3
sete al
test al, al
jne 0x406ed6
push 0x293
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x3b
jmp 0x407445
mov edx, dword [ebp - 0x1b0c]
mov ecx, dword [ebp - 0x1b10]
cmp dword [ebp - 0x1b34], edx
jb 0x406f1a
ja 0x406ef4
cmp dword [ebp - 0x1b38], ecx
jbe 0x406f1a
push 0x295
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x3d
jmp 0x407445
cmp edx, dword [ebx + 0x34]
jb 0x406f4c
ja 0x406f26
cmp ecx, dword [ebx + 0x30]
jb 0x406f4c
push 0x296
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x3e
jmp 0x407445
mov eax, dword [ebp - 0x1b2c]
cmp dword [ebp - 0x1b38], eax
jne 0x4073e5
mov eax, dword [ebp - 0x1b30]
cmp dword [ebp - 0x1b34], eax
jne 0x4073e5
cmp ecx, dword [ebp + 0x34]
jne 0x4073c2
cmp edx, dword [ebp + 0x38]
jne 0x4073c2
xor eax, eax
push 0x208
push eax
lea eax, [ebp - 0x22c]
push eax
call fcn.0041b4e0
add esp, 0xc
mov dword [ebp - 0x1ad8], 0x208
xor eax, eax
push eax
lea eax, [ebp - 0x1ad8]
push eax
lea eax, [ebp - 0x22c]
push eax
push 0xb
push edi
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
jne 0x406fc9
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x406fd8
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebx + 4]
call fcn.004140fd
push dword [ebx + 0x34]
mov ecx, dword [ebp - 0x1b60]
xor eax, eax
push dword [ebx + 0x30]
push dword [ebp - 0x1b30]
push dword [ebp - 0x1b2c]
push eax
lea eax, [ebp - 0x1b3c]
push eax
call fcn.0040827b
mov byte [ebp - 4], 0x41
cmp dword [ebp - 0x1b3c], 0
jge 0x40702b
mov ebx, dword [ebp - 0x1ac8]
lea eax, [ebp - 0x1b3c]
push eax
mov ecx, ebx
call fcn.0040153c
mov ecx, dword [ebp - 0x1b34]
jmp 0x40745f
cmp byte [ebp - 0x1b25], 0
jne 0x40710e
cmp dword [ebx], 0x12d
je 0x40705c
cmp dword [ebx], 0x12e
je 0x40705c
cmp dword [ebx], 0x12f
je 0x40705c
cmp dword [ebx], 0x133
jne 0x40710e
push 0x1860
xor ebx, ebx
lea eax, [ebp - 0x1a8c]
push ebx
push eax
call fcn.0041b4e0
add esp, 0xc
mov dword [ebp - 0x1ad8], 0x1860
lea eax, [ebp - 0x1ad8]
push ebx
push eax
lea eax, [ebp - 0x1a8c]
push eax
push 0x21
push edi
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
setne al
test al, al
jne 0x4070e6
push 0x2df
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov ebx, dword [ebp - 0x1ac8]
lea eax, [ebp - 0x1ae8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x42
call fcn.0040153c
mov ecx, dword [ebp - 0x1ae0]
lea ecx, [ecx - 0x10]
call fcn.004142bb
jmp 0x407020
mov ecx, dword [ebp - 0x1b18]
lea eax, [ebp - 0x1a8c]
push eax
call fcn.004140fd
mov ebx, dword [ebp - 0x1ac8]
xor eax, eax
inc eax
mov ecx, ebx
push eax
call fcn.00413a0b
jmp 0x407020
xor eax, eax
mov dword [ebp - 0x1b58], eax
mov dword [ebp - 0x1b54], eax
mov dword [ebp - 0x1b50], eax
mov dword [ebp - 0x1b4c], eax
push ecx
mov edx, 0x1000
mov byte [ebp - 4], 0x43
push edx
lea ecx, [ebp - 0x1b58]
call fcn.00413490
test al, al
jne 0x407195
push 0x2e7
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x44
mov ebx, dword [ebp - 0x1ac8]
lea eax, [ebp - 0x1ae8]
push eax
mov ecx, ebx
call fcn.0040153c
mov ecx, dword [ebp - 0x1ae0]
lea ecx, [ecx - 0x10]
call fcn.004142bb
lea ecx, [ebp - 0x1b58]
call fcn.00410c1d
jmp 0x407020
xor ecx, ecx
mov dword [ebp - 0x1b1c], ecx
mov dword [ebp - 0x1b20], ecx
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x24], ecx
mov dword [ebp - 0x1b00], ecx
jmp 0x407304
mov eax, dword [ebp - 0x1b20]
add eax, dword [ebp - 0x1b00]
mov dword [ebp - 0x1b20], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov dword [ebp - 0x1b0c], eax
xor eax, eax
sub ecx, dword [ebp - 0x1bac]
push eax
pop edx
sbb eax, edx
mov dword [ebp - 0x1ad8], eax
js 0x407228
jg 0x4071f3
mov eax, 0x3e8
cmp ecx, eax
jbe 0x407228
mov eax, dword [ebp - 0x1b20]
mov edx, 0x3e8
push dword [ebp - 0x1ad8]
mul edx
push ecx
push edx
push eax
call fcn.0041a6d0
mov dword [ebp - 0x1b1c], eax
mov eax, dword [ebp - 0x1b0c]
mov dword [ebp - 0x1bac], eax
xor eax, eax
mov dword [ebp - 0x1b20], eax
cmp dword [ebp - 0x1b00], 0
je 0x407371
push dword [ebp - 0x1b00]
push ecx
lea ecx, [ebp - 0x1b58]
call fcn.00410c02
mov ecx, dword [ebx + 0x20]
add ecx, dword [ebp - 0x1b2c]
push eax
mov eax, dword [ebx + 0x24]
adc eax, dword [ebp - 0x1b30]
push eax
push ecx
mov ecx, dword [ebp - 0x1b60]
lea eax, [ebp - 0x1b6c]
push eax
call fcn.004083b7
mov byte [ebp - 4], 0x45
mov eax, dword [ebp - 0x1b00]
add dword [ebx + 0x20], eax
push 0
pop eax
adc dword [ebx + 0x24], eax
cmp dword [ebp - 0x1b6c], eax
jl 0x407352
push dword [ebx + 0x34]
mov ecx, dword [ebx + 0x20]
add ecx, dword [ebp - 0x1b2c]
push dword [ebx + 0x30]
mov eax, dword [ebx + 0x24]
adc eax, dword [ebp - 0x1b30]
push eax
push ecx
push dword [ebp - 0x1b1c]
mov ecx, dword [ebp - 0x1b60]
lea eax, [ebp - 0x1ae8]
push eax
call fcn.0040827b
push eax
lea ecx, [ebp - 0x1b6c]
mov byte [ebp - 4], 0x46
call fcn.00407632
mov byte [ebp - 4], 0x45
mov ecx, dword [ebp - 0x1ae0]
lea ecx, [ecx - 0x10]
call fcn.004142bb
cmp dword [ebp - 0x1b6c], 0
jl 0x407352
mov byte [ebp - 4], 0x43
mov ecx, dword [ebp - 0x1b64]
add ecx, 0xfffffff0
call fcn.004142bb
xor eax, eax
mov dword [ebp - 0x1b00], eax
lea eax, [ebp - 0x1b00]
push eax
push dword [ebp - 0x1b54]
push ecx
lea ecx, [ebp - 0x1b58]
call fcn.00410c02
push eax
push edi
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x4071b4
push 0x2f3
call fcn.0041393c
push eax
push ecx
mov ecx, esp
call fcn.00413a3a
mov ebx, dword [ebp - 0x1ac8]
mov ecx, ebx
call fcn.004142d3
jmp 0x407185
mov ebx, dword [ebp - 0x1ac8]
lea eax, [ebp - 0x1b6c]
push eax
mov ecx, ebx
call fcn.0040153c
mov ecx, dword [ebp - 0x1b64]
jmp 0x40717d
mov ecx, dword [ebx + 0x28]
mov eax, ecx
mov edx, dword [ebx + 0x2c]
or eax, edx
je 0x4073ad
cmp dword [ebx + 0x20], ecx
jne 0x407387
cmp dword [ebx + 0x24], edx
je 0x4073ad
push 0x320
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x47
jmp 0x407163
mov ebx, dword [ebp - 0x1ac8]
xor eax, eax
push eax
mov ecx, ebx
call fcn.00413a0b
jmp 0x407185
push 0x298
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x40
jmp 0x407445
push 0x297
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
push 0x3f
pop eax
mov byte [ebp - 4], al
jmp 0x407445
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x1dd
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.00413a3a
lea ecx, [ebp - 0x1ae8]
call fcn.004142d3
mov byte [ebp - 4], 0x30
mov ebx, dword [ebp - 0x1ac8]
lea eax, [ebp - 0x1ae8]
push eax
mov ecx, ebx
call fcn.0040153c
mov ecx, dword [ebp - 0x1ae0]
add ecx, 0xfffffff0
call fcn.004142bb
test esi, esi
je 0x407473
push ecx
mov ecx, esi
call fcn.0040febc
mov ecx, dword [ebp - 0x1acc]
lea ecx, [ecx - 0x10]
call fcn.004142bb
lea ecx, [ebp - 0x1af0]
call fcn.0040ef9d
mov ecx, dword [ebp - 0x1ad4]
lea ecx, [ecx - 0x10]
call fcn.004142bb
lea ecx, [ebp - 0x1adc]
call fcn.0040ef9d
lea ecx, [ebp - 0x1af8]
call fcn.0040ef9d
lea ecx, [ebp - 0x1ba4]
call fcn.00404ba1
mov ecx, dword [ebp + 0x5c]
lea ecx, [ecx - 0x10]
call fcn.004142bb
mov ecx, dword [ebp + 0x80]
lea ecx, [ecx - 0x10]
call fcn.004142bb
mov eax, ebx
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.0041a00c
mov esp, ebp
pop ebp
ret 0x80