Function at 0x140017000
Capabilities:
Query environment variable
Resolve dns

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x3a0
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rsp + 0x3e8], rbx
mov rax, qword [0x1402de400]
xor rax, rsp
mov qword [rsp + 0x390], rax
mov dword [rsp + 0x68], r9d
mov ebx, r8d
mov rdi, rdx
mov qword [rsp + 0x60], rcx
xor edx, edx
mov r8d, 0x210
lea rcx, [rsp + 0x80]
call fcn.1401e42d0
lea rdx, [rsp + 0x80]
sub rdx, rdi
nop word [rax + rax]
movzx eax, byte [rdi]
mov byte [rdx + rdi], al
inc rdi
test al, al
jne 0x140017070
mov dword [rsp + 0x100], ebx
mov dword [rsp + 0x104], 0
lea rcx, str.GOTOHTTP_PROXY
call fcn.1401e76b8
test rax, rax
jne 0x14001712e
mov r8d, 0x100
lea rdx, [rsp + 0x290]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov edx, eax
dec rdx
js 0x140017126
cmp byte [rsp + rdx + 0x290], 0x5c
je 0x1400170d3
sub rdx, 1
jns 0x1400170c1
jmp 0x140017126
mov byte [rsp + rdx + 0x290], 0
xor edi, edi
lea rax, str.proxy.ini
inc rax
inc edi
cmp byte [rax], 0
jne 0x1400170e4
lea eax, [rdi + 1]
movsxd rcx, eax
add rcx, rdx
cmp rcx, 0x100
ja 0x140017126
mov byte [rsp + rdx + 0x290], 0x5c
test edi, edi
js 0x140017126
movsxd r8, edi
lea rcx, [rsp + rdx + 0x291]
inc r8
lea rdx, str.proxy.ini
call fcn.1401e3ed0
lea rax, [rsp + 0x290]
lea rcx, vtable.TArray_class_TInI::TInISection____ptr64__10__class_TDefaultAllocator_.0
mov qword [rsp + 0x20], rcx
xor r12d, r12d
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x30], r12
xor r14d, r14d
mov qword [rsp + 0x38], r14
mov dword [rsp + 0x40], r14d
mov qword [rsp + 0x48], r14
mov dword [rsp + 0x50], r14d
xor r15d, r15d
mov dword [rsp + 0x54], r15d
mov dword [rsp + 0x58], r15d
lea rdx, [0x14029d054]
mov rcx, rax
call fcn.1401e696c
mov rdi, rax
test rax, rax
jne 0x14001718c
mov dword [rsp + 0x58], 0xffffffff
jmp 0x1400171b0
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140002e00
mov rcx, rdi
call fcn.1401e67bc
mov r15d, dword [rsp + 0x54]
mov r14, qword [rsp + 0x38]
mov r12, qword [rsp + 0x28]
lea rax, [r14 + 1]
lea r8, str.proxy
cmp r8, rax
jae 0x1400171ca
mov rsi, qword [r12 + r8*8 - 8]
jmp 0x14001728d
test r15d, r15d
jne 0x140017212
xor edi, edi
test r14, r14
je 0x1400172c0
nop word [rax + rax]
mov rsi, qword [r12 + rdi*8]
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x140017204
mov rdx, r8
call fcn.1401e35ac
test eax, eax
je 0x14001728d
lea r8, str.proxy
inc rdi
cmp rdi, r14
jae 0x1400172c0
jmp 0x1400171e0
xor r13d, r13d
mov ebp, dword [rsp + 0x38]
dec ebp
js 0x1400172c0
lea ebx, [rbp + r13]
sar ebx, 1
movsxd rax, ebx
mov rsi, qword [r12 + rax*8]
mov rdx, qword [rsi + 0x20]
cmp r15d, 2
jne 0x140017266
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r8
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
dec rcx
cmp r8, rcx
ja 0x140017276
cmp r8, rcx
jae 0x14001728d
jmp 0x14001727c
mov rcx, r8
call fcn.1401e35ac
test eax, eax
je 0x14001728d
test eax, eax
jle 0x14001727c
lea r13d, [rbx + 1]
jmp 0x14001727f
lea ebp, [rbx - 1]
cmp r13d, ebp
jg 0x1400172c0
lea r8, str.proxy
jmp 0x140017221
test rsi, rsi
je 0x1400172c0
lea rdx, str.type
mov rcx, rsi
call fcn.140001ef0
test eax, eax
js 0x1400172c0
movsxd rcx, eax
add rcx, rcx
mov rax, qword [rsi + 8]
mov rcx, qword [rax + rcx*8 + 8]
test rcx, rcx
je 0x1400172c0
call fcn.1400099b0
jmp 0x1400172c2
xor eax, eax
mov dword [rsp + 0x108], eax
test eax, eax
je 0x1400178fb
lea rax, [r14 + 1]
lea r8, str.proxy
cmp r8, rax
jae 0x1400172eb
mov rsi, qword [r12 + r8*8 - 8]
jmp 0x1400173bc
test r15d, r15d
jne 0x140017335
xor edi, edi
test r14, r14
je 0x140017413
nop dword [rax + rax]
mov rsi, qword [r12 + rdi*8]
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x140017324
mov rdx, r8
call fcn.1401e35ac
test eax, eax
je 0x1400173bc
lea r8, str.proxy
inc rdi
cmp rdi, r14
jb 0x140017300
mov ecx, dword [rsp + 0x38]
jmp 0x14001741d
xor r13d, r13d
mov ecx, dword [rsp + 0x38]
lea ebp, [rcx - 1]
test ebp, ebp
js 0x14001741d
nop word [rax + rax]
lea ebx, [rbp + r13]
sar ebx, 1
movsxd rax, ebx
mov rsi, qword [r12 + rax*8]
mov rdx, qword [rsi + 0x20]
cmp r15d, 2
jne 0x140017395
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r8
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
dec rcx
cmp r8, rcx
ja 0x1400173a5
cmp r8, rcx
jae 0x1400173bc
jmp 0x1400173ab
mov rcx, r8
call fcn.1401e35ac
test eax, eax
je 0x1400173bc
test eax, eax
jle 0x1400173ab
lea r13d, [rbx + 1]
jmp 0x1400173ae
lea ebp, [rbx - 1]
cmp r13d, ebp
jg 0x14001740d
lea r8, str.proxy
jmp 0x140017350
test rsi, rsi
je 0x140017419
lea rdx, str.host
mov rcx, rsi
call fcn.140001ef0
test eax, eax
js 0x140017407
movsxd rcx, eax
add rcx, rcx
mov rax, qword [rsi + 8]
mov rdx, qword [rax + rcx*8 + 8]
test rdx, rdx
je 0x140017401
mov r8d, 0x7f
lea rcx, [rsp + 0x10c]
call fcn.1401e87f0
mov ecx, dword [rsp + 0x38]
jmp 0x14001741d
mov ecx, dword [rsp + 0x38]
jmp 0x14001741d
mov ecx, dword [rsp + 0x38]
jmp 0x14001741d
mov ecx, dword [rsp + 0x38]
jmp 0x14001741d
mov ecx, dword [rsp + 0x38]
jmp 0x14001741d
mov ecx, dword [rsp + 0x38]
lea rax, [r14 + 1]
lea r8, str.proxy
cmp r8, rax
jae 0x140017437
mov rsi, qword [r12 + r8*8 - 8]
jmp 0x1400174fc
test r15d, r15d
jne 0x140017482
xor edi, edi
test r14, r14
je 0x14001752f
nop word [rax + rax]
mov rsi, qword [r12 + rdi*8]
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x140017474
mov rdx, r8
call fcn.1401e35ac
test eax, eax
je 0x1400174fc
lea r8, str.proxy
inc rdi
cmp rdi, r14
jae 0x14001752f
jmp 0x140017450
xor r13d, r13d
lea ebp, [rcx - 1]
test ebp, ebp
js 0x14001752f
lea ebx, [rbp + r13]
sar ebx, 1
movsxd rax, ebx
mov rsi, qword [r12 + rax*8]
mov rdx, qword [rsi + 0x20]
cmp r15d, 2
jne 0x1400174d5
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r8
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
dec rcx
cmp r8, rcx
ja 0x1400174e5
cmp r8, rcx
jae 0x1400174fc
jmp 0x1400174eb
mov rcx, r8
call fcn.1401e35ac
test eax, eax
je 0x1400174fc
test eax, eax
jle 0x1400174eb
lea r13d, [rbx + 1]
jmp 0x1400174ee
lea ebp, [rbx - 1]
cmp r13d, ebp
jg 0x14001752f
lea r8, str.proxy
jmp 0x140017490
test rsi, rsi
je 0x14001752f
lea rdx, str.port
mov rcx, rsi
call fcn.140001ef0
test eax, eax
js 0x14001752f
movsxd rcx, eax
add rcx, rcx
mov rax, qword [rsi + 8]
mov rcx, qword [rax + rcx*8 + 8]
test rcx, rcx
je 0x14001752f
call fcn.1400099b0
jmp 0x140017531
xor eax, eax
mov dword [rsp + 0x18c], eax
lea rax, [r14 + 1]
lea r8, str.proxy
cmp r8, rax
jae 0x140017552
mov rsi, qword [r12 + r8*8 - 8]
jmp 0x14001761c
test r15d, r15d
jne 0x140017597
xor edi, edi
test r14, r14
je 0x140017673
mov rsi, qword [r12 + rdi*8]
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x140017586
mov rdx, r8
call fcn.1401e35ac
test eax, eax
je 0x14001761c
lea r8, str.proxy
inc rdi
cmp rdi, r14
jb 0x140017562
mov edi, dword [rsp + 0x38]
jmp 0x14001767d
xor r13d, r13d
mov edi, dword [rsp + 0x38]
lea ebp, [rdi - 1]
test ebp, ebp
js 0x14001767d
nop dword [rax]
lea ebx, [rbp + r13]
sar ebx, 1
movsxd rax, ebx
mov rsi, qword [r12 + rax*8]
mov rdx, qword [rsi + 0x20]
cmp r15d, 2
jne 0x1400175f5
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r8
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
dec rcx
cmp r8, rcx
ja 0x140017605
cmp r8, rcx
jae 0x14001761c
jmp 0x14001760b
mov rcx, r8
call fcn.1401e35ac
test eax, eax
je 0x14001761c
test eax, eax
jle 0x14001760b
lea r13d, [rbx + 1]
jmp 0x14001760e
lea ebp, [rbx - 1]
cmp r13d, ebp
jg 0x14001766d
lea r8, str.proxy
jmp 0x1400175b0
test rsi, rsi
je 0x140017679
lea rdx, str.user
mov rcx, rsi
call fcn.140001ef0
test eax, eax
js 0x140017667
movsxd rcx, eax
add rcx, rcx
mov rax, qword [rsi + 8]
mov rdx, qword [rax + rcx*8 + 8]
test rdx, rdx
je 0x140017661
mov r8d, 0x7f
lea rcx, [rsp + 0x190]
call fcn.1401e87f0
mov edi, dword [rsp + 0x38]
jmp 0x14001767d
mov edi, dword [rsp + 0x38]
jmp 0x14001767d
mov edi, dword [rsp + 0x38]
jmp 0x14001767d
mov edi, dword [rsp + 0x38]
jmp 0x14001767d
mov edi, dword [rsp + 0x38]
jmp 0x14001767d
mov edi, dword [rsp + 0x38]
lea rax, [r14 + 1]
lea r8, str.proxy
cmp r8, rax
jae 0x140017697
mov rsi, qword [r12 + r8*8 - 8]
jmp 0x14001776c
test r15d, r15d
jne 0x1400176e5
xor edi, edi
test r14, r14
je 0x1400177d2
nop word [rax + rax]
mov rsi, qword [r12 + rdi*8]
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x1400176d4
mov rdx, r8
call fcn.1401e35ac
test eax, eax
je 0x14001776c
lea r8, str.proxy
inc rdi
cmp rdi, r14
jb 0x1400176b0
mov edi, dword [rsp + 0x38]
jmp 0x1400177e2
xor r13d, r13d
lea ebp, [rdi - 1]
test ebp, ebp
js 0x1400177e2
nop word [rax + rax]
lea ebx, [rbp + r13]
sar ebx, 1
movsxd rax, ebx
mov rsi, qword [r12 + rax*8]
mov rdx, qword [rsi + 0x20]
cmp r15d, 2
jne 0x140017745
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r8
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
dec rcx
cmp r8, rcx
ja 0x140017755
cmp r8, rcx
jae 0x14001776c
jmp 0x14001775b
mov rcx, r8
call fcn.1401e35ac
test eax, eax
je 0x14001776c
test eax, eax
jle 0x14001775b
lea r13d, [rbx + 1]
jmp 0x14001775e
lea ebp, [rbx - 1]
cmp r13d, ebp
jg 0x1400177cc
lea r8, str.proxy
jmp 0x140017700
test rsi, rsi
je 0x1400177d8
lea rdx, str.passc
mov rcx, rsi
call fcn.140001ef0
test eax, eax
js 0x1400177c6
movsxd rcx, eax
add rcx, rcx
mov rax, qword [rsi + 8]
mov rcx, qword [rax + rcx*8 + 8]
test rcx, rcx
je 0x1400177c0
xor r9d, r9d
mov r8d, 0x100
lea rdx, [rsp + 0x290]
call fcn.140003ba0
test rax, rax
je 0x1400177de
lea rdx, [rsp + 0x290]
jmp 0x1400178e8
mov edi, dword [rsp + 0x38]
jmp 0x1400177e2
mov edi, dword [rsp + 0x38]
jmp 0x1400177e2
mov edi, dword [rsp + 0x38]
jmp 0x1400177e2
mov edi, dword [rsp + 0x38]
jmp 0x1400177e2
mov edi, dword [rsp + 0x38]
jmp 0x1400177e2
mov edi, dword [rsp + 0x38]
lea rax, [r14 + 1]
lea r8, str.proxy
cmp r8, rax
jae 0x1400177fc
mov rbx, qword [r12 + r8*8 - 8]
jmp 0x1400178bc
test r15d, r15d
jne 0x140017842
xor edi, edi
test r14, r14
je 0x1400178fb
nop dword [rax]
mov rbx, qword [r12 + rdi*8]
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x140017834
mov rdx, r8
call fcn.1401e35ac
test eax, eax
je 0x1400178bc
lea r8, str.proxy
inc rdi
cmp rdi, r14
jae 0x1400178fb
jmp 0x140017810
xor r13d, r13d
lea ebp, [rdi - 1]
test ebp, ebp
js 0x1400178fb
lea esi, [rbp + r13]
sar esi, 1
movsxd rax, esi
mov rbx, qword [r12 + rax*8]
mov rdx, qword [rbx + 0x20]
cmp r15d, 2
jne 0x140017895
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r8
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
dec rcx
cmp r8, rcx
ja 0x1400178a5
cmp r8, rcx
jae 0x1400178bc
jmp 0x1400178ab
mov rcx, r8
call fcn.1401e35ac
test eax, eax
je 0x1400178bc
test eax, eax
jle 0x1400178ab
lea r13d, [rsi + 1]
jmp 0x1400178ae
lea ebp, [rsi - 1]
cmp r13d, ebp
jg 0x1400178fb
lea r8, str.proxy
jmp 0x140017850
test rbx, rbx
je 0x1400178fb
lea rdx, str.pass
mov rcx, rbx
call fcn.140001ef0
test eax, eax
js 0x1400178fb
movsxd rcx, eax
add rcx, rcx
mov rax, qword [rbx + 8]
mov rdx, qword [rax + rcx*8 + 8]
test rdx, rdx
je 0x1400178fb
mov r8d, 0x7f
lea rcx, [rsp + 0x210]
call fcn.1401e87f0
mov rbp, qword [rsp + 0x60]
mov rax, qword [rbp + 0x10]
test rax, rax
je 0x1400179d3
mov rcx, qword [rax + 0x20]
mov eax, dword [rcx + 0x80]
cmp eax, dword [rsp + 0x100]
jne 0x1400179c9
lea rdx, [rsp + 0x80]
call fcn.1401e35ac
test eax, eax
jne 0x1400179c9
cmp dword [reloc.WS2_32.dll_accept], 1
jg 0x14001795f
lea r9, str.Found_a_same_end_point_
mov r8d, 0xa2
lea rdx, str.....mttpProvider.cpp
lea ecx, [rax + 1]
call fcn.1400045a0
nop
xor edi, edi
test r14, r14
je 0x140017987
mov rbx, qword [r12 + rdi*8]
test rbx, rbx
je 0x14001797f
mov rcx, rbx
call fcn.140001de0
mov rcx, rbx
call fcn.1401e32b0
inc rdi
cmp rdi, r14
jb 0x140017966
test r12, r12
je 0x140017994
mov rcx, r12
call fcn.1401e36c8
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x1400179bf
call fcn.1401e32b0
nop
mov eax, 1
jmp 0x140017bdc
mov rcx, qword [rbp + 0x10]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
cmp dword [rsp + 0x68], 0
je 0x140017a43
mov ecx, 0x80
call fcn.1401e37b4
mov rdi, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x140017a3f
mov rcx, rax
call fcn.1400183b0
nop
lea rax, vtable.CHttpsProvider.0
mov qword [rdi], rax
lea rax, vtable.CHttpsProvider.1.0
mov qword [rdi + 8], rax
cmp dword [reloc.WS2_32.dll_accept], 1
jg 0x140017a36
lea r9, str.New_CHttpsProvider.
mov r8d, 0x15b
lea rdx, str.c:work_t120mttpHttpProvider.h
mov ecx, 1
call fcn.1400045a0
mov dword [rdi + 0x18], 1
jmp 0x140017a41
xor edi, edi
jmp 0x140017a66
mov ecx, 0x80
call fcn.1401e37b4
mov qword [rsp + 0x60], rax
test rax, rax
je 0x140017a64
mov rcx, rax
call fcn.1400183b0
mov rdi, rax
jmp 0x140017a66
xor edi, edi
test rdi, rdi
je 0x140017b7a
mov rcx, rdi
call fcn.1400198b0
mov ecx, 0x210
call fcn.1401e3610
mov qword [rdi + 0x20], rax
test rax, rax
je 0x140017b70
mov dword [rdi + 0x1c], 0x210
mov r8d, 0x210
lea rdx, [rsp + 0x80]
mov rcx, rax
call fcn.1401e3ed0
mov dword [rdi + 0x48], 0
mov rsi, qword [rdi + 0x20]
mov rbx, rsi
cmp dword [rsi + 0x88], 0
je 0x140017ad0
lea rax, [rsi + 0x8c]
cmp byte [rax], 0
cmovne rbx, rax
mov rcx, rbx
call sub.WS2_32.dll_inet_addr
mov dword [rsi + 0x84], eax
cmp eax, 0xffffffff
jne 0x140017b03
mov rcx, rbx
call sub.WS2_32.dll_gethostbyname
test rax, rax
je 0x140017b70
mov rax, qword [rax + 0x18]
mov rcx, qword [rax]
mov eax, dword [rcx]
mov dword [rsi + 0x84], eax
mov qword [rbp + 0x10], rdi
xor edi, edi
test r14, r14
je 0x140017b31
nop
mov rbx, qword [r12 + rdi*8]
test rbx, rbx
je 0x140017b29
mov rcx, rbx
call fcn.140001de0
mov rcx, rbx
call fcn.1401e32b0
inc rdi
cmp rdi, r14
jb 0x140017b10
test r12, r12
je 0x140017b3e
mov rcx, r12
call fcn.1401e36c8
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140017b69
call fcn.1401e32b0
nop
mov eax, 1
jmp 0x140017bdc
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
nop
xor edi, edi
test r14, r14
je 0x140017ba2
mov rbx, qword [r12 + rdi*8]
test rbx, rbx
je 0x140017b9a
mov rcx, rbx
call fcn.140001de0
mov rcx, rbx
call fcn.1401e32b0
inc rdi
cmp rdi, r14
jb 0x140017b81
test r12, r12
je 0x140017baf
mov rcx, r12
call fcn.1401e36c8
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140017bda
call fcn.1401e32b0
nop
xor eax, eax
mov rcx, qword [rsp + 0x390]
xor rcx, rsp
call fcn.1401e42a0
mov rbx, qword [rsp + 0x3e8]
add rsp, 0x3a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret