Function at 0x14001ac70
Capabilities:
Check if file exists
Encode data using xor
Read file on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x478]
sub rsp, 0x578
mov rax, qword [0x14036a3c8]
xor rax, rsp
mov qword [rbp + 0x460], rax
mov rdi, r9
mov qword [rsp + 0x48], r9
mov r13, r8
mov qword [rsp + 0x70], rdx
mov r12, rcx
xor ebx, ebx
mov dword [rsp + 0x40], ebx
xor r8d, r8d
lea rdx, [0x1402814c8]
mov rcx, r13
call fcn.1400079a0
xor r8d, r8d
lea rdx, [0x1402814c8]
mov rcx, rdi
call fcn.1400079a0
xor r15b, r15b
mov rsi, 0xffffffffffffffff
mov dword [rbp + 0x40], esi
mov qword [rbp + 0x48], rbx
mov qword [rbp + 0x60], reloc.WS2_32.dll_ntohs
mov qword [rbp + 0x58], rbx
mov byte [rbp + 0x48], bl
mov dword [rbp + 0x68], ebx
mov qword [rbp + 0x70], rbx
mov qword [rbp + 0x88], reloc.WS2_32.dll_ntohs
mov qword [rbp + 0x80], rbx
mov byte [rbp + 0x70], r15b
mov qword [rbp + 0x90], rbx
mov qword [rbp + 0xa8], reloc.WS2_32.dll_ntohs
mov qword [rbp + 0xa0], rbx
mov byte [rbp + 0x90], r15b
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xc8], reloc.WS2_32.dll_ntohs
mov qword [rbp + 0xc0], rbx
mov byte [rbp + 0xb0], r15b
mov qword [rbp + 0xd0], rbx
movdqa xmm0, xmmword [0x140282f00]
movdqa xmmword [rbp + 0xe0], xmm0
mov byte [rbp + 0xd0], r15b
mov qword [rbp + 0xf0], rbx
mov qword [rbp + 0x108], reloc.WS2_32.dll_ntohs
mov qword [rbp + 0x100], rbx
mov byte [rbp + 0xf0], r15b
mov dword [rbp + 0x110], ebx
lea rcx, [rsp + 0x68]
call fcn.140034160
nop
lea r8, str.proxyproxy.cfg
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.14000c820
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001add9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov r14d, 1
test eax, eax
jne 0x14001ae62
call fcn.140004c80
mov rcx, rax
test rax, rax
je 0x14001b8a3
mov rax, qword [rax]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x50], rax
mov r8, qword [rsp + 0x30]
lea rdx, str.Cant_find___s___so_use_browser_proxy_
lea rcx, [rsp + 0x50]
call fcn.14000d000
lea r8, [0x140281a50]
lea rdx, str.GetCurrentProxy
mov rbx, qword [rsp + 0x50]
mov rcx, rbx
call fcn.140036e10
nop
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, r14d
jg 0x14001b61f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
jmp 0x14001b61f
cmp byte [r12 + 0x6b], 0
je 0x14001b2b6
mov qword [rsp + 0x78], rbx
mov qword [rbp - 0x78], rbx
mov qword [rbp - 0x70], reloc.WS2_32.dll_ntohs
mov byte [rsp + 0x78], 0
mov qword [rbp + 0x120], rbx
mov qword [rbp + 0x130], rbx
mov qword [rbp + 0x138], 7
mov word [rbp + 0x120], bx
mov rdx, qword [rsp + 0x30]
mov r8, rsi
nop dword [rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x14001aeb0
lea rcx, [rbp + 0x120]
call fcn.14000a410
nop
mov dword [rsp + 0x40], r14d
xor r8d, r8d
lea rdx, [rsp + 0x78]
lea rcx, [rbp + 0x120]
call fcn.140050070
test al, al
je 0x14001aef0
cmp qword [rbp - 0x78], 0
je 0x14001aef0
mov bl, 1
jmp 0x14001aef2
xor bl, bl
mov rdx, qword [rbp + 0x138]
cmp rdx, 8
jb 0x14001af38
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x120]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001af33
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001b8ae
call fcn.140240d18
test bl, bl
je 0x14001b12c
mov ecx, 0x40
call fcn.1402407f4
mov r10, rax
movups xmm0, xmmword [str.PROXY_SETTING_KEY_5D95F5F8_8C42_427D_A0A1_79016036E373]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x140287740]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [0x140287750]
movups xmmword [rax + 0x20], xmm0
mov ecx, dword [0x140287760]
mov dword [rax + 0x30], ecx
movzx ecx, word [0x140287764]
mov word [rax + 0x34], cx
mov byte [rax + 0x36], 0
mov r11, qword [rbp - 0x78]
xor ebx, ebx
mov r9d, ebx
test r11, r11
je 0x14001afda
movabs rdi, 0x97b425ed097b425f
nop dword [rax]
mov rax, rdi
mul r9
shr rdx, 5
imul rax, rdx, 0x36
mov rcx, r9
sub rcx, rax
movzx r8d, byte [rcx + r10]
lea rax, [rsp + 0x78]
cmp qword [rbp - 0x70], 0x10
cmovae rax, qword [rsp + 0x78]
xor byte [r9 + rax], r8b
inc r9
cmp r9, r11
jne 0x14001afa0
mov rdi, qword [rsp + 0x48]
mov edx, 0x40
mov rcx, r10
call fcn.140240d18
lea rdx, [rsp + 0x78]
lea rcx, [rbp + 0x40]
call fcn.140005d60
lea rcx, [rbp + 0x40]
call fcn.140005640
test al, al
jne 0x14001b11a
mov qword [rbp + 0x140], rbx
mov qword [rbp + 0x150], rbx
mov qword [rbp + 0x158], 7
mov word [rbp + 0x140], bx
mov r8d, reloc.WS2_32.dll_socket
lea rdx, str.proxy_data_is_not_valid
lea rcx, [rbp + 0x140]
call fcn.14000a410
nop
mov qword [rbp - 0x68], rbx
mov qword [rbp - 0x58], rbx
mov qword [rbp - 0x50], 7
mov word [rbp - 0x68], bx
mov r8d, Ordinal_27
lea rdx, str.Updater::GetCurrentProxy
lea rcx, [rbp - 0x68]
call fcn.14000a410
nop
lea rdx, [rbp + 0x140]
lea rcx, [rbp - 0x68]
call fcn.1400347a0
nop
mov rdx, qword [rbp - 0x50]
cmp rdx, 8
jb 0x14001b0bc
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001b0b7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001b8b4
call fcn.140240d18
mov qword [rbp - 0x58], rbx
mov qword [rbp - 0x50], 7
mov word [rbp - 0x68], bx
mov rdx, qword [rbp + 0x158]
cmp rdx, 8
jb 0x14001b271
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x140]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001b26b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001b89d
jmp 0x14001b26b
cmp dword [rbp + 0x40], 3
jne 0x14001b271
mov r15b, 1
jmp 0x14001b271
mov r15b, 1
xor eax, eax
mov qword [rbp + 0x160], rax
mov qword [rbp + 0x170], rax
mov qword [rbp + 0x178], 7
mov word [rbp + 0x160], ax
lea r8d, [rax + 0x22]
lea rdx, str.fail_to_load_proxy_configure_from
lea rcx, [rbp + 0x160]
call fcn.14000a410
nop
mov rdx, qword [rsp + 0x30]
mov r8, rsi
inc r8
cmp word [rdx + r8*2], 0
jne 0x14001b171
lea rcx, [rbp + 0x160]
call fcn.14000a290
mov r8d, reloc.WS2_32.dll_send
lea rdx, str.._use_browser_proxy
mov rcx, rax
call fcn.14000a290
mov rbx, rax
xor eax, eax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], 7
mov word [rbp - 0x48], ax
lea r8d, [rax + 0x18]
lea rdx, str.Updater::GetCurrentProxy
lea rcx, [rbp - 0x48]
call fcn.14000a410
nop
mov rdx, rbx
lea rcx, [rbp - 0x48]
call fcn.1400347a0
nop
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x14001b218
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001b213
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001b8ba
call fcn.140240d18
xor eax, eax
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], 7
mov word [rbp - 0x48], ax
mov rdx, qword [rbp + 0x178]
cmp rdx, 8
jb 0x14001b271
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x160]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001b26b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001b8c0
call fcn.140240d18
nop
mov rdx, qword [rbp - 0x70]
cmp rdx, 0x10
jb 0x14001b616
inc rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001b2ac
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001b8c6
call fcn.140240d18
jmp 0x14001b616
lea rax, [rbp + 0x1e8]
mov qword [rbp + 0x1e0], rax
mov r8d, 3
mov rdx, qword [rsp + 0x30]
lea rcx, [rbp + 0x1e0]
call fcn.1400053d0
nop
mov qword [rbp - 0x28], rbx
mov qword [rbp - 0x18], rbx
mov qword [rbp - 0x10], reloc.WS2_32.dll_ntohs
mov byte [rbp - 0x28], 0
mov rdx, qword [rbp + 0x1e0]
mov r8, rsi
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x14001b300
lea rcx, [rbp - 0x28]
call fcn.1400079a0
nop
lea rax, [rbp + 0x1e8]
mov rcx, qword [rbp + 0x1e0]
cmp rcx, rax
je 0x14001b32c
call fcn.140253550
mov qword [rbp + 0x18], rbx
mov qword [rbp + 0x28], rbx
mov qword [rbp + 0x30], reloc.WS2_32.dll_ntohs
mov byte [rbp + 0x18], 0
mov qword [rsp + 0x38], rbx
lea rdx, [rbp - 0x28]
cmp qword [rbp - 0x10], 0x10
cmovae rdx, qword [rbp - 0x28]
lea r8, [0x140286050]
lea rcx, [rsp + 0x38]
call fcn.140254efc
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x14001b522
xor edx, edx
lea r8d, [rdx + 2]
call fcn.140255ac8
mov rcx, qword [rsp + 0x38]
call fcn.140256020
movsxd rbx, eax
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsp + 0x38]
call fcn.140255ac8
mov rcx, rbx
call fcn.140241020
mov rdi, rax
mov r9, qword [rsp + 0x38]
mov r8, rbx
mov rdx, r14
mov rcx, rax
call fcn.1402557b8
mov r8, rbx
mov rdx, rdi
lea rcx, [rbp + 0x18]
call fcn.1400079a0
mov rcx, rdi
call fcn.140240d18
mov rcx, qword [rsp + 0x38]
call fcn.140255000
cmp qword [rbp + 0x28], 0
je 0x14001b522
lea rdx, [rbp + 0x18]
lea rcx, [rbp - 8]
call fcn.140003500
nop
xor ebx, ebx
mov qword [rbp + 0x180], rbx
mov qword [rbp + 0x190], rbx
mov qword [rbp + 0x198], reloc.WS2_32.dll_ntohs
lea r8d, [rbx + 0x36]
lea rdx, str.PROXY_SETTING_KEY_5D95F5F8_8C42_427D_A0A1_79016036E373
lea rcx, [rbp + 0x180]
call fcn.1400079a0
mov r11, qword [rbp + 8]
mov r9d, ebx
mov r10, qword [rbp + 0x198]
mov r8, qword [rbp + 0x180]
test r11, r11
je 0x14001b48b
mov rbx, qword [rbp + 0x190]
nop dword [rax]
nop dword [rax + rax]
lea rcx, [rbp + 0x180]
cmp r10, 0x10
cmovae rcx, r8
xor edx, edx
mov rax, r9
div rbx
add rdx, rcx
lea rcx, [rbp - 8]
cmp qword [rbp + 0x10], 0x10
cmovae rcx, qword [rbp - 8]
movzx eax, byte [rcx + r9]
xor al, byte [rdx]
mov byte [rcx + r9], al
inc r9
cmp r9, r11
jne 0x14001b450
cmp r10, 0x10
jb 0x14001b4c2
lea rdx, [r10 + 1]
mov rax, r8
cmp rdx, 0x1000
jb 0x14001b4ba
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001b8cc
mov rcx, r8
call fcn.140240d18
lea rdx, [rbp - 8]
lea rcx, [rbp + 0x40]
call fcn.140005d60
lea rcx, [rbp + 0x40]
call fcn.140005640
test al, al
je 0x14001b4e7
cmp dword [rbp + 0x40], 3
jne 0x14001b502
mov r15b, 1
jmp 0x14001b502
lea r8, [0x140281a50]
lea rdx, str.GetCurrentProxy
lea rcx, str.proxySetting_is_not_valid
call fcn.140036e10
nop
mov r8, qword [rbp + 0x10]
cmp r8, 0x10
jb 0x14001b59a
inc r8
mov rdx, qword [rbp - 8]
lea rcx, [rbp - 8]
call fcn.140007cf0
jmp 0x14001b59a
mov r15b, 1
call fcn.140004c80
mov rcx, rax
test rax, rax
je 0x14001b8d2
mov rax, qword [rax]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x58], rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8, qword [rsp + 0x30]
lea rdx, str.Open_file___s__failed__last_error___d
lea rcx, [rsp + 0x58]
call fcn.14000d000
lea r8, [0x140281a50]
lea rdx, str.GetCurrentProxy
mov rbx, qword [rsp + 0x58]
mov rcx, rbx
call fcn.140036e10
nop
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001b59a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
nop
mov rdx, qword [rbp + 0x30]
cmp rdx, 0x10
jb 0x14001b5d6
inc rdx
mov rcx, qword [rbp + 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001b5d0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001b8dd
call fcn.140240d18
nop
mov rdx, qword [rbp - 0x10]
cmp rdx, 0x10
jb 0x14001b611
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001b60c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001b8e3
call fcn.140240d18
mov rdi, qword [rsp + 0x48]
test r15b, r15b
je 0x14001b6dc
lea rdx, [rbp + 0x380]
mov rcx, r12
call fcn.14001a970
mov rbx, rax
mov ecx, dword [rax]
mov dword [rbp + 0x40], ecx
lea rdx, [rax + 8]
lea rcx, [rbp + 0x48]
call fcn.1400171f0
mov ecx, dword [rbx + 0x28]
mov dword [rbp + 0x68], ecx
lea rdx, [rbx + 0x30]
lea rcx, [rbp + 0x70]
call fcn.1400171f0
lea rdx, [rbx + 0x50]
lea rcx, [rbp + 0x90]
call fcn.1400171f0
lea rdx, [rbx + 0x70]
lea rcx, [rbp + 0xb0]
call fcn.1400171f0
lea rdx, [rbx + 0x90]
lea rcx, [rbp + 0xd0]
call fcn.1400171f0
lea rdx, [rbx + 0xb0]
lea rcx, [rbp + 0xf0]
call fcn.1400171f0
movzx eax, byte [rbx + 0xd0]
mov byte [rbp + 0x110], al
movzx eax, byte [rbx + 0xd1]
mov byte [rbp + 0x111], al
movzx eax, byte [rbx + 0xd2]
mov byte [rbp + 0x112], al
movzx eax, byte [rbx + 0xd3]
mov byte [rbp + 0x113], al
lea rcx, [rbp + 0x380]
call fcn.140016d20
cmp dword [rbp + 0x40], 0
jne 0x14001b704
lea r8, [0x140281a50]
lea rdx, str.GetCurrentProxy
lea rcx, str.No_proxy_detected_
call fcn.140036e10
xor r14d, r14d
jmp 0x14001b845
lea rcx, [rbp + 0x40]
call fcn.1400053c0
test al, al
je 0x14001b781
lea rcx, [rbp + 0x40]
call fcn.140005620
test al, al
je 0x14001b781
lea rcx, [rbp + 0x40]
call fcn.140004da0
mov rcx, qword [rsp + 0x70]
mov dword [rcx], eax
lea rdx, [rbp + 0x1a0]
lea rcx, [rbp + 0x40]
call fcn.140005ae0
mov rdx, rax
mov rcx, r13
call fcn.1400171f0
lea rcx, [rbp + 0x1a0]
call fcn.140003fe0
lea rdx, [rbp + 0x1c0]
lea rcx, [rbp + 0x40]
call fcn.140005b90
mov rdx, rax
mov rcx, rdi
call fcn.1400171f0
lea rcx, [rbp + 0x1c0]
call fcn.140003fe0
jmp 0x14001b845
call fcn.140004c80
mov rcx, rax
test rax, rax
je 0x14001b892
mov rax, qword [rax]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x60], rax
lea rdx, [rbp + 0x48]
cmp qword [rbp + 0x60], 0x10
cmovae rdx, qword [rbp + 0x48]
lea rax, [rbp + 0x278]
mov qword [rbp + 0x270], rax
mov r8d, 0xfde9
lea rcx, [rbp + 0x270]
call fcn.14000abf0
nop
mov eax, dword [rbp + 0x68]
mov dword [rsp + 0x20], eax
mov r9, qword [rbp + 0x270]
mov r8d, dword [rbp + 0x40]
lea rdx, str.Invalid_proxy__type_d__proxy_s__port_d
lea rcx, [rsp + 0x60]
call fcn.14000d000
nop
lea rax, [rbp + 0x278]
mov rcx, qword [rbp + 0x270]
cmp rcx, rax
je 0x14001b80c
call fcn.140253550
lea r8, [0x140281a50]
lea rdx, str.GetCurrentProxy
mov rbx, qword [rsp + 0x60]
mov rcx, rbx
call fcn.140036e10
nop
lea rdx, [rbx - 0x18]
xor r14d, r14d
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001b845
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x14001b863
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rioctlsocket + 8]
nop
lea rcx, [rbp + 0x40]
call fcn.140016d20
mov eax, r14d
mov rcx, qword [rbp + 0x460]
xor rcx, rsp
call fcn.140240e30
add rsp, 0x578
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x80004005
call fcn.140004b00
nop
call fcn.1402480bc
nop
mov ecx, 0x80004005
call fcn.140004b00
nop
call fcn.1402480bc
nop
call fcn.1402480bc
nop
call fcn.1402480bc
nop
call fcn.1402480bc
nop
call fcn.1402480bc
nop
call fcn.1402480bc
nop
mov ecx, 0x80004005
call fcn.140004b00
nop
call fcn.1402480bc
nop
call fcn.1402480bc
int3