Function at 0x464620
Capabilities:
Act as tcp client
Check if file exists
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Get common file path
Get disk size
Get file attributes
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4f2256
push eax
mov eax, 0x40c0
mov dword fs:[0], esp
call fcn.004ded50
push ebx
push esi
mov dword [ebp - 0x48], ecx
push edi
mov ecx, 0x514
xor eax, eax
lea edi, [ebp - 0x40cc]
lea edx, [ebp - 0x74]
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x120c]
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x1414]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x58]
lea ecx, [ebp - 0x1414]
push eax
push ecx
lea eax, [ebp - 0x120c]
xor ebx, ebx
push edx
push eax
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x58], ebx
call fcn.0042f0e0
lea ecx, [ebp - 0x2d0]
push 0x104
push ecx
push 0x9f01
call fcn.00432b50
lea edx, [ebp - 0x4d8]
push 0x104
push edx
push 0x9f00
call fcn.00432b50
mov eax, dword [ebp - 0x58]
add esp, 0x28
cmp eax, ebx
jne 0x4646f0
lea eax, [ebp - 0x1414]
lea ecx, [ebp - 0x120c]
push eax
lea edx, [ebp - 0x2d0]
push ecx
lea eax, [ebp - 0x40cc]
push edx
push eax
call fcn.004deb4b
add esp, 0x10
jmp 0x464715
lea ecx, [ebp - 0x1414]
lea edx, [ebp - 0x120c]
push ecx
push eax
lea eax, [ebp - 0x4d8]
push edx
lea ecx, [ebp - 0x40cc]
push eax
push ecx
call fcn.004deb4b
add esp, 0x14
mov edx, dword [0x525768]
lea esi, [ebp + eax*2 - 0x40cc]
mov ecx, 0x104
xor eax, eax
lea edi, [ebp - 0xbf4]
push edx
rep stosd dword es:[edi], eax
lea eax, [ebp - 0xbf4]
push eax
call fcn.004df3e0
lea ecx, [ebp - 0x2d0]
push 0x104
push ecx
push 0x9f02
call fcn.00432b50
mov edx, dword [0x525780]
add esp, 0x14
lea eax, [ebp - 0xbf4]
lea ecx, [ebp - 0x2d0]
push edx
push eax
push ecx
push esi
call fcn.004deb4b
lea edx, [esi + eax*2]
lea eax, [ebp - 0x2d0]
push 0x104
push eax
push 0x9f07
mov dword [ebp - 0x1c], edx
call fcn.00432b50
mov ecx, dword [0x50d0e0]
lea edx, [ebp - 0x2d0]
add esp, 0x1c
mov dword [ebp - 0x30], ecx
test edx, edx
je 0x464807
lea eax, [ebp - 0x2d0]
shr eax, 0x10
jne 0x4647c5
xor eax, eax
lea ecx, [ebp - 0x2d0]
mov ax, cx
lea ecx, [ebp - 0x30]
push eax
call fcn.00407b60
jmp 0x464807
lea edx, [ebp - 0x2d0]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
cmp esi, ebx
je 0x464807
push esi
lea ecx, [ebp - 0x30]
call fcn.00402190
test eax, eax
je 0x464807
lea ecx, [esi + esi]
lea eax, [esi + esi + 2]
cmp eax, ecx
jb 0x464807
mov edi, dword [ebp - 0x30]
mov edx, ecx
lea esi, [ebp - 0x2d0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ebx, dword [ebp - 0x30]
xor esi, esi
cmp ebx, esi
mov dword [ebp - 4], esi
je 0x464842
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [eax + eax + 2]
mov eax, edi
add eax, 3
and al, 0xfc
call fcn.004ded50
mov esi, esp
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
push ebx
push 0
push 0
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push esi
call dword [sym.imp.WS2_32.dll_gethostbyname]
mov ebx, eax
mov ecx, 0x41
xor eax, eax
lea edi, [ebp - 0x5dc]
rep stosd dword es:[edi], eax
mov eax, dword [0x50d0e0]
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x5dc]
mov byte [ebp - 4], 1
push ecx
mov ecx, dword [ebp - 0x48]
call fcn.00467d70
test eax, eax
jne 0x4648cf
mov edx, str.0.0.0.0
test edx, edx
jne 0x464886
xor esi, esi
jmp 0x464893
push str.0.0.0.0
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
push esi
lea ecx, [ebp - 0x20]
call fcn.004022b0
test eax, eax
je 0x46492e
mov ecx, dword [ebp - 0x20]
lea edi, [esi + esi]
push edi
lea eax, [esi + esi + 2]
push str.0.0.0.0
push eax
push ecx
call fcn.00402060
mov edx, dword [ebp - 0x20]
add esp, 0x10
mov dword [edx - 8], esi
mov eax, dword [ebp - 0x20]
mov word [edi + eax], 0
jmp 0x46492e
lea ecx, [ebp - 0x5dc]
test ecx, ecx
je 0x4648ea
lea edx, [ebp - 0x5dc]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
jmp 0x4648ec
xor esi, esi
mov eax, dword [ebp - 0x20]
cmp dword [eax - 0xc], 1
jg 0x4648fa
cmp esi, dword [eax - 4]
jle 0x464912
lea ecx, [ebp - 0x20]
call fcn.00402350
push esi
lea ecx, [ebp - 0x20]
call fcn.00402190
test eax, eax
je 0x46492e
mov eax, dword [ebp - 0x20]
inc esi
lea ecx, [ebp - 0x5dc]
push esi
push ecx
push eax
call fcn.00409840
add esp, 0xc
lea ecx, [ebp - 0x20]
push 0xffffffffffffffff
call fcn.00407e30
test ebx, ebx
push 0x104
jne 0x464975
lea edx, [ebp - 0x2d0]
push edx
push 0x9f06
call fcn.00432b50
lea eax, [ebp - 0x4d8]
push 0x104
push eax
push 0x9efd
call fcn.00432b50
mov ecx, dword [ebp - 0x20]
add esp, 0x18
lea edx, [ebp - 0x4d8]
lea eax, [ebp - 0x2d0]
push ecx
push edx
push eax
jmp 0x4649b1
lea ecx, [ebp - 0x2d0]
push ecx
push 0x9f06
call fcn.00432b50
lea edx, [ebp - 0x4d8]
push 0x104
push edx
push 0x9efc
call fcn.00432b50
mov eax, dword [ebp - 0x20]
add esp, 0x18
lea ecx, [ebp - 0x4d8]
lea edx, [ebp - 0x2d0]
push eax
push ecx
push edx
mov esi, dword [ebp - 0x1c]
push esi
call fcn.004deb4b
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0x70], edx
mov dword [ebp - 0xbc], ecx
add esp, 0x10
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0x6c], edx
lea eax, [esi + eax*2]
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0x68], edx
push 0x525c78
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x44], 0xffffffff
mov dword [ebp - 0x64], edx
mov word [ebp - 0x70], 2
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [ebp - 0x6c], eax
mov eax, dword [0x50d0e0]
mov dword [ebp - 0x14], eax
push str.Qvodcfg.ini
lea ecx, [ebp - 0x10]
push 0x525768
push ecx
mov byte [ebp - 4], 2
call fcn.00402910
mov edi, eax
mov esi, dword [edi]
mov eax, dword [ebp - 0x14]
cmp eax, esi
mov byte [ebp - 4], 3
je 0x464aa6
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x464a51
mov ecx, dword [0x50d0e4]
add eax, 0xfffffff4
cmp eax, ecx
jne 0x464a58
mov eax, dword [esi - 0xc]
test eax, eax
jge 0x464a8f
mov edi, dword [esi - 8]
lea ecx, [ebp - 0x14]
push edi
call fcn.004022b0
test eax, eax
je 0x464aa6
mov eax, dword [ebp - 0x14]
lea ebx, [edi + edi]
push ebx
lea edx, [edi + edi + 2]
push esi
push edx
push eax
call fcn.00402060
mov ecx, dword [ebp - 0x14]
add esp, 0x10
mov dword [ecx - 8], edi
mov edx, dword [ebp - 0x14]
mov word [ebx + edx], 0
jmp 0x464aa6
lea ecx, [ebp - 0x14]
call fcn.00402350
mov edi, dword [edi]
mov dword [ebp - 0x14], edi
lea eax, [edi - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [ebp - 0x10]
mov edx, dword [0x50d0e4]
mov byte [ebp - 4], 2
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x464ad7
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x464ad7
mov edx, dword [ebp - 0x10]
lea eax, [edx - 0xc]
push eax
call fcn.004de3a6
add esp, 4
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x54]
push eax
call fcn.00431670
push 0x1f91
push str.AdminPort
push str.QVODTERMINAL
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 4
call fcn.00431730
push eax
call dword [sym.imp.WS2_32.dll_htons]
push 6
push 1
push 2
mov word [ebp - 0x6e], ax
call dword [sym.imp.WS2_32.dll_socket]
mov edi, dword [sym.imp.WS2_32.dll_setsockopt]
lea ecx, [ebp - 0x28]
push 4
push ecx
mov esi, eax
push 0x1006
push 0xffff
push esi
mov dword [ebp - 0x28], 0xfa0
call edi
lea edx, [ebp - 0x28]
push 4
push edx
push 0x1005
push 0xffff
push esi
call edi
lea eax, [ebp - 0x70]
push 0x10
push eax
push esi
call dword [sym.imp.WS2_32.dll_connect]
mov edi, dword [sym.imp.WS2_32.dll_htonl]
push 0x40d
call edi
push 8
mov dword [ebp - 0x5c], eax
call edi
push 0
lea ecx, [ebp - 0x60]
push 8
push ecx
push esi
mov dword [ebp - 0x60], eax
call dword [sym.imp.WS2_32.dll_send]
push 0
lea edx, [ebp - 0xc8]
push 0x54
push edx
push esi
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jg 0x464b97
xor ebx, ebx
jmp 0x464bbb
mov eax, dword [ebp - 0x8d]
and eax, 0xff
mov ebx, eax
mov ecx, eax
shr ebx, 4
shr eax, 5
and ecx, 0xf
and ebx, 1
and eax, 1
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x4c], eax
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x54], 0x4fb734
test eax, eax
je 0x464bd9
push eax
call fcn.004de3a6
add esp, 4
mov eax, dword [ebp - 0x14]
mov edx, dword [0x50d0e4]
mov dword [ebp - 0x50], 0
mov byte [ebp - 4], 1
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x464c11
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x464c11
mov edx, dword [ebp - 0x14]
lea eax, [edx - 0xc]
push eax
call fcn.004de3a6
add esp, 4
mov eax, dword [0x50d0e0]
mov dword [ebp - 0x34], eax
push str.SOFTWAREMicrosoftWindowsCurrentVersion_
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x286c]
mov byte [ebp - 4], 5
call fcn.004c4470
mov ecx, 0x82
xor eax, eax
lea edi, [ebp - 0x1004]
rep stosd dword es:[edi], eax
mov ecx, dword [0x50d0e0]
mov dword [ebp - 0x38], ecx
lea edx, [ebp - 0x1004]
push 0x104
push edx
push str.CommonFilesDir
push 0x5209fc
lea ecx, [ebp - 0x286c]
mov byte [ebp - 4], 7
call fcn.004c44c0
test eax, eax
je 0x464ca5
lea eax, [ebp - 0x1004]
lea ecx, [ebp - 0x38]
push eax
push str._sQvodPlayerCodecsCL264dec.ax
push ecx
call fcn.004074f0
add esp, 0xc
lea edx, [ebp - 0x1004]
lea eax, [ebp - 0x34]
push edx
push str._sQvodPlayerCodecs_
push eax
call fcn.004074f0
add esp, 0xc
jmp 0x464cc7
lea ecx, [ebp - 0x38]
push str.C:Program_FilesCommon_FilesQvodPlayerCodecsCL264dec.ax
push ecx
call fcn.004074f0
add esp, 8
lea edx, [ebp - 0x34]
push str.C:Program_FilesCommon_FilesQvodPlayerCodecs_
push edx
call fcn.004074f0
add esp, 8
mov eax, dword [ebp - 0x38]
xor esi, esi
push esi
push eax
call fcn.004e0280
add esp, 8
mov edx, eax
mov ecx, 0x82
xor eax, eax
lea edi, [ebp - 0xdfc]
cmp edx, 0xffffffff
rep stosd dword es:[edi], eax
push 0x104
je 0x464cff
lea ecx, [ebp - 0xdfc]
push ecx
push 0xa786
jmp 0x464d0b
lea edx, [ebp - 0xdfc]
push edx
push 0xa785
call fcn.00432b50
add esp, 0xc
cmp ebx, esi
jne 0x464ef5
mov al, byte [ebp - 0xc0]
push 0x104
test al, al
je 0x464e0c
lea eax, [ebp - 0x2d0]
push eax
push 0x9f04
call fcn.00432b50
xor ecx, ecx
lea edx, [ebp - 0xbc]
push 4
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], ecx
push edx
push eax
mov byte [ebp - 0x28], cl
call fcn.004de950
mov ecx, dword [0x50d0e0]
lea edx, [ebp - 0x2c]
add esp, 0x18
mov dword [ebp - 0x10], ecx
test edx, edx
je 0x464dbc
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
cmp edi, esi
je 0x464dbc
push edi
lea ecx, [ebp - 0x10]
call fcn.00402190
test eax, eax
je 0x464dbc
mov ecx, dword [ebp - 0x10]
lea eax, [edi + 1]
cmp eax, esi
mov edi, ecx
jne 0x464d99
cmp ecx, esi
jne 0x464db2
push eax
push ecx
lea ecx, [ebp - 0x2c]
push 0xffffffffffffffff
push ecx
push esi
push esi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp eax, esi
jle 0x464db2
mov word [edi + eax*2 - 2], si
push 0xffffffffffffffff
lea ecx, [ebp - 0x10]
call fcn.00407e30
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x1c]
lea edx, [ebp - 0xdfc]
lea ecx, [ebp - 0x2d0]
push edx
push eax
push ecx
push esi
call fcn.004deb4b
mov ecx, dword [0x50d0e4]
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x10]
add esp, 0x10
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x464e5a
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x464e5a
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff4
push eax
call fcn.004de3a6
add esp, 4
jmp 0x464e5a
lea ecx, [ebp - 0x2d0]
push ecx
push 0x9f04
call fcn.00432b50
lea edx, [ebp - 0x4d8]
push 0x104
push edx
push 0x9f05
call fcn.00432b50
mov esi, dword [ebp - 0x1c]
add esp, 0x18
lea eax, [ebp - 0xdfc]
lea ecx, [ebp - 0x4d8]
push eax
lea edx, [ebp - 0x2d0]
push ecx
push edx
push esi
call fcn.004deb4b
add esp, 0x10
lea esi, [esi + eax*2]
lea eax, [ebp - 0x2d0]
push 0x104
push eax
push 0x9f08
call fcn.00432b50
lea ecx, [ebp - 0x4d8]
push 0x104
push ecx
push 0x9efd
call fcn.00432b50
mov edx, dword [ebp - 0x44]
add esp, 0x18
lea eax, [ebp - 0x4d8]
lea ecx, [ebp - 0x2d0]
push edx
push eax
push ecx
push esi
call fcn.004deb4b
lea edx, [ebp - 0x2d0]
push 0x104
push edx
push 0x9efe
lea esi, [esi + eax*2]
call fcn.00432b50
lea eax, [ebp - 0x4d8]
push 0x104
push eax
push 0x9f09
call fcn.00432b50
add esp, 0x28
lea ecx, [ebp - 0x4d8]
lea edx, [ebp - 0x2d0]
push ecx
push edx
push esi
call fcn.004deb4b
lea eax, [esi + eax*2]
add esp, 0xc
mov dword [ebp - 0x1c], eax
jmp 0x46502b
lea ecx, [ebp - 0x2d0]
push 0x104
push ecx
push 0x9f04
call fcn.00432b50
xor edx, edx
lea eax, [ebp - 0xbc]
push 4
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x2c], edx
push eax
push ecx
mov byte [ebp - 0x28], dl
call fcn.004de950
mov edx, dword [0x50d0e0]
lea eax, [ebp - 0x2c]
add esp, 0x18
mov dword [ebp - 0x10], edx
test eax, eax
je 0x464f88
lea ecx, [ebp - 0x2c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
cmp edi, esi
je 0x464f88
push edi
lea ecx, [ebp - 0x10]
call fcn.00402190
test eax, eax
je 0x464f88
mov ecx, dword [ebp - 0x10]
lea eax, [edi + 1]
cmp eax, esi
mov edi, ecx
jne 0x464f65
cmp ecx, esi
jne 0x464f7e
push eax
push ecx
lea edx, [ebp - 0x2c]
push 0xffffffffffffffff
push edx
push esi
push esi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp eax, esi
jle 0x464f7e
mov word [edi + eax*2 - 2], si
push 0xffffffffffffffff
lea ecx, [ebp - 0x10]
call fcn.00407e30
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x1c]
lea eax, [ebp - 0xdfc]
lea edx, [ebp - 0x2d0]
push eax
push ecx
push edx
push esi
mov byte [ebp - 4], 8
call fcn.004deb4b
lea esi, [esi + eax*2]
lea eax, [ebp - 0x2d0]
push 0x104
push eax
push 0x9f08
call fcn.00432b50
lea ecx, [ebp - 0x4d8]
push 0x104
push ecx
push 0x9efc
call fcn.00432b50
mov edx, dword [ebp - 0x44]
add esp, 0x28
lea eax, [ebp - 0x4d8]
lea ecx, [ebp - 0x2d0]
push edx
push eax
push ecx
push esi
call fcn.004deb4b
lea edx, [esi + eax*2]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edx
mov edx, dword [0x50d0e4]
lea ecx, [eax - 0xc]
add esp, 0x10
cmp ecx, edx
mov byte [ebp - 4], 7
je 0x46502b
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x46502b
mov edx, dword [ebp - 0x10]
lea eax, [edx - 0xc]
push eax
call fcn.004de3a6
add esp, 4
mov eax, dword [0x50d0e0]
mov dword [ebp - 0x24], eax
push str.Qvodcfg.ini
lea ecx, [ebp - 0x28]
push 0x525768
push ecx
mov byte [ebp - 4], 9
call fcn.00402910
mov edi, eax
mov esi, dword [edi]
mov eax, dword [ebp - 0x24]
cmp eax, esi
mov byte [ebp - 4], 0xa
je 0x4650c2
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x46506d
mov ecx, dword [0x50d0e4]
add eax, 0xfffffff4
cmp eax, ecx
jne 0x465074
mov eax, dword [esi - 0xc]
test eax, eax
jge 0x4650ab
mov edi, dword [esi - 8]
lea ecx, [ebp - 0x24]
push edi
call fcn.004022b0
test eax, eax
je 0x4650c2
mov eax, dword [ebp - 0x24]
lea ebx, [edi + edi]
push ebx
lea edx, [edi + edi + 2]
push esi
push edx
push eax
call fcn.00402060
mov ecx, dword [ebp - 0x24]
add esp, 0x10
mov dword [ecx - 8], edi
mov edx, dword [ebp - 0x24]
mov word [ebx + edx], 0
jmp 0x4650c2
lea ecx, [ebp - 0x24]
call fcn.00402350
mov edi, dword [edi]
mov dword [ebp - 0x24], edi
lea eax, [edi - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [ebp - 0x28]
mov edx, dword [0x50d0e4]
mov byte [ebp - 4], 9
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4650f3
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4650f3
mov edx, dword [ebp - 0x28]
lea eax, [edx - 0xc]
push eax
call fcn.004de3a6
add esp, 4
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x40]
push eax
call fcn.00431670
mov ecx, dword [0x50d0e0]
mov dword [ebp - 0x18], ecx
mov edx, 0x51739c
mov byte [ebp - 4], 0xc
test edx, edx
jne 0x46511f
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
xor esi, esi
jmp 0x46512e
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0x51739c
call ebx
mov esi, eax
push esi
lea ecx, [ebp - 0x18]
call fcn.004022b0
test eax, eax
je 0x465164
mov ecx, dword [ebp - 0x18]
lea edi, [esi + esi]
push edi
lea eax, [esi + esi + 2]
push 0x51739c
push eax
push ecx
call fcn.00402060
mov edx, dword [ebp - 0x18]
add esp, 0x10
mov dword [edx - 8], esi
mov eax, dword [ebp - 0x18]
mov word [edi + eax], 0
push 0
push str.UDPONLY
push str.QVODTERMINAL
lea ecx, [ebp - 0x40]
call fcn.00431730
cmp eax, 1
jne 0x4651bd
lea ecx, [ebp - 0x2d0]
push 0x104
push ecx
push 0xa7d6
call fcn.00432b50
lea edx, [ebp - 0x2d0]
add esp, 0xc
test edx, edx
jne 0x4651a4
xor eax, eax
jmp 0x4651ad
lea eax, [ebp - 0x2d0]
push eax
call ebx
lea ecx, [ebp - 0x2d0]
push ecx
push eax
lea ecx, [ebp - 0x18]
call fcn.00407f00
push 3
push str.protocol
push str.QVODTERMINAL
lea ecx, [ebp - 0x40]
call fcn.00431730
cmp eax, 2
jne 0x465212
lea edx, [ebp - 0x2d0]
push 0x104
push edx
push 0xa7d7
call fcn.00432b50
lea eax, [ebp - 0x2d0]
add esp, 0xc
test eax, eax
je 0x465202
lea ecx, [ebp - 0x2d0]
push ecx
call ebx
lea edx, [ebp - 0x2d0]
lea ecx, [ebp - 0x18]
push edx
push eax
call fcn.00407f00
mov eax, 0x517394
test eax, eax
je 0x465222
push 0x517394
call ebx
push 0x517394
push eax
lea ecx, [ebp - 0x18]
call fcn.00407f00
mov eax, dword [ebp - 0x18]
mov ebx, dword [eax - 8]
cmp ebx, 5
jle 0x4652c4
mov ecx, dword [eax - 0xc]
lea esi, [eax - 0xc]
cmp ecx, 1
mov dword [ebp - 0x28], esi
jg 0x465252
cmp ebx, dword [eax - 4]
jle 0x4652aa
push ebx
lea ecx, [ebp - 0x18]
call fcn.00402190
test eax, eax
je 0x4652aa
lea ecx, [ebx + ebx + 2]
lea edx, [ebx + ebx + 2]
cmp edx, ecx
jb 0x465284
mov eax, dword [ebp - 0x28]
mov edi, dword [ebp - 0x18]
mov edx, ecx
lea esi, [eax + 0xc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, eax
mov eax, dword [ebp - 0x18]
mov dword [eax - 8], ebx
mov eax, dword [0x50d0e4]
cmp esi, eax
je 0x4652a7
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4652a7
push esi
call fcn.004de3a6
add esp, 4
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
push eax
push 0x5162d8
push esi
call fcn.004deb4b
lea ebx, [esi + eax*2]
add esp, 0xc
mov dword [ebp - 0x1c], ebx
jmp 0x4652c7
mov ebx, dword [ebp - 0x1c]
mov eax, dword [0x525d7c]
test eax, eax
jne 0x4656d1
mov ecx, 0x82
xor eax, eax
lea edi, [ebp - 0x7e4]
push 0x104
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x7e4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov ecx, 0x80
xor eax, eax
lea edi, [ebp - 0x7de]
lea edx, [ebp - 0x7e4]
rep stosd dword es:[edi], eax
push edx
stosw word es:[edi], ax
call fcn.004dfed3
mov ecx, 0x104
xor eax, eax
lea edi, [ebp - 0xbf4]
push 3
rep stosd dword es:[edi], eax
mov eax, dword [0x525780]
lea ecx, [ebp - 0xbf4]
push eax
push ecx
call fcn.004df950
lea edx, [ebp - 0xbf4]
push edx
call fcn.004dfed3
add esp, 0x14
lea eax, [ebp - 0x60]
lea ecx, [ebp - 0x54]
lea edx, [ebp - 0x2c]
push eax
push ecx
lea eax, [ebp - 0xbf4]
push edx
push eax
xor esi, esi
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
lea ecx, [ebp - 0xbf4]
lea edx, [ebp - 0x7e4]
push ecx
push edx
call fcn.004dfe9e
mov edx, dword [ebp - 0x5c]
add esp, 8
neg eax
sbb eax, eax
xor ecx, ecx
and eax, 0x80000000
add eax, 0xa0000000
cmp edx, ecx
jb 0x46539a
ja 0x465395
mov ecx, dword [ebp - 0x60]
cmp ecx, eax
jbe 0x46539a
mov esi, 1
mov ecx, 0x82
xor eax, eax
lea edi, [ebp - 0xbf2]
lea edx, [ebp - 0xbf4]
rep stosd dword es:[edi], eax
push edx
call fcn.004e0447
add esp, 4
test esi, esi
jne 0x465685
mov eax, dword [0x50d0e0]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x4d8]
push 0x104
push eax
push 0x9f0f
mov byte [ebp - 4], 0xe
call fcn.00432b50
add esp, 0xc
lea ecx, [ebp - 0xbf4]
lea edx, [ebp - 0x4d8]
lea eax, [ebp - 0x14]
push ecx
push edx
push eax
call fcn.004074f0
lea ecx, [ebp - 0x2d0]
push 0x104
push ecx
push 0x9f0e
call fcn.00432b50
mov edx, dword [ebp - 0x14]
add esp, 0x18
lea eax, [ebp - 0x2d0]
lea ecx, [ebp - 0x10]
push edx
push eax
push ecx
call fcn.004074f0
mov eax, dword [ebp - 0x10]
add esp, 0xc
mov ecx, dword [eax - 0xc]
mov esi, dword [eax - 8]
lea edi, [eax - 0xc]
cmp ecx, 1
jg 0x465445
cmp esi, dword [eax - 4]
jle 0x46547b
test esi, esi
jne 0x4654da
mov eax, dword [0x50d0e0]
lea ecx, [esi + esi + 2]
lea edx, [edi + 0xc]
push ecx
lea ecx, [esi + esi + 2]
push edx
push ecx
push eax
mov dword [ebp - 0x10], eax
call fcn.00402060
mov edx, dword [ebp - 0x10]
add esp, 0x10
push edi
mov dword [edx - 8], esi
call fcn.00408030
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x1c]
push eax
push 0x5162d8
push esi
call fcn.004deb4b
lea ebx, [esi + eax*2]
mov eax, dword [ebp - 0x14]
add esp, 0xc
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x465533
mov edx, dword [eax - 0xc]
lea ecx, [eax - 0xc]
test edx, edx
jl 0x46550d
mov edx, dword [0x50d0e4]
add eax, 0xfffffff4
cmp eax, edx
je 0x465533
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4654cf
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff4
push eax
call fcn.004de3a6
add esp, 4
mov ecx, dword [0x50d0e0]
mov dword [ebp - 0x14], ecx
jmp 0x465533
lea edx, [esi + esi + 0xe]
push edx
call fcn.004de48f
add esp, 4
test eax, eax
je 0x465506
mov dword [eax], 1
mov word [eax + esi*2 + 0xc], 0
mov dword [eax + 4], esi
mov dword [eax + 8], esi
add eax, 0xc
jmp 0x465452
xor eax, eax
jmp 0x46547b
mov edx, 0x5209fc
test edx, edx
jne 0x46551a
xor eax, eax
jmp 0x465525
push 0x5209fc
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0x5209fc
push eax
lea ecx, [ebp - 0x14]
call fcn.004021f0
lea eax, [ebp - 0x4d8]
push 0x104
push eax
push 0x9f11
call fcn.00432b50
add esp, 0xc
lea ecx, [ebp - 0xbf4]
lea edx, [ebp - 0xbf4]
lea eax, [ebp - 0x4d8]
push ecx
push edx
lea ecx, [ebp - 0x14]
push eax
push ecx
call fcn.004074f0
lea edx, [ebp - 0x2d0]
push 0x104
push edx
push 0x9efe
call fcn.00432b50
mov eax, dword [ebp - 0x14]
add esp, 0x1c
mov ecx, dword [eax - 0xc]
mov esi, dword [eax - 8]
lea edi, [eax - 0xc]
cmp ecx, 1
jg 0x465599
cmp esi, dword [eax - 4]
jle 0x4655cf
test esi, esi
jne 0x465652
mov eax, dword [0x50d0e0]
lea ecx, [esi + esi + 2]
lea edx, [edi + 0xc]
push ecx
lea ecx, [esi + esi + 2]
push edx
push ecx
push eax
mov dword [ebp - 0x14], eax
call fcn.00402060
mov edx, dword [ebp - 0x14]
add esp, 0x10
push edi
mov dword [edx - 8], esi
call fcn.00408030
mov eax, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x2d0]
push eax
push ebx
call fcn.004deb4b
lea ecx, [ebx + eax*2]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [0x50d0e4]
lea edx, [eax - 0xc]
add esp, 0xc
cmp edx, ecx
mov byte [ebp - 4], 0xd
je 0x465617
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x465617
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff4
push eax
call fcn.004de3a6
add esp, 4
mov eax, dword [ebp - 0x10]
mov edx, dword [0x50d0e4]
mov byte [ebp - 4], 0xc
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4656d1
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4656d1
mov edx, dword [ebp - 0x10]
lea eax, [edx - 0xc]
push eax
call fcn.004de3a6
add esp, 4
jmp 0x4656d1
lea eax, [esi + esi + 0xe]
push eax
call fcn.004de48f
add esp, 4
test eax, eax
je 0x46567e
mov dword [eax], 1
mov word [eax + esi*2 + 0xc], 0
mov dword [eax + 4], esi
mov dword [eax + 8], esi
add eax, 0xc
jmp 0x4655a6
xor eax, eax
jmp 0x4655cf
lea eax, [ebp - 0x2d0]
push 0x104
push eax
push 0x9f0e
call fcn.00432b50
lea ecx, [ebp - 0x4d8]
push 0x104
push ecx
push 0x9f10
call fcn.00432b50
add esp, 0x18
lea edx, [ebp - 0x4d8]
lea eax, [ebp - 0x2d0]
push edx
push eax
push ebx
call fcn.004deb4b
lea ecx, [ebx + eax*2]
add esp, 0xc
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x48]
call fcn.004681c0
mov ecx, 0x82
xor eax, eax
lea edi, [ebp - 0x161c]
lea edx, [ebp - 0x161c]
push 0x104
push edx
rep stosd dword es:[edi], eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea eax, [ebp - 0x161c]
lea ecx, [ebp - 0x2c7c]
push eax
push str._s_system32_
push ecx
call fcn.004deb4b
add esp, 0xc
mov ebx, 0x513fb8
mov ecx, 0x104
xor eax, eax
lea edi, [ebp - 0x1a2c]
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 8]
cmp eax, 2
jne 0x46573f
mov edx, dword [ebx]
mov eax, dword [ebp - 0x34]
push edx
push eax
push 0x50de74
jmp 0x465779
cmp eax, 1
jne 0x465755
mov edx, dword [ebx]
lea eax, [ebp - 0x2c7c]
push edx
push eax
push 0x50de74
jmp 0x465779
mov al, byte [ebx + 0xc]
mov edx, dword [ebx]
test al, al
push edx
je 0x46576d
lea eax, [ebp - 0x161c]
push eax
push 0x51736c
jmp 0x465779
lea eax, [ebp - 0xbf4]
push eax
push str._sCodecs_s
lea ecx, [ebp - 0x1a2c]
push ecx
call fcn.004deb4b
add esp, 0x10
lea edx, [ebp - 0x1a2c]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4657d4
lea eax, [ebp - 0x1a2c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
test esi, esi
je 0x4657d4
mov al, byte [ebx + 4]
test al, al
je 0x4657bb
push str.DllUnregisterServer
jmp 0x4657c0
push str.DllRegisterServer
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4657cd
call eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
add ebx, 0x10
cmp ebx, 0x5140c8
jl 0x46571a
lea ecx, [ebp - 0x2d0]
push 0x104
push ecx
push 0x9f12
call fcn.00432b50
mov esi, dword [ebp - 0x1c]
add esp, 0xc
lea edx, [ebp - 0x2d0]
push edx
push esi
call fcn.004deb4b
lea esi, [esi + eax*2]
lea eax, [ebp - 0x2d0]
push 0x104
push eax
push 0x9f14
call fcn.00432b50
mov ecx, 0x82
xor eax, eax
lea edi, [ebp - 0x4d8]
add esp, 0x14
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x1c34]
rep stosd dword es:[edi], eax
mov eax, dword [0x5257a0]
cmp eax, 0x224
je 0x4658ac
cmp eax, 0x225
je 0x4658ac
lea ecx, [ebp - 0x1c34]
push 0x104
push ecx
push 0x9f13
call fcn.00432b50
mov eax, dword [0x5257a0]
lea edx, [ebp - 0x4d8]
push 0x104
push edx
push eax
call fcn.00432b50
add esp, 0x18
lea ecx, [ebp - 0x1c34]
lea edx, [ebp - 0x4d8]
lea eax, [ebp - 0x2d0]
push ecx
push edx
push eax
push str._s_s__s_r_n
push esi
call fcn.004deb4b
add esp, 0x14
jmp 0x4658dd
lea ecx, [ebp - 0x4d8]
push 0x104
push ecx
push eax
call fcn.00432b50
add esp, 0xc
lea edx, [ebp - 0x4d8]
lea eax, [ebp - 0x2d0]
push edx
push eax
push str._s_s_r_n
push esi
call fcn.004deb4b
add esp, 0x10
lea esi, [esi + eax*2]
mov ecx, 0x82
xor eax, eax
lea edi, [ebp - 0x1e3c]
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x1e3c]
push 0x104
push ecx
push str.EnableSocks5
push str.Socks5
lea ecx, [ebp - 0x40]
call fcn.00431700
test eax, eax
jle 0x4659b4
cmp word [ebp - 0x1e3c], 0x31
jne 0x4659b4
lea edx, [ebp - 0x2d0]
push 0x104
push edx
push 0xa764
call fcn.00432b50
mov ecx, 0x82
xor eax, eax
lea edi, [ebp - 0x2044]
add esp, 0xc
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x7e4]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x2044]
push 0x104
push eax
push str.Socks5IP
push str.Socks5
lea ecx, [ebp - 0x40]
call fcn.00431700
lea ecx, [ebp - 0x7e4]
push 0x104
push ecx
push str.Socks5Port
push str.Socks5
lea ecx, [ebp - 0x40]
call fcn.00431700
lea edx, [ebp - 0x7e4]
lea eax, [ebp - 0x2044]
push edx
lea ecx, [ebp - 0x2d0]
push eax
push ecx
push esi
call fcn.004deb4b
add esp, 0x10
jmp 0x4659dd
lea edx, [ebp - 0x2d0]
push 0x104
push edx
push 0xa765
call fcn.00432b50
add esp, 0xc
lea eax, [ebp - 0x2d0]
push eax
push esi
call fcn.004deb4b
add esp, 8
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x465a0f
lea ecx, [ebp - 0x2d0]
push 0x104
push ecx
push 0xa78e
call fcn.00432b50
add esp, 0xc
lea edx, [ebp - 0x2d0]
push edx
push esi
call fcn.004deb4b
jmp 0x465a1a
push 0x517394
push esi
call fcn.004df3e0
mov ecx, dword [ebp - 0x48]
add esp, 8
call fcn.00470c70
push 0x5209fc
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x2458]
call fcn.004c4470
mov eax, dword [str.SOFTWAREMicrosoftWindowsCurrentVersionExplorerBrowser_Helper_Objects01443AEC_0FD1_40fd_9C87_E93D1494C233]
lea ecx, [ebp - 0x2458]
push eax
mov byte [ebp - 4], 0xf
call fcn.004c4730
mov ecx, dword [str.SOFTWAREMicrosoftWindowsCurrentVersionExplorerBrowser_Helper_Objects889D2FEB_5411_4565_8998_1DD2C5261283]
push ecx
lea ecx, [ebp - 0x2458]
call fcn.004c4730
mov eax, dword [ebp + 8]
lea edx, [ebp - 0x40cc]
push edx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
lea ecx, [ebp - 0x2458]
mov byte [ebp - 4], 0xc
call fcn.004c44b0
mov eax, dword [ebp - 0x18]
mov edx, dword [0x50d0e4]
mov byte [ebp - 4], 0xb
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x465ab2
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x465ab2
mov edx, dword [ebp - 0x18]
lea eax, [edx - 0xc]
push eax
call fcn.004de3a6
add esp, 4
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x40], 0x4fb734
test eax, eax
je 0x465ac9
push eax
call fcn.004de3a6
add esp, 4
mov eax, dword [ebp - 0x24]
mov edx, dword [0x50d0e4]
mov dword [ebp - 0x3c], 0
mov byte [ebp - 4], 7
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x465b01
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x465b01
mov edx, dword [ebp - 0x24]
lea eax, [edx - 0xc]
push eax
call fcn.004de3a6
add esp, 4
mov eax, dword [ebp - 0x38]
mov edx, dword [0x50d0e4]
mov byte [ebp - 4], 6
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x465b32
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x465b32
mov edx, dword [ebp - 0x38]
lea eax, [edx - 0xc]
push eax
call fcn.004de3a6
add esp, 4
lea ecx, [ebp - 0x286c]
mov byte [ebp - 4], 5
call fcn.004c44b0
mov eax, dword [ebp - 0x34]
mov edx, dword [0x50d0e4]
mov byte [ebp - 4], 1
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x465b72
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x465b72
mov edx, dword [ebp - 0x34]
lea eax, [edx - 0xc]
push eax
call fcn.004de3a6
add esp, 4
mov eax, dword [ebp - 0x20]
mov edx, dword [0x50d0e4]
mov byte [ebp - 4], 0
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x465ba3
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x465ba3
mov edx, dword [ebp - 0x20]
lea eax, [edx - 0xc]
push eax
call fcn.004de3a6
add esp, 4
mov eax, dword [ebp - 0x30]
mov edx, dword [0x50d0e4]
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x465bd7
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x465bd7
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff4
push edx
call fcn.004de3a6
add esp, 4
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x40d8]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4