Function at 0x46c745
Capabilities:
Create a process with modified i/o handles and window
Create pipe
Create process on windows
Read file on windows
Read pipe

Disassembly:
push 0x6b8
mov eax, 0x5badf8
call fcn.00581d08
mov dword [ebp - 0x640], edx
mov esi, ecx
mov dword [ebp - 0x644], esi
mov dword [ebp - 0x630], esi
mov dword [ebp - 0x688], esi
mov dword [ebp - 0x620], 1
mov dword [ebp - 4], 3
lea edi, [ebp - 0x4a4]
xor eax, eax
lea ecx, [ebp - 0x4a4]
stosd dword es:[edi], eax
xor ebx, ebx
push 0x1000
push ebx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x494], ebx
mov dword [ebp - 0x490], ebx
call fcn.0042824f
mov byte [ebp - 4], 4
lea eax, [ebp - 0x4a4]
cmp dword [ebp - 0x490], 8
push dword [ebp - 0x494]
cmovae eax, dword [ebp - 0x4a4]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [ebp - 0x4a4]
cmp eax, dword [ebp - 0x494]
ja 0x46c7e6
push eax
call fcn.00410ca5
jmp 0x46c7f3
sub eax, dword [ebp - 0x494]
push ebx
push eax
call fcn.00410d0c
mov edi, esi
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], 0xf
mov byte [esi], bl
xor eax, eax
mov byte [ebp - 4], 5
inc eax
mov dword [ebp - 0x5c8], 0xc
mov esi, eax
mov dword [ebp - 0x5c0], eax
push ebx
lea eax, [ebp - 0x5c8]
mov dword [ebp - 0x620], esi
push eax
lea eax, [ebp - 0x5ac]
mov dword [ebp - 0x5c4], ebx
push eax
lea eax, [ebp - 0x5a8]
push eax
call dword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
je 0x46dc17
push 0x40
lea eax, [ebp - 0x610]
mov dword [ebp - 0x614], 0x44
push ebx
push eax
call fcn.00583340
mov eax, dword [ebp - 0x5ac]
lea edi, [ebp - 0x5bc]
add esp, 0xc
mov dword [ebp - 0x5d8], eax
mov dword [ebp - 0x5d4], eax
lea ecx, [ebp - 0x5bc]
xor eax, eax
mov dword [ebp - 0x5e8], 0x101
cmp dword [ebp + 0x20], 8
push ecx
mov word [ebp - 0x5e4], ax
lea ecx, [ebp - 0x614]
stosd dword es:[edi], eax
push ecx
push ebx
push ebx
stosd dword es:[edi], eax
push 0x210
push esi
push ebx
stosd dword es:[edi], eax
push ebx
stosd dword es:[edi], eax
lea eax, [ebp + 0xc]
cmovae eax, dword [ebp + 0xc]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x46c8e5
push dword [ebp - 0x5ac]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x5a8]
call esi
jmp 0x46dc17
lea eax, [ebp - 0x5bc]
mov dword [ebp - 0x67c], eax
lea edi, [ebp - 0x4d4]
lea eax, [ebp + 8]
mov dword [ebp - 0x678], eax
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x4c4], ebx
mov dword [ebp - 0x4c0], 0xf
mov byte [ebp - 0x4d4], bl
mov dword [ebp - 4], 6
mov byte [ebp - 0x650], bl
mov byte [ebp - 0x648], bl
call fcn.0056f601
mov edi, dword [ebp - 0x640]
mov dword [ebp - 0x674], eax
mov dword [ebp - 0x670], edx
cmp byte [ebp - 0x650], 0
jne 0x46db90
push 0x32
push dword [ebp - 0x5bc]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
neg eax
sbb al, al
inc al
mov dword [ebp - 0x650], eax
mov byte [ebp - 0x635], al
push ebx
lea eax, [ebp - 0x474]
mov dword [ebp - 0x470], ebx
push eax
push ebx
push ebx
push ebx
push dword [ebp - 0x5a8]
mov dword [ebp - 0x474], ebx
call dword [sym.imp.KERNEL32.dll_PeekNamedPipe]
test eax, eax
je 0x46db4b
mov eax, dword [ebp - 0x474]
test eax, eax
je 0x46db4b
push ebx
lea ecx, [ebp - 0x470]
push ecx
mov ecx, 0x3ff
cmp eax, ecx
cmova eax, ecx
push eax
lea eax, [ebp - 0x41c]
push eax
push dword [ebp - 0x5a8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x46db4b
mov eax, dword [ebp - 0x470]
test eax, eax
je 0x46db4b
test edi, edi
je 0x46ca01
cmp byte [edi], 0
jne 0x46ca01
lea ecx, [ebp - 0x67c]
call fcn.0046dc54
jmp 0x46db53
cmp eax, 0x400
jae 0x46dc4e
mov byte [ebp + eax - 0x41c], bl
lea edi, [ebp - 0x450]
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x440], ebx
mov dword [ebp - 0x43c], 0xf
mov byte [ebp - 0x450], bl
mov byte [ebp - 4], 7
lea eax, [ebp - 0x41c]
cmp dword [ebp + 0x70], 0
push eax
je 0x46d9ab
lea ecx, [ebp - 0x504]
call fcn.00403568
push ebx
push str.Writing_video_subtitles
mov ecx, eax
call fcn.0041f9ca
lea ecx, [ebp - 0x504]
mov esi, eax
call fcn.004039ad
mov ecx, dword [ebp - 0x648]
lea edi, [ebp - 0x438]
push 1
cmp esi, 0xffffffff
movzx ecx, cl
pop eax
cmovne ecx, eax
xor eax, eax
stosd dword es:[edi], eax
mov dword [ebp - 0x648], ecx
mov byte [ebp - 0x626], cl
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x428], ebx
mov dword [ebp - 0x424], 0xf
mov byte [ebp - 0x438], bl
lea eax, [ebp - 0x41c]
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0x4bc]
call fcn.00403568
mov byte [ebp - 4], 9
lea eax, [ebp - 0x4bc]
cmp dword [ebp - 0x4a8], 0x10
push dword [ebp - 0x4ac]
cmovae eax, dword [ebp - 0x4bc]
push eax
call fcn.004e4570
pop ecx
pop ecx
test al, al
jne 0x46cc6a
push 0x50
lea eax, [ebp - 0x554]
push ebx
push eax
call fcn.00583340
add esp, 0xc
lea ecx, [ebp - 0x554]
call fcn.004275e0
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x4bc]
cmp dword [ebp - 0x4a8], 0x10
mov eax, dword [ebp - 0x4ac]
cmovae ecx, dword [ebp - 0x4bc]
add eax, ecx
push eax
push ecx
lea eax, [ebp - 0x4ec]
push eax
lea ecx, [ebp - 0x554]
call fcn.00427c1c
mov esi, dword [ebp - 0x620]
or esi, 8
mov dword [ebp - 0x620], esi
mov byte [ebp - 4], 0xb
lea edi, [ebp - 0x46c]
push dword [ebp - 0x4dc]
xor eax, eax
lea ecx, [ebp - 0x46c]
stosd dword es:[edi], eax
push ebx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x45c], ebx
mov dword [ebp - 0x458], ebx
call fcn.0042824f
mov byte [ebp - 4], 0xc
lea edx, [ebp - 0x4ec]
cmp dword [ebp - 0x4d8], 8
lea ecx, [ebp - 0x46c]
mov eax, dword [ebp - 0x45c]
cmovae edx, dword [ebp - 0x4ec]
cmp dword [ebp - 0x458], 8
cmovae ecx, dword [ebp - 0x46c]
add eax, eax
push eax
push edx
push ecx
call fcn.00582dc0
add esp, 0xc
lea eax, [ebp - 0x5a4]
push 0x50
push ebx
push eax
call fcn.00583340
add esp, 0xc
lea ecx, [ebp - 0x5a4]
call fcn.0042795d
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x46c]
cmp dword [ebp - 0x458], 8
mov eax, dword [ebp - 0x45c]
cmovae ecx, dword [ebp - 0x46c]
lea eax, [ecx + eax*2]
push eax
push ecx
lea eax, [ebp - 0x668]
push eax
lea ecx, [ebp - 0x5a4]
call fcn.00427e80
lea eax, [ebp - 0x668]
or esi, 0x10
push eax
lea ecx, [ebp - 0x4bc]
mov dword [ebp - 0x620], esi
call fcn.0041f9fc
lea ecx, [ebp - 0x668]
call fcn.004039ad
lea ecx, [ebp - 0x5a4]
call fcn.0042793b
lea ecx, [ebp - 0x46c]
call fcn.00410c77
lea ecx, [ebp - 0x4ec]
call fcn.00410c77
lea ecx, [ebp - 0x554]
mov byte [ebp - 4], 9
call fcn.004275be
jmp 0x46cc70
mov esi, dword [ebp - 0x620]
mov edx, ebx
mov byte [ebp - 0x627], bl
mov ecx, ebx
mov dword [ebp - 0x64c], edx
xorps xmm0, xmm0
mov dword [ebp - 0x62c], ecx
movlpd qword [ebp - 0x684], xmm0
or edi, 0xffffffff
jmp 0x46cc9c
mov esi, dword [ebp - 0x620]
cmp dword [ebp - 0x424], 0x10
lea eax, [ebp - 0x438]
mov dword [ebp - 0x428], ebx
cmovae eax, dword [ebp - 0x438]
mov byte [eax], bl
cmp ecx, edi
je 0x46cd77
push edx
push 0x5d5f44
lea ecx, [ebp - 0x4bc]
call fcn.00403418
mov dword [ebp - 0x62c], eax
push ecx
cmp eax, 1
je 0x46cd00
mov ecx, eax
mov eax, dword [ebp - 0x64c]
sub ecx, eax
push ecx
push eax
lea eax, [ebp - 0x4bc]
push eax
lea ecx, [ebp - 0x668]
call fcn.00410e2b
or esi, 2
jmp 0x46cd1d
mov eax, dword [ebp - 0x64c]
lea ecx, [ebp - 0x668]
push edi
push eax
lea eax, [ebp - 0x4bc]
push eax
call fcn.00410e2b
or esi, 4
lea eax, [ebp - 0x668]
mov dword [ebp - 0x620], esi
push eax
lea ecx, [ebp - 0x438]
call fcn.0041f9fc
lea ecx, [ebp - 0x668]
call fcn.004039ad
cmp dword [ebp - 0x428], 0
je 0x46cd56
push 0xa
lea ecx, [ebp - 0x438]
call fcn.004039ee
mov ecx, dword [ebp - 0x62c]
lea eax, [ecx + 1]
cmp eax, dword [ebp - 0x4ac]
jne 0x46cd71
mov ecx, edi
mov dword [ebp - 0x62c], ecx
jmp 0x46cd77
mov dword [ebp - 0x64c], eax
mov edx, dword [ebp - 0x428]
test edx, edx
je 0x46d97b
cmp dword [ebp + 0x84], 0
je 0x46cdac
push ebx
lea eax, [ebp + 0x74]
push eax
lea ecx, [ebp - 0x438]
call fcn.0044bf0c
cmp eax, edi
jne 0x46d975
mov edx, dword [ebp - 0x428]
cmp dword [ebp + 0x48], 0
je 0x46d07a
mov eax, dword [ebp - 0x640]
cmp byte [eax], 0
je 0x46d07a
cmp dword [ebp - 0x424], 0x10
lea eax, [ebp - 0x438]
sbb dl, dl
inc dl
cmp dword [ebp - 0x424], 0x10
mov byte [ebp - 0x615], dl
cmovae eax, dword [ebp - 0x438]
mov edx, dword [ebp - 0x428]
cmp byte [eax], 0x5b
jne 0x46d07a
cmp byte [ebp - 0x615], 0
lea ecx, [ebp - 0x438]
push 0x5d
cmovne ecx, dword [ebp - 0x438]
push ebx
call fcn.00404934
pop ecx
pop ecx
cmp eax, edi
je 0x46d07a
push ecx
inc eax
lea ecx, [ebp - 0x48c]
push eax
push ebx
lea eax, [ebp - 0x438]
push eax
call fcn.00410e2b
or esi, 0x800
mov dword [ebp - 0x620], esi
mov edx, str._download_
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x48c]
call fcn.00402b99
test al, al
jne 0x46ce99
cmp dword [ebp - 0x478], 0x10
lea eax, [ebp - 0x48c]
cmovae eax, dword [ebp - 0x48c]
cmp byte [eax + 1], 0x23
je 0x46ce99
mov eax, dword [ebp - 0x640]
cmp byte [eax], 0
je 0x46ce99
push 1
sub esp, 0x18
lea eax, [ebp - 0x48c]
mov ecx, esp
push eax
call fcn.004035a1
lea ecx, [ebp + 0x24]
call fcn.0046edc2
mov edx, str._Exec_
lea ecx, [ebp - 0x48c]
call fcn.00402b99
test al, al
je 0x46ced7
push ebx
push str.ytdlp_status
lea ecx, [ebp - 0x48c]
call fcn.0041f9ca
cmp eax, 1
je 0x46ced7
lea ecx, [ebp - 0x48c]
mov byte [ebp - 4], 9
call fcn.004039ad
jmp 0x46d975
mov edx, str._ExtractAudio_
lea ecx, [ebp - 0x48c]
call fcn.00402b99
test al, al
jne 0x46d04c
push str._Fixup
lea ecx, [ebp - 0x48c]
call fcn.0044e2c7
test al, al
jne 0x46d04c
mov edx, str._Merger_
lea ecx, [ebp - 0x48c]
call fcn.00402b99
test al, al
jne 0x46d04c
cmp dword [ebp + 0x84], 0
je 0x46d06b
mov edx, str._download_
lea ecx, [ebp - 0x48c]
call fcn.00402b99
test al, al
je 0x46d06b
cmp dword [ebp - 0x424], 0x10
lea ecx, [ebp - 0x438]
sbb al, al
inc al
cmp dword [ebp - 0x424], 0x10
mov byte [ebp - 0x615], al
cmovae ecx, dword [ebp - 0x438]
mov eax, dword [ebp - 0x428]
mov dword [ebp - 0x624], ecx
cmp eax, 0xc
jb 0x46cfd3
add eax, 0xfffffff5
add eax, ecx
mov dword [ebp - 0x420], eax
jmp 0x46cfa8
push 0xc
push str.Destination:
push eax
call fcn.005834c2
mov ecx, dword [ebp - 0x61c]
add esp, 0xc
test eax, eax
je 0x46cfc2
mov eax, dword [ebp - 0x420]
inc ecx
sub eax, ecx
push eax
push 0x44
push ecx
call fcn.00584b40
add esp, 0xc
mov dword [ebp - 0x61c], eax
test eax, eax
jne 0x46cf87
jmp 0x46cfcd
sub ecx, dword [ebp - 0x624]
cmp ecx, 0xb
je 0x46d044
mov eax, dword [ebp - 0x428]
cmp byte [ebp - 0x615], 0
lea ecx, [ebp - 0x438]
cmovne ecx, dword [ebp - 0x438]
mov dword [ebp - 0x624], ecx
cmp eax, 0x1b
jb 0x46d06b
add eax, 0xffffffe6
add eax, ecx
mov dword [ebp - 0x420], eax
jmp 0x46d020
push 0x1b
push str.has_already_been_downloaded
push eax
call fcn.005834c2
mov ecx, dword [ebp - 0x61c]
add esp, 0xc
test eax, eax
je 0x46d03a
mov eax, dword [ebp - 0x420]
inc ecx
sub eax, ecx
push eax
push 0x68
push ecx
call fcn.00584b40
add esp, 0xc
mov dword [ebp - 0x61c], eax
test eax, eax
jne 0x46cfff
jmp 0x46d06b
sub ecx, dword [ebp - 0x624]
cmp ecx, edi
je 0x46d06b
lea eax, [ebp - 0x438]
jmp 0x46d052
lea eax, [ebp - 0x48c]
push ebx
push ebx
sub esp, 0x18
mov ecx, esp
push eax
call fcn.004035a1
push edi
push edi
push edi
push edi
lea ecx, [ebp + 0x4c]
call fcn.0046ed7c
lea ecx, [ebp - 0x48c]
mov byte [ebp - 4], 9
call fcn.004039ad
push str._download_
lea ecx, [ebp - 0x438]
call fcn.0044e2c7
mov byte [ebp - 0x625], al
test al, al
je 0x46d0bc
push ebx
push str._Downloading_item
lea ecx, [ebp - 0x438]
call fcn.0041f9ca
cmp eax, 0xa
jne 0x46d0bc
lea eax, [ebp - 0x438]
push eax
lea ecx, [ebp - 0x4d4]
call fcn.00410681
cmp dword [ebp - 0x424], 0x10
lea ecx, [ebp - 0x438]
push 0x25
sbb dl, dl
inc dl
cmp dword [ebp - 0x424], 0x10
mov byte [ebp - 0x615], dl
cmovae ecx, dword [ebp - 0x438]
mov edx, dword [ebp - 0x428]
push ebx
call fcn.00404934
mov dword [ebp - 0x61c], eax
pop ecx
pop ecx
cmp eax, edi
je 0x46d963
cmp byte [ebp - 0x625], 0
je 0x46d54a
cmp byte [ebp - 0x648], 0
je 0x46d1d4
cmp byte [ebp - 0x615], 0
lea eax, [ebp - 0x438]
mov ecx, dword [ebp - 0x428]
cmovne eax, dword [ebp - 0x438]
push ecx
push eax
lea ecx, [ebp - 0x450]
call fcn.00403a72
cmp dword [ebp - 0x424], 0x10
lea ecx, [ebp - 0x438]
mov eax, dword [ebp - 0x428]
cmovae ecx, dword [ebp - 0x438]
mov dword [ebp - 0x624], ecx
cmp eax, 4
jb 0x46d1a7
add eax, 0xfffffffd
add eax, ecx
mov dword [ebp - 0x420], eax
sub eax, ecx
push eax
push 0x31
push ecx
jmp 0x46d199
push 4
push str.100_
push esi
call fcn.005834c2
add esp, 0xc
test eax, eax
je 0x46d1cc
mov eax, dword [ebp - 0x420]
inc esi
sub eax, esi
push eax
push 0x31
push esi
call fcn.00584b40
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x46d178
mov esi, edi
mov eax, dword [ebp - 0x648]
xor ecx, ecx
movzx eax, al
cmp esi, edi
cmove ecx, eax
mov al, cl
mov dword [ebp - 0x648], eax
mov byte [ebp - 0x626], al
jmp 0x46d975
sub esi, dword [ebp - 0x624]
jmp 0x46d1a9
push eax
push 0x20
lea ecx, [ebp - 0x438]
call fcn.0041f992
lea ecx, [eax + 1]
mov dword [ebp - 0x630], ecx
cmp ecx, edi
je 0x46d975
mov eax, dword [ebp - 0x61c]
push ecx
sub eax, ecx
mov byte [ebp - 4], 0xf
push eax
push ecx
lea eax, [ebp - 0x438]
push eax
lea ecx, [ebp - 0x668]
call fcn.00410e2b
or esi, 0x1000
mov dword [ebp - 0x620], esi
lea ecx, [ebp - 0x668]
mov byte [ebp - 4], 0x10
call fcn.0046bba2
lea ecx, [ebp - 0x668]
movsd qword [ebp - 0x694], xmm0
mov byte [ebp - 4], 0xf
call fcn.004039ad
mov ecx, dword [ebp - 0x428]
lea eax, [ebp - 0x438]
dec ecx
cmp dword [ebp - 0x424], 0x10
mov dword [ebp - 0x428], ecx
cmovae eax, dword [ebp - 0x438]
mov byte [eax + ecx], bl
mov eax, dword [ebp - 0x640]
cmp byte [eax], 0
je 0x46d503
cmp dword [ebp - 0x4c0], 0x10
lea eax, [ebp - 0x4d4]
mov ecx, dword [ebp - 0x4c4]
cmovae eax, dword [ebp - 0x4d4]
mov dword [ebp - 0x420], 1
mov dword [ebp - 0x624], ebx
mov dword [ebp - 0x63c], eax
cmp ecx, 4
jb 0x46d31a
add ecx, 0xfffffffc
cmp ecx, 0x1c
jb 0x46d31a
lea edx, [ecx + 1]
add edx, eax
lea ecx, [eax + 0x1c]
mov dword [ebp - 0x68c], edx
sub edx, ecx
push edx
jmp 0x46d2ed
push 4
push str._of
push eax
call fcn.005834c2
add esp, 0xc
test eax, eax
je 0x46d30c
mov ecx, dword [ebp - 0x61c]
mov eax, dword [ebp - 0x68c]
inc ecx
sub eax, ecx
push eax
push 0x20
push ecx
call fcn.00584b40
add esp, 0xc
mov dword [ebp - 0x61c], eax
test eax, eax
jne 0x46d2c9
mov eax, edi
mov dword [ebp - 0x61c], eax
jmp 0x46d322
mov eax, dword [ebp - 0x61c]
sub eax, dword [ebp - 0x63c]
jmp 0x46d304
mov eax, edi
mov dword [ebp - 0x61c], edi
cmp eax, edi
je 0x46d3d2
push ecx
add eax, 0xffffffe4
lea ecx, [ebp - 0x668]
push eax
push 0x1c
lea eax, [ebp - 0x4d4]
push eax
call fcn.00410e2b
or esi, 0x20000
mov dword [ebp - 0x620], esi
lea ecx, [ebp - 0x668]
mov byte [ebp - 4], 0x11
call fcn.0046bba2
cvttsd2si eax, xmm0
lea ecx, [ebp - 0x668]
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x420], eax
call fcn.004039ad
mov ecx, dword [ebp - 0x61c]
mov eax, dword [ebp - 0x4c4]
sub eax, ecx
push ecx
dec eax
push eax
lea eax, [ecx + 4]
push eax
lea eax, [ebp - 0x4d4]
push eax
lea ecx, [ebp - 0x668]
call fcn.00410e2b
or esi, 0x10000
mov dword [ebp - 0x620], esi
lea ecx, [ebp - 0x668]
mov byte [ebp - 4], 0x12
call fcn.0046bba2
cvttsd2si eax, xmm0
lea ecx, [ebp - 0x668]
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x624], eax
call fcn.004039ad
cmp byte [ebp - 0x627], 0
je 0x46d3e9
mov eax, dword [ebp - 0x684]
mov edx, dword [ebp - 0x680]
jmp 0x46d407
call fcn.0056f601
sub eax, dword [ebp - 0x674]
push ebx
sbb edx, dword [ebp - 0x670]
push 0x2710
push edx
push eax
call fcn.005aa600
cmp edx, ebx
jg 0x46d42e
jl 0x46d414
cmp eax, 0x12c
jae 0x46d42e
movsd xmm0, qword [ebp - 0x694]
ucomisd xmm0, qword [0x61e3f8]
lahf
test ah, 0x44
jp 0x46d503
xorps xmm0, xmm0
mov byte [ebp - 0x627], bl
movlpd qword [ebp - 0x684], xmm0
call fcn.0056f601
push dword [ebp - 0x624]
mov dword [ebp - 0x674], eax
mov eax, dword [ebp - 0x420]
dec eax
mov dword [ebp - 0x670], edx
push eax
sub esp, 0x18
lea eax, [ebp - 0x438]
mov ecx, esp
mov dword [ebp - 0x63c], ecx
push ecx
push edi
push dword [ebp - 0x630]
push eax
call fcn.00410e2b
movsd xmm1, qword [ebp - 0x694]
xorps xmm0, xmm0
mulsd xmm1, qword [0x61e348]
or esi, 0x8000
mov dword [ebp - 0x620], esi
movlpd qword [ebp - 0x634], xmm0
movsd xmm0, qword [0x61e580]
comisd xmm1, xmm0
jb 0x46d4d1
subsd xmm1, xmm0
comisd xmm0, xmm1
jbe 0x46d4d1
mov esi, dword [ebp - 0x634]
mov eax, dword [ebp - 0x630]
add esi, ebx
adc eax, 0x80000000
jmp 0x46d4dd
mov eax, dword [ebp - 0x630]
mov esi, dword [ebp - 0x634]
movaps xmm0, xmm1
mov dword [ebp - 0x420], eax
call fcn.005aacc0
add eax, esi
lea ecx, [ebp + 0x4c]
push ebx
adc edx, dword [ebp - 0x420]
push 0x3e8
push edx
push eax
call fcn.0046ed7c
mov dword [ebp - 4], 9
jmp 0x46d975
push 0x6182c0
lea ecx, [ebp - 0x438]
call fcn.0044e2c7
test al, al
je 0x46d963
cmp byte [ebp - 0x615], 0
lea eax, [ebp - 0x438]
mov ecx, dword [ebp - 0x428]
cmovne eax, dword [ebp - 0x438]
cmp byte [eax + ecx - 2], 0x5d
jne 0x46d963
mov eax, dword [ebp - 0x61c]
lea ecx, [ebp - 0x438]
push eax
push 0x28
call fcn.0041f992
mov dword [ebp - 0x420], eax
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x61c]
push ecx
sub eax, ecx
push eax
push ecx
lea eax, [ebp - 0x438]
push eax
lea ecx, [ebp - 0x504]
call fcn.00410e2b
or esi, 0x80
mov dword [ebp - 0x620], esi
cmp dword [ebp - 0x424], 0x10
lea ecx, [ebp - 0x438]
mov edx, dword [ebp - 0x428]
cmovae ecx, dword [ebp - 0x438]
mov dword [ebp - 0x63c], ecx
mov dword [ebp - 0x61c], edx
cmp edx, 4
jb 0x46d648
lea eax, [edx - 3]
add eax, ecx
mov dword [ebp - 0x630], eax
jmp 0x46d62a
push 4
push str.ETA:
push eax
call fcn.005834c2
mov ecx, dword [ebp - 0x624]
add esp, 0xc
test eax, eax
je 0x46d8c6
mov eax, dword [ebp - 0x630]
inc ecx
sub eax, ecx
push eax
push 0x45
push ecx
call fcn.00584b40
add esp, 0xc
mov dword [ebp - 0x624], eax
test eax, eax
jne 0x46d605
mov edx, dword [ebp - 0x61c]
mov ecx, edi
xor eax, eax
lea edi, [ebp - 0x46c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x45c], ebx
mov dword [ebp - 0x458], 0xf
mov byte [ebp - 0x46c], bl
mov byte [ebp - 4], 0x15
cmp ecx, 0xffffffff
je 0x46d6c4
sub edx, ecx
lea eax, [ebp - 0x438]
push ecx
sub edx, 2
push edx
push ecx
push eax
lea ecx, [ebp - 0x668]
call fcn.00410e2b
lea eax, [ebp - 0x668]
or esi, 0x2000
push eax
lea ecx, [ebp - 0x46c]
mov dword [ebp - 0x620], esi
call fcn.0041f9fc
lea ecx, [ebp - 0x668]
call fcn.004039ad
mov edx, dword [ebp - 0x428]
mov dword [ebp - 0x61c], edx
cmp dword [ebp - 0x424], 0x10
lea ecx, [ebp - 0x438]
push 0x2f
sbb bl, bl
cmp dword [ebp - 0x424], 0x10
push 0
cmovae ecx, dword [ebp - 0x438]
call fcn.00404934
mov edx, dword [ebp - 0x61c]
lea ecx, [ebp - 0x438]
add bl, 1
mov esi, eax
push 0x20
cmovne ecx, dword [ebp - 0x438]
xor ebx, ebx
push ebx
call fcn.00404934
add esp, 0xc
mov ecx, esi
sub ecx, eax
push ecx
push eax
lea eax, [ebp - 0x438]
push eax
lea ecx, [ebp - 0x668]
call fcn.00410e2b
mov edi, dword [ebp - 0x620]
or edi, 0x200
mov dword [ebp - 0x620], edi
push 4
push str._of
lea ecx, [ebp - 0x668]
mov byte [ebp - 4], 0x16
call fcn.00403a72
push eax
lea ecx, [ebp - 0x4ec]
call fcn.00403505
or edi, 0x400
mov dword [ebp - 0x620], edi
lea ecx, [ebp - 0x668]
mov byte [ebp - 4], 0x18
call fcn.004039ad
mov eax, dword [ebp - 0x420]
inc eax
sub eax, esi
push ecx
sub eax, 2
lea ecx, [ebp - 0x6ac]
push eax
lea eax, [esi + 1]
push eax
lea eax, [ebp - 0x438]
push eax
call fcn.00410e2b
or edi, 0x20
mov dword [ebp - 0x620], edi
push 1
push 0x611438
lea ecx, [ebp - 0x6ac]
mov byte [ebp - 4], 0x19
call fcn.00403a72
push eax
lea ecx, [ebp - 0x6c4]
call fcn.00403505
or edi, 0x40
mov dword [ebp - 0x620], edi
lea eax, [ebp - 0x6c4]
mov byte [ebp - 4], 0x1a
push eax
lea ecx, [ebp - 0x4ec]
call fcn.004034e9
lea ecx, [ebp - 0x6c4]
call fcn.004039ad
lea ecx, [ebp - 0x6ac]
mov byte [ebp - 4], 0x18
call fcn.004039ad
push 0xffffffffffffffff
push 0x5d
lea ecx, [ebp - 0x438]
call fcn.0041f992
mov edx, dword [ebp - 0x420]
lea ecx, [edx + 1]
push ecx
sub eax, ecx
lea ecx, [ebp - 0x6ac]
push eax
push edx
lea eax, [ebp - 0x438]
push eax
call fcn.00410e2b
or edi, 0x100
mov dword [ebp - 0x620], edi
lea eax, [ebp - 0x6ac]
mov byte [ebp - 4], 0x1b
push eax
lea ecx, [ebp - 0x4ec]
call fcn.004034e9
lea ecx, [ebp - 0x6ac]
mov byte [ebp - 4], 0x18
call fcn.004039ad
mov eax, dword [ebp - 0x640]
cmp byte [eax], bl
je 0x46d92a
lea ecx, [ebp - 0x504]
call fcn.0046bba2
movaps xmm1, xmm0
xorps xmm0, xmm0
mulsd xmm1, qword [0x61e348]
movlpd qword [ebp - 0x634], xmm0
movsd xmm0, qword [0x61e580]
comisd xmm1, xmm0
jb 0x46d8d7
subsd xmm1, xmm0
comisd xmm0, xmm1
jbe 0x46d8d7
mov eax, dword [ebp - 0x634]
add eax, ebx
mov dword [ebp - 0x420], eax
mov eax, dword [ebp - 0x630]
adc eax, 0x80000000
mov dword [ebp - 0x624], eax
jmp 0x46d8ef
sub ecx, dword [ebp - 0x63c]
mov edx, dword [ebp - 0x61c]
jmp 0x46d64a
mov eax, dword [ebp - 0x630]
mov dword [ebp - 0x624], eax
mov eax, dword [ebp - 0x634]
mov dword [ebp - 0x420], eax
movaps xmm0, xmm1
call fcn.005aacc0
mov edi, eax
mov esi, edx
add edi, dword [ebp - 0x420]
lea eax, [ebp - 0x4ec]
push ebx
adc esi, dword [ebp - 0x624]
push ebx
sub esp, 0x18
mov ecx, esp
push eax
call fcn.004035a1
push ebx
push 0x3e8
push esi
push edi
lea ecx, [ebp + 0x4c]
call fcn.0046ed7c
lea ecx, [ebp - 0x4ec]
call fcn.004039ad
mov eax, dword [ebp - 0x458]
cmp eax, 0x10
jb 0x46d94f
inc eax
push eax
push dword [ebp - 0x46c]
call fcn.00404ba3
pop ecx
pop ecx
lea ecx, [ebp - 0x504]
mov byte [ebp - 4], 9
call fcn.004039ad
or edi, 0xffffffff
jmp 0x46d975
lea eax, [ebp - 0x438]
push eax
lea ecx, [ebp - 0x450]
call fcn.004034e9
mov ecx, dword [ebp - 0x62c]
mov edx, dword [ebp - 0x64c]
cmp ecx, edi
jne 0x46cc96
lea ecx, [ebp - 0x4bc]
call fcn.004039ad
lea ecx, [ebp - 0x438]
mov byte [ebp - 4], 7
call fcn.004039ad
mov esi, dword [ebp - 0x620]
jmp 0x46d9b9
mov ecx, dword [ebp - 0x644]
call fcn.004034c8
or edi, 0xffffffff
cmp dword [ebp + 0x48], 0
je 0x46db31
mov eax, dword [ebp - 0x640]
cmp byte [eax], 0
je 0x46db31
mov eax, dword [ebp - 0x440]
cmp eax, 2
jbe 0x46da7e
cmp dword [ebp - 0x43c], 0x10
lea ecx, [ebp - 0x450]
push 3
sbb dl, dl
inc dl
cmp dword [ebp - 0x43c], 0x10
mov byte [ebp - 0x625], dl
mov edx, eax
cmovae ecx, dword [ebp - 0x450]
push 0x6182cc
push ebx
call fcn.0046ef8b
add esp, 0xc
cmp eax, edi
jne 0x46da3a
cmp byte [ebp - 0x625], 0
lea eax, [ebp - 0x450]
mov dword [ebp - 0x440], ebx
cmovne eax, dword [ebp - 0x450]
mov byte [eax], bl
jmp 0x46da78
push ecx
push edi
push eax
lea eax, [ebp - 0x450]
push eax
lea ecx, [ebp - 0x504]
call fcn.00410e2b
lea eax, [ebp - 0x504]
or esi, 0x4000
push eax
lea ecx, [ebp - 0x450]
mov dword [ebp - 0x620], esi
call fcn.0041f9fc
lea ecx, [ebp - 0x504]
call fcn.004039ad
mov eax, dword [ebp - 0x440]
cmp dword [ebp - 0x43c], 0x10
lea ecx, [ebp - 0x450]
cmovae ecx, dword [ebp - 0x450]
mov dword [ebp - 0x63c], ecx
cmp eax, 5
jb 0x46db17
add eax, 0xfffffffc
add eax, ecx
mov dword [ebp - 0x630], eax
jmp 0x46dacb
push 5
push str.frag
push eax
call fcn.005834c2
mov ecx, dword [ebp - 0x624]
add esp, 0xc
test eax, eax
je 0x46dae5
mov eax, dword [ebp - 0x630]
inc ecx
sub eax, ecx
push eax
push 0x66
push ecx
call fcn.00584b40
add esp, 0xc
mov dword [ebp - 0x624], eax
test eax, eax
jne 0x46daaa
jmp 0x46db17
sub ecx, dword [ebp - 0x63c]
cmp ecx, edi
je 0x46db17
push str._download__Destination:
lea ecx, [ebp - 0x450]
call fcn.0044e2c7
test al, al
jne 0x46db17
push str._fixup
lea ecx, [ebp - 0x450]
call fcn.0044e2c7
test al, al
je 0x46db31
push ebx
sub esp, 0x18
lea eax, [ebp - 0x450]
mov ecx, esp
push eax
call fcn.004035a1
lea ecx, [ebp + 0x24]
call fcn.0046edc2
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], 6
call fcn.004039ad
mov edi, dword [ebp - 0x640]
jmp 0x46c973
test edi, edi
je 0x46c946
cmp byte [edi], 0
jne 0x46c946
mov esi, dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
lea eax, [ebp - 0x420]
push eax
push dword [ebp - 0x5bc]
mov dword [ebp - 0x420], ebx
call esi
cmp dword [ebp - 0x420], 0x103
jne 0x46db96
lea ecx, [ebp - 0x67c]
call fcn.0046dc54
jmp 0x46db96
mov esi, dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
lea eax, [ebp - 0x454]
mov dword [ebp - 0x454], ebx
push eax
push dword [ebp - 0x5bc]
call esi
mov eax, dword [ebp - 0x454]
cmp eax, 1
jne 0x46dbd4
cmp dword [ebp + 0x70], 0
je 0x46dbe6
mov ecx, dword [ebp - 0x644]
push 6
push str.failed
call fcn.00410de6
mov eax, dword [ebp - 0x454]
cmp eax, 0x103
jne 0x46dbe6
lea ecx, [ebp - 0x67c]
call fcn.0046dc54
push dword [ebp - 0x5ac]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x5a8]
call esi
push dword [ebp - 0x5bc]
call esi
push dword [ebp - 0x5b8]
call esi
lea ecx, [ebp - 0x4d4]
call fcn.004039ad
lea ecx, [ebp - 0x4a4]
call fcn.00410c77
lea ecx, [ebp + 0xc]
call fcn.00410c77
lea ecx, [ebp + 0x24]
call fcn.0040371f
lea ecx, [ebp + 0x4c]
call fcn.0040371f
lea ecx, [ebp + 0x74]
call fcn.004039ad
mov eax, dword [ebp - 0x644]
call fcn.00581c5a
ret
call fcn.00581911
int3