Function at 0x140019500
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 [0x1402e0068]
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.1401e6750
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 0x140019570
mov dword [rsp + 0x100], ebx
mov dword [rsp + 0x104], 0
lea rcx, str.GOTOHTTP_PROXY
call fcn.1401ea4f4
test rax, rax
jne 0x14001962e
mov r8d, 0x100
lea rdx, [rsp + 0x290]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov edx, eax
dec rdx
js 0x140019626
cmp byte [rsp + rdx + 0x290], 0x5c
je 0x1400195d3
sub rdx, 1
jns 0x1400195c1
jmp 0x140019626
mov byte [rsp + rdx + 0x290], 0
xor edi, edi
lea rax, str.proxy.ini
inc rax
inc edi
cmp byte [rax], 0
jne 0x1400195e4
lea eax, [rdi + 1]
movsxd rcx, eax
add rcx, rdx
cmp rcx, 0x100
ja 0x140019626
mov byte [rsp + rdx + 0x290], 0x5c
test edi, edi
js 0x140019626
movsxd r8, edi
lea rcx, [rsp + rdx + 0x291]
inc r8
lea rdx, str.proxy.ini
call fcn.1401e75a0
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, [0x14029fd14]
mov rcx, rax
call fcn.1401e97ac
mov rdi, rax
test rax, rax
jne 0x14001968c
mov dword [rsp + 0x58], 0xffffffff
jmp 0x1400196b0
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140002e50
mov rcx, rdi
call fcn.1401e95fc
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 0x1400196ca
mov rsi, qword [r12 + r8*8 - 8]
jmp 0x14001978d
test r15d, r15d
jne 0x140019712
xor edi, edi
test r14, r14
je 0x1400197c0
nop word [rax + rax]
mov rsi, qword [r12 + rdi*8]
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x140019704
mov rdx, r8
call fcn.1401e63ec
test eax, eax
je 0x14001978d
lea r8, str.proxy
inc rdi
cmp rdi, r14
jae 0x1400197c0
jmp 0x1400196e0
xor r13d, r13d
mov ebp, dword [rsp + 0x38]
dec ebp
js 0x1400197c0
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 0x140019766
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 0x140019776
cmp r8, rcx
jae 0x14001978d
jmp 0x14001977c
mov rcx, r8
call fcn.1401e63ec
test eax, eax
je 0x14001978d
test eax, eax
jle 0x14001977c
lea r13d, [rbx + 1]
jmp 0x14001977f
lea ebp, [rbx - 1]
cmp r13d, ebp
jg 0x1400197c0
lea r8, str.proxy
jmp 0x140019721
test rsi, rsi
je 0x1400197c0
lea rdx, str.type
mov rcx, rsi
call fcn.140001f40
test eax, eax
js 0x1400197c0
movsxd rcx, eax
add rcx, rcx
mov rax, qword [rsi + 8]
mov rcx, qword [rax + rcx*8 + 8]
test rcx, rcx
je 0x1400197c0
call fcn.140009a00
jmp 0x1400197c2
xor eax, eax
mov dword [rsp + 0x108], eax
test eax, eax
je 0x140019dfb
lea rax, [r14 + 1]
lea r8, str.proxy
cmp r8, rax
jae 0x1400197eb
mov rsi, qword [r12 + r8*8 - 8]
jmp 0x1400198bc
test r15d, r15d
jne 0x140019835
xor edi, edi
test r14, r14
je 0x140019913
nop dword [rax + rax]
mov rsi, qword [r12 + rdi*8]
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x140019824
mov rdx, r8
call fcn.1401e63ec
test eax, eax
je 0x1400198bc
lea r8, str.proxy
inc rdi
cmp rdi, r14
jb 0x140019800
mov ecx, dword [rsp + 0x38]
jmp 0x14001991d
xor r13d, r13d
mov ecx, dword [rsp + 0x38]
lea ebp, [rcx - 1]
test ebp, ebp
js 0x14001991d
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 0x140019895
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 0x1400198a5
cmp r8, rcx
jae 0x1400198bc
jmp 0x1400198ab
mov rcx, r8
call fcn.1401e63ec
test eax, eax
je 0x1400198bc
test eax, eax
jle 0x1400198ab
lea r13d, [rbx + 1]
jmp 0x1400198ae
lea ebp, [rbx - 1]
cmp r13d, ebp
jg 0x14001990d
lea r8, str.proxy
jmp 0x140019850
test rsi, rsi
je 0x140019919
lea rdx, str.host
mov rcx, rsi
call fcn.140001f40
test eax, eax
js 0x140019907
movsxd rcx, eax
add rcx, rcx
mov rax, qword [rsi + 8]
mov rdx, qword [rax + rcx*8 + 8]
test rdx, rdx
je 0x140019901
mov r8d, 0x7f
lea rcx, [rsp + 0x10c]
call fcn.1401eb5b0
mov ecx, dword [rsp + 0x38]
jmp 0x14001991d
mov ecx, dword [rsp + 0x38]
jmp 0x14001991d
mov ecx, dword [rsp + 0x38]
jmp 0x14001991d
mov ecx, dword [rsp + 0x38]
jmp 0x14001991d
mov ecx, dword [rsp + 0x38]
jmp 0x14001991d
mov ecx, dword [rsp + 0x38]
lea rax, [r14 + 1]
lea r8, str.proxy
cmp r8, rax
jae 0x140019937
mov rsi, qword [r12 + r8*8 - 8]
jmp 0x1400199fc
test r15d, r15d
jne 0x140019982
xor edi, edi
test r14, r14
je 0x140019a2f
nop word [rax + rax]
mov rsi, qword [r12 + rdi*8]
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x140019974
mov rdx, r8
call fcn.1401e63ec
test eax, eax
je 0x1400199fc
lea r8, str.proxy
inc rdi
cmp rdi, r14
jae 0x140019a2f
jmp 0x140019950
xor r13d, r13d
lea ebp, [rcx - 1]
test ebp, ebp
js 0x140019a2f
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 0x1400199d5
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 0x1400199e5
cmp r8, rcx
jae 0x1400199fc
jmp 0x1400199eb
mov rcx, r8
call fcn.1401e63ec
test eax, eax
je 0x1400199fc
test eax, eax
jle 0x1400199eb
lea r13d, [rbx + 1]
jmp 0x1400199ee
lea ebp, [rbx - 1]
cmp r13d, ebp
jg 0x140019a2f
lea r8, str.proxy
jmp 0x140019990
test rsi, rsi
je 0x140019a2f
lea rdx, str.port
mov rcx, rsi
call fcn.140001f40
test eax, eax
js 0x140019a2f
movsxd rcx, eax
add rcx, rcx
mov rax, qword [rsi + 8]
mov rcx, qword [rax + rcx*8 + 8]
test rcx, rcx
je 0x140019a2f
call fcn.140009a00
jmp 0x140019a31
xor eax, eax
mov dword [rsp + 0x18c], eax
lea rax, [r14 + 1]
lea r8, str.proxy
cmp r8, rax
jae 0x140019a52
mov rsi, qword [r12 + r8*8 - 8]
jmp 0x140019b1c
test r15d, r15d
jne 0x140019a97
xor edi, edi
test r14, r14
je 0x140019b73
mov rsi, qword [r12 + rdi*8]
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x140019a86
mov rdx, r8
call fcn.1401e63ec
test eax, eax
je 0x140019b1c
lea r8, str.proxy
inc rdi
cmp rdi, r14
jb 0x140019a62
mov edi, dword [rsp + 0x38]
jmp 0x140019b7d
xor r13d, r13d
mov edi, dword [rsp + 0x38]
lea ebp, [rdi - 1]
test ebp, ebp
js 0x140019b7d
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 0x140019af5
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 0x140019b05
cmp r8, rcx
jae 0x140019b1c
jmp 0x140019b0b
mov rcx, r8
call fcn.1401e63ec
test eax, eax
je 0x140019b1c
test eax, eax
jle 0x140019b0b
lea r13d, [rbx + 1]
jmp 0x140019b0e
lea ebp, [rbx - 1]
cmp r13d, ebp
jg 0x140019b6d
lea r8, str.proxy
jmp 0x140019ab0
test rsi, rsi
je 0x140019b79
lea rdx, str.user
mov rcx, rsi
call fcn.140001f40
test eax, eax
js 0x140019b67
movsxd rcx, eax
add rcx, rcx
mov rax, qword [rsi + 8]
mov rdx, qword [rax + rcx*8 + 8]
test rdx, rdx
je 0x140019b61
mov r8d, 0x7f
lea rcx, [rsp + 0x190]
call fcn.1401eb5b0
mov edi, dword [rsp + 0x38]
jmp 0x140019b7d
mov edi, dword [rsp + 0x38]
jmp 0x140019b7d
mov edi, dword [rsp + 0x38]
jmp 0x140019b7d
mov edi, dword [rsp + 0x38]
jmp 0x140019b7d
mov edi, dword [rsp + 0x38]
jmp 0x140019b7d
mov edi, dword [rsp + 0x38]
lea rax, [r14 + 1]
lea r8, str.proxy
cmp r8, rax
jae 0x140019b97
mov rsi, qword [r12 + r8*8 - 8]
jmp 0x140019c6c
test r15d, r15d
jne 0x140019be5
xor edi, edi
test r14, r14
je 0x140019cd2
nop word [rax + rax]
mov rsi, qword [r12 + rdi*8]
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x140019bd4
mov rdx, r8
call fcn.1401e63ec
test eax, eax
je 0x140019c6c
lea r8, str.proxy
inc rdi
cmp rdi, r14
jb 0x140019bb0
mov edi, dword [rsp + 0x38]
jmp 0x140019ce2
xor r13d, r13d
lea ebp, [rdi - 1]
test ebp, ebp
js 0x140019ce2
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 0x140019c45
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 0x140019c55
cmp r8, rcx
jae 0x140019c6c
jmp 0x140019c5b
mov rcx, r8
call fcn.1401e63ec
test eax, eax
je 0x140019c6c
test eax, eax
jle 0x140019c5b
lea r13d, [rbx + 1]
jmp 0x140019c5e
lea ebp, [rbx - 1]
cmp r13d, ebp
jg 0x140019ccc
lea r8, str.proxy
jmp 0x140019c00
test rsi, rsi
je 0x140019cd8
lea rdx, str.passc
mov rcx, rsi
call fcn.140001f40
test eax, eax
js 0x140019cc6
movsxd rcx, eax
add rcx, rcx
mov rax, qword [rsi + 8]
mov rcx, qword [rax + rcx*8 + 8]
test rcx, rcx
je 0x140019cc0
xor r9d, r9d
mov r8d, 0x100
lea rdx, [rsp + 0x290]
call fcn.140003bf0
test rax, rax
je 0x140019cde
lea rdx, [rsp + 0x290]
jmp 0x140019de8
mov edi, dword [rsp + 0x38]
jmp 0x140019ce2
mov edi, dword [rsp + 0x38]
jmp 0x140019ce2
mov edi, dword [rsp + 0x38]
jmp 0x140019ce2
mov edi, dword [rsp + 0x38]
jmp 0x140019ce2
mov edi, dword [rsp + 0x38]
jmp 0x140019ce2
mov edi, dword [rsp + 0x38]
lea rax, [r14 + 1]
lea r8, str.proxy
cmp r8, rax
jae 0x140019cfc
mov rbx, qword [r12 + r8*8 - 8]
jmp 0x140019dbc
test r15d, r15d
jne 0x140019d42
xor edi, edi
test r14, r14
je 0x140019dfb
nop dword [rax]
mov rbx, qword [r12 + rdi*8]
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x140019d34
mov rdx, r8
call fcn.1401e63ec
test eax, eax
je 0x140019dbc
lea r8, str.proxy
inc rdi
cmp rdi, r14
jae 0x140019dfb
jmp 0x140019d10
xor r13d, r13d
lea ebp, [rdi - 1]
test ebp, ebp
js 0x140019dfb
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 0x140019d95
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 0x140019da5
cmp r8, rcx
jae 0x140019dbc
jmp 0x140019dab
mov rcx, r8
call fcn.1401e63ec
test eax, eax
je 0x140019dbc
test eax, eax
jle 0x140019dab
lea r13d, [rsi + 1]
jmp 0x140019dae
lea ebp, [rsi - 1]
cmp r13d, ebp
jg 0x140019dfb
lea r8, str.proxy
jmp 0x140019d50
test rbx, rbx
je 0x140019dfb
lea rdx, str.pass
mov rcx, rbx
call fcn.140001f40
test eax, eax
js 0x140019dfb
movsxd rcx, eax
add rcx, rcx
mov rax, qword [rbx + 8]
mov rdx, qword [rax + rcx*8 + 8]
test rdx, rdx
je 0x140019dfb
mov r8d, 0x7f
lea rcx, [rsp + 0x210]
call fcn.1401eb5b0
mov rbp, qword [rsp + 0x60]
mov rax, qword [rbp + 0x10]
test rax, rax
je 0x140019ed3
mov rcx, qword [rax + 0x20]
mov eax, dword [rcx + 0x80]
cmp eax, dword [rsp + 0x100]
jne 0x140019ec9
lea rdx, [rsp + 0x80]
call fcn.1401e63ec
test eax, eax
jne 0x140019ec9
cmp dword [reloc.WS2_32.dll_accept], 1
jg 0x140019e5f
lea r9, str.Found_a_same_end_point_
mov r8d, 0xa2
lea rdx, str.....mttpProvider.cpp
lea ecx, [rax + 1]
call fcn.1400045f0
nop
xor edi, edi
test r14, r14
je 0x140019e87
mov rbx, qword [r12 + rdi*8]
test rbx, rbx
je 0x140019e7f
mov rcx, rbx
call fcn.140001e30
mov rcx, rbx
call fcn.1401e60f0
inc rdi
cmp rdi, r14
jb 0x140019e66
test r12, r12
je 0x140019e94
mov rcx, r12
call fcn.1401e64f8
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140019ebf
call fcn.1401e60f0
nop
mov eax, 1
jmp 0x14001a0dc
mov rcx, qword [rbp + 0x10]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
cmp dword [rsp + 0x68], 0
je 0x140019f43
mov ecx, 0x80
call fcn.1401e65ec
mov rdi, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x140019f3f
mov rcx, rax
call fcn.14001a8b0
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 0x140019f36
lea r9, str.New_CHttpsProvider.
mov r8d, 0x15b
lea rdx, str.d:work_t120mttpHttpProvider.h
mov ecx, 1
call fcn.1400045f0
mov dword [rdi + 0x18], 1
jmp 0x140019f41
xor edi, edi
jmp 0x140019f66
mov ecx, 0x80
call fcn.1401e65ec
mov qword [rsp + 0x60], rax
test rax, rax
je 0x140019f64
mov rcx, rax
call fcn.14001a8b0
mov rdi, rax
jmp 0x140019f66
xor edi, edi
test rdi, rdi
je 0x14001a07a
mov rcx, rdi
call fcn.14001bdb0
mov ecx, 0x210
call fcn.1401e6440
mov qword [rdi + 0x20], rax
test rax, rax
je 0x14001a070
mov dword [rdi + 0x1c], 0x210
mov r8d, 0x210
lea rdx, [rsp + 0x80]
mov rcx, rax
call fcn.1401e75a0
mov dword [rdi + 0x48], 0
mov rsi, qword [rdi + 0x20]
mov rbx, rsi
cmp dword [rsi + 0x88], 0
je 0x140019fd0
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 0x14001a003
mov rcx, rbx
call sub.WS2_32.dll_gethostbyname
test rax, rax
je 0x14001a070
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 0x14001a031
nop
mov rbx, qword [r12 + rdi*8]
test rbx, rbx
je 0x14001a029
mov rcx, rbx
call fcn.140001e30
mov rcx, rbx
call fcn.1401e60f0
inc rdi
cmp rdi, r14
jb 0x14001a010
test r12, r12
je 0x14001a03e
mov rcx, r12
call fcn.1401e64f8
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x14001a069
call fcn.1401e60f0
nop
mov eax, 1
jmp 0x14001a0dc
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
nop
xor edi, edi
test r14, r14
je 0x14001a0a2
mov rbx, qword [r12 + rdi*8]
test rbx, rbx
je 0x14001a09a
mov rcx, rbx
call fcn.140001e30
mov rcx, rbx
call fcn.1401e60f0
inc rdi
cmp rdi, r14
jb 0x14001a081
test r12, r12
je 0x14001a0af
mov rcx, r12
call fcn.1401e64f8
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x14001a0da
call fcn.1401e60f0
nop
xor eax, eax
mov rcx, qword [rsp + 0x390]
xor rcx, rsp
call fcn.1401e6720
mov rbx, qword [rsp + 0x3e8]
add rsp, 0x3a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret