Function at 0x140059880
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
sub rsp, 0x138
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x70], rcx
mov eax, 0x10
call fcn.14024abd0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x78], rax
sub rsp, 0x20
call fcn.140047d06
mov rcx, qword [rbp + 0x70]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0x78]
mov qword [rbp + 0x80], rdx
mov qword [rax], 0
mov rdx, rax
add rdx, 8
mov qword [rbp + 0x88], rdx
mov qword [rax + 8], 0
mov rcx, qword [rcx]
movabs rdx, 0xce2daf75a8e1848c
movabs rax, 0xce2daf75a8e1848e
xor rdx, rax
lea r8, [rbp + 0xb0]
sub rsp, 0x20
call fcn.140048f90
add rsp, 0x20
test al, 1
jne 0x140059920
jmp 0x140059932
sub rsp, 0x20
call fcn.140008c92
add rsp, 0x20
jmp 0x14005a34a
mov rax, qword [rbp + 0xb0]
mov qword [rbp + 0x68], rax
movabs rcx, 0xf6bc6e6692950934
movabs rdx, 0xf6bc6e6692950934
xor rcx, rdx
cmp rax, rcx
jge 0x140059a53
mov eax, dword [0x14024d790]
mov edx, dword [0x14024d794]
mov ecx, eax
and ecx, edx
shl ecx, 1
add eax, edx
sub eax, ecx
xor ecx, ecx
sub ecx, 0x1ab0fa82
add eax, ecx
mov ecx, 0x6ea58096
xor edx, edx
div ecx
xor eax, 0x3c444adc
mov ecx, 0x13341842
xor ecx, 0x61aa5e27
cmp eax, ecx
ja 0x14005a3f6
mov rcx, qword [rbp + 0x68]
mov eax, dword [0x14024d798]
mov edx, dword [0x14024d79c]
xor edx, 0x43df0f02
or eax, edx
mov r8d, 0xc509f4b9
xor edx, edx
div r8d
imul eax, eax, 0xd355cfb3
mov r8d, eax
xor r8d, 0xffffffff
and r8d, 0xbd44a06
mov r9d, 0xffffffff
xor r9d, 0xbd44a06
mov edx, eax
and edx, r9d
imul edx, r8d
mov r9d, 0xba0e1d4
xor r9d, 0x74abd2
mov r8d, eax
and r8d, r9d
mov r9d, 0xcc0de41a
xor r9d, 0xc7d9ae1c
or eax, r9d
imul eax, r8d
add eax, edx
mov dword [rbp + 0x64], eax
mov eax, 0x5113ee6b
xor eax, 0x20f13f65
mov dword [rbp + 0x60], eax
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
sub rsp, 0x20
call fcn.14000d792
mov ecx, dword [rbp + 0x60]
mov eax, dword [rbp + 0x64]
add rsp, 0x20
cmp eax, ecx
je 0x14005999f
jmp 0x14005a34a
mov rcx, qword [rbp + 0x78]
mov rdx, qword [rbp + 0x68]
sub rsp, 0x20
call fcn.140025dc4
mov r9, qword [rbp + 0x70]
mov rdx, qword [rbp + 0x78]
mov rax, qword [rbp + 0x88]
add rsp, 0x20
mov r8, qword [r9]
mov qword [rbp + 0x40], r8
mov rcx, r9
add rcx, 8
mov qword [rbp + 0x48], rcx
mov rcx, qword [r9 + 8]
mov r10, qword [rdx]
mov qword [r9], r10
mov r10, qword [rdx + 8]
mov qword [r9 + 8], r10
mov qword [rdx], r8
mov qword [rax], rcx
lea rax, [rbp + 0xa0]
add rax, 8
mov qword [rbp + 0x50], rax
xor eax, eax
mov qword [rbp + 0x58], rax
mov rcx, qword [rbp + 0x40]
mov rax, qword [rbp + 0x58]
mov qword [rbp + 0x38], rax
cmp rax, rcx
jge 0x14005a31d
mov rcx, qword [rbp + 0x38]
mov rdx, qword [rbp + 0x78]
test rcx, rcx
setns al
mov rdx, qword [rdx]
mov qword [rbp + 0x30], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x140059c67
mov eax, dword [0x14024d7a0]
xor edx, edx
div dword [0x14024d7a4]
mov r8d, 0x6df480f0
xor r8d, 0x6507e097
mov ecx, 0xa3cc6d4b
xor ecx, 0x5c3392b4
xor r8d, ecx
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
mov r8d, 0x6fdf3a69
xor r8d, 0x9020c596
xor ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x8f36067
mov r8d, 0x66fd9b5
xor r8d, 0xe9cb9d2
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0xa4d01bae
xor ecx, 0x8fc6f4ec
sub eax, ecx
and eax, 0x4a0c96b7
cmp eax, 0x9bea2d29
ja 0x14005a3ff
mov rcx, qword [rbp + 0x38]
mov esi, dword [0x14024d7a8]
and esi, dword [0x14024d7ac]
mov edx, esi
xor edx, 0xffffffff
mov r9d, 0x67ba7671
xor r9d, 0xce7e7d4f
mov eax, 0xcf0072f7
xor eax, 0x30ff8d08
xor r9d, eax
mov r8d, 0xffffffff
xor r8d, 0x31f48e8d
mov eax, edx
and eax, 0x31f48e8d
and esi, r8d
mov r10d, r9d
and r10d, 0x31f48e8d
mov r11d, r8d
and r11d, 0xa9c40b3e
or eax, esi
or r10d, r11d
xor eax, r10d
or edx, r9d
mov r9d, 0x4961246c
xor r9d, 0xb69edb93
xor edx, r9d
or r8d, 0x31f48e8d
and edx, r8d
or eax, edx
mov r8d, 0xe0a166ae
xor edx, edx
div r8d
mov rdx, qword [rbp + 0x30]
mov r8d, eax
mov eax, r8d
xor eax, 0xffffffff
xor r8d, 0xffffffff
or eax, r8d
mov r8d, 0xffffffff
xor r8d, 0xc9a507e
mov r9d, 0xffffffff
xor r9d, 0xc9a507e
or r8d, r9d
and eax, r8d
xor eax, 0xffffffff
mov dword [rbp + 0x2c], eax
mov eax, 0xf0a45358
xor eax, 0x6fb934dd
mov dword [rbp + 0x28], eax
add rdx, 0xffffffffffffffff
sub rsp, 0x20
call fcn.14001284c
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x2c]
add rsp, 0x20
cmp eax, ecx
ja 0x14005a3ff
jmp 0x14005a34a
mov rax, qword [rbp + 0x80]
mov rdx, qword [rbp + 0x38]
mov rcx, qword [rbp + 0x88]
mov rcx, qword [rcx]
shl rdx, 5
mov rcx, qword [rcx + rdx + 8]
mov qword [rbp + 0x18], rcx
test rcx, rcx
sete cl
mov al, byte [rax]
test al, al
setne al
mov byte [rbp + 0x27], al
or al, cl
test al, 1
jne 0x14005a09d
mov rdx, qword [rbp + 0x18]
mov rax, qword [rbp + 0x70]
mov rcx, qword [rax]
add rcx, 0xffffffffffffffff
mov rax, rcx
xor rax, 0xffffffffffffffff
mov r8, rdx
xor r8, 0xffffffffffffffff
or rax, r8
and rcx, rdx
xor rcx, 0xffffffffffffffff
movabs rdx, 0xa8ed59386175d1a7
movabs r8, 0x5712a6c79e8a2e58
xor rdx, r8
xor rax, rdx
xor rcx, 0xffffffffffffffff
or rax, rcx
mov qword [rbp + 0x10], rax
mov rax, qword [rbp + 0x10]
mov qword [rbp + 8], rax
mov ecx, dword [0x14024d7b0]
mov eax, dword [0x14024d7b4]
xor eax, 0xbeddcc30
sub ecx, eax
mov eax, ecx
and eax, 0x2fc78ca9
mov edx, 0xf3fd3112
xor edx, 0xdc3abdbb
or ecx, edx
add eax, ecx
imul eax, eax, 0xf90277d0
mov edx, 0x478febcf
xor edx, 0x478febce
mov ecx, eax
add ecx, edx
xor eax, 0xffffffff
or eax, 0xf9f6d184
add eax, ecx
cmp eax, 0x1da61a23
jbe 0x14005a408
mov rdx, qword [rbp + 8]
mov r8, qword [rbp + 0x70]
mov eax, dword [0x14024d7b8]
xor eax, 0x2526bfc6
mov ecx, dword [0x14024d7bc]
add eax, ecx
or eax, 0x16aa57f4
imul rax, rax, 0xff05cad
shr rax, 0x3b
or eax, 0x45d1b20c
xor eax, 0xd487da4a
test rdx, rdx
setns cl
mov r8, qword [r8]
mov qword [rbp - 8], r8
sub rdx, r8
setl dl
and cl, dl
mov byte [rbp + 7], cl
cmp eax, 0x9927b2bb
ja 0x140059d4a
mov al, byte [rbp + 7]
test al, 1
jne 0x140059de4
jmp 0x140059db2
mov rcx, qword [rbp + 8]
mov rdx, qword [rbp - 8]
mov rax, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
xor r8d, r8d
sub r8, 1
sub rax, r8
sub rdx, rax
sub rsp, 0x20
call fcn.14001284c
add rsp, 0x20
jmp 0x14005a34a
mov rcx, qword [rbp + 8]
mov rax, qword [rbp + 0x48]
mov rax, qword [rax]
add rax, 8
shl rcx, 5
add rax, rcx
cmp qword [rax], 0
je 0x140059f57
mov ecx, dword [0x14024d7c0]
or ecx, dword [0x14024d7c4]
mov eax, ecx
and eax, 0x2b34c57a
or ecx, 0x2b34c57a
add eax, ecx
mov ecx, 0x24be8ab7
xor edx, edx
div ecx
add eax, 0xfce25d78
sub eax, 0x4fe849b0
sub eax, 0xfce25d78
mov ecx, 0x1ae089e6
xor ecx, 0x36d7867
cmp eax, ecx
jbe 0x14005a411
mov rcx, qword [rbp + 8]
mov rax, qword [rbp - 8]
mov r10d, dword [0x14024d7c8]
xor r10d, 0xceb522f
mov edx, dword [0x14024d7cc]
xor edx, 0x9fae30f6
imul r10d, edx
mov r8d, r10d
xor r8d, 0xffffffff
and r8d, 0xb0345a15
mov r9d, 0xffffffff
xor r9d, 0xb0345a15
and r10d, r9d
mov edx, 0xffffffff
xor edx, 0xd20c84aa
and edx, 0xb0345a15
and r9d, 0xd20c84aa
or r8d, r10d
or edx, r9d
xor r8d, edx
sub r8d, 0xc56b33af
mov edx, r8d
xor edx, 0xffffffff
and edx, 0x96699bf8
mov r9d, 0xd4d44d17
xor r9d, 0x42bdd6ef
mov r10d, 0x4302abd2
xor r10d, 0xbcfd542d
xor r9d, r10d
and r8d, r9d
or edx, r8d
mov dword [rbp - 0x1c], edx
movabs r8, 0xb0aef837740e9cf6
movabs rdx, 0x4f5107c88bf16309
xor r8, rdx
mov rdx, rax
and rdx, r8
or rax, 0xffffffffffffffff
add rdx, rax
sub rsp, 0x20
call fcn.140049188
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
mov rdx, rax
mov eax, dword [rbp - 0x1c]
mov qword [rbp - 0x18], rdx
cmp byte [rcx], 0
sete cl
mov byte [rbp - 9], cl
cmp eax, 0xb8cc9d14
jae 0x14005a411
mov rax, qword [rbp - 0x18]
mov cl, byte [rbp - 9]
test cl, 1
mov qword [rbp + 0x10], rax
jne 0x140059cef
jmp 0x14005a34a
mov rax, qword [rbp + 0x38]
mov rcx, qword [rbp + 0x78]
mov rcx, qword [rcx]
mov qword [rbp - 0x28], rcx
cmp rax, rcx
jl 0x140059f8d
mov rcx, qword [rbp + 0x38]
mov rdx, qword [rbp - 0x28]
add rdx, 0xffffffffffffffff
sub rsp, 0x20
call fcn.14001284c
add rsp, 0x20
jmp 0x14005a34a
mov rax, qword [rbp + 0x38]
mov rcx, qword [rbp + 0x88]
mov rcx, qword [rcx]
add rcx, 8
shl rax, 5
add rcx, rax
add rcx, 8
mov ax, word [rcx]
mov word [rbp - 0x32], ax
sub rsp, 0x20
call fcn.140025ec5
mov rcx, qword [rbp + 0x78]
mov rax, qword [rbp + 0x38]
add rsp, 0x20
mov rcx, qword [rcx]
mov qword [rbp - 0x30], rcx
cmp rax, rcx
jl 0x14005a00a
mov rcx, qword [rbp + 0x38]
mov rdx, qword [rbp - 0x30]
movabs rax, 0x9212db4a40556ea3
movabs r8, 0x6ded24b5bfaa915c
xor rax, r8
add rdx, rax
sub rsp, 0x20
call fcn.14001284c
add rsp, 0x20
jmp 0x14005a34a
mov rax, qword [rbp + 0x38]
mov rcx, qword [rbp + 0x88]
mov rcx, qword [rcx]
add rcx, 8
shl rax, 5
add rcx, rax
add rcx, 0x10
mov rax, qword [rcx]
mov qword [rbp - 0x48], rax
mov rax, qword [rcx + 8]
mov qword [rbp - 0x40], rax
sub rsp, 0x20
call fcn.140010107
mov r11, qword [rbp - 0x48]
mov r9, qword [rbp - 0x40]
mov rcx, qword [rbp + 0x50]
mov rdx, qword [rbp + 0x70]
mov r8w, word [rbp - 0x32]
mov r10, qword [rbp + 0x18]
mov rax, qword [rbp + 8]
add rsp, 0x20
mov qword [rbp + 0xa0], r11
mov qword [rcx], r9
lea r9, [rbp + 0xa0]
sub rsp, 0x30
mov qword [rsp + 0x20], r10
mov qword [rsp + 0x28], rax
call fcn.140059747
mov rax, qword [rbp + 0x80]
add rsp, 0x30
cmp byte [rax], 0
je 0x14005a0bb
jmp 0x14005a34a
mov rcx, qword [rbp + 0x38]
mov dl, byte [rbp + 0x27]
xor eax, eax
test dl, 1
mov qword [rbp - 0x58], rcx
mov byte [rbp - 0x49], al
jne 0x14005a218
jmp 0x14005a0bb
mov eax, dword [0x14024d7d0]
xor eax, 0xe0e44548
or eax, dword [0x14024d7d4]
mov ecx, 0xa736332e
xor ecx, 0xc807a346
or eax, ecx
mov edx, 0x643bf619
xor edx, 0xd842ada2
mov ecx, eax
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0xbc795bbb
and eax, edx
shl eax, 1
sub eax, ecx
mov ecx, 0x8d414c7d
xor ecx, 0xfb83896d
and eax, ecx
cmp eax, 0x7450dce3
je 0x14005a41a
mov r8, qword [rbp + 0x38]
mov ecx, dword [0x14024d7d8]
add ecx, dword [0x14024d7dc]
mov r9d, 0xffffffff
xor r9d, 0xd7310f83
mov edx, ecx
and edx, r9d
mov eax, ecx
or eax, r9d
xor eax, 0xffffffff
imul eax, edx
mov r9d, 0xc5eec553
xor r9d, 0x12dfcad0
mov edx, ecx
and edx, r9d
or ecx, 0xd7310f83
imul ecx, edx
add ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xc02b1d68
mov edx, 0xffffffff
xor edx, 0xc02b1d68
and ecx, edx
or eax, ecx
add eax, 0x70c74f4f
mov ecx, 0x2a863ea7
xor ecx, 0xb5588132
mov r9, 0xffffffffffffffff
xor r9, 1
xor edx, edx
sub rdx, 1
sub r9, rdx
mov rdx, r8
sub rdx, r9
mov qword [rbp - 0x68], rdx
xor r8, 0xffffffffffffffff
or rdx, rdx
movabs r9, 0x60d9b3bfa0c2710d
movabs r10, 0x9f264c405f3d8ef2
xor r9, r10
xor rdx, r9
or r8, r8
xor r8, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
and rdx, r8
cmp rdx, 0
setl dl
mov byte [rbp - 0x59], dl
cmp eax, ecx
je 0x14005a41a
mov rcx, qword [rbp - 0x68]
mov dl, byte [rbp - 0x59]
mov al, 1
test dl, 1
mov qword [rbp - 0x58], rcx
mov byte [rbp - 0x49], al
jne 0x14005a206
jmp 0x14005a218
sub rsp, 0x20
call fcn.140008c92
add rsp, 0x20
jmp 0x14005a34a
mov rax, qword [rbp - 0x58]
mov cl, byte [rbp - 0x49]
mov byte [rbp - 0x71], cl
mov qword [rbp - 0x70], rax
mov eax, dword [str.AcazKu4v]
mov ecx, 0xda3563e5
xor ecx, 0x6203fd3c
xor eax, ecx
xor edx, edx
div dword [0x14024d7e4]
sub eax, 0x2ff54749
add eax, 0xe0b1c76b
add eax, 0x2ff54749
mov ecx, 0x5eb36b84
xor edx, edx
div ecx
imul eax, eax, 0xbb0d88af
cmp eax, 0x15bf9b56
jb 0x14005a423
mov eax, dword [0x14024d7e8]
mov ecx, 0xf3d697c6
xor ecx, 0xdab7a40c
xor eax, ecx
imul eax, dword [0x14024d7ec]
mov ecx, 0x771474b9
xor ecx, 0x88eb8b46
mov edx, eax
xor edx, ecx
and edx, 0x4c90dba3
mov r8d, 0xffffffff
xor r8d, 0x4c90dba3
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x4c90dba3
or eax, 0x4c90dba3
imul eax, edx
add eax, ecx
mov edx, 0x7a5fed32
xor edx, 0xc4560a35
mov ecx, 0x5836f80c
xor ecx, 0xa7c907f3
xor edx, ecx
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, 0xbe09e707
add eax, edx
sub eax, ecx
mov ecx, 0x5be0121d
xor edx, edx
div ecx
mov ecx, 0x68ab3ef6
xor ecx, 0x531a0855
cmp eax, ecx
je 0x14005a26a
mov rax, qword [rbp - 0x70]
mov cl, byte [rbp - 0x71]
test cl, 1
mov qword [rbp + 0x58], rax
jne 0x140059ab6
jmp 0x14005a34a
mov rax, qword [rbp + 0x78]
mov rcx, qword [rax]
mov qword [rbp + 0x90], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x98], rax
lea rcx, [rbp + 0x90]
sub rsp, 0x20
call fcn.14004a5b0
add rsp, 0x20
mov eax, dword [0x14024d7f0]
imul eax, dword [0x14024d7f4]
or eax, 0xceda3daa
or eax, 0x242606f7
and eax, 0x6f3ad489
cmp eax, 0xb6d84caf
jae 0x14005a42c
mov eax, dword [0x14024d7f8]
mov edx, dword [0x14024d7fc]
mov ecx, eax
or ecx, edx
mov r8d, 0x995dfdba
xor r8d, 0x66a20245
xor ecx, r8d
or eax, edx
xor eax, 0xffffffff
or ecx, eax
xor ecx, 0xffffffff
mov eax, 0xbe9a5a0f
xor eax, 0x6783594a
mov edx, 0x5f4ce252
xor edx, 0xa0b31dad
xor eax, edx
add ecx, eax
add ecx, 1
mov eax, 0x1772442b
xor eax, 0x1772442b
mov edx, 0x42dd5315
xor edx, 0xc5ba1720
sub eax, edx
sub ecx, eax
mov edx, 0xffffffff
xor edx, 0x260d5439
mov eax, ecx
xor eax, edx
and eax, ecx
cmp eax, 0x6fcd1855
outsd dx, dword [rsi]
jae 0x14005a371
lea rsp, [rbp + 0xb8]
pop rsi
pop rbp
ret
pop rax
cwde
or ch, cl
movabs al, byte [0xe95ad92879fffff5]
jns 0x14005a429
fstp dword [rdx - 0x17]
push 0xffffffffebfffff7
fld xword [rsi + 0x47]
jmp 0x140059d4a
jmp 0x14005a3e5
mov ch, 0x40
mov esp, 0xfa30e93a
invalid
or eax, 0xe9920a05
out dx, eax
cld
invalid
mov ebx, ecx
hlt
invalid
test dword [rdi], esi
add edi, dword [rcx + rbp*8]
cmp al, 0xff
invalid