Function at 0x458930
Capabilities:
Check http status code
Create http request
Get http content length
Read data from internet
Receive data

Disassembly:
push 0xffffffffffffffff
push 0x4aad04
mov eax, dword fs:[0]
push eax
mov eax, 0x11dc
mov dword fs:[0], esp
call fcn.0047f340
mov eax, dword [0x4d1788]
push ebx
push ebp
mov ebx, ecx
mov dword [esp + 0x11e0], eax
mov eax, dword [ebx + 0x30]
mov ecx, dword [eax + 0x34]
push esi
xor ebp, ebp
push edi
mov dword [esp + 0x44], ebp
call fcn.00439150
mov ecx, eax
call fcn.0045f280
cmp eax, ebp
mov edi, dword [esp + 0x11fc]
mov esi, dword [esp + 0x1200]
mov dword [esp + 0x40], eax
je 0x4589b0
cmp esi, ebp
jne 0x45899e
mov esi, eax
sub esi, edi
mov dword [esp + 0x1200], esi
lea ecx, [edi + esi]
cmp ecx, eax
jbe 0x4589b0
mov esi, eax
sub esi, edi
mov dword [esp + 0x1200], esi
mov eax, dword [ebx + 0x3c]
cmp eax, ebp
mov dword [esp + 0x28], ebp
je 0x4589cd
cmp eax, edi
ja 0x4589cd
sub edi, eax
cmp edi, 0x1400
jbe 0x459240
lea edx, [ebx + 0x58]
push edx
lea ecx, [esp + 0x4c]
call fcn.0040a7d0
lea ecx, [esp + 0x48]
mov dword [ebx + 0x74], ebp
call fcn.0040a830
mov dword [ebx + 0x3c], ebp
call fcn.004951e5
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x11f4], ebp
call fcn.004951e5
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x30]
add eax, 0x10
mov eax, dword [eax]
sub eax, 0x10
push eax
mov byte [esp + 0x11f8], 1
call fcn.004015e0
add eax, 0x10
add esp, 4
mov dword [esp + 0x10], eax
mov ecx, dword [ebx + 0x48]
cmp dword [ecx - 0xc], ebp
lea eax, [ebx + 0x48]
mov byte [esp + 0x11f4], 2
je 0x458a56
push eax
lea ecx, [esp + 0x14]
call fcn.00402060
mov eax, dword [ebx + 0x44]
xor ebp, ebp
cmp eax, ebp
je 0x458a69
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov dword [ebx + 0x44], ebp
mov eax, dword [ebx + 0x40]
cmp eax, ebp
je 0x458a7a
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov dword [ebx + 0x40], ebp
mov esi, dword [esp + 0x14]
mov ecx, dword [esi - 0xc]
cmp ecx, ebp
mov edi, dword [esi - 0x10]
lea eax, [esi - 0x10]
je 0x458ac8
mov edx, dword [eax + 0xc]
cmp edx, ebp
lea ecx, [eax + 0xc]
jge 0x458aa6
cmp dword [esi - 8], ebp
jl 0x459639
mov dword [esi - 0xc], ebp
mov word [esi], bp
jmp 0x458ac8
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458aba
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [esp + 0x14], esi
mov edi, dword [ebx + 0x88]
inc edi
mov eax, edi
push eax
lea ecx, [esp + 0x1c]
push str.ku6_downloader_ku6speedup_36__u
push ecx
mov dword [ebx + 0x88], edi
call fcn.004022f0
mov edi, dword [esp + 0x24]
add esp, 0xc
push ebp
push ebp
push ebp
push 1
push edi
call dword [sym.imp.WININET.dll_InternetOpenW]
cmp eax, ebp
mov dword [ebx + 0x40], eax
je 0x459056
mov edi, dword [esp + 0x11fc]
cmp edi, ebp
jbe 0x458b46
mov eax, dword [esp + 0x1200]
cmp eax, ebp
jne 0x458b30
push edi
lea edx, [esp + 0x18]
push str.Range:_bytes_u__n
push edx
call fcn.004022f0
add esp, 0xc
jmp 0x458b46
add eax, edi
push eax
push edi
lea ecx, [esp + 0x1c]
push str.Range:_bytes_u__u_n
push ecx
call fcn.004022f0
add esp, 0x10
lea edx, [esp + 0x14]
push str.Referer:_ku6speedup_36_n
push edx
call fcn.004097c0
mov eax, dword [0x4d2f50]
push eax
lea ecx, [esp + 0x20]
push str.KvSign:__s_n
push ecx
call fcn.004097c0
mov ebp, dword [esp + 0x28]
mov eax, dword [ebp - 0xc]
mov esi, dword [esp + 0x24]
mov edx, dword [ebx + 0x40]
add esp, 0x14
push 0
push 0x84200000
push eax
push ebp
push esi
push edx
call dword [sym.imp.WININET.dll_InternetOpenUrlW]
test eax, eax
mov dword [ebx + 0x44], eax
je 0x4590cc
mov ebp, dword [sym.imp.WININET.dll_HttpQueryInfoW]
push 0
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x28]
push edx
push 0x20000013
push eax
mov dword [esp + 0x30], 4
call ebp
test eax, eax
je 0x459118
mov eax, dword [esp + 0x20]
cmp eax, 0x12d
je 0x458bd7
cmp eax, 0x12e
jne 0x45916c
mov edi, 0x1000
mov dword [esp + 0x1c], edi
mov eax, dword [esi - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [esi - 8]
sub eax, edi
or eax, ecx
jge 0x458c01
push edi
lea ecx, [esp + 0x14]
call fcn.00401590
mov esi, dword [esp + 0x10]
cmp dword [esi - 8], edi
jl 0x459639
push 0
lea eax, [esp + 0x20]
push eax
mov dword [esi - 0xc], edi
push esi
mov word [esi + 0x2000], 0
mov ecx, dword [ebx + 0x44]
push 0x21
push ecx
call ebp
test eax, eax
push esi
je 0x4595d7
call fcn.0047e9ef
add esp, 4
test eax, eax
jl 0x459639
cmp eax, dword [esi - 8]
jg 0x459639
mov dword [esi - 0xc], eax
mov word [esi + eax*2], 0
mov dword [esp + 0x1c], edi
call fcn.004951e5
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
lea ebp, [eax + 0x10]
mov dword [esp + 0x24], ebp
mov dword [ebx + 0x4c], 0
mov eax, dword [ebp - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [ebp - 8]
sub eax, edi
or eax, ecx
mov byte [esp + 0x11f4], 3
jge 0x458c98
push edi
lea ecx, [esp + 0x28]
call fcn.00401590
mov ebp, dword [esp + 0x24]
mov ecx, dword [ebx + 0x44]
push 0
lea eax, [esp + 0x20]
push eax
push ebp
push 0x16
push ecx
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x458f86
test ebp, ebp
jne 0x458cbc
xor eax, eax
jmp 0x458ccd
push ebp
call fcn.0047e9ef
add esp, 4
test eax, eax
jl 0x459639
cmp eax, dword [ebp - 8]
jg 0x459639
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
mov dword [ebp - 0xc], eax
push 0x4ae7c4
mov word [ebp + eax*2], 0
call fcn.00404200
push ecx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
lea esi, [ebp - 0x10]
mov dword [esp + 0x3c], esp
mov byte [esp + 0x11fc], 4
mov dword [esp + 0x3c], esp
call dword [edx + 0x10]
mov ecx, dword [esi + 0xc]
test ecx, ecx
lea edx, [esi + 0xc]
jl 0x458d28
cmp eax, dword [esi]
jne 0x458d28
mov eax, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x458d5c
mov ecx, dword [esi + 4]
mov edx, dword [eax]
push 2
push ecx
mov ecx, eax
call dword [edx]
test eax, eax
je 0x4595f6
mov edx, dword [esi + 4]
mov dword [eax + 4], edx
mov ecx, dword [esi + 4]
inc ecx
add ecx, ecx
mov edx, ecx
shr ecx, 2
add esi, 0x10
lea edi, [eax + 0x10]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x3c]
add eax, 0x10
mov dword [ecx], eax
lea ecx, [esp + 0x50]
mov byte [esp + 0x11fc], 3
call fcn.00411140
mov edx, dword [esp + 0x50]
mov eax, dword [edx - 0xc]
test eax, eax
mov byte [esp + 0x11f4], 5
je 0x458f0a
lea ecx, [ecx]
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x4c]
call fcn.00410d60
mov eax, dword [eax]
lea edi, [ebp - 0x10]
lea esi, [eax - 0x10]
cmp esi, edi
mov byte [esp + 0x11f4], 6
mov dword [esp + 0x34], edi
je 0x458e60
mov edx, dword [edi + 0xc]
test edx, edx
lea ecx, [edi + 0xc]
mov dword [esp + 0x38], ecx
jl 0x458e4e
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x458e4e
mov edx, dword [ecx]
call dword [edx + 0x10]
mov edx, dword [esi + 0xc]
test edx, edx
lea ecx, [esi + 0xc]
jl 0x458df2
cmp eax, dword [esi]
jne 0x458df2
mov ebp, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x458e2d
mov ecx, dword [esi + 4]
mov edx, dword [eax]
push 2
push ecx
mov ecx, eax
call dword [edx]
mov ebp, eax
test ebp, ebp
je 0x4595f6
mov edx, dword [esi + 4]
mov dword [ebp + 4], edx
mov eax, dword [esi + 4]
inc eax
lea ecx, [eax + eax]
mov eax, ecx
shr ecx, 2
add esi, 0x10
lea edi, [ebp + 0x10]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x458e45
mov ecx, dword [edi]
mov eax, dword [ecx]
push edi
call dword [eax + 4]
add ebp, 0x10
mov dword [esp + 0x24], ebp
jmp 0x458e60
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.00401b00
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov byte [esp + 0x11f4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458e86
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0xc]
test eax, eax
jl 0x458ea8
push 0x4b5940
push ebp
call fcn.0047e729
add esp, 8
test eax, eax
je 0x458ea8
sub eax, ebp
sar eax, 1
cmp eax, 0xffffffff
jne 0x458eb9
mov eax, dword [esp + 0x50]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jne 0x458d90
jmp 0x458f0a
add eax, 5
push eax
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x2c]
call fcn.004022c0
mov eax, dword [eax]
push eax
call fcn.0047f3dc
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebx + 0x4c], eax
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458f0a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov dword [esp + 0x48], 0x4af4bc
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
mov byte [esp + 0x11f4], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458f38
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
mov byte [esp + 0x11f4], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458f5e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
mov byte [esp + 0x11f4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458fb2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
jmp 0x458fb2
test ebp, ebp
jne 0x458f8e
xor eax, eax
jmp 0x458f9f
push ebp
call fcn.0047e9ef
add esp, 4
test eax, eax
jl 0x459639
cmp eax, dword [ebp - 8]
jg 0x459639
mov dword [ebp - 0xc], eax
mov word [ebp + eax*2], 0
mov eax, dword [esp + 0x10]
mov esi, dword [ebx + 0x48]
add eax, 0xfffffff0
sub esi, 0x10
cmp eax, esi
je 0x459011
mov ecx, dword [esi + 0xc]
test ecx, ecx
lea edi, [esi + 0xc]
jl 0x459000
mov ecx, dword [eax]
cmp ecx, dword [esi]
jne 0x459000
push eax
call fcn.004015e0
add esp, 4
mov dword [esp + 0x38], eax
or edx, 0xffffffff
lock xadd dword [edi], edx
dec edx
test edx, edx
jg 0x458ff4
mov ecx, dword [esi]
mov eax, dword [ecx]
push esi
call dword [eax + 4]
mov ecx, dword [esp + 0x38]
add ecx, 0x10
mov dword [ebx + 0x48], ecx
jmp 0x459011
mov eax, dword [esp + 0x10]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebx + 0x48]
call fcn.00401b00
mov esi, dword [esp + 0x10]
mov eax, dword [esi - 0xc]
add ebp, 0xfffffff0
test eax, eax
mov byte [esp + 0x11f4], 2
je 0x4595fb
mov dword [ebx + 0x88], 0
lea edx, [ebp + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x458a56
mov ecx, dword [ebp]
mov edx, dword [ecx]
push ebp
call dword [edx + 4]
jmp 0x458a56
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x11f4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45907c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
add esi, 0xfffffff0
mov byte [esp + 0x11f4], 0
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x45909e
mov ecx, dword [esi]
mov edx, dword [ecx]
push esi
call dword [edx + 4]
lea eax, [edi - 0x10]
mov dword [esp + 0x11f4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4593f5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
jmp 0x4593f5
lea ecx, [ebx + 0x48]
call fcn.00401520
mov eax, dword [ebx + 0x90]
mov ecx, dword [esp + 0x1204]
inc eax
imul eax, eax, 0x2710
push eax
push ecx
mov ecx, ebx
call fcn.0040ce90
add esi, 0xfffffff0
mov byte [esp + 0x11f4], 1
lea edx, [esi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x459113
mov ecx, dword [esi]
mov edx, dword [ecx]
push esi
call dword [edx + 4]
lea eax, [ebp - 0x10]
jmp 0x459141
add esi, 0xfffffff0
mov byte [esp + 0x11f4], 1
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x45913a
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x11f4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x459160
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
jmp 0x4590a1
cmp eax, 0xc8
jb 0x45945d
cmp eax, 0x12b
ja 0x45945d
test edi, edi
jbe 0x45918f
cmp eax, 0xce
je 0x4591a0
test edi, edi
jne 0x45943d
cmp eax, 0xc8
jne 0x45943d
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x4591b0
mov dword [esp + 0x44], 1
test edi, edi
mov edx, dword [ebx + 0x44]
mov dword [esp + 0x20], 0
push 0
jne 0x4592ec
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x28]
push ecx
push 0x20000005
push edx
mov dword [esp + 0x30], 4
call ebp
mov eax, dword [esp + 0x20]
test eax, eax
je 0x45937b
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x459354
mov ecx, dword [ebx + 0x30]
mov ecx, dword [ecx + 0x34]
push eax
call fcn.00441f30
mov ecx, dword [esp + 0x11fc]
mov dword [ebx + 0x3c], ecx
lea ecx, [esp + 0x10]
call fcn.004017e0
lea ecx, [esp + 0x14]
call fcn.004017e0
lea ecx, [esp + 0x18]
mov dword [esp + 0x11f4], 0xffffffff
call fcn.004017e0
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1200]
xor ebp, ebp
xor edx, edx
cmp esi, ebp
setne dl
mov dword [esp + 0x30], ebp
mov dword [esp + 0x28], edx
nop
cmp esi, 0x1000
jae 0x45925e
cmp esi, ebp
mov eax, esi
ja 0x459263
mov eax, 0x1000
lea ecx, [esp + 0x30]
push ecx
push eax
mov eax, dword [ebx + 0x44]
lea edx, [esp + 0x1f0]
push edx
push eax
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x4593ca
cmp dword [esp + 0x30], ebp
je 0x4593ca
mov ecx, dword [esp + 0x1204]
push ebp
push ecx
mov ecx, ebx
call fcn.0040ce90
test eax, eax
jne 0x4593f5
mov edx, dword [ebx + 0x3c]
mov eax, dword [esp + 0x30]
add edx, eax
cmp edi, ebp
mov dword [ebx + 0x3c], edx
jbe 0x45939c
cmp edi, eax
jae 0x459398
sub eax, edi
push eax
lea edx, [esp + edi + 0x1ec]
push edx
mov ecx, ebx
call fcn.00458890
test eax, eax
je 0x4593d1
cmp esi, ebp
je 0x4592e5
sub edi, dword [esp + 0x30]
add esi, edi
xor edi, edi
jmp 0x4593b8
xor eax, eax
mov word [esp + 0x5c], 0
mov ecx, 0x63
lea edi, [esp + 0x5e]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x60]
push ecx
push 0x35
push edx
mov dword [esp + 0x40], 0x190
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x4591df
lea eax, [esp + 0x58]
push 0x4aeb14
push eax
call fcn.0047e729
add esp, 8
test eax, eax
je 0x4591df
add eax, 2
push eax
call fcn.0047f3dc
add esp, 4
mov dword [esp + 0x20], eax
jmp 0x4591e3
cmp dword [esp + 0x40], eax
je 0x459203
mov edx, dword [ebx + 0x90]
mov eax, dword [esp + 0x1204]
inc edx
imul edx, edx, 0x2710
push edx
push eax
mov ecx, ebx
call fcn.0040ce90
lea ecx, [esp + 0x10]
call fcn.004017e0
lea ecx, [esp + 0x14]
call fcn.004017e0
lea ecx, [esp + 0x18]
call fcn.004017e0
jmp 0x4593f5
sub edi, eax
jmp 0x4593b8
push eax
lea eax, [esp + 0x1ec]
push eax
mov ecx, ebx
call fcn.00458890
test eax, eax
je 0x45941e
cmp esi, ebp
je 0x4593c0
sub esi, dword [esp + 0x30]
cmp esi, ebp
jne 0x459250
cmp dword [esp + 0x28], ebp
je 0x459250
mov eax, 1
jmp 0x4593f7
mov ecx, ebx
call fcn.00458630
mov ecx, dword [ebx + 0x90]
mov edx, dword [esp + 0x1204]
inc ecx
imul ecx, ecx, 0x2710
push ecx
push edx
mov ecx, ebx
call fcn.0040ce90
xor eax, eax
mov ecx, dword [esp + 0x11ec]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x11e8]
call fcn.0047e6cd
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11e8
ret 0xc
mov ecx, ebx
call fcn.00458630
mov eax, dword [ebx + 0x90]
mov ecx, dword [esp + 0x1204]
inc eax
imul eax, eax, 0x2710
push eax
push ecx
jmp 0x4593ee
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x45935e
xor esi, esi
lea ecx, [ebx + 0x48]
mov dword [ebx + 0x34], esi
call fcn.00401520
mov dword [ebx + 0x4c], esi
jmp 0x45937b
cmp eax, 0x193
je 0x459476
cmp eax, 0x194
je 0x459476
cmp eax, 0x1f4
jb 0x4595aa
mov dword [ebx + 0x84], eax
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x45959b
push 0x4ae7d8
push 0x4aeb18
lea ecx, [esp + 0x18]
call fcn.00406d70
mov esi, dword [esp + 0x10]
mov eax, dword [esi - 0xc]
test eax, eax
jl 0x45959b
push 0x4aeb14
push esi
call fcn.0047e729
add esp, 8
test eax, eax
je 0x45959b
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
je 0x45959b
inc eax
push eax
lea ecx, [esp + 0x40]
push ecx
lea ecx, [esp + 0x18]
call fcn.004022c0
mov ebp, eax
mov edx, dword [ebx + 0x30]
push 0x4b593c
add edx, 0x14
push edx
lea eax, [esp + 0x34]
push eax
mov byte [esp + 0x1200], 9
call fcn.004023c0
push ebp
push eax
lea ecx, [esp + 0x3c]
push ecx
mov byte [esp + 0x120c], 0xa
call fcn.00402310
add esp, 0x18
lea ebp, [ebx + 0x48]
push eax
mov ecx, ebp
mov byte [esp + 0x11f8], 0xb
call fcn.00402820
lea ecx, [esp + 0x28]
call fcn.004017e0
lea ecx, [esp + 0x2c]
call fcn.004017e0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x11f4], 2
call fcn.004017e0
mov eax, dword [ebp]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jl 0x459576
push 0x4b1bec
push eax
call fcn.0047e729
add esp, 8
test eax, eax
je 0x459576
sub eax, dword [ebp]
sar eax, 1
cmp eax, 0xffffffff
je 0x459576
push 0x4b5938
jmp 0x45957b
push 0x4b1bec
mov ecx, ebp
call fcn.00402ff0
mov edx, dword [esp + 0x20]
mov eax, dword [ebx + 0x4c]
push edx
push eax
push str.cdnid_drefclistatus_d
push ebp
call fcn.004097c0
add esp, 0x10
jmp 0x4595aa
lea ecx, [ebx + 0x48]
call fcn.00401520
mov dword [ebx + 0x4c], 0
mov ecx, dword [ebx + 0x90]
mov edx, dword [esp + 0x1204]
imul ecx, ecx, 0x2710
add ecx, 0x3e8
push ecx
push edx
mov ecx, ebx
call fcn.0040ce90
inc dword [ebx + 0x90]
jmp 0x459118
call fcn.0047e9ef
add esp, 4
test eax, eax
jl 0x459639
cmp eax, dword [esi - 8]
jg 0x459639
mov dword [esi - 0xc], eax
mov word [esi + eax*2], 0
jmp 0x459118
call fcn.004012c0
lea eax, [ebp + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x459613
mov ecx, dword [ebp]
mov edx, dword [ecx]
push ebp
call dword [edx + 4]
lea eax, [esi - 0x10]
mov byte [esp + 0x11f4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45913a
mov ecx, dword [eax]
push eax
jmp 0x459135
push 0x80070057
call fcn.00401100
int3