Function at 0x1400b3720
Capabilities:
Set socket configuration

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x468
mov rdi, rcx
mov rsi, qword [rcx + 0xd8]
mov r14, qword [rcx + 0xe0]
mov rcx, rsi
call qword [r14 + 0xb8]
test rax, rax
je 0x1400b37bc
mov rbx, rax
mov dword [rsp + 0xf8], 0
mov rcx, qword [rax]
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0xf8]
mov edx, 0xffff
mov r8d, 0x1006
call sub.ws2_32.dll_setsockopt
cmp eax, 0xffffffff
je 0x1400b37d7
mov dword [rsp + 0xf8], 0
mov rcx, qword [rbx]
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0xf8]
mov edx, 0xffff
mov r8d, 0x1005
call sub.ws2_32.dll_setsockopt
cmp eax, 0xffffffff
je 0x1400b37d7
movabs r13, 0x8000000000000000
cmp qword [rdi + 8], r13
jne 0x1400b3849
mov rcx, r13
mov rsi, rcx
jmp 0x1400b3a5b
call sub.ws2_32.dll_WSAGetLastError
mov ebx, eax
shl rbx, 0x20
cmp qword [rdi + 0xb8], 0
je 0x1400b380f
mov r8, qword [rdi + 0xb0]
mov rcx, qword [0x1402540f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rsi, qword [rdi + 0xd8]
mov r14, qword [rdi + 0xe0]
or rbx, 2
mov rcx, rsi
call qword [r14]
cmp qword [r14 + 8], 0
je 0x1400b383c
cmp qword [r14 + 0x10], 0x11
jb 0x1400b382b
mov rsi, qword [rsi - 8]
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
mov rcx, rdi
call fcn.1400b3640
jmp 0x1400b47dc
mov r14, qword [rdi]
cmp r14, 0xffffffffffffffff
je 0x1400b385d
lock inc qword [r14 + 8]
jle 0x1400b400f
mov rbx, qword [rdi + 0x10]
mov rsi, qword [rdi + 0x18]
mov ebp, 1
mov ecx, 1
test rsi, rsi
je 0x1400b3897
js 0x1400b400f
movzx eax, byte [0x140254141]
xor ecx, ecx
mov rdx, rsi
call fcn.14008bd10
mov rcx, rax
test rax, rax
je 0x1400b400f
mov qword [rsp + 0x38], rcx
mov rdx, rbx
mov r8, rsi
call sub.msvcrt.dll_memcpy
mov rbx, qword [rdi + 0x28]
mov r15, qword [rdi + 0x30]
test r15, r15
je 0x1400b38d7
js 0x1400b400f
movzx eax, byte [0x140254141]
xor ecx, ecx
mov rdx, r15
call fcn.14008bd10
mov rbp, rax
test rax, rax
je 0x1400b400f
mov rcx, rbp
mov rdx, rbx
mov r8, r15
call sub.msvcrt.dll_memcpy
movzx r8d, word [rdi + 0x88]
movzx r9d, word [rdi + 0x8a]
cmp qword [rdi + 0x38], r13
mov qword [rsp + 0x40], rbp
jne 0x1400b390d
mov r12, r13
mov rdx, qword [rsp + 0x38]
jmp 0x1400b3a51
mov rbx, qword [rdi + 0x40]
mov r12, qword [rdi + 0x48]
test r12, r12
mov word [rsp + 0x36], r8w
mov word [rsp + 0x34], r9w
je 0x1400b394a
js 0x1400b400f
movzx eax, byte [0x140254141]
xor ecx, ecx
mov rdx, r12
call fcn.14008bd10
mov rcx, rax
test rax, rax
jne 0x1400b394f
jmp 0x1400b400f
mov ecx, 1
mov qword [rsp + 0x58], rcx
mov rdx, rbx
mov r8, r12
call sub.msvcrt.dll_memcpy
mov r11d, dword [rdi + 0x80]
cmp qword [rdi + 0x50], r13
mov dword [rsp + 0x4c], r11d
jne 0x1400b397b
mov rbp, r13
mov rdx, qword [rsp + 0x38]
jmp 0x1400b39cb
mov rbx, qword [rdi + 0x58]
mov rbp, qword [rdi + 0x60]
test rbp, rbp
je 0x1400b39a9
js 0x1400b400f
movzx eax, byte [0x140254141]
xor ecx, ecx
mov rdx, rbp
call fcn.14008bd10
test rax, rax
jne 0x1400b39ae
jmp 0x1400b400f
mov eax, 1
mov qword [rsp + 0x50], rax
mov rcx, rax
mov rdx, rbx
mov r8, rbp
call sub.msvcrt.dll_memcpy
mov rdx, qword [rsp + 0x38]
mov r11d, dword [rsp + 0x4c]
cmp qword [rdi + 0x68], r13
movzx r8d, word [rsp + 0x36]
movzx r9d, word [rsp + 0x34]
mov r10, qword [rsp + 0x58]
jne 0x1400b39e4
jmp 0x1400b3a4a
mov rdx, qword [rdi + 0x70]
mov r13, qword [rdi + 0x78]
test r13, r13
je 0x1400b3a1f
mov qword [rsp + 0x60], rdx
js 0x1400b400f
movzx eax, byte [0x140254141]
xor ecx, ecx
mov rdx, r13
call fcn.14008bd10
mov rbx, rax
test rax, rax
mov rdx, qword [rsp + 0x60]
jne 0x1400b3a24
jmp 0x1400b400f
mov ebx, 1
mov rcx, rbx
mov r8, r13
call sub.msvcrt.dll_memcpy
mov rdx, qword [rsp + 0x38]
movzx r8d, word [rsp + 0x36]
movzx r9d, word [rsp + 0x34]
mov r10, qword [rsp + 0x58]
mov r11d, dword [rsp + 0x4c]
movzx eax, byte [rdi + 0x84]
movabs rcx, 0x8000000000000000
mov qword [rsp + 0x2b8], r14
mov qword [rsp + 0x2c0], rsi
mov qword [rsp + 0x2c8], rdx
mov qword [rsp + 0x2d0], rsi
mov qword [rsp + 0x2d8], r15
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0x2e0], rdx
mov qword [rsp + 0x2e8], r15
mov qword [rsp + 0x2f0], r12
mov qword [rsp + 0x2f8], r10
mov qword [rsp + 0x300], r12
mov qword [rsp + 0x308], rbp
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x310], rdx
mov qword [rsp + 0x318], rbp
mov qword [rsp + 0x320], r13
mov qword [rsp + 0x328], rbx
mov qword [rsp + 0x330], r13
mov dword [rsp + 0x338], r11d
mov byte [rsp + 0x33c], al
mov word [rsp + 0x340], r8w
mov word [rsp + 0x342], r9w
cmp rsi, rcx
mov r13, rcx
je 0x1400b3ced
cmp r14, 0xffffffffffffffff
je 0x1400b3ced
lea rbp, [rsp + 0x2c0]
mov rax, qword [r14]
nop word [rax + rax]
test rax, rax
je 0x1400b3ced
js 0x1400b400f
lea rcx, [rax + 1]
lock cmpxchg qword [r14], rcx
jne 0x1400b3b30
mov qword [rsp + 0x68], r14
cmp qword [r14 + 0x90], 0
je 0x1400b3d7b
cmp qword [r14 + 0x98], 0
je 0x1400b3d7b
lea r12, [r14 + 0x38]
mov rcx, r12
call sub.KERNEL32.dll_AcquireSRWLockExclusive
lea r15, [rsp + 0x1e0]
mov rcx, r15
mov rdx, rbp
call fcn.1400d0920
lea rdx, [r14 + 0x60]
lea rcx, [rsp + 0xf8]
mov qword [rsp + 0x50], rdx
mov r8, r15
call fcn.1400cd8a0
cmp qword [rsp + 0xf8], 0
je 0x1400b3e09
mov qword [rsp + 0x40], r12
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x3e0]
mov r8d, 0x88
call sub.msvcrt.dll_memcpy
mov rbx, qword [rsp + 0x188]
mov r12, qword [rsp + 0x190]
movzx eax, byte [0x140254141]
mov edx, 0xe8
xor ecx, ecx
call fcn.14008bd10
test rax, rax
je 0x1400b400f
mov r15, rax
mov r8d, 0xe8
mov rcx, rax
mov rdx, rdi
call sub.msvcrt.dll_memcpy
mov rdi, qword [rbx]
mov rax, qword [rbx + 8]
mov rcx, rax
and rcx, r12
movdqu xmm0, xmmword [rdi + rcx]
pmovmskb edx, xmm0
test edx, edx
jne 0x1400b3c57
mov r8d, 0x10
nop word cs:[rax + rax]
add rcx, r8
and rcx, rax
movdqu xmm0, xmmword [rdi + rcx]
pmovmskb edx, xmm0
add r8, 0x10
test edx, edx
je 0x1400b3c40
tzcnt edx, edx
add rdx, rcx
and rdx, rax
movzx ecx, byte [rdi + rdx]
test cl, cl
js 0x1400b3c79
movdqa xmm0, xmmword [rdi]
pmovmskb ecx, xmm0
tzcnt edx, ecx
movzx ecx, byte [rdi + rdx]
shr r12, 0x39
lea r8, [rdx - 0x10]
and r8, rax
mov byte [rdi + rdx], r12b
mov byte [rdi + r8 + 0x10], r12b
neg rdx
imul rsi, rdx, 0xa8
and cl, 1
movzx eax, cl
sub qword [rbx + 0x10], rax
lea rcx, [rdi + rsi]
add rcx, 0xffffffffffffff58
lea rdx, [rsp + 0x3e0]
mov r8d, 0x88
call sub.msvcrt.dll_memcpy
mov qword [rdi + rsi - 0x20], 1
mov qword [rdi + rsi - 0x18], r15
mov qword [rdi + rsi - 0x10], 0
mov qword [rdi + rsi - 8], 1
inc qword [rbx + 0x18]
mov r12, qword [rsp + 0x40]
jmp 0x1400b42d9
cmp qword [rdi + 0xb8], 0
je 0x1400b3d0c
mov r8, qword [rdi + 0xb0]
mov rcx, qword [0x1402540f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rsi, qword [rdi + 0xd8]
mov rbx, qword [rdi + 0xe0]
mov rcx, rsi
call qword [rbx]
cmp qword [rbx + 8], 0
je 0x1400b3d42
cmp qword [rbx + 0x10], 0x11
jb 0x1400b3d31
mov rsi, qword [rsi - 8]
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
cmp qword [rdi + 8], r13
je 0x1400b47cd
mov r8, qword [rdi]
add rdi, 8
cmp r8, 0xffffffffffffffff
je 0x1400b3d6e
lock dec qword [r8 + 8]
jne 0x1400b3d6e
mov rcx, qword [0x1402540f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rcx, rdi
call fcn.1400b6eb0
jmp 0x1400b47cd
cmp qword [rdi + 0xb8], 0
je 0x1400b3d9a
mov r8, qword [rdi + 0xb0]
mov rcx, qword [0x1402540f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rsi, qword [rdi + 0xd8]
mov rbx, qword [rdi + 0xe0]
mov rcx, rsi
call qword [rbx]
cmp qword [rbx + 8], 0
je 0x1400b3dd0
cmp qword [rbx + 0x10], 0x11
jb 0x1400b3dbf
mov rsi, qword [rsi - 8]
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
cmp qword [rdi + 8], r13
je 0x1400b47bd
mov r8, qword [rdi]
add rdi, 8
cmp r8, 0xffffffffffffffff
je 0x1400b3dfc
lock dec qword [r8 + 8]
jne 0x1400b3dfc
mov rcx, qword [0x1402540f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rcx, rdi
call fcn.1400b6eb0
jmp 0x1400b47bd
lea rdx, [rsp + 0x100]
lea r15, [rsp + 0x3e0]
mov r8d, 0x88
mov rcx, r15
call sub.msvcrt.dll_memcpy
mov rbx, qword [rsp + 0x188]
mov rsi, qword [rsp + 0x190]
lea rcx, [rsp + 0x348]
mov r8d, 0x88
mov rdx, r15
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x3d0], rbx
mov qword [rsp + 0x3d8], rsi
mov rax, qword [rbx - 0x20]
mov r15, qword [rbx - 8]
cmp r15, rax
jne 0x1400b3e7b
lea rcx, [rbx - 0x20]
call fcn.1400b6d60
mov rax, qword [rbx - 0x20]
mov r15, qword [rbx - 8]
mov rcx, qword [rbx - 0x10]
add rcx, r15
xor edx, edx
cmp rcx, rax
cmovae rdx, rax
sub rcx, rdx
imul rcx, rcx, 0xe8
add rcx, qword [rbx - 0x18]
mov r8d, 0xe8
mov rdx, rdi
call sub.msvcrt.dll_memcpy
lea rax, [r15 + 1]
mov qword [rbx - 8], rax
cmp rax, qword [r14 + 0x98]
jbe 0x1400b42c2
mov rax, qword [rbx - 0x10]
lea rcx, [rax + 1]
mov rdx, qword [rbx - 0x20]
mov r8, qword [rbx - 0x18]
xor r9d, r9d
cmp rcx, rdx
cmovae r9, rdx
neg r9
lea rcx, [rax + r9]
inc rcx
mov qword [rbx - 0x10], rcx
mov qword [rbx - 8], r15
imul rax, rax, 0xe8
mov rsi, qword [r8 + rax]
mov rdi, qword [r8 + rax + 8]
lea rdx, [r8 + rax]
add rdx, 0x10
lea rcx, [rsp + 0x1e0]
mov r8d, 0xd8
call sub.msvcrt.dll_memcpy
lea rax, [r13 + 1]
cmp rdi, rax
je 0x1400b400f
mov qword [rsp + 0xf8], rsi
mov qword [rsp + 0x100], rdi
lea rcx, [rsp + 0x108]
lea rdx, [rsp + 0x1e0]
mov r8d, 0xd8
call sub.msvcrt.dll_memcpy
mov r15, qword [r14 + 0x40]
mov rdx, qword [r14 + 0x58]
test rdx, rdx
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], rdx
je 0x1400b3f85
mov rax, qword [r14 + 0x50]
xor ecx, ecx
cmp rax, r15
cmovae rcx, r15
sub rax, rcx
mov rcx, r15
sub rcx, rax
mov r13, rdx
sub r13, rcx
jbe 0x1400b3f8b
mov rcx, r15
jmp 0x1400b3f92
xor eax, eax
xor ecx, ecx
jmp 0x1400b3f8f
lea rcx, [rax + rdx]
xor r13d, r13d
mov r12, qword [r14 + 0x48]
mov rdx, rax
shl rdx, 7
lea rsi, [rdx + rax*8]
mov rax, rcx
shl rax, 7
lea rdi, [rax + rcx*8]
xor ebx, ebx
cmp rdi, rsi
je 0x1400b3fd2
lea rcx, [r12 + rsi]
mov rdx, rbp
call fcn.1400bf190
test al, al
jne 0x1400b4011
inc rbx
add rsi, 0x88
cmp rdi, rsi
jne 0x1400b3fb3
mov rax, r13
shl rax, 7
lea rsi, [rax + r13*8]
mov r13, r12
mov rdi, qword [rsp + 0x38]
test rsi, rsi
je 0x1400b400f
mov rcx, r13
mov rdx, rbp
call fcn.1400bf190
test al, al
jne 0x1400b4016
add r13, 0x88
inc rbx
add rsi, 0xffffffffffffff78
test rsi, rsi
jne 0x1400b3fea
ud2
mov rdi, qword [rsp + 0x38]
cmp rdi, rbx
jbe 0x1400b400f
mov r8, qword [r14 + 0x50]
lea r9, [r8 + rbx]
xor eax, eax
cmp r9, r15
cmovae rax, r15
sub r9, rax
mov rax, r9
shl rax, 7
lea rax, [rax + r9*8]
mov r13, qword [r12 + rax]
movups xmm0, xmmword [r12 + rax + 0x78]
movaps xmmword [rsp + 0x250], xmm0
movups xmm0, xmmword [r12 + rax + 0x68]
movaps xmmword [rsp + 0x240], xmm0
movups xmm0, xmmword [r12 + rax + 0x58]
movaps xmmword [rsp + 0x230], xmm0
movups xmm0, xmmword [r12 + rax + 0x48]
movaps xmmword [rsp + 0x220], xmm0
movups xmm0, xmmword [r12 + rax + 0x38]
movaps xmmword [rsp + 0x210], xmm0
movups xmm0, xmmword [r12 + rax + 0x28]
movaps xmmword [rsp + 0x200], xmm0
movups xmm0, xmmword [r12 + rax + 0x18]
movaps xmmword [rsp + 0x1f0], xmm0
movups xmm0, xmmword [r12 + rax + 8]
movaps xmmword [rsp + 0x1e0], xmm0
mov rax, rbx
not rax
add rax, rdi
cmp rax, rbx
jae 0x1400b40da
lea rcx, [r9 + 1]
xor edx, edx
cmp rcx, r15
cmovae rdx, r15
neg rdx
lea r8, [r9 + rdx]
inc r8
mov qword [rsp + 0x20], rax
jmp 0x1400b40fa
lea rax, [r8 + 1]
xor ecx, ecx
cmp rax, r15
cmovae rcx, r15
neg rcx
lea r9, [r8 + rcx]
inc r9
mov qword [r14 + 0x50], r9
mov qword [rsp + 0x20], rbx
mov rcx, r15
mov rdx, r12
call fcn.1400b6a90
dec rdi
mov qword [r14 + 0x58], rdi
movaps xmm0, xmmword [rsp + 0x250]
movaps xmmword [rsp + 0xe0], xmm0
movaps xmm0, xmmword [rsp + 0x240]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmm0, xmmword [rsp + 0x230]
movaps xmmword [rsp + 0xc0], xmm0
movaps xmm0, xmmword [rsp + 0x220]
movaps xmmword [rsp + 0xb0], xmm0
movdqa xmm0, xmmword [rsp + 0x1e0]
movdqa xmm1, xmmword [rsp + 0x1f0]
movaps xmm2, xmmword [rsp + 0x200]
movaps xmm3, xmmword [rsp + 0x210]
movaps xmmword [rsp + 0xa0], xmm3
movaps xmmword [rsp + 0x90], xmm2
movdqa xmmword [rsp + 0x80], xmm1
movdqa xmmword [rsp + 0x70], xmm0
movabs rax, 0x8000000000000000
cmp r13, rax
je 0x1400b400f
mov qword [rsp + 0x1e0], r13
movaps xmm0, xmmword [rsp + 0x70]
movdqa xmm1, xmmword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
movaps xmm3, xmmword [rsp + 0xa0]
movups xmmword [rsp + 0x1e8], xmm0
movdqu xmmword [rsp + 0x1f8], xmm1
movups xmmword [rsp + 0x208], xmm2
movups xmmword [rsp + 0x218], xmm3
movaps xmm0, xmmword [rsp + 0xb0]
movups xmmword [rsp + 0x228], xmm0
movaps xmm0, xmmword [rsp + 0xc0]
movups xmmword [rsp + 0x238], xmm0
movaps xmm0, xmmword [rsp + 0xd0]
movups xmmword [rsp + 0x248], xmm0
movdqa xmm0, xmmword [rsp + 0xe0]
movdqu xmmword [rsp + 0x258], xmm0
lea rcx, [rsp + 0x1e0]
call fcn.1400b6eb0
cmp qword [rsp + 0x1b0], 0
je 0x1400b4257
mov r8, qword [rsp + 0x1a8]
mov rcx, qword [0x1402540f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov r15, qword [rsp + 0x1d0]
mov rsi, qword [rsp + 0x1d8]
mov rcx, r15
call qword [rsi]
cmp qword [rsi + 8], 0
movabs r13, 0x8000000000000000
mov r12, qword [rsp + 0x40]
je 0x1400b429e
cmp qword [rsi + 0x10], 0x11
jb 0x1400b428d
mov r15, qword [r15 - 8]
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, r15
call sub.KERNEL32.dll_HeapFree
cmp qword [rsp + 0x100], r13
je 0x1400b42c2
mov rcx, qword [rsp + 0xf8]
call fcn.1400c2960
lea rcx, [rsp + 0x100]
call fcn.1400b6eb0
cmp qword [rsp + 0x348], r13
je 0x1400b42d9
lea rcx, [rsp + 0x348]
call fcn.1400b6eb0
lea rcx, [rsp + 0xf8]
mov rdx, rbp
call fcn.1400d0920
mov rax, qword [r14 + 0x40]
mov rdi, qword [r14 + 0x58]
cmp rdi, rax
jne 0x1400b4307
lea rcx, [r14 + 0x40]
call fcn.1400b6e00
mov rax, qword [r14 + 0x40]
mov rdi, qword [r14 + 0x58]
mov rcx, qword [r14 + 0x50]
add rcx, rdi
xor edx, edx
cmp rcx, rax
cmovae rdx, rax
sub rcx, rdx
mov rax, rcx
shl rax, 7
lea rcx, [rax + rcx*8]
add rcx, qword [r14 + 0x48]
lea rdx, [rsp + 0xf8]
mov r8d, 0x88
call sub.msvcrt.dll_memcpy
inc rdi
mov qword [r14 + 0x58], rdi
mov rsi, qword [r14 + 0x90]
mov rcx, r12
call fcn.140110008
cmp rdi, rsi
jbe 0x1400b47bd
cmp qword [r14 + 0x90], 0
je 0x1400b400f
cmp qword [r14 + 0x98], 0
je 0x1400b400f
mov rcx, r12
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov rcx, qword [r14 + 0x58]
test rcx, rcx
je 0x1400b400f
mov rdx, qword [r14 + 0x50]
lea r8, [rdx + 1]
mov r9, qword [r14 + 0x40]
mov rax, qword [r14 + 0x48]
xor r10d, r10d
cmp r8, r9
cmovae r10, r9
neg r10
lea r8, [rdx + r10]
inc r8
mov qword [r14 + 0x50], r8
dec rcx
mov qword [r14 + 0x58], rcx
mov rcx, rdx
shl rcx, 7
lea rdx, [rcx + rdx*8]
mov rcx, qword [rax + rdx]
cmp rcx, r13
je 0x1400b400f
add rax, rdx
mov qword [rsp + 0x70], rcx
movups xmm0, xmmword [rax + 8]
movdqu xmm1, xmmword [rax + 0x18]
movups xmm2, xmmword [rax + 0x28]
movups xmm3, xmmword [rax + 0x38]
movups xmmword [rsp + 0x78], xmm0
movdqu xmmword [rsp + 0x88], xmm1
movups xmmword [rsp + 0x98], xmm2
movups xmmword [rsp + 0xa8], xmm3
movups xmm0, xmmword [rax + 0x48]
movups xmmword [rsp + 0xb8], xmm0
movups xmm0, xmmword [rax + 0x58]
movups xmmword [rsp + 0xc8], xmm0
movups xmm0, xmmword [rax + 0x68]
movups xmmword [rsp + 0xd8], xmm0
movdqu xmm0, xmmword [rax + 0x78]
movdqu xmmword [rsp + 0xe8], xmm0
lea rcx, [rsp + 0xf8]
lea r8, [rsp + 0x70]
mov rdx, qword [rsp + 0x50]
call fcn.1400cd8a0
cmp qword [rsp + 0xf8], 0
jne 0x1400b400f
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x348]
mov r8d, 0x98
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x3d0]
mov rbx, qword [rax - 8]
test rbx, rbx
je 0x1400b400f
mov rcx, qword [rax - 0x10]
lea rdx, [rcx + 1]
mov r8, qword [rax - 0x20]
mov r9, qword [rax - 0x18]
xor r10d, r10d
cmp rdx, r8
cmovae r10, r8
neg r10
lea rdx, [rcx + r10]
inc rdx
mov qword [rax - 0x10], rdx
dec rbx
mov qword [rax - 8], rbx
imul rax, rcx, 0xe8
mov rdi, qword [r9 + rax]
mov rsi, qword [r9 + rax + 8]
lea rdx, [r9 + rax]
add rdx, 0x10
lea rcx, [rsp + 0x1e0]
mov r8d, 0xd8
call sub.msvcrt.dll_memcpy
lea rax, [r13 + 1]
cmp rsi, rax
je 0x1400b400f
mov qword [rsp + 0xf8], rdi
lea rdi, [rsp + 0x100]
mov qword [rsp + 0x100], rsi
lea rcx, [rsp + 0x108]
lea rdx, [rsp + 0x1e0]
mov r8d, 0xd8
call sub.msvcrt.dll_memcpy
test rbx, rbx
je 0x1400b45c8
cmp qword [rsp + 0x1b0], 0
je 0x1400b4556
mov r8, qword [rsp + 0x1a8]
mov rcx, qword [0x1402540f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rbx, qword [rsp + 0x1d0]
mov rsi, qword [rsp + 0x1d8]
mov rcx, rbx
call qword [rsi]
cmp qword [rsi + 8], 0
je 0x1400b458e
cmp qword [rsi + 0x10], 0x11
jb 0x1400b457d
mov rbx, qword [rbx - 8]
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
cmp qword [rsp + 0x100], r13
je 0x1400b45ad
mov rcx, qword [rsp + 0xf8]
call fcn.1400c2960
mov rcx, rdi
call fcn.1400b6eb0
cmp qword [rsp + 0x348], r13
je 0x1400b47b5
lea rcx, [rsp + 0x348]
jmp 0x1400b47b0
mov rdx, qword [rsp + 0x3d0]
mov rax, qword [rsp + 0x3d8]
mov rcx, qword [rax]
mov r9, rcx
sub r9, rdx
sar r9, 3
movabs r8, 0xcf3cf3cf3cf3cf3d
imul r8, r9
lea r9, [r8 - 0x10]
and r9, qword [rax + 8]
movdqu xmm0, xmmword [rcx + r9]
pcmpeqd xmm1, xmm1
pcmpeqb xmm0, xmm1
psllw xmm0, 7
pmovmskb r11d, xmm0
movdqu xmm0, xmmword [rcx + r8]
pcmpeqb xmm0, xmm1
pmovmskb r10d, xmm0
test r11d, r11d
je 0x1400b4632
bsr r11w, r11w
xor r11d, 0xf
jmp 0x1400b4637
mov r11w, 0x10
mov rbx, qword [rsp + 0x348]
or r10d, 0x10000
tzcnt r10d, r10d
add r11d, r10d
mov r10b, pe_nt_image_headers64
cmp r11w, 0xf
ja 0x1400b465f
inc qword [rax + 0x10]
mov r10b, 0xff
mov rdi, r12
mov byte [rcx + r8], r10b
mov byte [rcx + r9 + 0x10], r10b
dec qword [rax + 0x18]
add rdx, 0xffffffffffffff58
lea rcx, [rsp + 0x1e0]
mov r8d, 0xa8
call sub.msvcrt.dll_memcpy
mov rsi, r13
cmp rbx, r13
je 0x1400b469e
lea rcx, [rsp + 0x348]
call fcn.1400b6eb0
mov r13, qword [rsp + 0x268]
mov rbx, qword [rsp + 0x270]
mov rbp, qword [rsp + 0x278]
mov r12, qword [rsp + 0x280]
lea rcx, [rsp + 0x1e0]
call fcn.1400b6eb0
test r12, r12
je 0x1400b46ef
xor eax, eax
cmp rbp, r13
cmovae rax, r13
sub rbp, rax
mov rax, r13
sub rax, rbp
mov r15, r12
sub r15, rax
jbe 0x1400b46f6
mov r12, r13
jmp 0x1400b46fc
xor ebp, ebp
xor r12d, r12d
jmp 0x1400b46f9
add r12, rbp
xor r15d, r15d
imul rcx, rbp, 0xe8
add rcx, rbx
sub r12, rbp
mov rdx, r12
call fcn.1400b6f70
mov rcx, rbx
mov rdx, r15
call fcn.1400b6f70
test r13, r13
je 0x1400b4732
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
cmp qword [rsp + 0x1b0], 0
mov r15, rsi
mov r12, rdi
je 0x1400b4759
mov r8, qword [rsp + 0x1a8]
mov rcx, qword [0x1402540f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rbx, qword [rsp + 0x1d0]
mov rsi, qword [rsp + 0x1d8]
mov rcx, rbx
call qword [rsi]
cmp qword [rsi + 8], 0
je 0x1400b4791
cmp qword [rsi + 0x10], 0x11
jb 0x1400b4780
mov rbx, qword [rbx - 8]
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
cmp qword [rsp + 0x100], r15
je 0x1400b47b5
mov rcx, qword [rsp + 0xf8]
call fcn.1400c2960
lea rcx, [rsp + 0x100]
call fcn.1400b6eb0
mov rcx, r12
call fcn.140110008
lock dec qword [r14]
jne 0x1400b47cd
lea rcx, [rsp + 0x68]
call fcn.1400c2130
lea rcx, [rsp + 0x2b8]
call fcn.1400b3640
xor ebx, ebx
mov rax, rbx
add rsp, 0x468
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret