Function at 0x43f2e0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
mov rax, qword [0x005270d0]
mov qword [rsp + 0x68], rax
mov rbp, rcx
mov qword [rsp + 0x70], rax
mov rax, qword [rcx + 0x40]
mov rcx, qword [rax + 0x1a0]
call qword [0x00527c68]
lea r12, [rsp + 0xa8]
mov rdx, rax
mov rcx, r12
call qword [0x005274c0]
lea rcx, [0x004a0d0e]
mov edx, 1
call qword [0x00527278]
mov qword [rsp + 0xb0], rax
lea rax, [rsp + 0x78]
mov r9d, 1
mov rdx, r12
lea rbx, [rsp + 0xb0]
mov qword [rsp + 0x58], rax
mov rcx, rax
mov dword [rsp + 0x20], 1
mov r8, rbx
call qword [0x005273b8]
mov rcx, rbx
call fcn.00491270
mov rcx, r12
call fcn.00491270
mov rdx, qword [rsp + 0x78]
movsxd rax, dword [rdx + 8]
mov edi, dword [rdx + 0xc]
sub edi, eax
test edi, edi
mov dword [rsp + 0x3c], edi
jle 0x43fa82
mov edi, dword [rsp + 0x3c]
lea r13, [rsp + 0x70]
xor esi, esi
mov r15, qword [0x00527298]
lea r14d, [rdi - 1]
lea rdi, [rsp + 0x68]
add r14, 1
jmp 0x43f4e0
movsxd rcx, dword [rax + 4]
mov r8d, dword [rax + 8]
lea edx, [rcx + 2]
and r8d, 0x7fffffff
cmp edx, r8d
jbe 0x43f3f5
mov r8d, 1
mov rcx, rbx
call qword [0x00527248]
mov rax, qword [rsp + 0xb0]
movsxd rcx, dword [rax + 4]
lea edx, [rcx + 1]
mov dword [rax + 4], edx
add rax, qword [rax + 0x10]
mov edx, 0x20
lea rax, [rax + rcx*2]
xor ecx, ecx
mov word [rax], dx
mov rdx, rbx
mov word [rax + 2], cx
mov rcx, r13
call r15
mov rcx, qword [rsp + 0xb0]
mov eax, dword [rcx]
test eax, eax
je 0x43f540
cmp eax, 0xffffffff
je 0x43f443
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0xb0]
je 0x43f540
mov rdx, qword [rsp + 0xa8]
mov qword [rsp + 0xb0], rdx
mov eax, dword [rdx]
add eax, 1
cmp eax, 1
ja 0x43f8c0
mov rdx, rbx
mov rcx, rbp
call fcn.0043cbd0
mov rcx, rdi
movsx edx, al
call qword [0x005270e8]
mov rcx, qword [rsp + 0xb0]
mov eax, dword [rcx]
test eax, eax
je 0x43f8a0
cmp eax, 0xffffffff
je 0x43f4a1
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0xb0]
je 0x43f8a0
mov rcx, qword [rsp + 0xa8]
mov eax, dword [rcx]
test eax, eax
je 0x43f560
cmp eax, 0xffffffff
je 0x43f4ca
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0xa8]
je 0x43f560
add rsi, 1
cmp r14, rsi
je 0x43f57e
mov rdx, qword [rsp + 0x78]
movsxd rax, dword [rdx + 8]
add rax, rsi
mov rdx, qword [rdx + rax*8 + 0x10]
mov qword [rsp + 0xa8], rdx
mov eax, dword [rdx]
add eax, 1
cmp eax, 1
ja 0x43f8e0
mov rdx, qword [rsp + 0xa8]
mov qword [rsp + 0xb0], rdx
mov eax, dword [rdx]
add eax, 1
cmp eax, 1
ja 0x43f8d0
mov rax, qword [rsp + 0xb0]
mov edx, dword [rax]
cmp edx, 1
jbe 0x43f3c3
mov edx, dword [rax + 4]
add edx, 2
jmp 0x43f3da
mov r8d, 8
mov edx, 2
call qword [0x005270c8]
jmp 0x43f443
add rsi, 1
mov r8d, 8
mov edx, 2
call qword [0x005270c8]
cmp r14, rsi
jne 0x43f4d7
mov rax, qword [rsp + 0x68]
mov edx, dword [rax]
cmp edx, 1
jbe 0x43f9bb
movsx r8d, byte [rax + 0xb]
mov rcx, rdi
mov edx, dword [rax + 4]
shr r8d, 0x1f
add edx, 1
call qword [0x005270d8]
mov r9, qword [rsp + 0x68]
mov eax, dword [rsp + 0x3c]
mov rdx, qword [r9 + 0x10]
cmp eax, 6
lea r8, [rdx + 6]
jle 0x43f9dd
sub eax, 7
add r8, r9
mov esi, 0xffffffff
lea rax, [rdx + rax + 7]
add r9, rax
movzx eax, byte [r8]
mov edx, 8
xor esi, eax
nop
movzx eax, si
sar eax, 1
mov ecx, eax
xor cx, 0xa001
and esi, 1
mov esi, ecx
cmove esi, eax
sub edx, 1
jne 0x43f5e0
add r8, 1
cmp r8, r9
jne 0x43f5d3
movsx edx, sil
mov rcx, rdi
mov r15, qword [0x005270e8]
call r15
mov r14d, esi
mov rcx, rdi
shr r14w, 8
movsx edx, r14b
call r15
mov edx, 0x16
mov rcx, rdi
call r15
mov r8d, 0x10
mov edx, 0x16
mov rcx, r12
mov r15, qword [0x005272a0]
call r15
lea rcx, [rsp + 0x90]
movzx edx, r14w
mov r8d, 0x10
mov qword [rsp + 0x40], rcx
call r15
lea r14, [rsp + 0x80]
movzx edx, sil
mov r8d, 0x10
mov rcx, r14
call r15
lea rax, [rsp + 0x88]
mov r8d, 0x20
mov rdx, r14
mov rcx, rax
mov qword [rsp + 0x48], rax
call fcn.00491700
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x98], rdx
mov eax, dword [rdx]
add eax, 1
cmp eax, 1
ja 0x43f9f2
lea r15, [rsp + 0x98]
mov rdx, qword [rsp + 0x40]
mov rcx, r15
mov rsi, qword [0x00527298]
call rsi
lea rax, [rsp + 0xa0]
mov r8d, 0x20
mov rdx, r15
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.00491700
mov rdx, qword [rsp + 0xa0]
mov qword [rsp + 0xb0], rdx
mov eax, dword [rdx]
add eax, 1
cmp eax, 1
ja 0x43f9e9
mov rdx, r12
mov rcx, rbx
call rsi
mov rdx, rbx
mov rcx, r13
call rsi
mov rcx, rbx
call fcn.00491270
mov rcx, qword [rsp + 0x50]
call fcn.00491270
mov rcx, r15
call fcn.00491270
mov rcx, qword [rsp + 0x48]
call fcn.00491270
mov rcx, r14
call fcn.00491270
mov rcx, qword [rsp + 0x40]
call fcn.00491270
mov rcx, r12
call fcn.00491270
mov edx, dword [rsp + 0x3c]
mov rcx, rdi
add edx, 3
call qword [0x005270f0]
mov rax, qword [rsp + 0x68]
mov eax, dword [rax + 4]
test eax, eax
je 0x43f98c
mov rax, qword [rbp + 0x40]
mov edx, 7
mov rcx, rbx
mov r14, qword [rax + 0x108]
call qword [0x00527478]
mov rdx, rbx
mov rcx, r14
mov r14, qword [0x00527c08]
call r14
mov rcx, rbp
call fcn.0042cc80
mov rax, qword [rbp + 0x40]
mov r8d, 0xd
mov rcx, r12
lea rdx, [0x004a0d94]
mov r15, qword [rax + 0x108]
call qword [0x00527268]
mov rdx, r13
mov rcx, r12
call rsi
lea r8, [0x004a0da2]
mov rdx, r12
mov rcx, rbx
call fcn.00491630
mov rdx, rbx
mov rcx, r15
call qword [0x00527c30]
mov rcx, rbx
call fcn.00491270
mov rcx, r12
call fcn.00491270
mov rax, qword [rbp + 0x40]
mov edx, 0x386487
mov rcx, rbx
mov rsi, qword [rax + 0x108]
call qword [0x00527480]
mov rdx, rbx
mov rcx, rsi
call r14
mov rax, qword [rbp + 0x40]
mov rcx, qword [rax + 0x120]
call qword [0x00527d20]
cmp eax, 0xffffffff
je 0x43f9fb
mov rdx, qword [rsp + 0x68]
test eax, eax
mov esi, dword [rdx + 4]
jne 0x43f8e9
mov eax, dword [rdx]
cmp eax, 1
jbe 0x43fa6c
movsx r8d, byte [rdx + 0xb]
mov rcx, rdi
mov edx, dword [rdx + 4]
shr r8d, 0x1f
add edx, 1
call qword [0x005270d8]
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax + 0x10]
lea rdx, [rax + rcx]
mov dword [rsp + 0x20], 0
xor r9d, r9d
mov r8d, esi
mov rcx, rbp
call fcn.00444700
jmp 0x43f94a
mov r8d, 8
mov edx, 2
call qword [0x005270c8]
jmp 0x43f4a1
lock add dword [rdx], 1
jmp 0x43f461
lock add dword [rdx], 1
jmp 0x43f51c
lock add dword [rdx], 1
jmp 0x43f4fe
mov r8, qword [rbp + 0x30]
cdqe
movsxd rcx, dword [r8 + 8]
add rax, rcx
mov r12d, dword [r8 + rax*8 + 0x10]
mov eax, dword [rdx]
cmp eax, 1
ja 0x43f90f
mov rcx, qword [rdx + 0x10]
mov rax, rdx
cmp rcx, 0x18
je 0x43f930
movsx r8d, byte [rdx + 0xb]
mov rcx, rdi
mov edx, dword [rdx + 4]
shr r8d, 0x1f
add edx, 1
call qword [0x005270d8]
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax + 0x10]
lea rdx, [rax + rcx]
mov dword [rsp + 0x20], 0
mov r9d, r12d
mov r8d, esi
mov rcx, rbp
call fcn.00444700
mov rax, qword [rsp + 0x68]
mov r8d, 0xa
mov rcx, rbx
mov edx, dword [rbp + 0x364]
add edx, dword [rax + 4]
mov rax, qword [rbp + 0x40]
mov dword [rbp + 0x364], edx
mov rsi, qword [rax + 0x1e8]
call qword [0x005272a8]
mov rdx, rbx
mov rcx, rsi
call qword [0x00527bd0]
mov rcx, rbx
call fcn.00491270
mov rcx, qword [rsp + 0x58]
call fcn.004903a0
mov rcx, r13
call fcn.00491270
mov rcx, rdi
call fcn.00453540
nop
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [rax + 0x10]
mov r9, rax
cmp rdx, 0x18
jne 0x43f58e
mov eax, dword [rsp + 0x3c]
lea r8, [rdx + 6]
cmp eax, 6
jg 0x43f5c0
mov edx, 0xffffffff
mov esi, edx
jmp 0x43f606
lock add dword [rdx], 1
jmp 0x43f70b
lock add dword [rdx], 1
jmp 0x43f6b6
mov dword [rsp + 0x20], eax
xor r9d, r9d
mov rcx, rbx
mov rdx, qword [0x00509010]
lea r8, str.client
mov rsi, qword [0x00527360]
call rsi
mov dword [rsp + 0x20], 0xffffffff
xor r9d, r9d
mov rcx, r12
mov rdx, qword [0x00509010]
lea r8, [0x004a0d01]
call rsi
mov dword [rsp + 0x20], 0
mov r9d, 0x400
mov r8, rbx
mov rdx, r12
mov rcx, rbp
call qword [0x00527698]
mov rcx, r12
call fcn.00491270
mov rcx, rbx
call fcn.00491270
jmp 0x43f98c
mov rcx, qword [rdx + 0x10]
mov rax, rdx
cmp rcx, 0x18
jne 0x43f858
jmp 0x43f879
lea r13, [rsp + 0x70]
lea rdi, [rsp + 0x68]
jmp 0x43f57e