Function at 0x1400c4910
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x28
cmp dword [0x1401bb334], 1
mov qword [rsp + 0x30], rbx
mov ebx, ecx
mov qword [rsp + 0x38], rbp
jl 0x1400c493c
mov rcx, qword [0x1401bba88]
lea rdx, str.qh_freeqhull:_free_global_memory_n
call fcn.140011c80
xor ebp, ebp
mov qword [rsp + 0x20], rdi
mov dword [0x1401bbb50], 1
test ebx, ebx
je 0x1400c4afe
xor ecx, ecx
call fcn.1400d1320
mov rax, qword [0x1401bbaf0]
test rax, rax
je 0x1400c4997
mov rcx, rax
cmp qword [rax], rbp
je 0x1400c497e
call fcn.1400d1430
mov rax, qword [0x1401bbaf0]
jmp 0x1400c4992
mov edx, 0x28
call fcn.1400ccc60
mov rax, rbp
mov qword [0x1401bbaf0], rax
test rax, rax
jne 0x1400c4968
mov rdi, qword [0x1401bbaa8]
test rdi, rdi
je 0x1400c4b79
mov rdx, qword [rdi + 0x30]
test rdx, rdx
je 0x1400c49ef
test dword [rdi + 0x68], 0x400
jne 0x1400c49e7
mov rcx, qword [rdi + 0x40]
test rcx, rcx
je 0x1400c49e7
mov rax, qword [rcx + 8]
add rcx, 8
test rax, rax
je 0x1400c49e7
nop
and dword [rax + 0x18], 0xfeffffff
lea rcx, [rcx + 8]
mov rax, qword [rcx]
test rax, rax
jne 0x1400c49d0
mov rdx, qword [rdi + 0x30]
mov rdi, rdx
test rdx, rdx
jne 0x1400c49a7
mov rdi, qword [0x1401bbaa8]
test rdi, rdi
je 0x1400c4b79
nop
mov rax, qword [rdi + 0x30]
lea r9, [rdi + 0x30]
test rax, rax
je 0x1400c4a58
mov r8, qword [rdi + 0x40]
mov rdi, rax
test r8, r8
je 0x1400c4a53
mov rdx, qword [r8 + 8]
add r8, 8
test rdx, rdx
je 0x1400c4a53
nop word [rax + rax]
mov eax, dword [rdx + 0x18]
lea r8, [r8 + 8]
mov ecx, eax
not ecx
xor ecx, eax
and ecx, 0x1000000
xor ecx, eax
mov dword [rdx + 0x18], ecx
mov rdx, qword [r8]
test rdx, rdx
jne 0x1400c4a30
mov rdi, qword [r9]
test rdi, rdi
jne 0x1400c4a00
mov rdi, qword [0x1401bbaa8]
test rdi, rdi
je 0x1400c4b79
mov qword [rsp + 0x40], rsi
nop dword [rax]
mov rsi, qword [rdi + 0x40]
test rsi, rsi
je 0x1400c4ac3
mov rbx, qword [rsi + 8]
add rsi, 8
test rbx, rbx
je 0x1400c4ac3
nop word [rax + rax]
mov eax, dword [rbx + 0x18]
lea rsi, [rsi + 8]
bt eax, 0x18
jae 0x1400c4ab4
mov rcx, rbx
call fcn.1400de940
mov edx, 0x20
mov rcx, rbx
call fcn.1400ccc60
jmp 0x1400c4abb
bts eax, 0x18
mov dword [rbx + 0x18], eax
mov rbx, qword [rsi]
test rbx, rbx
jne 0x1400c4a90
mov rcx, rdi
cmp qword [rdi + 0x30], rbp
je 0x1400c4ada
call fcn.1400cd8c0
mov rdi, qword [0x1401bbaa8]
jmp 0x1400c4aee
mov edx, WSACleanup
call fcn.1400ccc60
mov rdi, rbp
mov qword [0x1401bbaa8], rbp
test rdi, rdi
jne 0x1400c4a70
mov rsi, qword [rsp + 0x40]
jmp 0x1400c4b79
cmp dword [0x1401bb8d0], ebp
je 0x1400c4b28
mov rbx, qword [0x1401bbaf0]
test rbx, rbx
je 0x1400c4b28
cmp qword [rbx], rbp
je 0x1400c4b28
lea rcx, [rbx + 0x18]
call fcn.1400de9b0
mov rbx, qword [rbx]
test rbx, rbx
jne 0x1400c4b12
mov rbx, qword [0x1401bbaa8]
test rbx, rbx
je 0x1400c4b79
cmp qword [rbx + 0x30], rbp
je 0x1400c4b79
lea rcx, [rbx + 0x50]
call fcn.1400de9b0
lea rcx, [rbx + 0x58]
call fcn.1400de9b0
test dword [rbx + 0x68], 0x1000
jne 0x1400c4b70
lea rcx, [rbx + 0x48]
call fcn.1400de9b0
lea rcx, [rbx + 0x40]
call fcn.1400de9b0
lea rcx, [rbx + 0x38]
call fcn.1400de9b0
mov rbx, qword [rbx + 0x30]
test rbx, rbx
jne 0x1400c4b34
lea rcx, [0x1401bbb98]
call fcn.1400de940
mov rbx, qword [0x1401bbb80]
mov rdi, qword [rsp + 0x20]
test rbx, rbx
je 0x1400c4bbc
mov rax, qword [rbx + 8]
add rbx, 8
test rax, rax
je 0x1400c4bbc
mov edx, 0x20
lea rbx, [rbx + 8]
mov rcx, rax
call fcn.1400ccc60
mov rax, qword [rbx]
test rax, rax
jne 0x1400c4ba3
cmp dword [0x1401bb334], 5
mov rbx, qword [rsp + 0x30]
jl 0x1400c4bdd
mov rcx, qword [0x1401bba88]
lea rdx, str.qh_freebuffers:_freeing_up_global_memory_buffers_n
call fcn.140011c80
mov edx, dword [0x1401bb4c8]
mov rcx, qword [0x1401bb928]
lea edx, [rdx*4]
call fcn.1400ccc60
mov edx, dword [0x1401bb4b8]
mov rcx, qword [0x1401bb8e0]
lea edx, [rdx*4 + 4]
call fcn.1400ccc60
mov edx, dword [0x1401bb4b8]
mov rcx, qword [0x1401bb8d8]
lea edx, [rdx*4 + 4]
call fcn.1400ccc60
mov edx, dword [0x1401bb4b8]
mov rcx, qword [0x1401bb8f0]
lea edx, [rdx*4 + 4]
call fcn.1400ccc60
mov edx, dword [0x1401bb4b8]
mov rcx, qword [0x1401bb8e8]
lea edx, [rdx*4 + 4]
call fcn.1400ccc60
mov eax, dword [0x1401bb4c8]
mov rcx, qword [0x1401bbbb8]
lea edx, [rax + 1]
imul edx, eax
shl edx, 2
call fcn.1400ccc60
mov edx, dword [0x1401bb4c8]
mov rcx, qword [0x1401bbbc0]
lea edx, [rdx*8 + 8]
call fcn.1400ccc60
lea rcx, [0x1401bbb98]
call fcn.1400de940
lea rcx, [0x1401bbba8]
call fcn.1400de940
lea rcx, [0x1401bbbb0]
call fcn.1400de940
lea rcx, [0x1401bbc10]
call fcn.1400de940
mov rcx, qword [0x1401bbbc8]
mov qword [0x1401bb8d8], rbp
mov qword [0x1401bb8e0], rbp
mov qword [0x1401bb928], rbp
mov qword [0x1401bb8e8], rbp
mov qword [0x1401bb8f0], rbp
mov qword [0x1401bbbb8], rbp
mov qword [0x1401bbbc0], rbp
test rcx, rcx
je 0x1400c4d01
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [0x1401bbbd8]
test rcx, rcx
je 0x1400c4d13
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [0x1401bb4a8]
test rcx, rcx
je 0x1400c4d25
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [0x1401bb4a0]
test rcx, rcx
je 0x1400c4d37
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [0x1401bbbe0]
test rcx, rcx
je 0x1400c4d49
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [0x1401bb4c0]
mov qword [0x1401bb4a0], rbp
mov qword [0x1401bbbc8], rbp
mov qword [0x1401bbbe0], rbp
mov qword [0x1401bb4a8], rbp
mov qword [0x1401bbbd8], rbp
test rcx, rcx
je 0x1400c4d8d
cmp dword [0x1401bb378], ebp
je 0x1400c4d8d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [0x1401bb4c0], rbp
cmp dword [0x1401bb334], 5
mov rbp, qword [rsp + 0x38]
jl 0x1400c4dae
mov rcx, qword [0x1401bba88]
lea rdx, str.qh_freebuffers:_finished_n
call fcn.140011c80
call fcn.140022950
add rsp, 0x28
jmp 0x1400df4c0
sub rsp, 0x28
mov r8, qword [0x1401bbc68]
test r8, r8
je 0x1400df5b6
mov rax, qword [r8 + 8]
mov qword [rsp + 0x20], rbx
lea rbx, [r8 + 8]
test rax, rax
je 0x1400df547
nop word [rax + rax]
mov ecx, dword [rax]
lea rbx, [rbx + 8]
lea edx, [rcx*8 + 0x10]
cmp edx, dword [0x1401bbc30]
jg 0x1400df530
mov rcx, qword [0x1401bbc48]
inc dword [0x1401bbc8c]
movsxd rdx, edx
movsxd r8, dword [rcx + rdx*4]
mov rcx, qword [0x1401bbc38]
lea rdx, [rcx + r8*8]
mov rcx, qword [rcx + r8*8]
mov qword [rax], rcx
mov qword [rdx], rax
jmp 0x1400df538
mov rcx, rax
call fcn.1400ccc60
mov rax, qword [rbx]
test rax, rax
jne 0x1400df4f0
mov r8, qword [0x1401bbc68]
mov rbx, qword [rsp + 0x20]
test r8, r8
je 0x1400df5b6
mov eax, dword [r8]
lea edx, [rax*8 + 0x10]
cmp edx, dword [0x1401bbc30]
jg 0x1400df5a3
mov rax, qword [0x1401bbc48]
inc dword [0x1401bbc8c]
movsxd rcx, edx
movsxd rdx, dword [rax + rcx*4]
mov rax, qword [0x1401bbc38]
lea rcx, [rax + rdx*8]
mov rax, qword [rax + rdx*8]
mov qword [r8], rax
mov rax, qword [0x1401bbc68]
mov qword [rcx], rax
mov qword [0x1401bbc68], 0
add rsp, 0x28
ret
mov rcx, r8
call fcn.1400ccc60
mov qword [0x1401bbc68], 0
add rsp, 0x28
ret