Function at 0x140397dc0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov eax, 0x5a062f0b
test ecx, ecx
je 0x140397e19
add eax, dword [0x140548430]
cmp edx, eax
jne 0x140397e9f
movzx eax, byte [0x140546bf8]
movzx ecx, byte [0x140548434]
add cl, 0xad
cmp al, cl
je 0x140398070
mov cl, 0xfc
nop word [rax + rax]
mov al, 0x3e
lock cmpxchg byte [0x140546bf8], cl
je 0x140397ff5
cmp al, 0x57
jne 0x140397e00
jmp 0x140398070
add eax, dword [0x140548430]
cmp edx, eax
jne 0x140397f87
movzx eax, byte [0x140546dea]
cmp al, 0xae
jne 0x140397e49
jmp 0x140398188
cmp bl, 0xae
je 0x140398188
movzx ecx, byte [0x140548434]
lea eax, [rcx + 0x73]
add cl, 0x4b
lock cmpxchg byte [0x140546dea], cl
je 0x14039807c
mov ebx, eax
mov eax, dword [0x14055f49c]
cmp eax, 0x5e
jg 0x140397e8b
nop word cs:[rax + rax]
mov eax, dword [0x14055f49c]
cmp eax, 0x20
jle 0x140397e40
mov ecx, ebx
mov edx, 0x291d2eac
mov r8d, 0x57170fd9
call fcn.140088af0
jmp 0x140397e80
cmp byte [0x140547219], 0
je 0x140397fe9
lea rsi, [rsp + 0x30]
mov bl, 0xbb
lea rdi, [rsp + 0x34]
mov ebp, 0x5a062f0b
nop dword [rax]
mov rcx, rsi
mov edx, 0x98fa93a7
mov r8d, 0x1c0c2e6f
call fcn.14039e7d0
mov ecx, dword [rsp + 0x30]
mov edx, dword [0x140548430]
mov eax, ecx
sub eax, edx
add eax, 0xa5f9d0f4
imul eax, ecx
mov ecx, edx
xor ecx, 0x5a062f0d
and edx, 0x5a062f0d
lea ecx, [rcx + rdx*2]
xor edx, edx
div ecx
test edx, edx
jne 0x140397f60
nop word cs:[rax + rax]
mov al, 0x28
lock cmpxchg byte [0x140547219], bl
sete dl
mov dword [rsp + 0x28], 0x52dffb0c
mov dword [rsp + 0x20], 0x64ccfe2e
mov ecx, eax
mov r8, rdi
mov r9, rsi
call fcn.14039e990
test al, 1
je 0x140397f60
test byte [rsp + 0x30], 1
jne 0x140397fa2
cmp byte [rsp + 0x34], 0
jne 0x140397ec0
jmp 0x140397fe9
mov al, 0x28
lock cmpxchg byte [0x140547219], bl
mov eax, dword [0x14055f498]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x140548430]
add eax, ebp
cmp ecx, eax
jne 0x140397f60
jmp 0x140397f10
mov eax, dword [0x14055f498]
mov ecx, eax
not ecx
imul ecx, eax
test cl, 1
jne 0x1403981f0
jmp 0x1403981cc
xor eax, eax
lea rcx, [0x140547210]
lea rdx, [0x14044f680]
mov r8d, 0x5a062f14
nop dword [rax + rax]
movzx r9d, byte [rax + rdx]
add byte [rax + rcx], r9b
lea r9d, [rax + 1]
mov r10d, dword [0x140548430]
add r10d, r8d
cmp r9d, r10d
jge 0x140397fe1
inc rax
jmp 0x140397fc0
xor eax, eax
xchg byte [0x140547219], al
lea rax, [0x140547210]
jmp 0x1403981c3
mov esi, 1
lea rdi, [0x140546bf0]
lea rbx, [0x14044f0a0]
nop dword [rax + rax]
lea eax, [rsi - 1]
cdqe
movzx ecx, byte [rax + rbx]
add byte [rax + rdi], cl
mov ecx, esi
mov edx, 0x5f0df441
mov r8d, 0x551c1f95
call fcn.14039e260
test al, 1
jne 0x140398040
inc esi
jmp 0x140398010
mov eax, dword [0x14055f49c]
cmp eax, 0x36
jle 0x140398056
mov eax, dword [0x14055f49c]
cmp eax, 0x47
jge 0x140398040
mov eax, dword [0x14055f49c]
cmp eax, 0x44
jg 0x14039804b
mov ecx, 0x5fa28714
mov edx, 0xf27359f5
call fcn.14039e860
lea rax, [0x140546bf0]
jmp 0x1403981c3
lea rsi, [rsp + 0x34]
lea rdi, [rsp + 0x30]
nop word cs:[rax + rax]
mov rcx, rsi
mov rdx, rdi
mov r8d, 0xa2d10242
mov r9d, 0xb7053b72
call fcn.14039e270
mov eax, dword [rsp + 0x34]
imul eax, dword [rsp + 0x30]
test al, 1
jne 0x1403980c7
mov ecx, 0x48999171
mov edx, 0x647fef40
call fcn.14039e2c0
test al, 1
jne 0x1403980d4
mov eax, dword [0x14055f49c]
cmp eax, 0x48
jge 0x140398090
jmp 0x1403980b4
mov esi, 1
lea rdi, [0x140546dc0]
lea rbx, [0x14044f260]
nop word [rax + rax]
lea eax, [rsi - 1]
cdqe
movzx ecx, byte [rax + rbx]
xor byte [rax + rdi], cl
mov ecx, esi
mov edx, 0xfc85f830
mov r8d, 0x92d7b522
call fcn.14039e250
test al, 1
jne 0x140398116
inc esi
jmp 0x1403980f0
mov edi, 0x5a062f0b
lea rsi, [rsp + 0x30]
mov eax, dword [0x14055f498]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x140548430]
add eax, edi
cmp ecx, eax
jne 0x140398164
mov ecx, 0x2fd8332d
mov edx, 0x655f1ad0
call fcn.140088af0
mov rcx, rsi
mov edx, 0xc2dcc8c0
mov r8d, 0xd2a30fa4
call fcn.14039d660
cmp dword [rsp + 0x30], 0x37
jle 0x140398180
mov rcx, rsi
mov edx, 0xe2e5fed1
mov r8d, 0x83b36040
call fcn.1400a8eb0
cmp dword [rsp + 0x30], 0
jne 0x140398120
jmp 0x14039813b
mov al, 0xae
xchg byte [0x140546dea], al
mov eax, dword [0x14055f498]
mov ecx, dword [0x140548430]
neg ecx
add ecx, eax
add ecx, 0x5a062f0c
jmp 0x1403981a9
mov eax, dword [0x14055f498]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1403981a0
mov eax, dword [0x14055f49c]
cmp eax, 0x3a
jge 0x1403981a0
lea rax, [0x140546dc0]
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
ret
movzx eax, byte [0x140546db9]
mov ecx, dword [0x14055f498]
lea edx, [rcx + 1]
imul edx, ecx
test dl, 1
je 0x14039820c
nop word cs:[rax + rax]
movzx eax, byte [0x140546db9]
mov ecx, 0x95800b91
mov edx, 0xfafe5677
call fcn.14039e810
test al, 1
je 0x1403981f0
jmp 0x1403981cc
cmp al, 0x6a
je 0x1403982a8
mov cl, 0xe
nop word cs:[rax + rax]
mov al, 0x30
lock cmpxchg byte [0x140546db9], cl
je 0x140398232
cmp al, 0x6a
jne 0x140398220
jmp 0x1403982a8
mov eax, dword [0x14055f498]
lea rsi, [rsp + 0x30]
nop dword [rax]
mov rcx, rsi
mov edx, 0xdcab1011
mov r8d, 0xf8901781
call fcn.14039e2e0
cmp dword [rsp + 0x30], 0
jne 0x140398240
xor edx, edx
lea rax, [0x140546da0]
lea rcx, [0x14044f240]
nop word [rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
not edx
and edx, 0x7ffffffe
or edx, r8d
not edx
lea edx, [r8 + rdx*2]
cmp edx, 0x19
jl 0x140398270
movzx eax, byte [0x140548434]
add al, 0xc0
xchg byte [0x140546db9], al
lea rax, [0x140546da0]
jmp 0x1403981c3