Function at 0x140056300
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov r15, r9
mov r14, r8
mov rdi, rcx
mov r10, qword [rsp + 0xc8]
test dl, dl
je 0x140056344
mov ecx, dword [rdi + 0x34]
mov eax, ecx
and eax, 1
mov edx, 0x110000
mov ebp, 0x2b
cmove ebp, edx
add rax, r10
test cl, 4
jne 0x1400563c0
jmp 0x1400563b5
lea rax, [r10 + 1]
nop dword [rax + rax]
mov ecx, dword [0x141f34fc0]
and ecx, dword [0x141f34fc4]
and ecx, 0xc166aefe
add ecx, 0x7004fe2c
cmp ecx, 0xc0d04376
ja 0x140056350
mov ecx, 0xb64b9cef
nop word cs:[rax + rax]
mov edx, dword [0x141f34fc8]
xor edx, dword [0x141f34fcc]
and edx, 0xc6b53327
imul rdx, rcx
shr rdx, 0x3f
or edx, 0x52551efa
cmp edx, 0x6406cb
jbe 0x140056380
mov ecx, dword [rdi + 0x34]
mov ebp, 0x2d
test cl, 4
jne 0x1400563c0
xor r14d, r14d
jmp 0x140056540
mov edx, dword [0x141f34fd0]
add edx, dword [0x141f34fd4]
imul rdx, rdx, 0x57d189b9
shr rdx, 0x3e
cmp edx, 0xc6749928
je 0x1400563c0
nop
mov edx, dword [0x141f34fd8]
or edx, dword [0x141f34fdc]
or edx, 0x1147d2ee
imul rdx, rdx, 0x6d90742d
shr rdx, 0x3e
or edx, 0x2238156
cmp edx, 0x72d076f1
ja 0x1400563e0
test r15, r15
je 0x140056457
mov edx, 0x842b5da3
nop word cs:[rax + rax]
mov r8d, dword [0x141f34fe0]
imul r8d, dword [0x141f34fe4]
imul r8, rdx
shr r8, 0x3e
imul r8d, r8d, 0x430a502f
cmp r8d, 0x10254354
ja 0x140056420
cmp r15, 4
jae 0x14005645f
xor r8d, r8d
xor edx, edx
jmp 0x140056500
xor r8d, r8d
jmp 0x140056537
mov rdx, r15
and rdx, 0xfffffffffffffffc
xor r8d, r8d
nop dword [rax]
test r8b, r8b
jne 0x140056470
pxor xmm0, xmm0
xor r8d, r8d
movdqa xmm2, xmmword [0x140108720]
movdqa xmm3, xmmword [0x140108730]
pxor xmm1, xmm1
movzx r9d, word [r14 + r8]
movd xmm4, r9d
movzx r9d, word [r14 + r8 + 2]
movd xmm5, r9d
pcmpgtb xmm4, xmm2
punpcklbw xmm4, xmm4
pshuflw xmm4, xmm4, 0xd4
pshufd xmm4, xmm4, 0xd4
pand xmm4, xmm3
paddq xmm0, xmm4
pcmpgtb xmm5, xmm2
punpcklbw xmm5, xmm5
pshuflw xmm4, xmm5, 0xd4
pshufd xmm4, xmm4, 0xd4
pand xmm4, xmm3
paddq xmm1, xmm4
add r8, 4
cmp rdx, r8
jne 0x140056490
paddq xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq r8, xmm0
cmp rdx, r15
je 0x140056537
nop dword [rax]
mov r9d, dword [0x141f34fe8]
sub r9d, dword [0x141f34fec]
imul r9d, r9d, 0xbee99de6
cmp r9d, 0x2401d538
je 0x140056500
nop
xor r9d, r9d
cmp byte [r14 + rdx], 0xc0
setge r9b
add r8, r9
inc rdx
cmp r15, rdx
jne 0x140056520
add rax, r8
nop word [rax + rax]
mov edx, dword [0x141f34ff0]
or edx, dword [0x141f34ff4]
and edx, 0x7861da9e
imul rdx, rdx, 0x4a130da5
shr rdx, 0x3d
add edx, 0xd481061d
cmp edx, 0x562e573e
jb 0x140056540
cmp qword [rdi], 0
je 0x140056640
nop word cs:[rax + rax]
mov edx, dword [0x141f35010]
xor edx, dword [0x141f35014]
or edx, 0x7eeea122
imul rdx, rdx, 0x738e8375
shr rdx, 0x3c
imul edx, edx, 0x59c3e1e0
cmp edx, 0x224b855b
jb 0x140056580
xor edx, edx
nop dword [rax]
test dl, dl
jne 0x1400565b0
mov rbx, qword [rdi + 8]
sub rbx, rax
jbe 0x14005676a
nop word cs:[rax + rax]
mov eax, dword [0x141f35030]
xor edx, edx
div dword [0x141f35034]
cmp eax, 0xf2bb6616
je 0x1400565d0
test cl, 8
jne 0x140056836
mov eax, dword [0x141f35040]
xor edx, edx
div dword [0x141f35044]
nop dword [rax]
mov eax, dword [0x141f35048]
xor edx, edx
div dword [0x141f3504c]
cmp eax, 0xdbb91051
je 0x140056600
movzx eax, byte [rdi + 0x38]
lea rcx, [0x141f2660c]
movsxd rdx, dword [rcx + rax*4]
add rdx, rcx
jmp rdx
mov eax, dword [0x141f34ff8]
imul eax, dword [0x141f34ffc]
add eax, 0x39401c5f
or eax, 0x4fa41cff
add eax, 0x6b13618c
cmp eax, 0x12f8f086
jb 0x140056640
mov eax, dword [0x141f35000]
xor edx, edx
div dword [0x141f35004]
imul eax, eax, 0x693e30d
or eax, 0x860bac58
add eax, 0x50237fa6
cmp eax, 0x1a936949
jae 0x1400566a0
mov rcx, qword [rdi + 0x20]
mov rdx, qword [rdi + 0x28]
mov qword [rsp + 0x20], r15
mov r8d, ebp
mov r9, r14
call fcn.140056e90
mov esi, 0xdd2d3aaf
nop word cs:[rax + rax]
mov ebx, dword [0x141f35008]
or ebx, dword [0x141f3500c]
imul rbx, rsi
shr rbx, 0x3f
add ebx, 0xbd165ce5
xor ebx, 0x4adff85d
mov r12, qword [rdi + 0x20]
mov r13, qword [rdi + 0x28]
mov qword [rsp + 0x20], r15
mov rcx, r12
mov rdx, r13
mov r8d, ebp
mov r9, r14
call fcn.140056e90
cmp ebx, 0x24d88557
jb 0x1400566b0
mov bpl, 1
test al, al
jne 0x140056e26
mov r14, qword [rsp + 0xc0]
nop dword [rax]
mov eax, dword [0x141f35018]
imul eax, dword [0x141f3501c]
or eax, 0x18948a98
add eax, 0x4b19244
or eax, 0xe168061b
cmp eax, 0x3f22659d
jb 0x140056710
mov rsi, qword [r13 + 0x18]
mov eax, dword [0x141f35020]
or eax, dword [0x141f35024]
xor eax, 0x79d5ffb3
add eax, 0xd0499afd
xor eax, 0x4cc7d27
cmp eax, 0xaba0c6ec
mov rbx, qword [rsp + 0xc8]
jbe 0x140056dde
jmp 0x140056e17
mov rbx, r10
nop dword [rax]
mov eax, dword [0x141f35038]
or eax, dword [0x141f3503c]
or eax, 0x79cbab47
add eax, 0x58d710bf
or eax, 0x97e2712
cmp eax, 0x864f3b6f
ja 0x140056770
mov r12, qword [rdi + 0x20]
mov rdi, qword [rdi + 0x28]
mov qword [rsp + 0x20], r15
mov rcx, r12
mov rdx, rdi
mov r8d, ebp
mov r9, r14
call fcn.140056e90
mov bpl, 1
test al, al
jne 0x140056e26
nop dword [rax + rax]
mov eax, dword [0x141f35118]
and eax, dword [0x141f3511c]
cmp eax, 0x8a298988
je 0x1400567c0
mov eax, dword [0x141f35120]
or eax, dword [0x141f35124]
imul eax, eax, 0x4e20251d
add eax, 0x81aa6bf7
shr eax, 2
imul rax, rax, 0x13f13f41
shr rax, 0x3a
cmp eax, 0x20ff1ab3
mov r14, qword [rsp + 0xc0]
jbe 0x140056813
mov rcx, r12
mov rdx, r14
mov r8, rbx
call qword [rdi + 0x18]
xor esi, esi
nop word cs:[rax + rax]
mov rcx, r12
mov rdx, r14
mov r8, rbx
call qword [rdi + 0x18]
test sil, sil
jne 0x140056820
jmp 0x140056e24
mov eax, dword [rdi + 0x30]
mov dword [rsp + 0x38], eax
mov dword [rdi + 0x30], 0x30
movzx eax, byte [rdi + 0x38]
mov byte [rsp + 0x40], al
mov byte [rdi + 0x38], 1
mov r12, qword [rdi + 0x20]
mov eax, dword [0x141f35080]
xor eax, dword [0x141f35084]
mov r13, qword [rdi + 0x28]
xor eax, 0x8122e07e
imul eax, eax, 0x6405ec71
cmp eax, 0x469d97d3
jae 0x14005688c
mov qword [rsp + 0x20], r15
mov rcx, r12
mov rdx, r13
mov r8d, ebp
mov r9, r14
call fcn.140056e90
mov esi, ebp
nop
mov eax, dword [0x141f35088]
xor edx, edx
div dword [0x141f3508c]
imul eax, eax, 0x1a81ea87
and eax, 0xcbec07b7
imul ebp, eax, 0xeba1f347
mov qword [rsp + 0x20], r15
mov rcx, r12
mov rdx, r13
mov r8d, esi
mov r9, r14
call fcn.140056e90
cmp ebp, 0x7ccfa80b
je 0x140056890
nop dword [rax]
mov ecx, dword [0x141f35090]
mov edx, dword [0x141f35094]
add ecx, edx
add ecx, 0x6160aefd
xor ecx, 0x7b552ddb
add ecx, 0xec1dc44e
cmp ecx, 0x22b6abb3
jb 0x1400568d0
mov bpl, 1
test al, al
jne 0x140056e26
mov eax, dword [0x141f350d0]
xor edx, edx
div dword [0x141f350d4]
nop word cs:[rax + rax]
mov eax, dword [0x141f350d8]
or eax, dword [0x141f350dc]
or eax, 0x23e8c90d
add eax, 0x6c407fcd
imul rax, rax, 0x18304ee1
shr rax, 0x3c
cmp eax, 0x5fe64645
je 0x140056920
nop dword [rax + rax]
mov eax, dword [0x141f350e0]
imul eax, dword [0x141f350e4]
xor eax, 0x5b90ba80
cmp eax, 0x1e187a45
jb 0x140056950
xor eax, eax
nop dword [rax + rax]
test al, al
jne 0x140056970
xor r14d, r14d
mov r15d, 0xa5df43cf
nop dword [rax]
cmp r14, rbx
je 0x140056d4d
nop dword [rax]
mov eax, dword [0x141f350e8]
xor edx, edx
div dword [0x141f350ec]
imul rax, rax, 0x39519753
shr rax, 0x3c
or eax, 0x10f5358c
cmp eax, 0x88e324fc
ja 0x140056990
inc r14
nop dword [rax + rax]
mov eax, dword [0x141f350f0]
imul eax, dword [0x141f350f4]
imul rax, r15
shr rax, 0x3e
add eax, 0xd9a524f2
or eax, 0xaa44b4e1
cmp eax, 0xdbdb39c4
jb 0x1400569c0
mov rcx, r12
mov edx, 0x30
call qword [r13 + 0x20]
test al, al
je 0x140056980
jmp 0x140056e26
mov rcx, r12
mov rdx, qword [rsp + 0xc0]
mov r8, qword [rsp + 0xc8]
call qword [r13 + 0x18]
nop word cs:[rax + rax]
mov ecx, dword [0x141f350f8]
add ecx, dword [0x141f350fc]
xor ecx, 0x4240
or ecx, 0xefdc35bf
cmp ecx, 0x1f7875fd
jb 0x140056d70
test al, al
jne 0x140056e26
mov eax, dword [rsp + 0x38]
mov dword [rdi + 0x30], eax
mov eax, dword [0x141f35100]
xor edx, edx
div dword [0x141f35104]
mov ecx, 0xeaaa2905
imul rcx, rax
shr rcx, 0x3f
add ecx, 0x268d1ec3
cmp ecx, 0x6ee2a2c4
movzx ecx, byte [rsp + 0x40]
jbe 0x140056e39
jmp 0x140056e59
mov eax, dword [0x141f35028]
imul eax, dword [0x141f3502c]
or eax, 0x45b3039f
imul eax, eax, 0xbb91117e
shr eax, 3
imul rdi, rax, 0x22d3433
shr rdi, 0x35
mov rcx, r12
mov rdx, r14
mov r8, rbx
call rsi
cmp edi, 0x2600a70
jbe 0x140056e24
mov rcx, r12
mov rdx, r14
mov r8, rbx
call rsi
jmp 0x140056dde
mov ebp, eax
mov eax, ebp
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [0x141f35108]
or eax, dword [0x141f3510c]
add eax, 0x7a086949
and eax, 0x50040810
mov byte [rdi + 0x38], cl
cmp eax, 0x88398c8e
jne 0x140056e5e
mov byte [rdi + 0x38], cl
jmp 0x140056e39
xor ebp, ebp
mov eax, dword [0x141f35110]
or eax, dword [0x141f35114]
xor eax, 0x2382dfb
imul eax, eax, 0xc317f399
or eax, 0xf48b8fd8
cmp eax, 0xee761831
je 0x140056e60
jmp 0x140056e26