Function at 0x180001090
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x20]
cmp dword [0x180020a6c], 0xa
jl 0x1800010c2
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x1800010c2
nop
jmp 0x1800010c0
mov eax, 0x10
call entry0
sub rsp, rax
mov rdi, rsp
mov eax, 0x10
call entry0
sub rsp, rax
mov rsi, rsp
sub rsp, 0x20
lea r15, section..data
mov r8d, 4
mov rcx, rdi
mov rdx, r15
call fcn.180001cf0
add rsp, 0x20
cmp dword [0x180020a6c], 0xa
jl 0x1800011a9
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x1800011a9
lea rbx, section..data
nop dword [rax + rax]
mov eax, 0x10
call entry0
sub rsp, rax
mov rcx, rsp
sub rsp, 0x20
mov r8d, 4
mov rdx, rbx
call fcn.180001cf0
add rsp, 0x20
mov eax, 0x10
call entry0
sub rsp, rax
mov rdi, rsp
mov eax, 0x10
call entry0
sub rsp, rax
mov rsi, rsp
sub rsp, 0x20
mov r8d, 4
mov rcx, rdi
mov rdx, rbx
call fcn.180001cf0
add rsp, 0x20
cmp dword [0x180020a6c], 0xa
jl 0x1800011a9
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001130
mov r14d, dword [rdi]
test r14, r14
je 0x1800012ca
xor eax, eax
cmp r14d, 0x10
jb 0x1800012a0
lea rcx, [r14 - 1]
cmp rcx, 0x400
jae 0x1800012a0
mov eax, r14d
and eax, 0xfffffff0
lea rdx, [rax - 0x10]
mov rcx, rdx
shr rcx, 4
add rcx, 1
mov r8d, ecx
and r8d, 1
test rdx, rdx
je 0x180001437
mov rdx, r8
sub rdx, rcx
xor ebx, ebx
movaps xmm0, xmmword [str._f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f]
nop word cs:[rax + rax]
mov ecx, ebx
and ecx, 0x3e0
movups xmm1, xmmword [rcx + r15 + 4]
movups xmm2, xmmword [rbx + r15 + 0x404]
xorps xmm2, xmm1
movups xmm1, xmmword [rbx + r15 + 0x414]
xorps xmm2, xmm0
movups xmmword [rbx + r15 + 0x404], xmm2
lea ecx, [rbx + 0x10]
and ecx, 0x3f0
movups xmm2, xmmword [rcx + r15 + 4]
xorps xmm1, xmm0
xorps xmm1, xmm2
movups xmmword [rbx + r15 + 0x414], xmm1
add rbx, 0x20
add rdx, 2
jne 0x180001210
test r8, r8
je 0x180001296
mov ecx, ebx
and ecx, 0x3f0
movups xmm0, xmmword [rcx + r15 + 4]
movups xmm1, xmmword [rbx + r15 + 0x404]
xorps xmm1, xmm0
xorps xmm1, xmmword [str._f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f]
movups xmmword [rbx + r15 + 0x404], xmm1
cmp rax, r14
je 0x1800012ca
nop dword [rax + rax]
mov ecx, eax
and ecx, 0x3ff
movzx ecx, byte [rcx + r15 + 4]
xor cl, byte [rax + r15 + 0x404]
xor cl, 0xc
mov byte [rax + r15 + 0x404], cl
add rax, 1
cmp rax, r14
jb 0x1800012a0
lea rbx, [r14 + r15]
add rbx, 0x404
sub rsp, 0x20
nop dword [rax]
mov r8d, 4
mov rcx, rsi
mov rdx, rbx
call fcn.180001cf0
add rsp, 0x20
cmp dword [0x180020a6c], 0xa
jl 0x180001326
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180001326
sub rsp, 0x20
mov r8d, 4
mov rcx, rsi
mov rdx, rbx
call fcn.180001cf0
jmp 0x1800012e0
add rbx, 4
mov r9d, dword [rsi]
test r9, r9
mov qword [rbp], rbx
je 0x1800015a5
xor eax, eax
cmp r9d, 0x20
jb 0x180001487
lea rdx, [r9 - 1]
cmp rdx, 0x400
jae 0x180001487
lea rcx, [r14 + r15]
add rcx, 0x408
lea rdx, [r9 + r15]
add rdx, 4
cmp rcx, rdx
jae 0x180001390
lea rcx, [r9 + r14]
add rcx, r15
add rcx, 0x408
lea rdx, str.mRwrrtIekQPgJCOwfXwCAfGVHPuCOEJgQuyMptpnvEBGswjEEXYMUGqchHEpzgZTwimIOPPPWmoABLnQOfrXpRfDxivRbWUhXpQxKuqHzkPctBKdvpEbooSBAlUiSHyodQOzkEUzlmRbJeaBGJUQXIhlGZdpFdHmTBLCyqmmEZLHWjWBZOodFmVEyAZlczcPShRvTGVuCSoHhHzjUTwBKQoSJHlPdSBqtGjouGIPrfqgEyYKkizvROHSKCsUmfSvlqxomcCuHtkHGiVfEGFqhgLJwLBqMrsYBTqdGeVudCooORhaJEZRdvYhFcRtuJpXUnXJaGoibtvahGnrzJPBBpBLuhUmITgFkoDixgbqtxbodSeHTVLtlzXgsAtgjJetQetYHcnhTjbzXQmMEAdSUOXkVZxfjahUvggByZsFGoQAtwffRHzRXaafTkPpBPeyHkBmvgwYkpsgcLruIopiZjwFyGfLqdvjAWVVCIWEYjDDPmrcbkMJIOnLQDfSHXYMVnYQlXafmEzEhhphlZGHswpiuIzHUgOiEZdKOsEpkEcskGFxbFmOBRerFucZxsiaMjzQQUvJXdOXoBdAbRUKPKAsLAAlXZKixodKZdWAxJHyMlCBMMXEWwGCWHIGGXPKHdGdhcsJeBMWIjsUeOlzQwrXOMRyrMctjgeTLAkQEwFqnvylrIgwajnmJEOxfXQiOslivOnlFepBsfiRjBzVJnoTCOqMelokEbauVjbyJZUzuTYlIMmRkQEzDKQwepSsFkpyFIqnOzYbBbkhQdogZEFVtiFeAZLLnocMeOkchOIVAWwaVcCeGUbjyLELZiSerYIdYfzXcrFUmZxwLeZAvfqcOqGQJRvubTgIfPPRCzxilLvOuuBklKJVDIGPzbXSvrspWhYliURtJMhbxckPdLHyCsAZUsGqxfugBYGsMBvGWJpxpVxYgoYCPokocCCVckKoJijLEmVZVpLzMjpRJFglMhivKtWuuzRRnMnYsgbXKVIoaVOwlwYKoaRiSKR
cmp rcx, rdx
jbe 0x180001390
xor eax, eax
jmp 0x180001487
mov eax, r9d
and eax, 0xffffffe0
lea rbx, [rax - 0x20]
mov rdx, rbx
shr rdx, 5
add rdx, 1
mov r8d, edx
and r8d, 1
test rbx, rbx
je 0x180001447
lea rsi, [r14 + r15]
add rsi, 0x438
mov rbx, r8
sub rbx, rdx
xor edi, edi
nop dword [rax + rax]
mov edx, edi
and edx, 0x3c0
movups xmm0, xmmword [rdx + r15 + 4]
movups xmm1, xmmword [rdx + r15 + 0x14]
movups xmm2, xmmword [rsi + rdi - 0x30]
xorps xmm2, xmm0
movups xmm0, xmmword [rsi + rdi - 0x20]
xorps xmm0, xmm1
movups xmm1, xmmword [rsi + rdi - 0x10]
movups xmm3, xmmword [rsi + rdi]
movups xmmword [rsi + rdi - 0x30], xmm2
movups xmmword [rsi + rdi - 0x20], xmm0
lea edx, [rdi + 0x20]
and edx, 0x3e0
movups xmm0, xmmword [rdx + r15 + 4]
xorps xmm0, xmm1
movups xmm1, xmmword [rdx + r15 + 0x14]
xorps xmm1, xmm3
movups xmmword [rsi + rdi - 0x10], xmm0
movups xmmword [rsi + rdi], xmm1
add rdi, 0x40
add rbx, 2
jne 0x1800013d0
jmp 0x180001449
xor ebx, ebx
test r8, r8
jne 0x18000126c
jmp 0x180001296
xor edi, edi
test r8, r8
mov rbx, qword [rbp]
je 0x18000147e
mov edx, edi
and edx, 0x3e0
movups xmm0, xmmword [rdx + r15 + 4]
movups xmm1, xmmword [rdx + r15 + 0x14]
movups xmm2, xmmword [rbx + rdi]
xorps xmm2, xmm0
movups xmm0, xmmword [rbx + rdi + 0x10]
xorps xmm0, xmm1
movups xmmword [rbx + rdi], xmm2
movups xmmword [rbx + rdi + 0x10], xmm0
cmp rax, r9
je 0x1800015a5
lea rdx, [r14 + r15]
add rdx, 0x408
nop word cs:[rax + rax]
nop dword [rax]
mov ecx, eax
and ecx, 0x3ff
movzx ecx, byte [rcx + r15 + 4]
xor byte [rdx + rax], cl
add rax, 1
cmp rax, r9
jb 0x1800014a0
jmp 0x1800015a5
cmp byte [r12], 0
lea r12, [r12 + 1]
jne 0x1800014c0
mov r14, r12
nop
cmp byte [r14], 0
lea r14, [r14 + 1]
jne 0x1800014d0
mov rdi, r14
nop dword [rax]
cmp byte [rdi], 0
lea rdi, [rdi + 1]
jne 0x1800014e0
nop dword [rax]
cmp byte [rdi], 0
lea rdi, [rdi + 1]
jne 0x1800014f0
mov rsi, rdi
nop dword [rax]
cmp byte [rsi], 0
lea rsi, [rsi + 1]
jne 0x180001500
mov rbx, rsi
nop dword [rax]
cmp byte [rbx], 0
lea rbx, [rbx + 1]
jne 0x180001510
sub rsp, 0x20
mov rcx, r12
call fcn.180001f70
mov rcx, rax
mov rdx, r14
call fcn.180001e40
mov rcx, rsi
call rax
mov rcx, rax
mov rdx, rdi
call fcn.180001e40
sub rsp, 0x10
mov qword [rsp + 0x28], 0x1388
mov qword [rsp + 0x20], 0
mov r9d, 0x10
xor ecx, ecx
mov rdx, rbx
mov r8, rbx
call rax
add rsp, 0x10
mov rcx, r12
call fcn.180001f70
mov rcx, rax
mov rbx, qword [rbp]
mov rdx, rbx
call fcn.180001e40
add rsp, 0x20
mov edx, dword [r13 + r15 + 0x454]
sub rsp, 0x20
mov r8d, 0x3000
mov r9d, 0x40
xor ecx, ecx
call rax
add rsp, 0x20
cmp dword [0x180020a74], 0xa
jl 0x1800015c3
mov eax, dword [0x180020a78]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001730
movsxd rax, dword [0x180004440]
add rax, r15
add rax, 0x404
mov qword [rbp - 8], rax
mov r13, rbx
nop word [rax + rax]
cmp byte [r13], 0
lea r13, [r13 + 1]
jne 0x1800015e0
mov r14, r13
nop
cmp byte [r14], 0
lea r14, [r14 + 1]
jne 0x1800015f0
mov r12, r14
nop dword [rax]
cmp byte [r12], 0
lea r12, [r12 + 1]
jne 0x180001600
mov rsi, r12
nop
cmp byte [rsi], 0
lea rsi, [rsi + 1]
jne 0x180001610
mov rbx, rsi
nop dword [rax]
cmp byte [rbx], 0
lea rbx, [rbx + 1]
jne 0x180001620
mov rdi, rbx
nop dword [rax]
cmp byte [rdi], 0
lea rdi, [rdi + 1]
jne 0x180001630
sub rsp, 0x20
mov rcx, r13
call fcn.180001f70
mov rcx, rax
mov rdx, r14
call fcn.180001e40
mov rcx, rbx
call rax
mov rcx, rax
mov rdx, rsi
call fcn.180001e40
sub rsp, 0x10
mov qword [rsp + 0x28], 0x1388
mov qword [rsp + 0x20], 0
mov r9d, 0x10
xor ecx, ecx
mov rdx, rdi
mov r8, rdi
call rax
add rsp, 0x10
mov rcx, r13
call fcn.180001f70
mov rcx, rax
mov rsi, qword [rbp]
mov rdx, rsi
call fcn.180001e40
add rsp, 0x20
mov rcx, qword [rbp - 8]
mov edx, dword [rcx + 0x50]
sub rsp, 0x20
mov r8d, 0x3000
mov r9d, 0x40
xor ecx, ecx
call rax
add rsp, 0x20
mov r9, rax
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
cmp ecx, 0xa
jl 0x180001732
test edx, edx
je 0x180001732
movsxd r13, dword [0x180004440]
cmp dword [0x180020a74], 0xa
mov r12, rsi
jl 0x1800014c0
mov eax, dword [0x180020a78]
lea ecx, [rax - 1]
imul ecx, eax
mov r12, rsi
and ecx, 1
je 0x1800014c0
nop word cs:[rax + rax]
nop
jmp 0x180001720
jmp 0x180001730
cmp ecx, 0xa
jl 0x18000173f
test edx, edx
jne 0x180001910
mov rdx, qword [rbp - 8]
add rdx, 0x108
mov qword [rbp - 0x10], rdx
xor edi, edi
mov qword [rbp], r9
mov rsi, qword [rbp]
nop dword [rax + rax]
mov rdx, qword [rbp - 8]
movzx edx, word [rdx + 6]
cmp rdi, rdx
jae 0x180001912
lea rbx, [rdi + rdi*4]
mov rax, qword [rbp - 0x10]
mov ecx, dword [rax + rbx*8 + 0xc]
mov r8d, dword [rax + rbx*8 + 0x10]
add rcx, r9
mov eax, dword [rax + rbx*8 + 0x14]
lea rdx, [rax + r15]
add rdx, 0x404
sub rsp, 0x20
call fcn.180001cf0
add rsp, 0x20
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
cmp ecx, 0xa
jl 0x1800018f0
lea edx, [rax - 1]
imul edx, eax
and edx, 1
je 0x1800018f0
mov rax, qword [rbp - 0x10]
lea rbx, [rax + rbx*8]
add rbx, 0xc
nop word cs:[rax + rax]
nop dword [rax + rax]
mov ecx, dword [rbx]
add rcx, rsi
mov r8d, dword [rbx + 4]
mov eax, dword [rbx + 8]
lea rdx, [rax + r15]
add rdx, 0x404
sub rsp, 0x20
call fcn.180001cf0
add rsp, 0x20
cmp dword [0x180020a6c], 0xa
jl 0x180001880
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x1800018c2
jmp 0x180001880
mov ecx, dword [rbx]
add rcx, rsi
mov r8d, dword [rbx + 4]
mov eax, dword [rbx + 8]
lea rdx, [rax + r15]
add rdx, 0x404
sub rsp, 0x20
call fcn.180001cf0
add rsp, 0x20
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
cmp ecx, 0xa
jl 0x1800018f0
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x1800017e0
jmp 0x1800018f0
mov ecx, dword [rbx]
add rcx, rsi
mov r8d, dword [rbx + 4]
mov eax, dword [rbx + 8]
lea rdx, [rax + r15]
add rdx, 0x404
sub rsp, 0x20
call fcn.180001cf0
add rsp, 0x20
cmp dword [0x180020a6c], 0xa
jl 0x180001830
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180001830
mov ecx, dword [rbx]
add rcx, rsi
mov r8d, dword [rbx + 4]
mov eax, dword [rbx + 8]
lea rdx, [rax + r15]
add rdx, 0x404
sub rsp, 0x20
call fcn.180001cf0
add rsp, 0x20
jmp 0x180001880
add rdi, 1
cmp ecx, 0xa
mov r9, qword [rbp]
jl 0x180001760
lea edx, [rax - 1]
imul edx, eax
and edx, 1
je 0x180001760
jmp 0x180001910
mov rdx, qword [rbp - 8]
mov rbx, qword [rdx + 0x30]
mov rdx, r9
sub rdx, rbx
cmp ecx, 0xa
jl 0x180001932
lea ebx, [rax - 1]
imul ebx, eax
and ebx, 1
je 0x180001932
jmp 0x180001930
mov rbx, qword [rbp - 8]
mov ebx, dword [rbx + 0xb0]
add rbx, r9
mov r11d, eax
mov r15d, ecx
cmp dword [rbx], 0
je 0x180001b32
mov edi, dword [rbx + 4]
cmp rdi, 8
jb 0x180001ad7
cmp ecx, 0xa
jl 0x18000196f
lea esi, [rax - 1]
imul esi, eax
and esi, 1
jne 0x180001b10
movabs rsi, 0x1fffffff8
add rdi, rsi
shr rdi, 1
mov edi, edi
mov qword [rbp - 0x10], rdi
xor r10d, r10d
nop dword [rax + rax]
mov r8d, ecx
mov edi, eax
cmp r10, qword [rbp - 0x10]
je 0x180001ace
movzx eax, word [rbx + r10*2 + 8]
mov r9d, eax
shr r9d, 0xc
mov esi, eax
and esi, 0xfff
mov ecx, r15d
cmp eax, 0xa000
jae 0x180001a83
mov eax, r11d
cmp r9d, 3
jne 0x180001aa4
cmp r8d, 0xa
jl 0x1800019e4
lea eax, [rdi - 1]
imul eax, edi
and eax, 1
jne 0x180001b20
mov eax, dword [rbx]
mov rcx, qword [rbp]
lea rax, [rcx + rax*4]
add dword [rax + rsi*4], edx
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
cmp ecx, 0xa
jl 0x180001aa4
lea edi, [rax - 1]
imul edi, eax
and edi, 1
je 0x180001aa4
mov rdi, qword [rbp]
lea rdi, [rdi + rsi*4]
nop dword [rax]
cmp ecx, 0xa
jl 0x180001a30
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001a4f
mov eax, dword [rbx]
add dword [rdi + rax*4], edx
cmp dword [0x180020a6c], 0xa
jl 0x180001a60
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180001a60
mov eax, dword [rbx]
add dword [rdi + rax*4], edx
jmp 0x180001a30
mov eax, dword [rbx]
add dword [rdi + rax*4], edx
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
cmp ecx, 0xa
jl 0x180001aa4
lea esi, [rax - 1]
imul esi, eax
and esi, 1
jne 0x180001a20
jmp 0x180001aa4
mov eax, r11d
cmp r9d, 0xa
jne 0x180001aa4
mov eax, dword [rbx]
mov ecx, esi
add rcx, qword [rbp]
add qword [rax + rcx], rdx
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
add r10, 1
mov r11d, eax
mov r15d, ecx
cmp ecx, 0xa
jl 0x180001990
lea edi, [rax - 1]
imul edi, eax
mov r11d, eax
mov r15d, ecx
and edi, 1
je 0x180001990
jmp 0x180001b10
mov ecx, r8d
mov eax, edi
mov r9, qword [rbp]
lea edi, [rax - 1]
imul edi, eax
and edi, 1
cmp ecx, 0xa
jl 0x180001ae9
test edi, edi
jne 0x180001b30
mov esi, dword [rbx + 4]
add rbx, rsi
cmp ecx, 0xa
jl 0x180001945
test edi, edi
je 0x180001945
jmp 0x180001930
jmp 0x180001b10
jmp 0x180001b20
jmp 0x180001b30
cmp r15d, 0xa
jl 0x180001b49
lea eax, [r11 - 1]
imul eax, r11d
and eax, 1
jne 0x180001cd0
lea rax, [r9 + 2]
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 8]
mov edi, dword [rax + 0x90]
add rdi, r9
mov r15d, dword [rdi + 0xc]
test r15, r15
je 0x180001cd2
add r15, r9
sub rsp, 0x20
mov rcx, r13
call fcn.180001f70
mov rcx, rax
mov rdx, r14
call fcn.180001e40
mov rcx, r15
call rax
add rsp, 0x20
mov rsi, rax
mov ecx, dword [0x180020a70]
mov eax, dword [0x180020a6c]
cmp eax, 0xa
jl 0x180001bcb
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
je 0x180001bcb
sub rsp, 0x20
mov rcx, r13
call fcn.180001f70
mov rcx, rax
mov rdx, r14
call fcn.180001e40
mov rcx, r15
call rax
jmp 0x180001b72
mov ebx, dword [rdi]
mov qword [rbp - 0x18], rdi
mov edi, dword [rdi + 0x10]
mov r9, qword [rbp]
add rdi, r9
add rbx, r9
jmp 0x180001bec
add rbx, 8
add rdi, 8
mov r9, qword [rbp]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
sete r8b
cmp eax, 0xa
setl cl
or cl, r8b
nop word cs:[rax + rax]
nop dword [rax]
test cl, cl
je 0x180001c10
mov rcx, qword [rbx]
test rcx, rcx
je 0x180001cb2
mov rax, qword [rbp - 0x10]
add rax, rcx
test rcx, rcx
movzx r15d, cx
cmovns r15, rax
nop word cs:[rax + rax]
nop dword [rax]
sub rsp, 0x20
mov rcx, r13
call fcn.180001f70
mov rcx, rax
mov rdx, r12
call fcn.180001e40
mov rcx, rsi
mov rdx, r15
call rax
add rsp, 0x20
mov qword [rdi], rax
mov ecx, dword [0x180020a70]
mov eax, dword [0x180020a6c]
cmp eax, 0xa
jl 0x180001be0
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
je 0x180001be0
sub rsp, 0x20
mov rcx, r13
call fcn.180001f70
mov rcx, rax
mov rdx, r12
call fcn.180001e40
mov rcx, rsi
mov rdx, r15
call rax
add rsp, 0x20
mov qword [rdi], rax
jmp 0x180001c40
mov rdi, qword [rbp - 0x18]
add rdi, 0x14
cmp eax, 0xa
jl 0x180001b5e
and edx, 1
je 0x180001b5e
nop dword [rax]
jmp 0x180001cd0
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x28]
add r9, rax
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp r9