Function at 0x180282620
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rsi, rcx
mov rdx, qword [rsi]
movabs rax, 0x8000000000000002
cmp rdx, rax
setl cl
movabs rax, 0x8000000000000001
mov r8, rdx
add r8, rax
xor eax, eax
test cl, 1
cmovne rax, r8
test rax, rax
je 0x180282671
jmp 0x180282662
sub rax, 1
je 0x180283e00
jmp 0x180283f18
mov rax, rsi
add rax, 0x38
movzx eax, byte [rax]
test eax, eax
je 0x18028269c
jmp 0x180282681
mov ecx, eax
sub ecx, 3
je 0x18028273b
jmp 0x18028268e
sub eax, 4
je 0x180282b55
jmp 0x180283f18
mov rax, rsi
add rax, 0x58
movzx eax, byte [rax]
test eax, eax
je 0x18028275e
jmp 0x18028274b
mov ecx, eax
sub ecx, 3
je 0x180282786
jmp 0x180282754
sub eax, 4
je 0x1802827c3
jmp 0x180283de6
mov rax, rsi
add rax, 0x40
mov rdx, qword [rax]
cmp rdx, 0
je 0x180283de6
mov rcx, qword [rsi + 0x48]
mov r8d, 1
call fcn.1802cbf20
jmp 0x180283de6
mov ax, word [rsi + 0x60]
mov rdi, qword [rsi + 0x68]
cmp ax, 3
sete al
test al, 1
jne 0x18028279e
jmp 0x180283de6
cmp rdi, 0
setne al
mov rcx, rdi
call fcn.180405e10
test al, 1
jne 0x1802827b6
jmp 0x180283de6
mov rcx, rdi
call fcn.180407050
jmp 0x180283de6
mov rcx, rsi
add rcx, 0x90
call fcn.180284640
mov rax, rsi
add rax, 0x68
mov ecx, dword [0x1805231d8]
or ecx, dword [0x1805231dc]
imul ecx, ecx, 0x515a686f
or ecx, 0x375838b6
or ecx, 0xa9f2908e
cmp ecx, 0x3c2bc3d3
jbe 0x180283f47
jmp 0x180282805
mov ecx, dword [0x1805231e0]
and ecx, dword [0x1805231e4]
imul edx, ecx, 0xee66a755
add edx, 0x5dcde5f1
add edx, 0x8a9597a9
mov ecx, dword [rax]
cmp edx, 0xbb24304e
jb 0x180282805
jmp 0x18028282f
cmp ecx, 0
je 0x1802828b2
mov rax, rsi
add rax, 0x80
mov r8, qword [rax]
cmp r8, 0
je 0x1802828b2
mov r9, rsi
add r9, 0x70
mov eax, dword [0x1805231e8]
xor eax, dword [0x1805231ec]
mov ecx, 0x58c47a8d
xor edx, edx
div ecx
add eax, 0x66a2b80
xor eax, 0xa9f9b91d
cmp eax, 0xbd96ed52
jae 0x180283f54
jmp 0x180282879
mov eax, dword [0x1805231f0]
add eax, dword [0x1805231f4]
sub eax, 0xcf948321
and eax, 0xde9865de
xor eax, 0xef5ffbf5
mov rcx, qword [r9]
mov rdx, r8
shl rdx, 5
cmp eax, 0x28f7c965
jb 0x180282879
jmp 0x1802828a7
mov r8d, 4
mov rax, rsi
add rax, 0xaae
mov cl, byte [rax]
movzx eax, cl
sub cl, 0x37
ja case.0x180282b7a.1
insb byte [rdi], dx
adc al, byte [rax]
invalid
lea rcx, [0x18048758c]
mov rax, rsi
add rax, 0x68
mov rdx, qword [rax]
cmp rdx, 0
sete al
test al, 1
jne 0x180282ba4
jmp 0x180282b93
mov rcx, qword [rsi + 0x70]
mov r8d, 1
call fcn.1802cbf20
jmp 0x180282ba4
mov rax, rsi
add rax, 0x80
mov rdx, qword [rax]
cmp rdx, 0
je case.0x180282b7a.1
mov rcx, qword [rsi + 0x88]
mov r8d, 1
call fcn.1802cbf20
mov eax, dword [0x180523258]
xor edx, edx
div dword [0x18052325c]
imul eax, eax, 0x7659f01d
xor eax, 0x420a6362
sub eax, 0x7cec1423
cmp eax, 0x737c2a24
jb 0x180283fc5
jmp 0x180282bf7
mov eax, dword [0x180523260]
xor edx, edx
div dword [0x180523264]
or eax, 0x8e5706d1
or eax, 0x2eb2cb91
retf
mov dl, 0x2e
or eax, 0x3da863d0
cmp eax, 0x34b29c8b
jbe 0x180282bf7
jmp case.0x180282b7a.1
mov rax, rsi
add rax, 0xaf8
mov cl, byte [rax]
movzx eax, cl
test cl, cl
je 0x180282c42
jmp 0x180282c34
sub eax, 3
je 0x180282d1d
jmp case.0x180282b7a.22
mov rax, rsi
add rax, 0xac0
mov rdi, qword [rax]
mov eax, dword [0x180523268]
imul eax, dword [0x18052326c]
xor eax, 0xa30a0d8a
sub eax, 0x30cf6325
xor eax, 0x84ce48cc
cmp eax, 0x25e071f8
ja 0x180283fd6
jmp 0x180282c77
mov eax, dword [0x180523270]
xor edx, edx
div dword [0x180523274]
sub eax, 0xfa0ddc71
add eax, 0x8ae1b23a
sub eax, 0x462f7ed1
cmp rdi, 0
sete cl
cmp eax, 0xcb8adbb
je 0x180282c77
test cl, 1
jne case.0x180282b7a.22
jmp 0x180282cad
mov rbx, rsi
add rbx, 0xac8
mov eax, dword [0x180523278]
sub eax, dword [0x18052327c]
or eax, 0x5e4cf5d8
imul eax, eax, 0xb083fd1a
sub eax, 0xe801ca41
cmp eax, 0x820cf665
jae 0x180283fe7
jmp 0x180282ce0
mov ax, word [rsi + 0xad8]
mov rcx, rsi
add rcx, 0xae0
mov rdi, qword [rcx]
cmp ax, 3
jne case.0x180282b7a.22
mov rcx, rdi
mov rax, rsi
add rax, 0xad8
mov rax, qword [rax]
mov rcx, qword [rsi + 0xae0]
cmp rax, 0
sete al
test al, 1
jne case.0x180282b7a.33
jmp 0x180282d91
mov r8, rcx
and r8, 3
mov eax, dword [0x180523288]
sub eax, dword [0x18052328c]
xor eax, 0x8a6b65c3
add eax, 0x1d246bc1
and eax, 0x8cd28b9b
cmp eax, 0xf6512400
je 0x180284009
mov rcx, qword [rsi + 0xad8]
mov rax, qword [rsi + 0xae0]
cmp rcx, 0
sete cl
test cl, 1
jne case.0x180282b7a.33
jmp 0x180282ee6
cmp rax, 0
setne cl
mov ecx, eax
and ecx, 3
lea rdx, [0x18048767c]
movsxd rcx, dword [rdx + rcx*4]
add rcx, rdx
jmp rcx
mov rax, rsi
add rax, 0xbc8
mov al, byte [rax]
cmp al, 3
jne case.0x180282b7a.51
mov rax, rsi
add rax, 0xbc0
movzx eax, byte [rax]
test eax, eax
je 0x180282fd2
jmp 0x180282fb1
sub eax, 3
je 0x1802830df
jmp case.0x180282b7a.51
mov rdi, qword [rsi + 0xb68]
cmp rdi, 0
sete al
test al, 1
jne 0x180283055
jmp 0x180282fe6
mov rbx, rsi
add rbx, 0xb60
mov eax, dword [0x1805232a8]
sub eax, dword [0x1805232ac]
add eax, 0x7140b501
sub eax, 0x949e0544
add eax, 0x5dd873c4
cmp eax, 0xdfb34a44
ja 0x18028402b
mov eax, dword [0x1805232b0]
xor edx, edx
div dword [0x1805232b4]
xor eax, 0x2cb52d1d
add eax, 0x9233fc0a
imul ebp, eax, 0xa2585e07
mov rcx, qword [rbx]
mov rdx, rdi
mov r8d, 1
call fcn.1802cbf20
cmp ebp, 0xf464dca8
ja 0x18028402b
jmp 0x180283053
jmp 0x180283055
mov rcx, rsi
add rcx, 0xb98
mov eax, dword [0x1805232b8]
add eax, dword [0x1805232bc]
and eax, 0x6aff7991
mov r8d, 0x600b89fe
xor edx, edx
div r8d
imul eax, eax, 0x2ef6c8fb
cmp eax, 0x4daf624a
je 0x180284049
jmp 0x18028308e
mov eax, dword [0x1805232c0]
sub eax, dword [0x1805232c4]
mov r8d, 0x4132fbef
xor edx, edx
div r8d
imul eax, eax, 0x53abc7c
imul r8d, eax, 0x843fb79e
mov rdx, qword [rcx]
cmp rdx, 0
sete al
cmp r8d, 0x36157b2
jbe 0x18028308e
jmp 0x1802830c7
test al, 1
jne case.0x180282b7a.51
jmp 0x1802830d1
mov rax, rsi
add rax, 0xb90
jmp 0x180282fbf
mov rax, rsi
add rax, 0xb20
mov rcx, rsi
add rcx, 0xb49
cmp byte [rcx], 2
setb cl
test cl, 1
jne 0x1802830ff
jmp 0x18028312a
mov rcx, rsi
add rcx, 0xb28
mov rdx, qword [rcx]
cmp rdx, 0
sete cl
test cl, 1
jne 0x18028312a
jmp 0x18028311a
mov rcx, qword [rax]
mov r8d, 1
call fcn.1802cbf20
jmp 0x18028312a
mov rax, rsi
add rax, 0xb19
mov al, byte [rax]
cmp al, 2
jae case.0x180282b7a.51
mov rax, rsi
add rax, 0xaf0
mov rcx, rsi
add rcx, 0xaf8
add byte [rax], al
mov rdi, rsi
add rdi, 0xaba
add byte [rax - 0x6bf0ffc1], al
shr byte [rax + 0x4d850f01], 1
add byte [rax], al
mov rdi, rsi
add rdi, 0xab9
invalid
mov ecx, 0x8a00000a
invalid
cmp al, 0
je 0x180283321
jmp 0x180283329
mov rax, rsi
add rax, 0x178
mov rdx, qword [rax]
cmp rdx, 0
je 0x18028329d
mov eax, dword [0x1805232d8]
sub eax, dword [0x1805232dc]
add eax, 0x77ea59c8
and eax, 0x5f87040d
or eax, 0xda22ee2d
cmp eax, 0x1412358d
jb 0x18028406b
jmp 0x18028325c
mov ecx, dword [0x1805232e0]
add ecx, dword [0x1805232e4]
xor ecx, 0x8bf6c54b
sub ecx, 0xf7f49812
xor ecx, 0xce7ee7a0
mov rax, rsi
add rax, 0x180
cmp ecx, 0x140dfa19
jb 0x18028325c
jmp 0x18028328d
mov rcx, qword [rax]
mov r8d, 1
call fcn.1802cbf20
jmp 0x18028329d
mov eax, dword [0x1805232e8]
imul eax, dword [0x1805232ec]
xor eax, 0x9c39380f
add eax, 0x788a6e7e
and eax, 0x75f3e01a
cmp eax, 0x4958c5ae
jae 0x180284078
jmp 0x1802832c6
mov eax, dword [0x1805232f0]
imul eax, dword [0x1805232f4]
add eax, 0xb23673ee
sub eax, 0x1a47fc22
imul ecx, eax, 0xe3733a2b
mov rax, rsi
add rax, 0x160
cmp ecx, 0xc41adde1
jb 0x1802832c6
jmp 0x1802832f6
mov rdx, qword [rax]
cmp rdx, 0
sete al
test al, 1
jne case.0x180282b7a.11
jmp 0x18028330a
mov rcx, qword [rsi + 0x168]
mov r8d, 1
call fcn.1802cbf20
jmp case.0x180282b7a.11
mov byte [rdi], 0
jmp case.0x180282b7a.9
mov rdx, qword [rsi + 0x148]
cmp rdx, 0
sete al
test al, 1
jne 0x180283321
jmp 0x18028333d
mov rcx, qword [rsi + 0x150]
mov r8d, 1
call fcn.1802cbf20
jmp 0x180283321
mov rax, rsi
add rax, 8
mov rax, qword [rax]
cmp rax, 0
je 0x180283f18
mov rax, rsi
add rax, 0x10
mov rdi, qword [rax]
mov rsi, qword [rsi + 0x18]
cmp rdi, 0
je 0x180283f18
cmp rsi, 0
setne al
mov rbx, qword [rsi]
cmp rbx, 0
sete al
test al, 1
jne 0x180283ea0
jmp 0x180283e43
mov eax, dword [0x180523438]
add eax, dword [0x18052343c]
mov ecx, 0x9dcc047d
xor edx, edx
div ecx
and eax, 0xfea768a4
sub eax, 0x3ee148e7
cmp eax, 0x746084ac
je 0x1802841bc
mov ebp, dword [0x180523440]
add ebp, dword [0x180523444]
or ebp, 0x1a33caf8
xor ebp, 0xf74984aa
xor ebp, 0x10ab1bea
mov rcx, rdi
call rbx
cmp ebp, 0xb525c61f
jb 0x1802841bc
jmp 0x180283e9e
jmp 0x180283ea0
mov r9, qword [rsi + 8]
add rsi, 0x10
mov r8, qword [rsi]
mov eax, dword [0x180523448]
xor edx, edx
div dword [0x18052344c]
xor eax, 0xdc568e
and eax, 0x768c278
or eax, 0x77da0b1a
cmp eax, 0x15751261
jbe 0x1802841d2
mov eax, dword [0x180523450]
and eax, dword [0x180523454]
mov ecx, 0x91be6e7b
xor edx, edx
div ecx
xor eax, 0xe067b8db
xor eax, 0x9c4555c6
cmp r9, 0
sete cl
cmp eax, 0xfe0b54e6
jae 0x1802841d2
test cl, 1
jne 0x180283f18
jmp 0x180283f0b
invalid
invalid
movabs rax, qword [0xe916e9fbfadc6b2c]
invalid
sbb dword [rbp - 0x384dd36a], 0xffffffe9
jbe 0x180283f55
invalid
imul ebx, dword [rdi + 0x5980a4b], 0x587ea684
mov al, 0xb6
jmp 0x180282bf5
pop rax
mov dl, 0xff
cmp al, 0xd5
loop 0x180283f63
sub dword [rcx], edi
imul ebx, dword [rsi - 0x74], 0xffffffe9
mov gs, esp
invalid
or eax, 0x5184b6b1
cmp al, 4
mov ebp, 0x27b33072
mov rcx, qword [rbx]
mov rdx, rdi
mov r8d, 1
call fcn.1802cbf20
jmp 0x180282cde
and dword [r15 + 0x5ce74f23], 0xb8b48d1
mov rdx, rdi
mov r8d, 1
call fcn.1802cbf20
jmp 0x180283016
xchg edx, eax
push rsi
push 4
retfq
invalid
cmc
fidivr word [rdi - 0x3a]
invalid
mov ah, 0xd2
int 0x58
sub edx, dword [rdx]
pop rdx
xchg dl, bl
in eax, dx
mov edx, 0xf98948be
call rbx
jmp 0x180283e6d
mov dh, 0x38
movsb byte [rdi], byte [rsi]
invalid