Function at 0x1400524f0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r15, r9
mov r14, r8
mov rbx, rcx
nop dword [rax]
mov eax, dword [0x141dc7d90]
sub eax, dword [0x141dc7d94]
add eax, 0x38a9f816
and eax, 0xfca091fc
cmp eax, 0xdb12363
je 0x140052510
test dl, dl
je 0x1400525a5
mov ecx, dword [rbx + 0x34]
mov r8d, ecx
and r8d, 1
mov eax, 0x110000
mov edx, dword [0x141dc7da0]
add edx, dword [0x141dc7da4]
imul edx, edx, 0x26727000
add edx, 0x13c38000
test r8d, r8d
mov ebp, 0x2b
cmove ebp, eax
cmp edx, 0xa11ccd3a
jb 0x140052540
add r8, qword [rsp + 0xb8]
nop word cs:[rax + rax]
mov eax, dword [0x141dc7da8]
sub eax, dword [0x141dc7dac]
and eax, 0x8a061000
or eax, 0x14f8cdb3
imul eax, eax, 0x71ee0119
cmp eax, 0xdd60d0a3
ja 0x140052580
jmp 0x1400525f0
mov rax, qword [rsp + 0xb8]
lea r8, [rax + 1]
nop word cs:[rax + rax]
mov eax, dword [0x141dc7d98]
or eax, dword [0x141dc7d9c]
imul eax, eax, 0xeca2ca2c
or eax, 0xda18a13a
imul eax, eax, 0xd309bd22
cmp eax, 0x4d726011
jb 0x1400525c0
mov ecx, dword [rbx + 0x34]
mov ebp, 0x2d
nop dword [rax]
mov eax, dword [0x141dc7db0]
xor edx, edx
div dword [0x141dc7db4]
imul eax, eax, 0xed08ec4d
add eax, 0x77717944
shr eax, 2
imul rax, rax, 0x4c4085ff
shr rax, 0x3b
cmp eax, 0x6ed95f14
je 0x1400525f0
test cl, 4
jne 0x14005262b
xor r14d, r14d
jmp 0x140052830
test r15, r15
je 0x14005268a
mov eax, dword [0x141dc7db8]
imul eax, dword [0x141dc7dbc]
imul rax, rax, 0x2f469ad9
shr rax, 0x3c
imul eax, eax, 0x960b674b
and eax, 0xa49082cf
cmp eax, 0xd913c702
ja 0x140052630
nop word [rax + rax]
mov eax, dword [0x141dc7dc0]
xor eax, dword [0x141dc7dc4]
imul eax, eax, 0xc289220
cmp eax, 0xfd955446
ja 0x140052660
cmp r15, 4
jae 0x140052692
xor r10d, r10d
xor r9d, r9d
jmp 0x1400527b0
xor r10d, r10d
jmp 0x140052822
mov eax, 0xeeadca35
mov r9, r15
and r9, 0xfffffffffffffffc
nop
mov edx, dword [0x141dc7dc8]
imul edx, dword [0x141dc7dcc]
imul edx, edx, 0xcc88cdfb
or edx, 0xdd3513f2
imul rdx, rax
shr rdx, 0x3e
cmp edx, 0xb85c2429
je 0x1400526a0
nop dword [rax]
mov eax, dword [0x141dc7dd0]
sub eax, dword [0x141dc7dd4]
or eax, 0xc3a562de
and eax, 0xe7b5e6de
cmp eax, 0x3066c81b
jb 0x1400526d0
mov r10, r15
and r10, 0xfffffffffffffffc
pxor xmm0, xmm0
xor r11d, r11d
movdqa xmm2, xmmword [0x140102720]
movdqa xmm3, xmmword [0x140102730]
pxor xmm1, xmm1
nop
mov eax, dword [0x141dc7dd8]
xor edx, edx
div dword [0x141dc7ddc]
mov eax, dword [0x141dc7de0]
add eax, dword [0x141dc7de4]
and eax, 0x833dae63
imul eax, eax, 0x74221d28
add eax, 0xffccbe09
cmp eax, 0xb71045d4
ja 0x14005271e
movzx eax, word [r14 + r11]
movzx edx, word [r14 + r11 + 2]
lea rsi, [r11 + 4]
movd xmm4, eax
movd xmm5, edx
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
mov r11, rsi
cmp r10, rsi
jne 0x140052710
paddq xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq r10, xmm0
cmp r9, r15
je 0x140052822
nop
mov eax, dword [0x141dc7de8]
xor edx, edx
div dword [0x141dc7dec]
imul eax, eax, 0x17e64434
xor eax, 0xa2900400
or eax, 0x5c651972
cmp eax, 0xb15ff801
je 0x1400527b0
nop word cs:[rax + rax]
mov eax, dword [0x141dc7df0]
imul eax, dword [0x141dc7df4]
imul r11d, eax, 0xbce51196
add r11d, 0xd69c379
and r11d, 0x71a1e9bc
xor eax, eax
cmp byte [r14 + r9], 0xc0
setge dl
cmp r11d, 0xe693b02
ja 0x1400527e0
mov al, dl
add r10, rax
inc r9
cmp r15, r9
jne 0x1400527e0
add r8, r10
nop word cs:[rax + rax]
mov eax, dword [0x141dc7df8]
imul eax, dword [0x141dc7dfc]
add eax, 0x838585f1
or eax, 0xe2e67e88
cmp eax, 0x4807127
jb 0x140052830
cmp qword [rbx], 0
je 0x140052930
nop dword [rax + rax]
mov eax, dword [0x141dc7e18]
sub eax, dword [0x141dc7e1c]
xor eax, 0x58907510
or eax, 0xa50708ed
cmp eax, 0xc19dde97
jb 0x140052860
mov rdi, qword [rbx + 8]
sub rdi, r8
jbe 0x140052a55
nop word [rax + rax]
mov eax, dword [0x141dc7e38]
or eax, dword [0x141dc7e3c]
xor eax, 0x26402641
or eax, 0x91bbc19c
cmp eax, 0x81281592
je 0x140052890
nop dword [rax]
mov eax, dword [0x141dc7e40]
add eax, dword [0x141dc7e44]
xor eax, 0x210c0102
and eax, 0x354c654e
add eax, 0x1f48b47d
cmp eax, 0xfadc5424
ja 0x1400528b0
test cl, 8
jne 0x140052b9c
nop dword [rax + rax]
mov eax, dword [0x141dc7e60]
and eax, dword [0x141dc7e64]
and eax, 0x50060070
add eax, 0x33a2ad14
cmp eax, 0xc10e23be
ja 0x1400528e0
movzx eax, byte [rbx + 0x38]
cmp rax, 3
ja case.default.0x140052919
lea rcx, [0x141dba10c]
movsxd rdx, dword [rcx + rax*4]
add rdx, rcx
jmp rdx
xor eax, eax
mov qword [rsp + 0x38], rax
jmp 0x140052ea9
mov eax, dword [0x141dc7e00]
xor edx, edx
div dword [0x141dc7e04]
xor eax, 0x4e2f85ae
imul eax, eax, 0xf6ef76c0
and eax, 0x4be5be40
cmp eax, 0xa1e7aaad
ja 0x140052930
mov r12, qword [rbx + 0x20]
mov eax, dword [0x141dc7e08]
xor edx, edx
div dword [0x141dc7e0c]
xor eax, 0x20cdad09
mov ecx, 0xe7a7a665
imul rcx, rax
shr rcx, 0x3c
cmp ecx, 0x6abadb48
jne 0x1400529a0
mov rdx, qword [rbx + 0x28]
mov qword [rsp + 0x20], r15
mov rcx, r12
mov r8d, ebp
mov r9, r14
call fcn.140053190
nop dword [rax + rax]
mov eax, dword [0x141dc7e10]
and eax, dword [0x141dc7e14]
imul esi, eax, 0x26dec1c
add esi, 0x12a0f91c
mov r13, qword [rbx + 0x28]
mov qword [rsp + 0x20], r15
mov rcx, r12
mov rdx, r13
mov r8d, ebp
mov r9, r14
call fcn.140053190
cmp esi, 0x542360f0
jb 0x1400529a0
mov bpl, 1
test al, al
jne 0x140052b40
mov eax, dword [0x141dc7e20]
xor edx, edx
div dword [0x141dc7e24]
mov r8, qword [rsp + 0xb8]
mov r9, qword [rsp + 0xb0]
nop word cs:[rax + rax]
mov eax, dword [0x141dc7e28]
and eax, dword [0x141dc7e2c]
and eax, 0x5a020040
xor eax, 0x697d792b
cmp eax, 0xb48aa409
ja 0x140052a10
nop dword [rax]
mov eax, dword [0x141dc7e30]
xor edx, edx
div dword [0x141dc7e34]
and eax, 0x8da429a9
cmp eax, 0xab6a0b02
je 0x140052a30
mov rcx, r12
mov rdx, r9
jmp 0x140052b2e
mov r12, qword [rbx + 0x20]
mov eax, dword [0x141dc7e48]
and eax, dword [0x141dc7e4c]
add eax, 0x44b0c325
mov ecx, 0xa0ba9889
imul rcx, rax
shr rcx, 0x3e
cmp ecx, 0x8506f5bc
jbe 0x140052a96
mov rdx, qword [rbx + 0x28]
mov qword [rsp + 0x20], r15
mov rcx, r12
mov r8d, ebp
mov r9, r14
call fcn.140053190
mov esi, 0xde5f9d01
nop dword [rax + rax]
mov edi, dword [0x141dc7e50]
and edi, dword [0x141dc7e54]
imul rdi, rsi
shr rdi, 0x3f
xor edi, 0xec2c2b5d
mov r13, qword [rbx + 0x28]
mov qword [rsp + 0x20], r15
mov rcx, r12
mov rdx, r13
mov r8d, ebp
mov r9, r14
call fcn.140053190
cmp edi, 0xacd1dae4
jb 0x140052aa0
nop dword [rax]
mov ecx, dword [0x141dc7e58]
and ecx, dword [0x141dc7e5c]
add ecx, 0x8d047821
or ecx, 0x78e8373a
imul rdx, rcx, 0x28e4dcab
shr rdx, 0x20
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 0x1f
cmp ecx, 0xaeac64d0
je 0x140052ae0
mov bpl, 1
test al, al
jne 0x140052b40
mov rcx, r12
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0xb8]
and al, 0xb8
add byte [rax], al
invalid
call qword [r13 + 0x18]
mov ebp, eax
nop word cs:[rax + rax]
mov eax, dword [0x141dc7f40]
add eax, dword [0x141dc7f44]
or eax, 0xfbbb7fb2
imul eax, eax, 0xe9986399
cmp eax, 0x52cd37ab
jb 0x140052b40
mov eax, ebp
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [0x141dc7e68]
add eax, dword [0x141dc7e6c]
xor eax, 0x4c98062f
imul eax, eax, 0xf143d041
imul rax, rax, 0x15214207
shr rax, 0x3c
cmp eax, 0x37abfc43
je case.default.0x140052919
ud2
xor eax, eax
nop
test al, al
jne 0x140052ba0
mov eax, dword [rbx + 0x30]
mov dword [rsp + 0x28], eax
mov dword [rbx + 0x30], 0x30
movzx eax, byte [rbx + 0x38]
mov byte [rsp + 0x40], al
mov byte [rbx + 0x38], 1
mov r13, qword [rbx + 0x20]
mov r12, qword [rbx + 0x28]
mov qword [rsp + 0x20], r15
mov rcx, r13
mov rdx, r12
mov r8d, ebp
mov r9, r14
call fcn.140053190
mov bpl, 1
test al, al
jne 0x140052b40
mov rdx, qword [rsp + 0xb0]
nop
mov eax, dword [0x141dc7ed8]
sub eax, dword [0x141dc7edc]
and eax, 0x6eaf9507
imul eax, eax, 0x9861d4fc
and eax, 0x58edf3a4
cmp eax, 0x6f27c41c
ja 0x140052bf0
xor r14d, r14d
nop word cs:[rax + rax]
mov eax, dword [0x141dc7ee0]
mov ecx, dword [0x141dc7ee4]
add eax, ecx
add eax, 0xe9685b04
and eax, 0x3da23a28
cmp eax, 0x86f18750
ja 0x140052c20
nop
cmp r14, rdi
je 0x140052d07
nop dword [rax]
mov eax, dword [0x141dc7ee8]
imul eax, dword [0x141dc7eec]
and eax, 0xc004000
add eax, 0x6b29f71e
cmp eax, 0x41b6ad66
jb 0x140052c50
inc r14
mov eax, dword [0x141dc7ef0]
and eax, dword [0x141dc7ef4]
or eax, 0x5ba44ba7
and eax, 0x5fec5ba7
cmp eax, 0xe7e6db5a
ja 0x140052c71
mov r15, qword [r12 + 0x20]
mov eax, dword [0x141dc7ef8]
or eax, dword [0x141dc7efc]
add eax, 0x146e29dd
xor eax, 0xcca68865
add eax, 0x69025106
cmp eax, 0x20f75118
jae 0x140052cc0
mov rcx, r13
mov edx, 0x30
call r15
mov eax, dword [0x141dc7f00]
xor edx, edx
div dword [0x141dc7f04]
imul eax, eax, 0x497a2cdd
and eax, 0x7f8caf9a
imul esi, eax, 0xaabb9884
mov rcx, r13
mov edx, 0x30
call r15
cmp esi, 0xb56585c
ja 0x140052cc0
test al, al
mov rdx, qword [rsp + 0xb0]
je 0x140052c40
jmp 0x140052b40
mov r8, qword [rsp + 0xb8]
nop
mov eax, dword [0x141dc7f08]
sub eax, dword [0x141dc7f0c]
imul eax, eax, 0x9b55e42f
xor eax, 0x7e38ce04
cmp eax, 0x177d629d
jb 0x140052d10
mov rcx, r13
call qword [r12 + 0x18]
nop word cs:[rax + rax]
mov ecx, dword [0x141dc7f10]
or ecx, dword [0x141dc7f14]
add ecx, 0x9bcc68de
imul rcx, rcx, 0x4d6e5b81
shr rcx, 0x3c
cmp ecx, 0x1ab8a9c0
je 0x140052d40
test al, al
jne 0x140052b40
mov eax, dword [0x141dc7f18]
xor eax, dword [0x141dc7f1c]
or eax, 0x20810c
and eax, 0xa521f70c
add eax, 0xad170af8
cmp eax, 0xb18957ae
mov edx, dword [rsp + 0x28]
jbe 0x140052d96
mov dword [rbx + 0x30], edx
movzx ecx, byte [rsp + 0x40]
nop dword [rax + rax]
mov eax, dword [0x141dc7f20]
xor eax, dword [0x141dc7f24]
add eax, 0xcd983745
or eax, 0x5393ccc8
add eax, 0x7684eafd
mov dword [rbx + 0x30], edx
cmp eax, 0xe8d1ff88
ja 0x140052da0
mov eax, dword [0x141dc7f28]
and eax, dword [0x141dc7f2c]
or eax, 0x1c414490
and eax, 0xbd6bc690
imul rax, rax, 0x114255e1
shr rax, 0x3a
cmp eax, 0xccad1f8b
jbe 0x140052df0
mov byte [rbx + 0x38], cl
mov eax, dword [0x141dc7f30]
imul eax, dword [0x141dc7f34]
xor eax, 0x79152b6
imul eax, eax, 0xdcdc758d
add eax, 0xa504a940
mov byte [rbx + 0x38], cl
cmp eax, 0xf1d61b53
ja 0x140052df0
xor ebp, ebp
nop dword [rax]
mov eax, dword [0x141dc7f38]
or eax, dword [0x141dc7f3c]
add eax, 0x1d75110
add eax, 0x3f36eb87
or eax, 0x4f9ad2c3
and eax, 0xdffed3e7
cmp eax, 0xf36d9ad1
ja 0x140052e20
jmp 0x140052b40
mov rax, rdi
shr rax, 1
inc rdi
mov ecx, dword [0x141dc7e70]
imul ecx, dword [0x141dc7e74]
or ecx, 0x40a04c23
and ecx, 0x41a0fe27
add ecx, 0x1a994c36
cmp ecx, 0x81a0777f
ja 0x140052e50
shr rdi, 1
nop word [rax + rax]
mov ecx, dword [0x141dc7e78]
imul ecx, dword [0x141dc7e7c]
xor ecx, 0x400
or ecx, 0xbdebfbfd
cmp ecx, 0x7598e4c4
jb 0x140052e80
mov qword [rsp + 0x38], rdi
mov rdi, rax
mov rax, qword [rbx + 0x20]
mov qword [rsp + 0x28], rax
mov r13, qword [rbx + 0x28]
mov eax, dword [rbx + 0x30]
mov dword [rsp + 0x34], eax
inc rdi
jmp 0x140052ee3
test al, al
mov r13, rbx
mov r15, r12
mov rdi, qword [rsp + 0x40]
jne 0x140053054
dec rdi
je 0x140052f89
mov qword [rsp + 0x40], rdi
mov r12, r15
mov eax, dword [0x141dc7e80]
xor eax, dword [0x141dc7e84]
xor eax, 0x10100810
or eax, 0x6e8b52cf
imul eax, eax, 0xd1c1cb4d
cmp eax, 0x702762e9
ja 0x140052ef4
mov rbx, r13
mov rsi, qword [r13 + 0x20]
mov eax, dword [0x141dc7e88]
xor eax, dword [0x141dc7e8c]
xor eax, 0xb886946b
imul eax, eax, 0xf12cdb5f
add eax, 0x277dd588
cmp eax, 0xd5e092b6
mov r15d, dword [rsp + 0x34]
mov rdi, qword [rsp + 0x28]
ja 0x140052f7f
nop dword [rax + rax]
mov eax, dword [0x141dc7e90]
add eax, dword [0x141dc7e94]
imul r13d, eax, 0x7ac97c01
and r13d, 0x8f5e8b44
mov rcx, rdi
mov edx, r15d
call rsi
cmp r13d, 0xf17c3599
jbe 0x140052ed0
mov rcx, rdi
mov edx, r15d
call rsi
jmp 0x140052f50
mov eax, dword [0x141dc7e98]
and eax, dword [0x141dc7e9c]
or eax, 0x598ec88a
add eax, 0xc26597b9
imul rax, rax, 0x4e89fb0b
shr rax, 0x3e
cmp eax, 0x5fed8a02
mov rbx, qword [rsp + 0x28]
jbe 0x140052fd0
mov qword [rsp + 0x20], r15
mov rcx, rbx
mov rdx, r13
mov r8d, ebp
mov r9, r14
call fcn.140053190
nop dword [rax]
mov eax, dword [0x141dc7ea0]
add eax, dword [0x141dc7ea4]
or eax, 0xd7202f5e
add eax, 0xcef5439
imul rsi, rax, 0x3b8d8827
shr rsi, 0x3d
mov qword [rsp + 0x20], r15
mov rcx, rbx
mov rdx, r13
mov r8d, ebp
mov r9, r14
call fcn.140053190
cmp esi, 0xcb487538
je 0x140052fd0
mov bpl, 1
test al, al
jne 0x140052b40
xor eax, eax
nop dword [rax]
test al, al
jne 0x140053020
mov rsi, qword [r13 + 0x18]
mov eax, dword [0x141dc7ea8]
xor edx, edx
div dword [0x141dc7eac]
xor eax, 0xbe7f1313
cmp eax, 0x32c24411
mov r14, qword [rsp + 0xb8]
mov r15, qword [rsp + 0xb0]
jae 0x14005305c
jmp 0x140053087
mov bpl, 1
jmp 0x140052b40
mov eax, dword [0x141dc7eb0]
or eax, dword [0x141dc7eb4]
imul edi, eax, 0x5563f163
add edi, 0x8de8d24c
mov rcx, rbx
mov rdx, r15
mov r8, r14
call rsi
cmp edi, 0xe34a6afa
jbe 0x1400530a0
mov rcx, rbx
mov rdx, r15
mov r8, r14
call rsi
jmp 0x14005305c
mov ecx, dword [0x141dc7eb8]
or ecx, dword [0x141dc7ebc]
add ecx, 0x6383531
and ecx, 0x4c01c011
add ecx, 0x8f2df021
cmp ecx, 0x79db896e
jb 0x1400530a0
test al, al
jne 0x140052b40
nop
mov eax, dword [0x141dc7ec0]
imul eax, dword [0x141dc7ec4]
add eax, 0x555111dd
and eax, 0x2d9f41c5
xor eax, 0x560b4681
cmp eax, 0x8c0bfef4
ja 0x1400530d0
mov r15, qword [rsp + 0x38]
mov rdi, r15
neg rdi
mov rsi, 0xffffffffffffffff
xor r14d, r14d
mov ebx, dword [rsp + 0x34]
nop dword [rax]
lea rax, [rdi + rsi]
cmp rax, 0xffffffffffffffff
je 0x140053179
mov eax, dword [0x141dc7ec8]
xor eax, dword [0x141dc7ecc]
imul eax, eax, 0xa1260215
cmp eax, 0x94f59137
je 0x14005311a
nop word cs:[rax + rax]
mov eax, dword [0x141dc7ed0]
sub eax, dword [0x141dc7ed4]
and eax, 0xd091704
xor eax, 0x81480345
or eax, 0x32b620ba
cmp eax, 0xcb52fe49
je 0x140053140
mov rcx, qword [rsp + 0x28]
mov edx, ebx
call qword [r13 + 0x20]
inc rsi
inc r14
test al, al
je 0x140053110
jmp 0x14005317c
mov rsi, r15
cmp rsi, r15
setb bpl
jmp 0x140052b40