Function at 0x140019510
Capabilities:
Encode data using xor
Identify system language via api

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
mov edi, dword [0x140042b60]
mov esi, 0x1ce
mov r14d, 0xe7
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
movsx r9d, byte [0x140042b66]
xor ebx, ebx
mov r8d, dword [0x140042b48]
movzx edx, byte [0x140042b67]
movzx r10d, byte [0x140042a86]
cmp r9d, 0x77
jge 0x1400195be
movsx eax, dl
mov ecx, ebx
cmp eax, 0x260
mov eax, 0xffffff19
sete cl
and ecx, r8d
and ecx, esi
mov dword [0x140042b5c], ecx
mov ecx, edi
shl eax, cl
xor eax, dword [0x140042b68]
xor dword [0x140042b38], eax
mov eax, ebx
test r10b, r10b
setne al
add dword [0x140042b60], eax
movsx eax, byte [0x140042b55]
or eax, 0xa2
mov dword [0x140042a88], eax
movzx eax, byte [0x140042b7c]
xor al, 0x35
sub byte [0x140042b54], al
imul r14d, r9d, 0x36
movzx ecx, byte [0x140042b57]
test r10b, r10b
movzx ebp, byte [0x140042b82]
setne al
mov dword [0x140042b84], ebx
add cl, al
inc ebp
cmp byte [0x140042b81], 0xa2
mov eax, ebx
mov byte [0x140042b57], cl
seta al
cmp eax, 1
jae 0x1400195ff
or r8b, bpl
xor cl, r8b
mov byte [0x140042b57], cl
xor dil, byte [0x140042b78]
or dl, dil
mov byte [0x140042b67], dl
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov eax, 0x21f
nop word [rax + rax]
sub rax, 1
jne 0x140019620
movzx ecx, byte [0x140042b65]
mov eax, ebx
mov r13d, dword [0x140042b3c]
movzx r15d, byte [0x140042a87]
mov r9d, dword [0x140042b6c]
test r15b, r15b
movzx edi, byte [0x140042b88]
mov edx, dword [0x140042b40]
setne al
add r9d, eax
cmp cl, 8
sete al
lea r12d, [rdx + 0x27]
add cl, al
cmp r13d, r14d
mov byte [0x140042b65], cl
sete al
or dil, al
lea eax, [r13 - 0x1d]
and eax, 0x78
or eax, ebp
je 0x14001968a
mov eax, 1
test edx, edx
jne 0x14001968c
mov eax, ebx
or dword [0x140042b30], eax
mov r8d, dword [0x140042b68]
movsx ebp, byte [0x140042a63]
movzx r11d, byte [0x140042b56]
mov r10d, dword [0x140042a8c]
movzx eax, cl
sub eax, 0x11
imul ecx, r8d, 0xa2
mov dword [rsp + 0x28], eax
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
mov edx, esi
sub ecx, eax
shl edx, cl
sar edx, 0x1f
cmp ebp, edx
mov dword [rsp + 0x20], ecx
mov ecx, dword [0x140042b60]
sete al
or r11b, al
movzx eax, byte [0x140042b84]
sub al, 8
and r15b, al
mov eax, 0x120
sar ecx, 1
sub r10d, ecx
add eax, 0xffffffff
jne 0x140019701
movzx ecx, byte [0x140042b57]
movzx eax, r8b
movzx r8d, byte [0x140042a86]
or al, r14b
and cl, al
mov dword [0x140042a8c], r10d
mov byte [rsp + 0x98], cl
mov eax, r12d
mov ecx, dword [rsp + 0x28]
and eax, 3
add eax, dword [0x140042b38]
mov dword [rsp + 0x24], eax
movzx eax, byte [0x140042b78]
xor al, 0xa2
shl r12d, cl
or r8b, al
mov dword [0x140042b58], 1
imul eax, r10d, 0x77
mov ecx, r14d
shr r12d, cl
mov byte [0x140042a86], r8b
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [rsp + 0x34], eax
movzx eax, r15b
mov r15d, dword [0x140042b40]
cmp r12d, eax
mov r12d, dword [0x140042b84]
sete al
xor al, r15b
and dil, al
lea eax, [r12 - 0x46]
and bpl, al
mov eax, dword [rsp + 0x20]
mov edx, eax
lea ecx, [rax + 0x1c3]
shl edx, cl
mov ecx, dword [0x140042b4c]
and edx, ecx
or edx, dword [0x140042b38]
mov dword [rsp + 0xa8], ecx
movzx ecx, r8b
movzx r8d, byte [0x140042b83]
imul ecx, eax
mov eax, 0xcccccccd
mov dword [rsp + 0x30], edx
mul ecx
mov eax, edx
mov edx, dword [rsp + 0x20]
shr eax, 2
mov ecx, edx
mov dword [rsp + 0xa0], eax
mov eax, 0x6d
shl al, cl
and al, r8b
or dil, al
mov byte [0x140042b88], dil
cmp byte [rsp + 0xa0], bl
jne 0x140019817
mov eax, ebx
test r14d, 0x1c3
je 0x14001981c
mov eax, 1
mov ecx, dword [0x140042b2c]
xor eax, r9d
and ecx, eax
movzx eax, byte [0x140042a62]
add al, 8
mov dword [rsp + 0x2c], ecx
or byte [0x140042b80], al
mov ecx, ebx
mov eax, dword [0x140042b68]
add eax, 0xffffff89
cmp eax, 8
movzx eax, byte [rsp + 0xa0]
sete cl
inc dword [0x140042b68]
or ecx, eax
or ecx, dword [0x140042b34]
and r9d, ecx
mov ecx, 0x209
sar dil, 0xc3
movsx edi, dil
nop dword [rax]
nop word [rax + rax]
mov eax, 0xfffffe1c
sub eax, edi
add r9d, eax
sub rcx, 1
jne 0x140019880
movzx ecx, byte [0x140042b34]
lea eax, [r13 + 1]
sub cl, r14b
mov byte [rsp + 0x90], al
xor cl, 0xce
mov dword [0x140042b6c], r9d
mov eax, 0x900
and r8b, cl
sub rax, 1
jne 0x1400198b4
movzx ecx, byte [rsp + 0xa0]
mov eax, dword [0x140042b30]
add ecx, 0x15
add eax, esi
mov byte [0x140042b83], r8b
shr eax, cl
test eax, eax
jne 0x1400198e7
cmp byte [0x140042b67], bl
mov eax, ebx
je 0x1400198ec
mov eax, 1
xor r12d, eax
mov dword [0x140042b84], r12d
movzx r12d, byte [rsp + 0x90]
test bpl, bpl
jne 0x14001991a
cmp r12b, 0x78
jne 0x14001991a
mov ecx, r15d
mov eax, 0x16d
shl eax, cl
test eax, eax
mov eax, ebx
je 0x14001991f
mov eax, 1
xor dword [rsp + 0xa8], eax
movzx eax, r10b
or al, byte [rsp + 0xa0]
and bpl, al
mov eax, 0x67
cmp dword [0x140042b7c], edx
mov byte [0x140042a63], bpl
sete cl
nop dword [rax]
xor r11b, cl
sub rax, 1
jne 0x140019950
mov ebp, dword [rsp + 0x28]
movzx ecx, r14b
mov edx, dword [0x140042b44]
mov eax, 0x73
sar al, cl
mov r8d, ebx
xor al, r9b
mov byte [0x140042b56], r11b
mov byte [0x140042a87], al
mov ecx, 0x2c7
movzx eax, r10b
sub al, bpl
and al, 0x15
or byte [0x140042b66], al
cmp dword [0x140042b48], ebp
setne r8b
nop
test edx, edx
mov eax, ebx
setne al
sub edi, eax
add ecx, 0xffffffff
jne 0x1400199a0
test dword [0x140042b68], 0x16d
lea edx, [rdi - 1]
mov ecx, dword [rsp + 0x2c]
mov eax, ebx
setne al
mov dword [0x140042b78], edi
or ecx, eax
mov dword [0x140042b44], edx
cmp dword [0x140042b38], ebx
mov eax, ebx
mov dword [0x140042b2c], ecx
mov ecx, ebx
setne al
sub r8d, eax
movzx eax, byte [0x140042b82]
cmp eax, esi
mov dword [0x140042b48], r8d
mov eax, dword [rsp + 0x30]
sete cl
add eax, ecx
mov ecx, ebx
cmp edx, 0x1c3
mov dword [0x140042a64], eax
mov eax, ebx
sete cl
cmp edi, 0xffffff92
setne al
xor ecx, eax
cmp ecx, 0x1c3
je 0x140019a34
and edx, 0x16d
and r13d, edx
mov dword [0x140042b3c], r13d
movzx eax, byte [rsp + 0x98]
add r10b, r12b
movzx ecx, byte [rsp + 0xa0]
add al, r10b
imul ecx, dword [0x140042b28]
add dil, 2
mov byte [0x140042b57], al
mov eax, 0xaaaaaaab
movsx r15d, r12b
mov dword [0x140042b60], 1
mov dword [rsp + 0x28], r15d
mul ecx
mov eax, ebx
shr edx, 1
movsx ecx, dl
mov edx, dword [0x140042b34]
mov dword [rsp + 0x30], ecx
sub edx, r15d
cmp edx, ecx
mov ecx, dword [rsp + 0xa8]
sete al
and ecx, eax
mov dword [0x140042b4c], ecx
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov eax, dword [0x140042b58]
mov ecx, r15d
mov r12d, dword [0x140042a88]
add eax, r14d
movzx r9d, byte [0x140042a87]
mov r13d, 0x227
movzx r10d, byte [0x140042b57]
movzx r11d, byte [0x140042b82]
movzx r8d, byte [0x140042b80]
mov dword [rsp + 0xa0], eax
movzx eax, bpl
add al, al
xor al, bpl
movzx ebp, byte [0x140042a62]
xor al, byte [0x140042b34]
mov byte [rsp + 0x90], al
mov eax, dword [0x140042b2c]
cmp eax, dword [rsp + 0x20]
mov eax, 0x55555556
sete byte [rsp + 0x98]
imul r15d
mov r15d, dword [0x140042a64]
mov eax, edx
mov dword [rsp + 0x2c], r15d
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
lea eax, [rcx + r15]
mov r15d, dword [rsp + 0xa0]
mov dword [rsp + 0xa8], eax
movsx eax, byte [0x140042b55]
add eax, dword [rsp + 0x34]
mov dword [0x140042b7c], eax
movsx eax, byte [0x140042b67]
add eax, 0x79
mov dword [rsp + 0x34], eax
test dil, dil
je 0x140019b71
test r14d, r14d
je 0x140019b71
inc r8b
test r15d, r15d
jne 0x140019b8a
movsx ecx, byte [0x140042b64]
mov eax, 0xffffff92
sar eax, cl
or eax, esi
mov eax, ebx
je 0x140019b8f
mov eax, 1
mov ecx, dword [0x140042b28]
add bpl, al
imul ecx, dword [rsp + 0x24]
mov eax, 0xcccccccd
or r8b, byte [rsp + 0x90]
add r11b, 0xff
and r9b, byte [rsp + 0x98]
mov esi, dword [rsp + 0x34]
mul ecx
shr edx, 2
lea eax, [rdx + rdx*4]
sub ecx, eax
mov eax, dword [rsp + 0xa8]
mov dword [rsp + 0x24], eax
mov eax, r12d
shr eax, cl
add r10b, al
sub r13, 1
jne 0x140019b64
mov ecx, dword [0x140042a8c]
mov eax, esi
mov r15d, dword [rsp + 0x2c]
sar eax, cl
xor eax, 0x330
mov byte [0x140042b57], r10b
xor eax, dword [0x140042b2c]
or dword [0x140042b40], eax
movsx eax, byte [0x140042b56]
mov r10d, dword [rsp + 0x30]
and eax, r10d
xor r15d, eax
mov byte [0x140042b80], r8b
mov byte [0x140042a87], r9b
mov byte [0x140042b82], r11b
mov byte [0x140042a62], bpl
mov dword [0x140042a64], r15d
test r14d, r14d
je 0x140019c4a
cmp dword [0x140042b6c], ebx
lea edx, [r13 + 1]
jne 0x140019c4c
mov edx, ebx
mov r9d, dword [0x140042b30]
mov eax, ebx
cmp r9d, dword [rsp + 0x24]
sete al
cmp eax, edx
jne 0x140019c6c
shl r12d, 0x15
mov dword [0x140042b38], r12d
mov edx, dword [rsp + 0x28]
or r15b, 0x15
and byte [0x140042b88], r15b
mov dword [0x140042b28], 1
lea eax, [rdx + rcx]
test eax, eax
je 0x140019ca3
lea eax, [rdx + 0x16d]
test eax, eax
je 0x140019ca3
cmp dword [0x140042b78], ebx
mov eax, 1
jne 0x140019ca5
mov eax, ebx
sub byte [0x140042b67], al
test r8b, r8b
jne 0x140019cbd
sub esi, r10d
add esi, r14d
je 0x140019cc2
test r9d, r9d
je 0x140019cc2
mov ebx, 1
and ecx, ebx
mov dword [0x140042a8c], ecx
call fcn.1400188e0
mov eax, 1
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret