Function at 0x140050c90
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x130
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x48], rdx
mov qword [rbp + 0x40], rcx
mov eax, 0x20
call fcn.1401d7280
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x30], rax
mov eax, 0x10
call fcn.1401d7280
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x38], rax
sub rsp, 0x20
call fcn.140043a70
mov rcx, qword [rbp + 0x40]
mov rdx, qword [rbp + 0x48]
add rsp, 0x20
mov qword [rbp + 0x50], rax
test rcx, rcx
sete al
test rdx, rdx
sete dl
setne cl
mov r8b, al
and r8b, cl
mov r9b, al
xor r9b, dl
mov cl, al
add cl, r9b
sub cl, r8b
and al, dl
test cl, 1
mov byte [rbp + 0x5f], al
jne 0x140051809
mov rdx, qword [rbp + 0x48]
mov rax, qword [rbp + 0x40]
mov rcx, qword [rax + 0x10]
xor eax, eax
cmp rcx, qword [rdx + 0x10]
mov byte [rbp + 0x5f], al
jne 0x140051809
mov rax, qword [rbp + 0x50]
mov qword [rbp + 0xa0], 0
lea rcx, [rbp + 0xa0]
add rcx, 8
mov qword [rbp + 0x28], rcx
mov qword [rbp + 0xa8], 0
mov qword [rbp + 0x98], 0
cmp byte [rax], 0
jne 0x14005153a
mov rax, qword [rbp + 0x40]
mov rcx, qword [rax]
mov qword [rbp + 0x10], rcx
add rax, 8
mov qword [rbp + 0x18], rax
xor eax, eax
mov qword [rbp + 0x20], rax
mov rcx, qword [rbp + 0x10]
mov rax, qword [rbp + 0x20]
mov qword [rbp + 8], rax
cmp rax, rcx
jge 0x14005153a
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x40]
mov rcx, qword [rcx]
mov qword [rbp], rcx
cmp rax, rcx
jl 0x140050e0a
mov rcx, qword [rbp + 8]
mov rdx, qword [rbp]
movabs rax, 0x70b65e0cffd1bcf2
movabs r8, 0x6b61dde95cae82cf
xor rax, r8
sub rdx, rax
add rdx, 0xffffffffffffffff
movabs rax, 0x6705bc7af9493470
movabs r8, 0x7cd23f9f5a360a4d
xor rax, r8
add rdx, rax
sub rsp, 0x20
call fcn.140012270
add rsp, 0x20
jmp 0x14005153a
mov rcx, qword [rbp + 8]
mov rax, qword [rbp + 0x18]
mov rax, qword [rax]
mov qword [rbp - 8], rax
add rax, 8
shl rcx, 5
add rax, rcx
mov rax, qword [rax]
movabs rcx, 0x78f44be5c1aec2fc
movabs rdx, 0x78f44be5c1aec2fc
xor rcx, rdx
cmp rax, rcx
je 0x140051458
mov ecx, dword [0x1401da380]
mov r8d, dword [0x1401da384]
mov eax, ecx
xor eax, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
and eax, r8d
xor eax, 0xffffffff
mov edx, r8d
xor edx, 0xffffffff
xor r8d, 0xffffffff
or edx, r8d
and ecx, edx
mov edx, 0x43a16dce
xor edx, 0xbc5e9231
xor ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0x4de09f8a
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
and eax, 0x1b275a15
mov edx, 0xaff5803a
xor edx, 0xb4d2da2f
xor ecx, edx
or eax, ecx
mov ecx, eax
xor ecx, 0x50570776
mov edx, 0xffffffff
xor edx, 0x50570776
and eax, edx
shl eax, 1
sub eax, ecx
cmp eax, 0x926a8556
je 0x140051901
mov rcx, qword [rbp + 8]
mov eax, dword [0x1401da388]
add eax, dword [0x1401da38c]
imul eax, eax, 0xa72f0d4b
mov edx, 0xffffffff
xor edx, 0x55b6cac3
add eax, edx
add eax, 1
mov r8d, 0xd177918a
xor edx, edx
div r8d
mov edx, eax
mov rax, qword [rbp - 8]
mov dword [rbp - 0x1c], edx
add rax, 8
shl rcx, 5
add rax, rcx
add rax, 8
mov rcx, qword [rax]
mov qword [rbp + 0x88], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x90], rax
lea rcx, [rbp + 0xa0]
lea rdx, [rbp + 0x88]
sub rsp, 0x20
call fcn.14001850a
mov rdx, qword [rbp + 0x40]
mov rcx, qword [rbp + 8]
mov eax, dword [rbp - 0x1c]
add rsp, 0x20
mov rdx, qword [rdx]
mov qword [rbp - 0x18], rdx
cmp rcx, rdx
setl cl
mov byte [rbp - 9], cl
cmp eax, 0x52dae284
jae 0x140051901
mov al, byte [rbp - 9]
test al, 1
jne 0x140050ffb
jmp 0x140050f7f
mov rcx, qword [rbp + 8]
mov rdx, qword [rbp - 0x18]
movabs rax, 0x63f3d1298feccb69
movabs r8, 0x63f3d1298feccb69
xor rax, r8
sub rax, rdx
movabs rdx, 0x496f4367eb6fe467
movabs r8, 0x496f4367eb6fe467
xor rdx, r8
movabs r8, 0x2dba04d962276d41
movabs r9, 0xd245fb269dd892be
xor r8, r9
sub rdx, r8
add rax, rdx
xor edx, edx
sub rdx, rax
sub rsp, 0x20
call fcn.140012270
mov rax, qword [rbp + 0x50]
add rsp, 0x20
mov cl, byte [rax]
xor eax, eax
mov byte [rbp - 0x29], cl
mov qword [rbp - 0x28], rax
jmp 0x140051413
mov rcx, qword [rbp + 8]
mov rax, qword [rbp + 0x18]
mov rax, qword [rax]
add rax, 8
shl rcx, 5
add rax, rcx
add rax, 0x18
mov rdx, qword [rax]
lea rcx, [rbp + 0x98]
xor r8d, r8d
sub rsp, 0x20
call fcn.14012b420
mov rdx, qword [rbp + 0x50]
add rsp, 0x20
mov cl, 1
xor eax, eax
cmp byte [rdx], 0
mov byte [rbp - 0x29], cl
mov qword [rbp - 0x28], rax
jne 0x140051413
mov eax, dword [0x1401da390]
mov ecx, dword [0x1401da394]
mov edx, 0x53691f0d
xor edx, 0x86b6a3bf
xor ecx, edx
xor edx, edx
div ecx
add eax, 0xe560891b
add eax, 0x4d606dec
sub eax, 0xe560891b
mov ecx, 0xf336a587
xor edx, edx
div ecx
mov ecx, 0xfeca00d6
xor ecx, 0x7084d80b
add eax, ecx
mov ecx, 0xfb759ca4
xor ecx, 0xc8f16fb6
cmp eax, ecx
je 0x14005190a
mov rax, qword [rbp + 0x48]
mov edx, dword [0x1401da398]
mov ecx, dword [0x1401da39c]
mov r8d, edx
not r8d
or r8d, ecx
mov ecx, edx
mov edx, r8d
lea ecx, [rcx + rdx + 1]
xor ecx, 0x148324b1
and ecx, 0x54b37cb3
xor ecx, 0x9a3d3d1c
mov dword [rbp - 0x30], ecx
mov rcx, qword [rax + 0x10]
mov qword [rbp + 0x80], rcx
movups xmm0, xmmword [rax]
movaps xmmword [rbp + 0x70], xmm0
movups xmm0, xmmword [rbp + 0xa0]
movaps xmmword [rbp + 0x60], xmm0
sub rsp, 0x20
lea rcx, [rbp + 0x70]
lea rdx, [rbp + 0x60]
call fcn.140050af0
mov rcx, qword [rbp + 0x50]
add rsp, 0x20
mov dl, al
mov eax, dword [rbp - 0x30]
mov cl, byte [rcx]
test cl, cl
setne cl
mov byte [rbp - 0x2b], cl
or cl, dl
mov byte [rbp - 0x2a], cl
cmp eax, 0xc34b8d42
jb 0x14005190a
mov al, byte [rbp - 0x2a]
test al, 1
jne 0x1400512c7
jmp 0x140051138
xor eax, eax
mov ecx, eax
sub rsp, 0x20
call fcn.14012aa4a
mov rax, qword [rbp + 0x50]
add rsp, 0x20
mov al, byte [rax]
xor ecx, ecx
xor cl, 0
cmp al, cl
jne 0x14005153a
mov rcx, qword [rbp + 0x98]
sub rsp, 0x20
call fcn.14012aa4a
mov rcx, qword [rbp + 0x50]
add rsp, 0x20
xor eax, eax
cmp byte [rcx], 0
mov byte [rbp - 0x31], al
jne 0x1400516b8
mov rax, qword [rbp + 0x28]
mov rcx, qword [rax]
mov qword [rbp - 0x40], rcx
xor eax, eax
cmp rcx, 0
mov byte [rbp - 0x31], al
je 0x1400516b8
mov eax, dword [0x1401da3a0]
mov ecx, 0x6a056e4d
xor ecx, 0xb9e40fd1
xor eax, ecx
mov edx, dword [0x1401da3a4]
mov ecx, eax
xor ecx, edx
xor ecx, 0xffffffff
or eax, edx
and eax, ecx
and eax, 0x5aa4dc8
mov edx, 0xe8226fd9
xor edx, 0xe8226fd8
mov ecx, eax
add ecx, edx
xor eax, 0xffffffff
or eax, 0xe53886e8
add eax, ecx
mov ecx, 0xd893a030
xor ecx, 0x276c5fcf
mov edx, eax
xor edx, ecx
and edx, 0x883432ea
mov r8d, 0xffffffff
xor r8d, 0x883432ea
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x883432ea
mov r8d, 0x3fb7898c
xor r8d, 0xb783bb66
or eax, r8d
imul eax, edx
add eax, ecx
cmp eax, 0xcdb21305
jae 0x140051913
mov r8, qword [rbp - 0x40]
mov eax, dword [0x1401da3a8]
imul eax, dword [0x1401da3ac]
mov ecx, 0xd47fd33f
xor edx, edx
div ecx
mov ecx, eax
mov edx, 0x2509450
xor edx, 0xe49f254e
mov eax, ecx
and eax, edx
or ecx, 0xe6cfb11e
add eax, ecx
mov ecx, 0xf3e0ebf3
xor edx, edx
div ecx
mov ecx, 0xaee0ee16
xor ecx, 0xecdc97e2
movabs rdx, 0x4000000000000000
and rdx, qword [r8]
cmp rdx, 0
sete dl
mov byte [rbp - 0x41], dl
cmp eax, ecx
je 0x140051230
mov cl, byte [rbp - 0x41]
xor eax, eax
test cl, 1
mov byte [rbp - 0x31], al
jne 0x1400512ac
jmp 0x1400516b8
mov rcx, qword [rbp - 0x40]
sub rsp, 0x20
call fcn.14000de03
add rsp, 0x20
xor eax, eax
mov byte [rbp - 0x31], al
jmp 0x1400516b8
mov dl, byte [rbp - 0x2b]
mov cl, 1
xor eax, eax
test dl, 1
mov byte [rbp - 0x29], cl
mov qword [rbp - 0x28], rax
jne 0x140051413
jmp 0x1400512e3
mov rdx, qword [rbp + 0x38]
mov rcx, qword [rbp + 0x30]
mov rax, qword [rbp + 0x48]
mov r8, qword [rax + 0x10]
mov qword [rcx + 0x10], r8
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm0, xmmword [rbp + 0xa0]
movups xmmword [rdx], xmm0
sub rsp, 0x20
call fcn.140050b50
mov rcx, qword [rbp + 0x50]
add rsp, 0x20
mov r8, rax
mov rax, r8
mov qword [rbp - 0x50], rax
mov cl, byte [rcx]
test cl, cl
setne dl
mov r9, qword [rbp + 0x98]
sub r8, r9
sete r8b
or dl, r8b
test dl, 1
mov byte [rbp - 0x29], cl
mov qword [rbp - 0x28], rax
jne 0x140051413
mov rcx, qword [rbp - 0x50]
sub rsp, 0x20
call fcn.14012aa4a
mov rax, qword [rbp + 0x50]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14005153a
mov rcx, qword [rbp + 0x98]
sub rsp, 0x20
call fcn.14012aa4a
mov rcx, qword [rbp + 0x50]
add rsp, 0x20
xor eax, eax
cmp byte [rcx], 0
mov byte [rbp - 0x31], al
jne 0x1400516b8
mov rax, qword [rbp + 0x28]
mov rcx, qword [rax]
mov qword [rbp - 0x58], rcx
xor eax, eax
cmp rcx, 0
mov byte [rbp - 0x31], al
je 0x1400516b8
mov rax, qword [rbp - 0x58]
mov rcx, qword [rax]
movabs rdx, 0x4000000000000000
mov rax, rcx
xor rax, rdx
movabs rdx, 0xd0a2c518af2ce835
movabs r8, 0x2f5d3ae750d317ca
xor rdx, r8
xor rax, rdx
movabs rdx, 0x4000000000000000
or rcx, rdx
and rcx, rax
xor eax, eax
cmp rcx, 0
mov byte [rbp - 0x31], al
jne 0x1400516b8
mov rcx, qword [rbp - 0x58]
sub rsp, 0x20
call fcn.14000de03
add rsp, 0x20
xor eax, eax
mov byte [rbp - 0x31], al
jmp 0x1400516b8
mov rax, qword [rbp + 0x50]
mov dl, byte [rbp - 0x29]
mov rcx, qword [rbp - 0x28]
mov byte [rbp - 0x59], dl
mov dl, 0xde
xor dl, 0xde
mov byte [rax], dl
sub rsp, 0x20
call fcn.14012aa4a
mov rax, qword [rbp + 0x50]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14005153a
mov al, byte [rbp - 0x59]
mov rdx, qword [rbp + 0x50]
mov cl, 0xe0
xor cl, 0xe0
mov byte [rdx], al
cmp al, cl
jne 0x14005153a
mov eax, dword [0x1401da3b0]
mov ecx, dword [0x1401da3b4]
xor ecx, 0xf0d9ebb2
mov edx, 0x6a350a94
xor edx, 0x95caf56b
xor eax, edx
mov edx, 0xffdefa27
xor edx, 0x2105d8
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0x7fe19c87
or eax, ecx
mov ecx, 0xdf20c1dd
xor ecx, 0xa0c15d5a
or ecx, edx
mov edx, 0xf7c8555a
xor edx, 0x837aaa5
xor eax, edx
and eax, ecx
mov ecx, 0xe15f6f0f
xor ecx, 0xc306469
xor edx, edx
div ecx
mov ecx, 0x415ba058
xor ecx, 0x69e3a877
sub eax, ecx
mov ecx, 0xf08a246e
xor edx, edx
div ecx
cmp eax, 0x1e9b92a
jae 0x14005191c
mov rdx, qword [rbp + 8]
mov ecx, dword [0x1401da3b8]
mov r8d, dword [0x1401da3bc]
mov eax, ecx
and eax, r8d
xor ecx, r8d
or eax, ecx
xor eax, 0x190dd59b
xor eax, 0x77e9b741
mov ecx, 0xffffffff
xor ecx, 0xb607f899
add eax, ecx
add eax, 1
mov ecx, 0xa81a5401
xor ecx, 0x10c6f3c7
add rdx, 1
mov qword [rbp - 0x68], rdx
cmp eax, ecx
jbe 0x1400514dd
mov rax, qword [rbp - 0x68]
mov qword [rbp + 0x20], rax
jmp 0x140050d8b
mov rax, qword [rbp + 0x50]
mov cl, byte [rax]
mov byte [rbp - 0x6a], cl
cmp cl, 0
sete cl
mov byte [rbp - 0x69], cl
mov byte [rax], 0
mov rcx, qword [rbp + 0x98]
sub rsp, 0x20
call fcn.14012aa4a
mov rax, qword [rbp + 0x50]
add rsp, 0x20
mov cl, byte [rax]
mov dl, 0xec
xor dl, 0xec
xor eax, eax
cmp cl, dl
mov byte [rbp - 0x31], al
jne 0x1400516b8
mov rax, qword [rbp + 0x28]
mov rax, qword [rax]
mov qword [rbp - 0x78], rax
cmp rax, 0
je 0x1400516a9
mov ecx, dword [0x1401da3c0]
xor ecx, 0x88c81521
mov eax, dword [0x1401da3c4]
xor eax, 0x559203f7
xor ecx, eax
mov edx, 0x9cb8e72d
xor edx, 0x397e8c48
mov eax, 0x36efc462
xor eax, 0xc9103b9d
xor edx, eax
mov eax, ecx
xor eax, edx
and eax, ecx
xor eax, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0xff201ee3
mov edx, 0xffffffff
xor edx, 0x35c6887b
or eax, ecx
mov ecx, 0x7cc14624
xor ecx, 0x4907ce5f
or ecx, edx
xor eax, 0xffffffff
and eax, ecx
mov ecx, 0x8aab082e
xor ecx, 0xa0922cec
xor edx, edx
div ecx
mov ecx, 0x532f4a3b
xor ecx, 0xb64b300d
cmp eax, ecx
jae 0x140051925
mov rdx, qword [rbp - 0x78]
mov eax, dword [0x1401da3c8]
add eax, dword [0x1401da3cc]
and eax, 0x56103649
and eax, eax
xor eax, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0xd7994cd0
mov r8d, 0xffffffff
xor r8d, 0xd7994cd0
or ecx, r8d
and eax, ecx
xor eax, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0xf9f734ab
xor r8d, r8d
sub r8d, 1
sub ecx, r8d
sub eax, ecx
movabs rcx, 0x4000000000000000
and rcx, qword [rdx]
cmp rcx, 0
sete cl
mov byte [rbp - 0x79], cl
cmp eax, 0xbc14cf87
je 0x140051925
mov al, byte [rbp - 0x79]
test al, 1
jne 0x140051698
jmp 0x1400516a9
mov rcx, qword [rbp - 0x78]
sub rsp, 0x20
call fcn.14000de03
add rsp, 0x20
mov al, byte [rbp - 0x69]
mov rcx, qword [rbp + 0x50]
mov dl, byte [rbp - 0x6a]
mov byte [rcx], dl
mov byte [rbp - 0x31], al
mov al, byte [rbp - 0x31]
mov byte [rbp - 0x7a], al
mov ecx, dword [0x1401da3d0]
mov edx, dword [0x1401da3d4]
mov eax, 0xc956bee0
xor eax, 0x36a9411f
xor ecx, eax
mov eax, 0xe92d74fb
xor eax, 0x16d28b04
xor edx, eax
mov eax, 0x16c0bfd5
xor eax, 0x2411cf49
mov r8d, 0x375aeda7
xor r8d, 0xc8a51258
xor eax, r8d
or ecx, edx
or eax, 0x32d1709c
mov edx, 0x46a2641e
xor edx, 0xb95d9be1
xor ecx, edx
and ecx, eax
mov eax, 0x86692a4e
xor eax, 0x34b1c667
or ecx, eax
mov edx, 0x4a12723e
xor edx, 0xb5ed8dc1
mov eax, ecx
xor eax, edx
mov edx, 0xa6eaf2d3
xor edx, 0xfd246fb6
and edx, eax
mov r8d, 0x8ef7553e
xor r8d, 0xd539c85b
mov eax, 0x983b01d
xor eax, 0xf67c4fe2
xor r8d, eax
mov eax, ecx
and eax, r8d
imul eax, edx
mov edx, ecx
and edx, 0x5bce9d65
or ecx, 0x5bce9d65
imul ecx, edx
add ecx, eax
mov eax, ecx
and eax, 0x102c6a00
mov edx, 0xa1dd834e
xor edx, 0xb1f1e94e
or ecx, edx
add eax, ecx
cmp eax, 0x4067755b
jb 0x14005192e
mov eax, dword [0x1401da3d8]
mov edx, dword [str.U_JD]
mov ecx, eax
xor ecx, edx
mov r8d, 0x9c9f21aa
xor r8d, 0x6360de55
xor edx, r8d
and eax, edx
shl eax, 1
sub eax, ecx
mov edx, 0xff72bd5f
xor edx, 0xff03a63
mov ecx, eax
xor ecx, edx
xor ecx, 0xffffffff
or eax, 0xf082873c
and eax, ecx
mov ecx, 0x5e160f5
xor edx, edx
div ecx
mov ecx, eax
xor ecx, 0x56174176
xor ecx, 0xffffffff
mov edx, 0xef3d483e
xor edx, 0xb92a0948
or eax, edx
and eax, ecx
cmp eax, 0xfedeeb63
ja 0x14005192e
mov al, byte [rbp - 0x7a]
mov byte [rbp + 0x5f], al
jmp 0x140051809
mov al, byte [rbp + 0x5f]
mov byte [rbp - 0x7b], al
mov eax, dword [0x1401da3e0]
mov edx, dword [0x1401da3e4]
mov ecx, eax
xor ecx, edx
xor edx, 0xffffffff
and eax, edx
shl eax, 1
sub eax, ecx
mov ecx, 0x16149e1d
xor edx, edx
div ecx
mov ecx, 0xf6872b11
xor edx, edx
div ecx
mov ecx, 0xb226fef9
xor ecx, 0x1f3e1da4
and ecx, eax
xor ecx, 0xffffffff
add eax, 0xad18e35d
add eax, 1
add eax, ecx
cmp eax, 0x2e44422d
jb 0x140051937
mov eax, dword [0x1401da3e8]
xor eax, 0xa3213cf1
mov ecx, dword [0x1401da3ec]
mov edx, 0x7c6825b5
xor edx, 0x730f271f
xor ecx, edx
mov edx, 0xbee14554
xor edx, 0x411ebaab
xor ecx, edx
add eax, ecx
add eax, 1
or eax, eax
xor eax, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x2a479468
mov edx, 0xd0875601
xor edx, 0xfac0c269
mov r8d, 0xa6633c2d
xor r8d, 0x599cc3d2
xor edx, r8d
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
mov ecx, 0x60f12597
xor edx, edx
div ecx
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0x40b736ac
mov edx, 0xffffffff
xor edx, 0x40b736ac
and eax, edx
sub eax, ecx
cmp eax, 0xa6212b04
jbe 0x140051937
mov al, byte [rbp - 0x7b]
and al, 1
movzx eax, al
lea rsp, [rbp + 0xb0]
pop rbp
ret
adc ch, byte [rsi + rbx*4 + 0x3a]
jmp 0x140050ed0
shr dl, cl
sub edx, eax
jmp 0x14005109c
out dx, al
push rdx
push rbp
fucomi st(1)
adc al, 0xf9
invalid
add eax, dword [rbx - 0x471627e0]
sti
invalid
rol byte [rdi], 1
ror byte [rdi - 0x17], cl
out 0xfc, eax
invalid
pop rax
insb byte [rdi], dx
sahf
fsubr st(1)
pop rcx
invalid
pop rbx
xor ebx, dword [rsp + riz*8]
jmp 0x140051860