Function at 0x14000f590
Capabilities:
Resume thread
Suspend thread

Disassembly:
push rsi
push r12
sub rsp, 0x48
cmp byte [0x140143d28], 0
mov r12, rdx
mov rsi, rcx
jne 0x14000f5b1
xor eax, eax
add rsp, 0x48
pop r12
pop rsi
ret
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x30], r14
mov r14d, dword gs:[0x48]
cmp dword [0x1401430c0], r14d
je 0x14000f5da
mov rcx, qword [0x1401430c8]
call qword [sym.imp.KERNEL32.dll_SuspendThread]
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rsi
repne scasw ax, word [rdi]
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rbp
not rcx
lea rdi, [rcx - 1]
cmp word [rsi], ax
je 0x14000f949
lea rax, [rsp + 0x70]
lea r8, [rcx - 1]
lea r9, [rsp + 0x78]
mov qword [rsp + 0x28], rax
lea rcx, [0x140143150]
mov rdx, rsi
mov dword [rsp + 0x20], 3
call fcn.14004d390
xor ebp, ebp
mov rbx, rax
test rax, rax
jne 0x14000f65d
mov r9d, dword [rsp + 0x78]
mov eax, ebp
lea rcx, [0x140143150]
cmp byte [rsp + 0x70], al
mov r8, rdi
mov rdx, rsi
setne al
inc eax
mov dword [rsp + 0x20], eax
call fcn.14004d950
mov rbx, rax
test rbx, rbx
je 0x14000f949
movzx edx, byte [rbx + 0x23]
test dl, dl
jne 0x14000f68b
mov rcx, qword [rbx + 0x10]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov rdx, r12
mov byte [rsp + 0x20], 1
call fcn.1400e6e20
jmp 0x14000f8f2
mov qword [rsp + 0x38], r13
mov r8b, 1
test r12, r12
jne 0x14000f6a7
xor r8b, r8b
mov r13, rbp
lea r12, [0x1401035ac]
jmp 0x14000f6c9
cmp qword [rbx + 8], r12
jne 0x14000f6b6
mov r13, qword [rbx + 0x10]
shr r13, 1
jmp 0x14000f6c9
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, r12
repne scasw ax, word [rdi]
not rcx
lea r13, [rcx - 1]
lea rax, [r13 + 1]
lea rsi, [rax + rax]
cmp dl, 2
jne 0x14000f6e6
mov rdx, r13
mov rcx, r12
call fcn.140006bc0
jmp 0x14000f8ed
mov r9, qword [0x14013b0d0]
cmp rsi, r9
jbe 0x14000f717
cmp rsi, qword [rbx + 0x18]
jbe 0x14000f717
lea r8, [0x1401035ac]
lea rdx, [0x140124720]
lea rcx, [0x140143150]
call fcn.14005f7b0
jmp 0x14000f8ed
cmp rax, 2
jae 0x14000f737
test r8b, r8b
mov rcx, rbx
setne bpl
xor r8d, r8d
lea edx, [rbp + 2]
call fcn.1400e74d0
jmp 0x14000f8ed
movzx eax, byte [rbx + 0x21]
test al, 2
je 0x14000f754
mov rcx, qword [rbx]
and al, 0x3d
mov byte [rbx + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov r9, qword [0x14013b0d0]
mov rcx, qword [rbx + 0x18]
and byte [rbx + 0x21], 0x82
cmp rsi, rcx
jbe 0x14000f8c5
movzx r8d, byte [rbx + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14000f787
cmp al, 2
je 0x14000f7c4
mov rdi, qword [rsp + 0x70]
mov rax, qword [rsp + 0x70]
jmp 0x14000f8b9
mov edi, 0x80
cmp rsi, rdi
ja 0x14000f7c4
cmp rsi, 8
ja 0x14000f79e
mov edi, 8
jmp 0x14000f7aa
mov eax, reloc.WSOCK32.dll_recv
cmp rsi, rax
cmovbe rdi, rax
mov rcx, rdi
call fcn.1400dd290
test rax, rax
je 0x14000f8ed
mov byte [rbx + 0x20], 1
jmp 0x14000f8b9
cmp rsi, 0x20
jae 0x14000f7d4
mov edi, SafeArrayAllocDescriptor
jmp 0x14000f87e
mov edi, 0x208
cmp rsi, rdi
jb 0x14000f87e
cmp rsi, 0x50000
jae 0x14000f83a
pxor xmm0, xmm0
cvtsi2sd xmm0, rsi
test rsi, rsi
jns 0x14000f801
addsd xmm0, qword [0x1401279a8]
mulsd xmm0, qword [0x1401279e0]
movsd xmm1, qword [0x1401279d8]
xor eax, eax
comisd xmm0, xmm1
jbe 0x14000f830
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x14000f830
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14000f87e
cmp rsi, 0x320000
jae 0x14000f84c
lea rdi, [rsi + 0x8000]
jmp 0x14000f87e
cmp rsi, 0xc80000
jae 0x14000f877
movabs rax, 0x47ae147ae147ae15
mov rdi, rsi
mul rsi
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rsi
jmp 0x14000f87e
lea rdi, [rsi + 0x20000]
cmp rdi, r9
cmova rdi, r9
cmp r8b, 2
jne 0x14000f89f
test rcx, rcx
je 0x14000f89f
mov rcx, qword [rbx + 8]
mov sil, 1
call qword [sym.imp.MSVCR100.dll_free]
jmp 0x14000f8a2
xor sil, sil
test rdi, rdi
js 0x14000f90c
mov rcx, rdi
call qword [sym.imp.MSVCR100.dll_malloc]
test rax, rax
je 0x14000f90c
mov byte [rbx + 0x20], 2
and byte [rbx + 0x21], 0x7f
mov qword [rbx + 8], rax
mov qword [rbx + 0x18], rdi
mov rcx, qword [rbx + 8]
cmp rcx, r12
je 0x14000f8dc
lea r8, [r13 + r13]
mov rdx, r12
call qword [sym.imp.MSVCR100.dll_memmove]
mov rax, qword [rbx + 8]
lea rcx, [r13 + r13]
mov word [rcx + rax], bp
mov qword [rbx + 0x10], rcx
mov r13, qword [rsp + 0x38]
cmp dword [0x1401430c0], r14d
je 0x14000f908
mov rcx, qword [0x1401430c8]
call qword [sym.imp.KERNEL32.dll_ResumeThread]
xor eax, eax
jmp 0x14000f962
test sil, sil
je 0x14000f922
lea rax, [0x140141fa8]
mov qword [rbx + 0x18], rbp
mov qword [rbx + 8], rax
jmp 0x14000f929
mov rax, qword [rbx + 8]
mov word [rax], bp
lea r8, [0x1401035ac]
lea rdx, str.Out_of_memory.
lea rcx, [0x140143150]
mov qword [rbx + 0x10], rbp
call fcn.14005f7b0
jmp 0x14000f8ed
cmp dword [0x1401430c0], r14d
je 0x14000f95f
mov rcx, qword [0x1401430c8]
call qword [sym.imp.KERNEL32.dll_ResumeThread]
or eax, 0xffffffff
mov rbp, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x40]
mov r14, qword [rsp + 0x30]
add rsp, 0x48
pop r12
pop rsi
ret