Function at 0x140171270
Capabilities:
Access peb ldr_data

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x110]
sub rsp, 0x210
mov rax, qword [0x1402aea28]
xor rax, rsp
mov qword [rbp + 0x100], rax
mov r12, rcx
mov qword [rbp - 0x80], rcx
mov qword [rbp - 0x30], rcx
mov dword [rcx], edx
call fcn.140185f80
lea r13, [r12 + 0x408]
mov qword [rsp + 0x58], r13
xor r14d, r14d
mov qword [r13], r14
mov qword [r13 + 8], r14
lea ecx, [r14 + 0x48]
call fcn.1401c1e9c
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [r13], rax
lea rbx, [r12 + 0x418]
mov qword [rsp + 0x78], rbx
mov qword [rbx], r14
mov qword [rbx + 8], r14
lea ecx, [r14 + 0x48]
call fcn.1401c1e9c
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [rbx], rax
lea rbx, [r12 + 0x428]
mov qword [rsp + 0x58], rbx
mov qword [rbx], r14
mov qword [rbx + 8], r14
lea ecx, [r14 + 0x60]
call fcn.1401c1e9c
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [rbx], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x40], xmm0
mov r8b, 1
lea rdx, [0x1402be0d4]
lea rcx, [rbp - 0x28]
call fcn.140185d80
nop
mov ecx, dword [0x1402befc0]
mov rax, qword gs:[0x58]
mov edx, shutdown
mov r15, qword [rax + rcx*8]
add r15, rdx
mov qword [rsp + 0x38], r15
mov eax, dword [r15]
cmp dword [0x1402be0d0], eax
jg 0x140171d77
mov qword [rbp + 0x30], r14
mov qword [rbp + 0x38], r14
mov rdi, qword [0x1402be0c0]
lea rsi, [0x1402be0b0]
cmp qword [0x1402be0c8], 0x10
cmovae rsi, qword [0x1402be0b0]
movabs rax, 0x7fffffffffffffff
cmp rdi, 0x10
jae 0x1401713e5
movups xmm0, xmmword [rsi]
movups xmmword [rbp + 0x20], xmm0
mov qword [rbp + 0x38], shutdown
jmp 0x140171455
mov rbx, rdi
or rbx, 0xf
cmp rbx, rax
cmova rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x14017142f
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140171dc6
mov rcx, rax
call fcn.1401c1e9c
mov rcx, rax
test rax, rax
je 0x140171dcc
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x14017143e
test rcx, rcx
je 0x14017143b
call fcn.1401c1e9c
jmp 0x14017143e
mov rax, r14
mov qword [rbp + 0x20], rax
lea r8, [rdi + 1]
mov rdx, rsi
mov rcx, rax
call fcn.1401c42a0
mov qword [rbp + 0x38], rbx
mov qword [rbp + 0x30], rdi
lea rcx, [rbp - 0x28]
call fcn.140185dd0
nop
mov edi, 0xffffffff
cmp qword [rbp + 0x30], 0
je 0x1401716f4
lea rdx, [rbp + 0x20]
lea rcx, [rbp - 0x18]
call fcn.140186890
mov rcx, qword [rax]
mov rdx, qword [rax + 8]
mov qword [rax + 8], r14
mov qword [rax], r14
mov qword [rsp + 0x40], rcx
mov rbx, qword [rsp + 0x48]
mov qword [rsp + 0x48], rdx
test rbx, rbx
je 0x1401714cc
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1401714cc
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, edi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x1401714cc
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
mov rbx, qword [rbp - 0x10]
test rbx, rbx
je 0x1401714ff
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1401714ff
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, edi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x1401714ff
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
cmp qword [rsp + 0x40], 0
jne 0x140171700
mov ecx, 0x30
call fcn.1401c1e9c
mov rsi, rax
mov qword [rbp + 0xf0], 0x20
mov qword [rbp + 0xf8], 0x2f
movups xmm0, xmmword [str.Unable_to_open_message_catalog:]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x1402552e8]
movups xmmword [rax + 0x10], xmm1
mov byte [rax + 0x20], 0
mov qword [rbp + 0xe0], rax
mov r15, qword [rbp + 0x30]
movabs rax, 0x7fffffffffffffdf
cmp r15, rax
ja 0x140171dd2
lea r12, [rbp + 0x20]
cmp qword [rbp + 0x38], 0x10
cmovae r12, qword [rbp + 0x20]
mov qword [rbp + 0x70], r14
mov qword [rbp + 0x78], r14
lea r14, [r15 + 0x20]
mov ebx, 0xf
lea rdi, [rbp + 0x60]
cmp r14, rbx
jbe 0x14017160c
mov rbx, r14
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
jbe 0x1401715cf
mov rbx, rax
movabs rax, 0x8000000000000027
mov rcx, rax
call fcn.1401c1e9c
test rax, rax
je 0x140171dd8
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x140171608
mov eax, reloc.WS2_32.dll_shutdown
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x1401715f7
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140171d71
jmp 0x1401715b0
test rcx, rcx
je 0x140171606
call fcn.1401c1e9c
mov rdi, rax
jmp 0x140171608
xor edi, edi
mov qword [rbp + 0x60], rdi
mov qword [rbp + 0x70], r14
mov qword [rbp + 0x78], rbx
movups xmm0, xmmword [rsi]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [rsi + 0x10]
movups xmmword [rdi + 0x10], xmm1
lea rcx, [rdi + 0x20]
mov r8, r15
mov rdx, r12
call fcn.1401c42a0
mov byte [rdi + r14], 0
lea rax, [rbp + 0x60]
cmp qword [rbp + 0x78], 0x10
cmovae rax, qword [rbp + 0x60]
lea rbx, vtable.std::exception.0
mov qword [rbp - 0x78], rbx
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x50], rax
mov byte [rbp - 0x48], 1
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x50]
call fcn.1401c32ec
nop
lea rax, vtable.std::runtime_error.0
mov qword [rbp - 0x78], rax
mov rdx, qword [rbp + 0x78]
cmp rdx, 0x10
jb 0x1401716b3
inc rdx
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401716ad
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140171dde
call fcn.1401c1ed8
nop
xor r14d, r14d
mov qword [rbp + 0x70], r14
mov qword [rbp + 0x78], shutdown
mov byte [rbp + 0x60], r14b
lea rcx, [rbp - 0x78]
call fcn.1401858b0
nop
mov qword [rbp - 0x78], rbx
lea rcx, [rbp - 0x70]
call fcn.1401c337c
nop
lea edx, [r14 + 0x30]
mov rcx, rsi
call fcn.1401c1ed8
nop
mov r15, qword [rsp + 0x38]
mov r12, qword [rbp - 0x80]
cmp qword [rsp + 0x40], 0
je 0x140171c98
mov ecx, r14d
call fcn.140185930
mov rbx, rax
xor r8d, r8d
mov qword [rbp + 0x90], r8
mov r9d, 0xf
mov qword [rbp + 0x98], r9
mov byte [rbp + 0x80], r8b
movzx edx, byte [rax]
test dl, dl
je 0x14017179b
mov rax, r9
sub rax, r8
lea rcx, [rbp + 0x80]
cmp rax, 1
jb 0x14017176c
lea rax, [r8 + 1]
mov qword [rbp + 0x90], rax
cmp r9, 0x10
cmovae rcx, qword [rbp + 0x80]
movsx eax, dl
movzx eax, al
mov byte [rcx + r8], al
mov byte [rcx + r8 + 1], 0
jmp 0x140171781
mov byte [rsp + 0x20], dl
mov r9d, 1
xor r8d, r8d
mov edx, r9d
call fcn.140007cd0
inc rbx
movzx edx, byte [rbx]
test dl, dl
je 0x14017179b
mov r9, qword [rbp + 0x98]
mov r8, qword [rbp + 0x90]
jmp 0x140171730
lea r9d, [r14 + 0xc8]
lea rax, [rbp + 0x80]
mov qword [rsp + 0x20], rax
mov r8d, dword [r12]
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0xa0]
call fcn.1401867d0
nop
xor edx, edx
mov esi, edx
mov qword [rbp + 0x50], rdx
mov edi, 0xf
mov qword [rbp + 0x58], rdi
mov byte [rbp + 0x40], dl
mov ebx, edx
cmp qword [rbp + 0xb0], rdx
jbe 0x140171864
nop word [rax + rax]
lea rax, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 0x10
cmovae rax, qword [rbp + 0xa0]
movsx edx, byte [rax + rbx]
mov rax, rdi
sub rax, rsi
lea rcx, [rbp + 0x40]
cmp rax, 1
jb 0x140171839
lea rax, [rsi + 1]
mov qword [rbp + 0x50], rax
cmp rdi, 0x10
cmovae rcx, qword [rbp + 0x40]
movzx eax, dl
mov byte [rcx + rsi], al
mov byte [rcx + rsi + 1], 0
jmp 0x14017184e
mov byte [rsp + 0x20], dl
mov r9d, 1
xor r8d, r8d
mov edx, r9d
call fcn.140007cd0
inc rbx
mov rdi, qword [rbp + 0x58]
mov rsi, qword [rbp + 0x50]
cmp rbx, qword [rbp + 0xb0]
jb 0x1401717f0
xor edx, edx
mov dword [rsp + 0x50], r14d
mov rbx, qword [r13]
mov rax, qword [rbx + 8]
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x68], edx
mov rcx, rbx
cmp byte [rax + 0x19], 0
jne 0x1401718ac
mov qword [rsp + 0x60], rax
cmp dword [rax + 0x20], r14d
jge 0x140171898
mov dword [rsp + 0x68], edx
mov rax, qword [rax + 0x10]
jmp 0x1401718a6
mov dword [rsp + 0x68], 1
mov rcx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x140171883
cmp byte [rcx + 0x19], 0
jne 0x1401718b8
cmp r14d, dword [rcx + 0x20]
jge 0x140171927
movabs rax, 0x38e38e38e38e38e
cmp qword [r13 + 8], rax
je 0x140171d6b
mov qword [rbp - 0x40], r13
mov qword [rbp - 0x38], rdx
mov ecx, 0x48
call fcn.1401c1e9c
mov r8, rax
mov eax, dword [rsp + 0x50]
mov dword [r8 + 0x20], eax
xor eax, eax
mov qword [r8 + 0x38], rax
mov qword [r8 + 0x40], shutdown
mov byte [r8 + 0x28], al
mov qword [r8], rbx
mov qword [r8 + 8], rbx
mov qword [r8 + 0x10], rbx
mov word [r8 + 0x18], ax
mov qword [rbp - 0x38], rax
movups xmm0, xmmword [rsp + 0x60]
movaps xmmword [rbp], xmm0
lea rdx, [rbp]
mov rcx, r13
call fcn.14001a040
mov rcx, rax
add rcx, 0x28
lea rax, [rbp + 0x40]
cmp rcx, rax
je 0x14017194d
lea rdx, [rbp + 0x40]
cmp rdi, 0x10
cmovae rdx, qword [rbp + 0x40]
mov r8, rsi
call fcn.14001bb80
mov rdi, qword [rbp + 0x58]
cmp rdi, 0x10
jb 0x140171986
lea rdx, [rdi + 1]
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140171980
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140171e37
call fcn.1401c1ed8
nop
mov rdx, qword [rbp + 0xb8]
cmp rdx, 0x10
jb 0x1401719c8
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401719c2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140171e3d
call fcn.1401c1ed8
nop
mov qword [rbp + 0xb0], 0
mov qword [rbp + 0xb8], shutdown
mov byte [rbp + 0xa0], 0
mov rdx, qword [rbp + 0x98]
cmp rdx, 0x10
jb 0x140171a27
inc rdx
mov rcx, qword [rbp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140171a21
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140171e43
call fcn.1401c1ed8
nop
inc r14d
cmp r14d, 0x15
jle 0x140171700
mov eax, dword [r15]
cmp dword [0x1402be0a8], eax
jg 0x140171de4
xor ebx, ebx
mov dword [rsp + 0x30], ebx
lea rdi, [0x1402552a0]
mov qword [rsp + 0x38], rdi
lea rax, [0x1402be088]
lea r9d, [rbx + 0x12c]
mov qword [rsp + 0x20], rax
mov r8d, dword [r12]
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0xc0]
call fcn.1401867d0
nop
mov rsi, qword [rbp + 0xd0]
test rsi, rsi
je 0x140171c3e
mov rax, qword [rsp + 0x78]
mov r13, qword [rax]
mov qword [rsp + 0x58], r13
mov rbx, qword [r13 + 8]
mov qword [rsp + 0x60], rbx
mov dword [rsp + 0x68], 0
mov r14, r13
mov r15, qword [rbp + 0xd8]
mov r12, qword [rbp + 0xc0]
cmp byte [rbx + 0x19], 0
jne 0x140171b4f
mov r13d, 0xffffffff
nop dword [rax]
mov qword [rsp + 0x60], rbx
lea rdx, [rbp + 0xc0]
cmp r15, 0x10
cmovae rdx, r12
lea rcx, [rbx + 0x20]
cmp qword [rbx + 0x38], 0x10
jb 0x140171af3
mov rcx, qword [rbx + 0x20]
mov rdi, qword [rbx + 0x30]
mov r8, rdi
cmp rsi, rdi
cmovb r8, rsi
call fcn.1401c41a0
test eax, eax
jne 0x140171b1c
cmp rdi, rsi
jae 0x140171b14
mov eax, r13d
jmp 0x140171b1c
xor eax, eax
cmp rdi, rsi
seta al
shr eax, 0x1f
test al, al
je 0x140171b31
mov dword [rsp + 0x68], 0
mov rbx, qword [rbx + 0x10]
jmp 0x140171b3f
mov dword [rsp + 0x68], 1
mov r14, rbx
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
je 0x140171ad0
mov r13, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x38]
cmp byte [r14 + 0x19], 0
jne 0x140171baa
lea rdx, [r14 + 0x20]
cmp qword [r14 + 0x38], 0x10
jb 0x140171b65
mov rdx, qword [r14 + 0x20]
lea rcx, [rbp + 0xc0]
cmp r15, 0x10
cmovae rcx, r12
mov rbx, qword [r14 + 0x30]
mov r8, rsi
cmp rbx, rsi
cmovb r8, rbx
call fcn.1401c41a0
test eax, eax
jne 0x140171b9f
cmp rsi, rbx
jae 0x140171b97
mov eax, 0xffffffff
jmp 0x140171b9f
xor eax, eax
cmp rsi, rbx
seta al
shr eax, 0x1f
test al, al
je 0x140171c30
mov rsi, qword [rsp + 0x78]
movabs rax, 0x38e38e38e38e38e
cmp qword [rsi + 8], rax
je 0x140171e4f
mov qword [rbp - 0x60], rsi
mov qword [rbp - 0x58], 0
mov ecx, 0x48
call fcn.1401c1e9c
mov rdi, rax
mov qword [rbp - 0x58], rax
lea rdx, [rbp + 0xc0]
lea rcx, [rax + 0x20]
call fcn.14000c2b0
mov dword [rdi + 0x40], 0
mov qword [rdi], r13
mov qword [rdi + 8], r13
mov qword [rdi + 0x10], r13
mov word [rdi + 0x18], 0
mov qword [rbp - 0x58], 0
movups xmm0, xmmword [rsp + 0x60]
movaps xmmword [rbp + 0x10], xmm0
mov r8, rdi
lea rdx, [rbp + 0x10]
mov rcx, rsi
call fcn.14001a040
mov r14, rax
mov rdi, qword [rsp + 0x38]
mov eax, dword [rdi]
mov dword [r14 + 0x40], eax
mov ebx, dword [rsp + 0x30]
mov r12, qword [rbp - 0x80]
mov rdx, qword [rbp + 0xd8]
cmp rdx, 0x10
jb 0x140171c80
inc rdx
mov rcx, qword [rbp + 0xc0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140171c7a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140171e55
call fcn.1401c1ed8
nop
inc ebx
mov dword [rsp + 0x30], ebx
add rdi, 4
mov qword [rsp + 0x38], rdi
cmp ebx, 0xd
jbe 0x140171a55
lea rdx, [r12 + 0x43c]
mov rcx, r12
call fcn.140170290
mov dword [r12 + 0x438], eax
mov rdx, qword [rbp + 0x38]
cmp rdx, 0x10
jb 0x140171cec
inc rdx
mov rcx, qword [rbp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140171ce6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140171e49
call fcn.1401c1ed8
nop
mov qword [rbp + 0x30], 0
mov qword [rbp + 0x38], shutdown
mov byte [rbp + 0x20], 0
mov rbx, qword [rsp + 0x48]
test rbx, rbx
je 0x140171d38
mov edi, 0xffffffff
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140171d38
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + reloc.WS2_32.dll_htonl]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x140171d38
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0x10]
nop
mov rax, r12
mov rcx, qword [rbp + 0x100]
xor rcx, rsp
call fcn.1401c28c0
lea r11, [rsp + 0x210]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.14001af10
nop
call fcn.14001aed0
nop
lea rcx, [0x1402be0d0]
call fcn.1401c22b8
cmp dword [0x1402be0d0], 0xffffffff
jne 0x14017139e
mov qword [0x1402be0c0], r14
mov qword [0x1402be0c8], 0xf
mov byte [0x1402be0b0], 0
lea rcx, [0x1402084f0]
call fcn.1401c2118
lea rcx, [0x1402be0d0]
call fcn.1401c2258
jmp 0x14017139e
call fcn.14001aed0
int3
call fcn.1401c85ec
nop
call fcn.14001b380
int3
call fcn.1401c85ec
nop
call fcn.1401c85ec
nop
lea rcx, [0x1402be0a8]
call fcn.1401c22b8
cmp dword [0x1402be0a8], 0xffffffff
jne 0x140171a43
mov qword [0x1402be098], 0
mov qword [0x1402be0a0], 0xf
mov byte [0x1402be088], 0
lea rcx, [0x140208460]
call fcn.1401c2118
lea rcx, [0x1402be0a8]
call fcn.1401c2258
jmp 0x140171a43
call fcn.1401c85ec
nop
call fcn.1401c85ec
nop
call fcn.1401c85ec
nop
call fcn.1401c85ec
nop
call fcn.14001af10
nop
call fcn.1401c85ec
int3