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

Disassembly:
mov byte [rsp + 0x10], dl
mov dword [rsp + 8], ecx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
movzx r14d, byte [0x140042b83]
xor ebx, ebx
movzx r10d, byte [0x140042a62]
mov eax, 0xaaaaaaab
movzx r11d, byte [0x140042b56]
mov r13d, dword [0x140042b68]
imul ecx, r14d, 7
lea edi, [rbx + 1]
add ecx, 5
mul ecx
shr edx, 2
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
je 0x14002c6f0
sub ecx, edi
je 0x14002c6db
sub ecx, edi
je 0x14002c6c2
sub ecx, edi
je 0x14002c6a7
cmp dword [0x140042b44], ebx
mov eax, ebx
setne al
xor dword [0x140042b3c], eax
cmp dword [0x140042b40], ebx
je 0x14002c696
mov eax, edi
test r10b, r10b
je 0x14002c698
mov eax, ebx
and dword [0x140042b6c], eax
movzx ecx, byte [0x140042b67]
jmp 0x14002c715
cmp dword [0x140042a64], ebx
movzx ecx, byte [0x140042b67]
sete al
and al, r11b
mov byte [0x140042b57], al
jmp 0x14002c715
movzx ecx, byte [0x140042b67]
mov eax, 0xfffffffd
sub al, r13b
add cl, al
dec dword [0x140042a8c]
jmp 0x14002c715
movzx ecx, byte [0x140042b67]
movzx eax, r13b
or al, 6
and byte [0x140042b55], al
jmp 0x14002c715
cmp dword [0x140042b78], ebx
je 0x14002c700
mov eax, edi
cmp r10b, 0x7c
jne 0x14002c702
mov eax, ebx
xor dword [0x140042b2c], eax
movzx ecx, byte [0x140042b67]
or cl, byte [0x140042b55]
mov r12d, dword [0x140042b58]
mov eax, ebx
mov r8d, dword [0x140042b4c]
cmp r12d, 6
mov r15d, dword [0x140042b38]
movzx r9d, byte [0x140042b3c]
sete al
and dword [0x140042b60], eax
or cl, dil
xor r9b, byte [0x140042b66]
mov eax, r8d
movzx ebp, byte [0x140042b80]
or eax, 6
sub dword [0x140042b6c], eax
xor r9b, 0x12
mov byte [0x140042b67], cl
inc ebp
movzx ecx, byte [0x140042b57]
mov eax, r12d
shr eax, 4
and r11b, al
imul esi, ecx, 0xf
mov eax, 0xaaaaaaab
mov byte [0x140042b66], r9b
mul esi
shr edx, 1
lea eax, [rdx + rdx*2]
mov edx, dword [0x140042b7c]
sub esi, eax
mov eax, r15d
or eax, 7
and r12d, eax
mov eax, ebx
cmp ecx, 0x12
mov ecx, ebx
sete al
cmp eax, edx
sete cl
or dword [0x140042b84], ecx
mov ecx, 0x535
xor r8d, edi
setne al
sub byte [0x140042a87], al
movzx eax, byte [0x140042b64]
or al, 0x50
sar al, 4
xor r11b, al
mov byte [0x140042b56], r11b
nop dword [rax]
test r9b, r9b
jne 0x14002c7e9
mov eax, ebx
jmp 0x14002c7ef
xor edx, edi
mov eax, edi
xor edx, edi
xor edx, eax
sub rcx, rdi
jne 0x14002c7e0
mov eax, dword [0x140042a64]
lea r8d, [rdx + 1]
and byte [0x140042b54], al
cmp dword [0x140042a88], ebx
mov dword [0x140042b7c], edx
mov dword [rsp + 0x20], r8d
je 0x14002c823
mov dword [0x140042b30], edi
test ebp, ebp
jne 0x14002c829
mov dword [0x140042b30], ebx
movsx ecx, r11b
mov eax, 3
sub ecx, 0x12
sub eax, ebp
cmp ecx, eax
jne 0x14002c841
mov eax, edi
test edx, edx
jne 0x14002c843
mov eax, ebx
or r10b, al
shl r14d, 0xe
mov byte [0x140042a62], r10b
cmp r14d, 0xf
jne 0x14002c85d
inc byte [0x140042a63]
cmp dword [0x140042b40], 0xf
jae 0x14002c88b
test r13d, r13d
je 0x14002c87f
mov ecx, dword [0x140042b34]
mov eax, r8d
sar eax, 0xf
sar eax, cl
test esi, eax
mov eax, edi
jne 0x14002c881
mov eax, ebx
sub r15d, eax
mov dword [0x140042b38], r15d
and dword [0x140042b48], edi
lea r14d, [rdx + 1]
lea eax, [r14 + rsi]
xor al, byte [0x140042b82]
sub byte [0x140042b57], al
mov eax, dword [0x140042b84]
add eax, 0xfffffff0
or r12d, eax
mov dword [0x140042b58], r12d
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx eax, byte [0x140042b68]
movzx ecx, byte [0x140042b81]
and al, 0x81
mov edx, dword [0x140042b84]
movzx r12d, byte [0x140042b54]
movzx r15d, byte [0x140042b67]
mov r8d, dword [0x140042a88]
movzx r13d, byte [0x140042b55]
mov r10d, dword [0x140042b34]
mov byte [rsp + 0xb0], al
movzx eax, cl
or al, dil
mov dword [rsp + 0x30], r8d
xor byte [0x140042b88], al
test edx, edx
mov byte [rsp + 0xb8], r15b
setne al
add r12b, al
lea eax, [rcx*2 - 1]
mov byte [rsp + 0xc0], r12b
and eax, 7
je 0x14002ca10
sub eax, edi
je 0x14002c9ed
sub eax, edi
je 0x14002c9b7
cmp eax, edi
je 0x14002c973
mov eax, dword [0x140042b6c]
mov edx, ebx
movzx r8d, byte [0x140042b56]
mov r9d, dword [0x140042b78]
shl eax, 0x12
shl edx, cl
cmp eax, edx
sete al
sub r8b, al
jmp 0x14002ca2a
movzx edx, byte [0x140042b83]
mov eax, edx
or eax, edi
mov dword [0x140042b60], eax
movsx eax, r13b
test eax, 0x7ff
je 0x14002c999
lea eax, [r8 + 0xf]
test eax, eax
mov eax, edi
jne 0x14002c99b
mov eax, ebx
mov r9d, dword [0x140042b78]
add r12b, al
movzx r8d, byte [0x140042b56]
mov byte [rsp + 0xc0], r12b
jmp 0x14002ca31
mov r9d, dword [0x140042b78]
mov eax, edx
movzx edx, byte [0x140042b83]
mov ecx, r14d
movzx r8d, byte [0x140042b56]
and ecx, 0x12
xor ecx, 4
sub eax, ecx
mov dword [0x140042a64], eax
movzx eax, byte [0x140042b40]
xor al, 0x12
and dl, al
jmp 0x14002ca31
mov r9d, dword [0x140042b78]
mov eax, r14d
mov ecx, r14d
movzx r12d, r15b
sar eax, cl
or al, dil
sub r12b, al
mov byte [rsp + 0xc0], r12b
jmp 0x14002ca22
mov r9d, dword [0x140042b78]
lea ecx, [rbp + 4]
mov eax, r10d
shr eax, cl
add r9d, eax
movzx r8d, byte [0x140042b56]
movzx edx, byte [0x140042b83]
cmp r10d, ebp
je 0x14002ca44
cmp r13b, 0xf
mov eax, ebx
sete al
cmp eax, 0xe
je 0x14002ca4f
and r15b, dil
mov byte [rsp + 0xb8], r15b
mov r11d, dword [0x140042b44]
mov eax, ebx
test r12b, r12b
setne al
dec r9d
mov dword [rsp + 0x44], eax
mov dword [0x140042b38], eax
movzx eax, byte [0x140042b60]
or al, 4
add r8b, al
test r11d, r11d
jne 0x14002ca81
test r15b, r15b
je 0x14002ca9c
movzx r15d, dil
test r11d, r11d
je 0x14002ca9c
movzx eax, r12b
mov ecx, esi
and ecx, 0x10
xor ecx, eax
mov eax, edi
xor ecx, 5
jne 0x14002ca9e
mov eax, ebx
mov ecx, dword [0x140042b7c]
xor r11d, eax
dec ecx
movsx eax, r13b
add eax, eax
xor dl, dil
or eax, 3
mov byte [0x140042b83], dl
add ecx, eax
mov r10d, esi
mov dword [rsp + 0x28], ecx
mov eax, ebx
mov r14d, dword [rsp + 0x28]
mov ecx, esi
shl r10d, cl
movzx ecx, dl
cmp byte [rsp + 0xb0], 5
mov edx, dword [rsp + 0x20]
sete al
inc byte [rsp + 0xb8]
xor r10d, eax
sar edx, cl
mov dword [rsp + 0x2c], r10d
mov eax, dword [rsp + 0x2c]
mov r10d, dword [0x140042b30]
xor eax, r10d
mov dword [rsp + 0x2c], eax
mov dword [0x140042b6c], eax
movzx eax, byte [0x140042a62]
sub al, sil
add al, al
xor dl, al
movsx eax, byte [0x140042b64]
xor r8b, dl
mov dword [rsp + 0x48], eax
mov edx, dword [rsp + 0x20]
mov ecx, eax
imul ecx, ebp
mov byte [0x140042b56], r8b
shr ecx, 2
cmp dword [0x140042b4c], edi
mov dword [rsp + 0x24], ecx
mov ecx, ebp
sete r8b
sub r14d, edx
shl r14d, cl
sub dl, 0x10
movzx ecx, byte [0x140042a87]
xor dl, al
mov eax, 0x8b
sub r13b, r8b
sub cl, dl
sub rax, rdi
jne 0x14002cb61
movzx r8d, byte [rsp + 0xb0]
mov eax, ebp
mov r12d, dword [rsp + 0x2c]
sub eax, r8d
sub eax, dword [rsp + 0x24]
mov edx, ebx
mov r8d, dword [rsp + 0x20]
cmp eax, 0xf
movsx eax, byte [0x140042b66]
sete dl
mov byte [rsp + 0xc8], r13b
and edx, eax
mov eax, dword [0x140042b84]
sub eax, dword [rsp + 0x24]
add eax, 0xfffffff1
mov dword [rsp + 0x3c], edx
mov dword [rsp + 0x34], eax
movsx eax, r13b
mov r13d, dword [0x140042a8c]
mov dword [rsp + 0x40], eax
or eax, ebp
mov dword [0x140042b40], eax
movzx eax, cl
mov ecx, dword [rsp + 0x28]
xor eax, edi
mov dword [rsp + 0x38], eax
mov eax, dword [0x140042b68]
or eax, 0xe
mov dword [rsp + 0x4c], eax
mov dword [0x140042b2c], eax
mov eax, 0x223
add ecx, eax
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x28], ecx
mov dword [0x140042b7c], ecx
test r14d, r14d
jne 0x14002cc1a
cmp r12d, 0x40000
mov eax, ebx
sete al
xor eax, r8d
mov eax, ebx
je 0x14002cc1c
mov eax, edi
or r13d, eax
mov ecx, ebx
test ebp, esi
mov eax, r12d
setne cl
and r11d, edx
sub eax, ecx
xor dword [rsp + 0x30], eax
mov eax, 0xaaaaaaab
mul r9d
mov esi, edx
shr esi, 1
cmp dword [0x140042b48], ebx
jne 0x14002cc57
mov eax, 0x10
movzx ecx, sil
sar al, cl
test al, al
mov eax, ebx
je 0x14002cc59
mov eax, edi
and byte [0x140042a63], dil
or r11d, eax
mov r14d, dword [rsp + 0x34]
movzx eax, r10b
mov edx, dword [rsp + 0x3c]
sub al, bpl
and al, 0x10
or r10d, edi
or r15b, al
mov eax, dword [rsp + 0x38]
xor eax, esi
xor eax, ebp
or eax, dword [0x140042a64]
add r9d, eax
sub qword [rsp + 0x50], rdi
jne 0x14002cc02
cmp dword [rsp + 0x40], 4
mov ecx, ebx
movzx r12d, byte [rsp + 0xc0]
mov eax, ebx
sete cl
mov dword [0x140042a8c], r13d
movzx r13d, byte [rsp + 0xc8]
cmp r11d, 0xe
mov dword [0x140042b78], r9d
setb al
mov dword [0x140042b5c], r14d
mov dword [0x140042b30], r10d
mov byte [0x140042a86], r15b
cmp ecx, eax
jne 0x14002ccfb
imul esi, dword [rsp + 0x44]
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub esi, eax
movzx edx, byte [rsp + 0xb0]
mov ecx, ebx
mov r15d, dword [0x140042a8c]
cmp ebp, edx
mov eax, ebx
setne cl
cmp r15d, 3
setb al
cmp eax, ecx
je 0x14002cd36
movsx eax, byte [rsp + 0xb8]
movzx ecx, ax
mov eax, ebx
test ecx, ecx
setne al
and dword [0x140042b60], eax
mov r8d, dword [0x140042b28]
mov eax, 0x55555556
imul dword [0x140042b68]
movsx ecx, byte [0x140042b88]
mov r10d, dword [0x140042b3c]
mov eax, edx
shr eax, 0x1f
add edx, eax
mov byte [0x140042b65], dil
lea eax, [rdx + rdx*2]
mov edx, dword [0x140042b68]
sub edx, eax
mov eax, 0x8c
mov dword [rsp + 0xc0], edx
add r8d, 2
nop
xor r10d, ecx
sub rax, rdi
jne 0x14002cd80
mov dword [0x140042b3c], r10d
test r15d, r15d
jne 0x14002cda9
movsx ecx, dl
mov edx, dword [rsp + 0x24]
sub ecx, ebp
mov eax, edx
shl eax, cl
test eax, eax
jne 0x14002cdad
mov eax, ebx
jmp 0x14002cdaf
mov edx, dword [rsp + 0x24]
mov eax, edi
sub dword [0x140042b48], eax
test r14d, r14d
je 0x14002cdc7
test edx, edx
je 0x14002cdc7
lea eax, [rbx - 0xf]
test eax, eax
mov eax, edi
jne 0x14002cdc9
mov eax, ebx
or r11d, eax
mov eax, 0xf
sub al, dl
sub al, bpl
or al, byte [0x140042b68]
and r12b, al
test ebp, ebp
je 0x14002cde7
test edx, edx
jne 0x14002cded
mov ecx, ebx
test ebx, ebx
je 0x14002cdef
mov ecx, edi
movzx eax, byte [0x140042b57]
mov r15d, dword [rsp + 0x48]
xor eax, ecx
mov ecx, dword [rsp + 0x30]
add r15d, esi
xor ecx, eax
imul r14d, esi
mov dword [0x140042a88], ecx
mov eax, 0x66666667
mov ecx, ebp
shl r15d, cl
mov ecx, 0x20
imul r14d
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
nop dword [rax + rax]
mov eax, r15d
xor eax, r8d
mov r8d, edx
setne byte [0x140042a87]
sub rcx, rdi
jne 0x14002ce30
mov r15d, dword [rsp + 0x24]
test r15d, r15d
je 0x14002ce73
cmp dword [rsp + 0x20], ebx
je 0x14002ce73
movsx edx, byte [rsp + 0xc0]
mov ecx, r15d
movsx eax, byte [0x140042a62]
sub edx, ebp
shr edx, cl
or edx, eax
sub dword [0x140042b4c], edx
mov ebp, dword [rsp + 0x20]
mov eax, 0xe
movzx r14d, byte [0x140042a63]
sub al, r9b
lea ecx, [rbx + rbp]
and cl, al
or cl, byte [0x140042b88]
add r12b, cl
mov byte [0x140042b54], r12b
mov r12d, dword [rsp + 0x28]
add r12b, 4
test r14b, r14b
je 0x14002cebb
movsx ecx, r12b
mov edx, 0x12
add ecx, ebp
shl edx, cl
test edx, edx
jne 0x14002cebd
mov edi, ebx
add dword [0x140042b28], edi
movzx eax, r8b
add al, byte [0x140042b58]
or r8b, r14b
mov edx, ebx
movzx ecx, r12b
shl al, cl
xor r13b, 1
movzx ecx, byte [rsp + 0xb8]
add cl, al
mov byte [0x140042b55], r13b
movzx eax, byte [rsp + 0xb0]
or al, r8b
mov byte [0x140042b67], cl
cmp ebx, 1
mov byte [0x140042b82], al
mov r8d, ebx
mov ecx, r15d
sete r8b
xor r8d, 1
cmp r9d, r8d
sete dl
sub ebx, edx
mov edx, dword [rsp + 0x4c]
shr edx, cl
sub ebx, r10d
add dword [0x140042b68], ebx
add r11d, edx
mov dword [0x140042b44], r11d
call fcn.14002bdb0
mov eax, esi
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret