Function at 0x201142d0
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 r12, r9
mov rbp, r8
mov r14, rdx
mov rdi, rcx
mov r13d, dword [rsp + 0xb8]
mov rbx, qword [rsp + 0xb0]
mov eax, r13d
and eax, 0x3f
cmp eax, 0x11
jae 0x2011435e
mov dword [rsp + 0x24], 0
cmp eax, 6
ja 0x201146cd
cmp eax, 2
jbe 0x20114401
cmp eax, 3
jne 0x20114433
mov rcx, rdi
call fcn.200799c0
test r12d, r12d
je 0x2011464c
test r13d, 0x100
jne 0x20114ba1
mov rcx, rdi
call fcn.20077cc0
test r13b, r13b
jns 0x20114416
jmp 0x20114af4
mov dword [rsp + 0x24], 0
mov r15, r14
mov r14, rdi
jmp 0x2011437f
mov eax, r13d
and eax, 0x1b
mov r12, r15
mov r15, r14
mov r14, rcx
cmp eax, 0x19
ja 0x201143d0
cmp eax, 0x13
jbe 0x20114443
cmp eax, 0x15
jbe 0x201144b8
cmp eax, 0x16
je 0x201144d3
cmp eax, 0x17
ja 0x2011452b
mov rax, rbx
sub rax, r15
test byte [rsp + 0x24], 1
cmove rsi, rbx
mov cl, 1
mov dword [rsp + 0x24], ecx
mov r13d, 0x1e1be51b
mov rbx, rax
jmp 0x20114370
cmp eax, 0x1a
je 0x2011446b
cmp eax, 0x1e
jbe 0x20114484
cmp eax, 0x21
jae 0x201144fb
cmp eax, 0x1f
je 0x20114543
mov ecx, ebx
mov r13d, 0xc8b26151
jmp 0x20114370
test eax, eax
je 0x2011443c
cmp eax, 2
jne 0x20114551
test ebp, ebp
je 0x20114691
mov rcx, r14
call fcn.20077cc0
test r13d, 0x200
mov rbp, r14
je 0x20114ead
jmp 0x20114f00
cmp eax, 5
jae 0x20114579
xor ebp, ebp
jmp 0x20114f00
cmp eax, 0x11
je 0x2011467c
cmp eax, 0x13
je 0x201147c3
xor eax, eax
test byte [rsp + 0x24], 1
cmove rsi, rax
mov al, 1
mov dword [rsp + 0x24], eax
jmp 0x201145bd
lea rdx, [0x205723c0]
mov r8d, 0x9990e25c
call fcn.201131e0
xor ebp, ebp
jmp 0x20114f00
cmp eax, 0x1c
jbe 0x201145b4
cmp eax, 0x1e
jne 0x201146b5
nop
mov rcx, qword [rbp + 8]
test rcx, rcx
sete dl
movzx eax, byte [0x20513fc2]
cmp al, 0x64
jne 0x201149c3
mov rdi, r14
jmp 0x20114653
mov ebp, 0xffffffff
cmp eax, 0x14
jne 0x20114f00
lock inc dword [r12 + 8]
xor ebp, ebp
jmp 0x20114f00
nop
mov rax, qword [rbx + 0x38]
mov rcx, qword [rax]
test rcx, rcx
je 0x20114672
nop
mov rdx, qword [rbx + 0x50]
cmp dword [rdx], 0
jle 0x20114936
nop
movzx edi, byte [rcx]
jmp 0x20114af4
jne 0x201145cf
xor edi, edi
xor eax, eax
sub eax, dword [r14 - 4]
cdqe
lea rbp, [r14 + rax]
add rbp, 0xffffffffffffff78
mov rcx, rbp
call fcn.201109d0
test ebx, ebx
jne 0x20114ae1
jmp 0x20114f00
cmp eax, 0x19
jne 0x2011463d
mov rcx, r14
call fcn.200781e0
xor ebp, ebp
jmp 0x20114f00
mov r12d, r15d
mov r13d, 0x7f779bd0
jmp 0x201146be
test r14d, r14d
je 0x20114f00
mov rcx, rbp
call fcn.20077cc0
test r13d, 0x200
lea rax, [0x20514150]
cmovne rbp, rax
jmp 0x20114f00
cmp eax, 6
jne 0x201146a6
nop
movzx eax, byte [0x20514055]
lea rbp, [0x20514040]
cmp al, 0x3e
je 0x20114f00
mov cl, 0xc5
mov al, 0x65
lock cmpxchg byte [0x20514055], cl
je 0x20114b06
cmp al, 0x3e
jne 0x2011459b
jmp 0x20114f00
jne 0x20114926
mov rbx, r15
mov rcx, rbx
mov rdx, r14
call fcn.203c93a0
xor ebp, ebp
jmp 0x20114f00
lea rax, [0x20413328]
mov qword [rbx], rax
mov rcx, rbx
call fcn.200a5960
lea rax, [0x204122e8]
mov qword [rbx], rax
mov rdi, qword [rbx + 0x60]
test rdi, rdi
mov r14d, r15d
je 0x20114ead
nop
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x20114e9a
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x200c7fcc.0]
test rax, rax
je 0x20114ea2
nop
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [case.0x200c7fcc.0]
jmp 0x201146f1
mov rcx, rbx
call fcn.200786c0
mov ebp, eax
jmp 0x20114f00
lea rcx, [rsp + 0x28]
mov dl, 1
mov rbp, rdi
test r13b, 0x40
je 0x20114f00
lea rbp, [0x20513fb0]
test dl, dl
cmove rbp, rcx
jmp 0x20114f00
mov edi, 0xffffffff
jmp 0x20114af4
nop
movzx eax, byte [0x20514095]
cmp al, 0x63
jne 0x201149e3
jmp 0x20114a0b
mov rbp, r14
test r13d, 0x100
jne 0x20114f00
jmp 0x20114ed9
xor ebp, ebp
lock dec dword [rdi + 8]
cmove rbp, rdi
jmp 0x20114f00
mov ebx, r12d
mov r13d, 0x4279f48a
mov eax, r13d
and eax, 0x1a
cmp eax, 6
jbe 0x20114318
cmp eax, 0xb
jbe 0x2011470b
cmp eax, 0xe
jae 0x20114737
cmp eax, 0xc
jne 0x201147cb
test r12d, r12d
je 0x20114982
lea rdi, [rsp + 0x40]
mov r15d, r14d
test r13d, 0x100
je 0x20114ea2
mov rcx, rbp
call fcn.20077cc0
jmp 0x20114f00
cmp eax, 8
jbe 0x20114771
cmp eax, 9
je 0x201147f7
cmp eax, 0xb
jne 0x20114839
nop
movzx eax, byte [0x205140a9]
cmp al, 0x3b
je 0x20114ecb
jmp 0x20114e83
je 0x20114819
cmp eax, 0x10
jne 0x20114855
nop
movzx eax, byte [0x20514153]
cmp al, 0x37
je 0x2011491a
mov cl, 5
mov al, 0x41
lock cmpxchg byte [0x20514153], cl
je 0x20114a00
cmp al, 0x37
jne 0x20114758
jmp 0x201148dc
cmp eax, 7
jne 0x201147c3
mov rax, rdi
sub rax, rbp
jbe 0x201148ae
test rbx, rbx
je 0x20114f00
cmp rbx, 1
mov rax, rbx
adc rax, 0
xor ecx, ecx
cmp rbx, 8
jb 0x20114d34
mov rdx, rbp
sub rdx, rdi
cmp rdx, 0x20
jb 0x20114d34
cmp rbx, 0x20
jae 0x20114cdb
xor ecx, ecx
jmp 0x20114d0e
movzx ebp, bl
jmp 0x20114f00
mov rcx, r12
call fcn.200799c0
test r14d, r14d
je 0x20114987
mov rcx, r12
call fcn.20077cc0
xor edi, edi
mov rbp, r12
test r13b, r13b
js 0x20114af4
jmp 0x20114f00
test ebx, ebx
je 0x2011498f
test r13d, 0x100
jne 0x201149e0
mov rcx, r14
call fcn.20077cc0
jmp 0x201149bb
nop
mov rax, qword [rdi + 8]
mov rcx, qword [r12 + 8]
cmp rcx, qword [rax + 8]
sete al
cmp dword [rdi], ebx
sete cl
and cl, al
movzx ebp, cl
jmp 0x20114f00
nop
movzx eax, byte [0x20514076]
cmp al, 0x22
jne 0x201148dc
lea rbp, [0x20514060]
jmp 0x20114f00
lea rax, [0x204122e8]
mov qword [rdi], rax
mov rbx, qword [rdi + 0x60]
test rbx, rbx
je 0x201149a2
nop
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x2011499a
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x200c7fcc.0]
test rax, rax
je 0x20114994
nop
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [case.0x200c7fcc.0]
jmp 0x2011499a
test rbx, rbx
je 0x20114e7b
cmp rbx, 4
jb 0x20114e1b
cmp rax, 0x10
jb 0x20114e1b
cmp rbx, 0x10
jae 0x20114d95
xor eax, eax
jmp 0x20114dd7
test r13d, 0x100
jne 0x2011491a
mov cl, 0x6b
mov edx, r13d
and edx, 0x200
mov al, 0x76
lock cmpxchg byte [0x20514076], cl
je 0x20114bb0
cmp al, 0x22
je 0x20114908
test edx, edx
je 0x201148f0
cmp al, 0x22
lea rax, [0x20514060]
cmove r14, rax
jmp 0x201149bb
lea rbp, [0x20514150]
jmp 0x20114f00
nop
mov qword [rsp + 0x28], rbx
xor eax, eax
mov r14, r15
jmp 0x20114f68
nop
mov r8, qword [rbx + 0x40]
mov r8, qword [r8]
test r8, r8
je 0x20114ad5
mov edi, 0xffffffff
test byte [rbx + 0x70], 4
jne 0x20114af4
nop
mov r9, qword [rbx + 0x68]
cmp r9, r8
cmovb r9, r8
cmp r9, rcx
jbe 0x201147e6
nop
mov qword [rbx + 0x68], r9
sub r9d, dword [rax]
mov dword [rdx], r9d
mov rax, qword [rbx + 0x38]
mov rcx, qword [rax]
jmp 0x201144f2
jmp 0x20114f70
mov rbp, r12
jmp 0x20114f00
lea rbx, [rsp + 0x38]
test r13b, 0x40
jne 0x201149bb
mov rcx, rbx
call fcn.20077cc0
test r12d, r12d
je 0x20114af4
mov rcx, rdi
call fcn.20077cc0
mov rbp, rdi
jmp 0x20114f00
mov rbp, r14
jmp 0x20114f00
mov r8b, 0xab
mov al, 0x6e
lock cmpxchg byte [0x20513fc2], r8b
je 0x20114c43
cmp al, 0x64
jne 0x201149c6
jmp 0x20114660
mov r15d, r14d
mov cl, 0xbc
nop word cs:[rax + rax]
mov al, 0xdf
lock cmpxchg byte [0x20514095], cl
je 0x20114a17
cmp al, 0x63
jne 0x201149f0
xor eax, eax
test r13b, r13b
js 0x20114f1d
lea rbp, [0x20514080]
jmp 0x20114f00
mov ecx, 0x17cb1494
mov r8d, 0x17cb1492
xor r11d, r11d
movabs rdi, 0xcccccccccccccccd
lea r14, [0x20416000]
add r14, 0x17cb1490
lea r10, [0x20514080]
nop word cs:[rax + rax]
mov rax, rcx
mul rdi
mov r9, rdx
mov rax, r8
mul rdi
shr rdx, 2
and rdx, 0xfffffffffffffffc
lea rax, [rdx + rdx*4]
mov rdx, r14
sub rdx, rax
movzx eax, byte [r11 + r10]
xor al, byte [rdx + r11 + 3]
xor al, 0xca
mov byte [r11 + r10], al
cmp r11, 0x14
je 0x20114abc
shr r9, 2
and r9, 0xfffffffffffffffc
lea rax, [r9 + r9*4]
mov rdx, r14
sub rdx, rax
add rdx, 4
movzx eax, byte [r11 + r10 + 1]
xor al, byte [rdx + r11]
xor al, 0xca
mov byte [r11 + r10 + 1], al
add r11, 2
add rcx, 2
add r8, 2
jmp 0x20114a50
test r13d, 0x400
jne 0x20114afc
mov al, 0x63
xchg byte [0x20514095], al
mov rbp, r10
jmp 0x20114f00
add rbx, 0x38
mov edi, 0xffffffff
mov rbp, rbx
test r13b, 0x40
jne 0x20114af4
mov rcx, rbp
call fcn.20077cc0
jmp 0x20114f00
mov rbp, rdi
jmp 0x20114f00
lea rdi, [rsp + 0x30]
jmp 0x201145fb
mov ecx, 0xdd996e05
mov r8d, 0xdd996e04
xor r10d, r10d
movabs r11, 0x642c8590b21642c9
lea rax, [0x20415fc0]
mov edi, 0xdd996df1
add rdi, rax
lea rbx, [0x20514040]
mov rax, rcx
mul r11
mov r9, rdx
mov rax, r8
mul r11
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0xffffffffffffffe9
add rax, rdi
movzx eax, byte [r10 + rax + 0x13]
xor al, 0x14
add byte [r10 + rbx], al
cmp r10, 0x14
je 0x20114ba1
mov rax, rcx
sub rax, r9
shr rax, 1
add rax, r9
shr rax, 4
imul rax, rax, 0xffffffffffffffe9
add rax, rdi
add rax, 0x14
movzx eax, byte [rax + r10]
xor al, 0x14
add byte [r10 + rbx + 1], al
add r10, 2
add rcx, 2
add r8, 2
jmp 0x20114b34
mov al, 0x3e
xchg byte [0x20514055], al
xor eax, eax
jmp 0x20114f42
mov eax, 0xf98155a8
mov ecx, 0x67eaa6c
mov edx, 1
mov r8d, 0xf98155a9
mov r9d, 0xba2e8ba3
lea r10, [0x20514060]
lea r11, [0x20415fe0]
mov edi, ecx
imul rdi, r9
shr rdi, 0x24
lea r14d, [rdi + rdi*4]
lea r14d, [rdi + r14*4]
add r14d, edi
lea edi, [rax + r14]
add r14d, r8d
movzx r15d, byte [rdx + r10 - 1]
xor r15b, byte [r14 + r11]
movzx r14d, byte [rdx + r10]
xor r15b, 0xa4
xor r14b, byte [rdi + r11]
mov byte [rdx + r10 - 1], r15b
xor r14b, 0xa4
mov byte [rdx + r10], r14b
add eax, 0xfffffffe
add ecx, 2
add rdx, 2
add r8d, 0xfffffffe
cmp rdx, 0x17
jne 0x20114bd9
test r13b, r13b
jns 0x20114f00
mov al, 0x22
xchg byte [0x20514076], al
jmp 0x20114eba
mov eax, 0x70ffd193
mov r8d, 0x8f002e7e
mov r9d, 1
mov r10d, 0x70ffd194
mov r11d, 0x8f002e7c
lea rdi, [0x20513fb0]
lea rbx, [0x20415f40]
mov r14d, r8d
imul r14, r14, 0x38e38e39
shr r14, 0x22
lea r14d, [r14 + r14*8]
lea r14d, [rax + r14*2]
mov r15d, r11d
imul r15, r15, 0x38e38e39
shr r15, 0x22
lea r15d, [r15 + r15*8]
lea r15d, [r10 + r15*2]
movzx ebp, byte [r15 + rbx]
xor bpl, 0x25
add byte [r9 + rdi - 1], bpl
movzx ebp, byte [r14 + rbx]
xor bpl, 0x25
add byte [r9 + rdi], bpl
add eax, 0xfffffffe
add r8d, 2
add r9, 2
add r10d, 0xfffffffe
add r11d, 2
cmp r9, 0x13
jne 0x20114c6e
mov al, 0x64
xchg byte [0x20513fc2], al
jmp 0x20114660
mov rcx, rax
and rcx, 0xffffffffffffffe0
xor edx, edx
nop
movups xmm0, xmmword [rdi + rdx]
movups xmm1, xmmword [rdi + rdx + 0x10]
movups xmmword [rbp + rdx], xmm0
movups xmmword [rbp + rdx + 0x10], xmm1
add rdx, 0x20
cmp rcx, rdx
jne 0x20114ce4
cmp rax, rcx
je 0x20114f00
test al, 0x18
je 0x20114d34
mov rdx, rcx
mov rcx, rax
and rcx, 0xfffffffffffffff8
nop
mov r8, qword [rdi + rdx]
mov qword [rbp + rdx], r8
add rdx, 8
cmp rcx, rdx
jne 0x20114d18
cmp rax, rcx
je 0x20114f00
mov r8, rax
mov rdx, rcx
and r8, 3
je 0x20114d56
mov rdx, rcx
nop
movzx r9d, byte [rdi + rdx]
mov byte [rbp + rdx], r9b
inc rdx
dec r8
jne 0x20114d43
sub rcx, rax
cmp rcx, 0xfffffffffffffffc
ja 0x20114f00
nop
movzx eax, byte [rdi + rdx]
mov byte [rbp + rdx], al
movzx eax, byte [rdi + rdx + 1]
mov byte [rbp + rdx + 1], al
movzx eax, byte [rdi + rdx + 2]
mov byte [rbp + rdx + 2], al
movzx eax, byte [rdi + rdx + 3]
mov byte [rbp + rdx + 3], al
add rdx, 4
cmp rbx, rdx
jne 0x20114d63
jmp 0x20114f00
mov rax, rbx
and rax, 0xfffffffffffffff0
lea rcx, [rbx + rbp]
add rcx, 0xfffffffffffffff0
lea rdx, [rdi + rbx]
add rdx, 0xfffffffffffffff0
mov r8, rax
neg r8
xor r9d, r9d
nop
movups xmm0, xmmword [rdx + r9]
movups xmmword [rcx + r9], xmm0
add r9, 0xfffffffffffffff0
cmp r8, r9
jne 0x20114db5
cmp rax, rbx
je 0x20114e7b
test bl, 0xc
je 0x20114e18
mov rcx, rbx
and rcx, 0xfffffffffffffffc
mov edx, ebx
and edx, 3
lea r8, [rbx + rbp]
add r8, 0xfffffffffffffffc
neg rax
lea r9, [rdi + rbx]
add r9, 0xfffffffffffffffc
mov r10, rcx
neg r10
nop
mov r11d, dword [r9 + rax]
mov dword [r8 + rax], r11d
add rax, 0xfffffffffffffffc
cmp r10, rax
jne 0x20114dfc
cmp rcx, rbx
mov rbx, rdx
jne 0x20114e1b
jmp 0x20114e7b
and ebx, 0xf
lea rcx, [rbx - 1]
mov rdx, rbx
and rdx, 3
je 0x20114e41
lea rax, [rbx - 1]
movzx r8d, byte [rdi + rbx - 1]
mov byte [rbp + rbx - 1], r8b
dec rdx
mov rbx, rax
jne 0x20114e28
jmp 0x20114e44
mov rax, rbx
cmp rcx, 3
jb 0x20114e7b
mov rcx, rax
nop
movzx edx, byte [rdi + rax - 1]
mov byte [rbp + rax - 1], dl
movzx edx, byte [rdi + rax - 2]
mov byte [rbp + rax - 2], dl
movzx edx, byte [rdi + rax - 3]
mov byte [rbp + rax - 3], dl
add rcx, 0xfffffffffffffffc
movzx edx, byte [rdi + rax - 4]
mov byte [rbp + rax - 4], dl
mov rax, rcx
jne 0x20114e4d
test r13b, 0x40
jne 0x20114f00
jmp 0x20114ecb
mov cl, 0xfc
mov al, 0x82
lock cmpxchg byte [0x205140a9], cl
je 0x20114ed9
xor edi, edi
cmp al, 0x3b
je 0x20114ecb
mov r15d, r14d
mov r14d, r15d
test r13b, r13b
jns 0x20114e83
mov rcx, rdi
call fcn.20077cc0
mov r14d, r15d
test r14d, r14d
je 0x20114ed4
mov rcx, rbx
call fcn.20077cc0
test r13b, 0x40
lea rbp, [0x20514060]
cmovne rbp, rbx
jmp 0x20114f00
lea rbp, [0x205140a0]
jmp 0x20114f00
mov rbp, rbx
jmp 0x20114f00
movabs rax, 0xdc7d85f874ae4be6
xor qword [0x205140a0], rax
lea rbp, [0x205140a0]
xor byte [0x205140a8], 0x93
mov al, 0x3b
xchg byte [0x205140a9], al
test byte [rsp + 0x24], 1
cmove rsi, rbp
mov rax, rsi
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movsxd rcx, eax
and eax, 3
lea rbp, [0x20514150]
lea rdx, [0x20416050]
movzx eax, byte [rax + rdx]
xor al, 0xbb
add byte [rcx + rbp], al
lea eax, [rcx + 1]
cmp ecx, 2
jge 0x20114f51
test r13b, 0x40
jne 0x20114f1d
lea rbp, [0x20514040]
jmp 0x20114f00
mov al, 0x37
xchg byte [0x20514153], al
jmp 0x20114f00
nop
movzx ecx, byte [r12 + rax]
mov byte [r15 + rax], cl
inc rax
nop
cmp rax, qword [rsp + 0x28]
jae 0x20114f7b
test r13d, 0x200
je 0x20114f5b
jmp 0x20114f00
test r13b, 0x40
lea rbp, [0x20514080]
cmove rbp, r14
jmp 0x20114f00