Function at 0x487714
Capabilities:
Check for time delay via gettickcount

Disassembly:
push 0x270
mov eax, 0x563e1b
call fcn.0054f7e3
mov ebx, ecx
mov dword [ebp - 0x1bc], ebx
mov eax, dword [ebp + 0x18]
xor ecx, ecx
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x1b8], ecx
mov dword [ebp - 0x188], eax
xor eax, eax
push 0xf
mov word [ebp - 0xac], ax
pop eax
mov dword [ebp - 0x1c0], edi
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0x98], 7
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x84], ecx
mov byte [ebp - 0x94], cl
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x68], ecx
mov byte [ebp - 0x78], cl
xor eax, eax
inc eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x60], ecx
mov byte [ebp - 0xb4], cl
mov ecx, str.Bad_Params
call fcn.00401511
push eax
push str.Bad_Params
lea ecx, [ebp - 0xac]
call fcn.00401f42
cmp dword [esi + 0x10], 0x10
je 0x4877ce
lea eax, [ebp - 0xb4]
mov ecx, edi
push eax
call fcn.00487efc
jmp 0x487ebe
cmp dword [esi + 0x14], 0x10
jb 0x4877d6
mov esi, dword [esi]
push ecx
mov edx, esi
lea ecx, [ebp - 0xcc]
call fcn.00488de4
pop ecx
lea eax, [ebp - 0xcc]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0xfc]
push eax
call fcn.0048857f
xor eax, eax
mov dword [ebp - 0x48], 0xf
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x5c], al
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x190], eax
mov dword [ebp - 0x18c], eax
push 0x5819e4
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 5
call fcn.00401b61
push 4
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x194]
push eax
call fcn.00488600
xor esi, esi
mov byte [ebp - 4], 5
push esi
push 1
lea ecx, [ebp - 0x2c]
call fcn.00401c56
push 0x57186c
lea ecx, [ebp - 0x2c]
call fcn.00401b61
lea eax, [ebp - 0xcc]
mov byte [ebp - 4], 7
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x194]
push eax
call fcn.0048869d
push esi
push 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 5
call fcn.00401c56
push 0x5729a0
lea ecx, [ebp - 0x2c]
call fcn.00401b61
lea eax, [ebp - 0xfc]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x194]
push eax
call fcn.0048869d
push esi
push 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 5
call fcn.00401c56
push 0x581c08
lea ecx, [ebp - 0x2c]
call fcn.00401b61
mov byte [ebp - 4], 9
lea eax, [ebp - 0x2c]
push 1
push eax
lea eax, [ebp - 0x194]
push eax
call fcn.00488600
push esi
push 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 5
call fcn.00401c56
push str.forceDown
lea ecx, [ebp - 0x2c]
call fcn.00401b61
mov eax, dword [ebp + 0x14]
movzx eax, al
push eax
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x194]
push eax
call fcn.00488600
push esi
push 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 5
call fcn.00401c56
mov esi, dword [ebp - 0x188]
lea ecx, [ebp - 0x2c]
cmp dword [esi + 0x10], 0
je 0x48795e
push str.vipToken
call fcn.00401b61
push esi
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0xb
push eax
lea eax, [ebp - 0x194]
push eax
call fcn.0048869d
xor esi, esi
jmp 0x48797f
push 0x581c0c
call fcn.00401b61
xor esi, esi
mov byte [ebp - 4], 0xc
push esi
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x194]
push eax
call fcn.00488600
push esi
push 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 5
call fcn.00401c56
push str.GetDownloadUrl
lea ecx, [ebp - 0x2c]
call fcn.00407674
lea edx, [ebp - 0xcc]
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x44]
call fcn.005209b8
push eax
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0xe
push eax
mov ecx, ebx
call fcn.00485488
push esi
push 1
lea ecx, [ebp - 0x44]
call fcn.00401c9b
push esi
push 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 5
call fcn.00401c9b
mov esi, str.Network_Error
mov ecx, esi
call fcn.00401511
push eax
push esi
lea ecx, [ebp - 0xac]
call fcn.00401f42
push 0x10000
lea ecx, [ebp - 0x1a0]
call fcn.00445a3d
mov byte [ebp - 4], 0xf
and dword [ebp - 0x188], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
push 1
pop eax
test esi, esi
cmove esi, eax
lea eax, [ebp - 0x188]
push eax
lea eax, [ebp - 0x1a0]
push eax
lea eax, [ebp - 0x194]
push eax
push ecx
lea eax, [ebp - 0x5c]
mov ecx, ebx
push eax
call fcn.004886d8
test al, al
jne 0x487b8c
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, esi
mov ecx, str.Http_Error
mov esi, dword [ebp - 0x188]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0xb0], esi
call fcn.00401511
push eax
push str.Http_Error
lea ecx, [ebp - 0xac]
call fcn.00401f42
push ecx
lea ecx, [ebp - 0x27c]
call fcn.0048502e
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0x5c]
cmp dword [ebp - 0x48], 0x10
cmovae eax, dword [ebp - 0x5c]
push eax
push ecx
push str.url:
push ecx
push 0x57dcf4
push esi
lea eax, [ebp - 0x26c]
push str.responseCode:
push eax
call fcn.00409e6d
pop ecx
pop ecx
mov ecx, eax
call dword [sym.imp.MSVCP120.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
push eax
call fcn.00409e6d
add esp, 0xc
push eax
call fcn.00409e6d
add esp, 0xc
push eax
call fcn.00409e6d
pop ecx
pop ecx
lea ecx, [ebp - 0x27c]
call fcn.00485133
lea ecx, [ebp - 0x27c]
mov esi, eax
call fcn.004850ff
and dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x2c]
push esi
push eax
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
call fcn.00401ce0
push str.GetDownloadUrl_Http_Error
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x11
call fcn.00407674
lea edx, [ebp - 0x2c]
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0xe4]
call fcn.005209b8
push eax
lea eax, [ebp - 0x44]
mov byte [ebp - 4], 0x13
push eax
mov ecx, ebx
call fcn.00485488
xor ebx, ebx
lea ecx, [ebp - 0xe4]
xor esi, esi
push ebx
inc esi
push esi
call fcn.00401c9b
mov byte [ebp - 4], 0x11
push ebx
push esi
lea ecx, [ebp - 0x44]
call fcn.00401c9b
lea eax, [ebp - 0xb4]
mov ecx, edi
push eax
call fcn.00487efc
push ebx
push esi
lea ecx, [ebp - 0x2c]
call fcn.00401c56
lea ecx, [ebp - 0x20c]
call fcn.004850cf
lea ecx, [ebp - 0x20c]
call dword [sym.imp.MSVCP120.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
jmp 0x487e84
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, dword [ebp - 0x19c]
sub eax, esi
mov esi, dword [ebp - 0x1a0]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x188]
mov dword [ebp - 0xb0], eax
cmp esi, ebx
jne 0x487c19
push str.GetDownloadUrl_request_success__but_buffer_empty:
lea ecx, [ebp - 0x2c]
call fcn.00407674
lea edx, [ebp - 0x5c]
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0xe4]
call fcn.005209b8
mov ecx, dword [ebp - 0x1bc]
push eax
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x15
push eax
call fcn.00485488
xor ebx, ebx
lea ecx, [ebp - 0xe4]
xor esi, esi
push ebx
inc esi
push esi
call fcn.00401c9b
push ebx
push esi
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0xf
call fcn.00401c9b
lea eax, [ebp - 0xb4]
mov ecx, edi
push eax
call fcn.00487efc
jmp 0x487e84
and dword [ebp - 0x1ac], 0xfffffe00
sub ebx, esi
and dword [ebp - 0x1a8], 0
lea ecx, [ebp - 0x184]
mov byte [ebp - 4], 0x17
call fcn.00435f41
xor eax, eax
mov byte [ebp - 4], 0x18
inc eax
lea ecx, [ebp - 0x184]
push eax
lea eax, [ebp - 0x1b4]
push eax
lea eax, [esi + ebx]
push eax
push esi
call fcn.00435fc6
test al, al
je 0x487e27
mov eax, dword [ebp - 0x34]
xor esi, esi
and eax, 0xffffff01
inc esi
xor ebx, ebx
or eax, esi
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x3c], ebx
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 0x19
push eax
push str.status
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x1b4]
call fcn.00435276
mov ecx, eax
mov byte [ebp - 4], 0x1a
call fcn.00434bea
dec eax
mov byte [ebp - 4], 0x19
neg eax
lea ecx, [ebp - 0x24]
sbb al, al
inc al
mov byte [ebp - 0xb4], al
call fcn.00434a6c
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x18
call fcn.00434a6c
push ecx
lea ecx, [ebp - 0x3c]
call fcn.00434901
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 0x1b
push eax
push str.error
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x1b4]
call fcn.00435276
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 0x1c
push ecx
mov ecx, eax
call fcn.00434b60
push 0xfde9
mov edx, eax
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0xe4]
call fcn.005209eb
pop ecx
push eax
lea ecx, [ebp - 0xac]
call fcn.004076c9
push ebx
push esi
lea ecx, [ebp - 0xe4]
call fcn.00401c9b
push ebx
push esi
lea ecx, [ebp - 0x114]
call fcn.00401c56
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x1b
call fcn.00434a6c
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x18
call fcn.00434a6c
cmp byte [ebp - 0xb4], bl
je 0x487e1e
push ecx
lea ecx, [ebp - 0x3c]
call fcn.00434901
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 0x1e
push eax
push 0x571640
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x1b4]
call fcn.00435276
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 0x1f
push ecx
mov ecx, eax
call fcn.00434b60
push eax
lea ecx, [ebp - 0x94]
call fcn.0042a9d5
push ebx
push esi
lea ecx, [ebp - 0x114]
call fcn.00401c56
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x1e
call fcn.00434a6c
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x18
call fcn.00434a6c
mov eax, dword [ebp - 0x34]
or dword [ebp - 0x3c], 0xffffffff
and eax, 0xffffff01
or eax, esi
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 0x20
push eax
push str.fileSize
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x1b4]
call fcn.00435276
mov ecx, eax
mov byte [ebp - 4], 0x21
call fcn.00434bea
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x7c], eax
mov byte [ebp - 4], 0x20
call fcn.00434a6c
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x18
call fcn.00434a6c
jmp 0x487e56
mov dword [ebp - 0x7c], 0xfffffffe
jmp 0x487e56
push esi
call fcn.0040156c
pop ecx
push eax
push esi
lea ecx, [ebp - 0x78]
call fcn.00401ce0
mov esi, str.Json_Parse_Error
mov ecx, esi
call fcn.00401511
push eax
push esi
lea ecx, [ebp - 0xac]
call fcn.00401f42
xor esi, esi
xor ebx, ebx
inc esi
lea eax, [ebp - 0xb4]
mov ecx, edi
push eax
call fcn.00487efc
lea ecx, [ebp - 0x184]
mov dword [ebp - 0x1b8], esi
call fcn.00415c7d
lea ecx, [ebp - 0x1b4]
mov byte [ebp - 4], 0xf
call fcn.00434a6c
lea ecx, [ebp - 0x1a0]
call fcn.00408eb1
lea ecx, [ebp - 0x194]
call fcn.0042b423
push ebx
push esi
lea ecx, [ebp - 0x5c]
call fcn.00401c56
push ebx
push esi
lea ecx, [ebp - 0xfc]
call fcn.00401c56
push ebx
push esi
lea ecx, [ebp - 0xcc]
call fcn.00401c56
lea ecx, [ebp - 0xb4]
call fcn.00487ed3
mov eax, edi
call fcn.0054f792
ret 0x14