Function at 0x18004a2d0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x190]
sub rsp, 0x290
mov rax, qword [0x1800b43d8]
xor rax, rsp
mov qword [rbp + 0x180], rax
mov r13, qword [rbp - 0x68]
mov r10, r9
mov r12, qword [rbp - 0x68]
mov r11, rdx
imul eax, ecx, 0x360
mov r14d, ecx
mov qword [rbp - 0x30], r9
mov r9, r8
mov qword [rbp - 0x50], r8
mov r8, qword [rbp + 0x1f0]
mov qword [rbp - 0x28], rdx
mov rdx, qword [rbp + 0x1f8]
cmp ecx, eax
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x60]
mov edi, dword [rsp + 0x60]
mov dword [rbp - 0x58], eax
mov dword [rsp + 0x68], ecx
mov qword [rbp - 0x10], r8
mov qword [rbp - 0x78], rdx
ja 0x18004a986
movsxd rsi, dword [rsp + 0x60]
mov rdx, qword [rbp - 0x68]
movsxd r15, dword [rsp + 0x60]
mov ebx, dword [rsp + 0x60]
mov qword [rbp - 0x38], rsi
mov qword [rsp + 0x78], rdx
cmp r14d, 0x18cf
ja 0x18004a583
je 0x18004ac93
cmp r14d, 0xb0
ja 0x18004a497
je 0x18004a954
mov eax, r14d
sub eax, 0x31
je 0x18004a48a
sub eax, 0x26
je 0x18004a452
cmp eax, 0x2e
jne 0x18004a808
test r10, r10
jne 0x18004a405
xor ecx, ecx
lea rax, [0x1800a9369]
mov qword [rsp + 0x48], rcx
lea r8, str._callStack
mov qword [rsp + 0x40], rcx
xor r9d, r9d
mov qword [rsp + 0x38], rax
mov edx, 0xcd
lea rax, [rbp - 0x80]
mov dword [rbp - 0x80], ecx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rcx
call fcn.180026490
mov ecx, dword [rsp + 0x68]
mov r9, qword [rbp - 0x50]
test r9, r9
jne 0x18004a92e
xor ecx, ecx
lea rax, [0x1800a9369]
mov qword [rsp + 0x48], rcx
lea r8, str.isi_Kirghiz
mov qword [rsp + 0x40], rcx
mov edx, 0xcd
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rcx
mov dword [rbp - 0x80], ecx
call fcn.180026490
jmp 0x18004a800
xor edx, edx
lea r8, [rbp - 0x48]
lea ecx, [rdx + 0x77]
call fcn.180030ba0
test al, al
je 0x18004a948
cmp dword [rbp - 0x48], 2
jae 0x18004a93c
mov edx, 0x94
xor ecx, ecx
call fcn.180011ea0
cmp eax, 3
setae byte [rbp - 0x60]
jmp 0x18004a800
mov qword [rbp + 0x10], r10
mov qword [rbp - 0x68], r8
jmp 0x18004a808
cmp r14d, 0x102
je 0x18004a552
cmp r14d, 0xdf9
jne 0x18004a808
mov rdi, qword [rbp + 0x10]
xor r14d, r14d
mov qword [rsp + 0x50], r14
xor r9d, r9d
mov dword [rsp + 0x48], 0x1b
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov eax, dword [rdi]
mov dword [rsp + 0x60], eax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r14
call fcn.18002ca60
mov rsi, qword [rbp - 0x68]
mov rbx, rax
mov qword [rsp + 0x50], r14
xor r9d, r9d
mov dword [rsp + 0x48], 0x1b
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov eax, dword [rsi]
mov dword [rsp + 0x70], eax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r14
call fcn.18002ca60
sub ebx, eax
jne case.0x18004a9d6.144
mov eax, dword [rdi + 0x14]
sub eax, dword [rsi + 0x14]
jmp 0x18004ac98
lea rax, [0x18005fcc0]
mov edx, 0xd2
mov qword [rbp], rax
lea r8, [rbp - 8]
lea rax, [0x18005fce0]
lea rcx, [rbp]
mov qword [rbp - 8], rax
call fcn.180036160
mov qword [rbp + 8], rax
jmp 0x18004a800
cmp r14d, 0x25ed
je 0x18004a87d
cmp r14d, 0x4992
je 0x18004a867
cmp r14d, 0x4b55
je 0x18004a6e8
cmp r14d, 0x70bd
je 0x18004a6c8
cmp r14d, 0x9625
jne 0x18004a808
mov ecx, 0x100
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov ecx, 0x80
mov r13, rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdx, qword [rsp + 0x78]
mov r12, rax
test rdx, rdx
je 0x18004a5f4
test r13, r13
je 0x18004a5f4
test rax, rax
jne 0x18004a650
mov esi, 0xdd
nop dword [rax]
mov eax, esi
sub eax, 0xdb
je 0x18004a972
sub eax, 1
je 0x18004a621
cmp eax, 1
jne 0x18004a63d
test rdx, rdx
je 0x18004a63d
mov rcx, rdx
jmp 0x18004a637
test r13, r13
je 0x18004a62f
mov rcx, r13
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test r12, r12
je 0x18004a63d
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rdx, qword [rsp + 0x78]
dec esi
cmp esi, 0xda
ja 0x18004a600
mov rsi, qword [rbp - 0x38]
mov ecx, 0x44
mov eax, ecx
sub eax, 0x44
je 0x18004a68a
sub eax, 1
je 0x18004a678
cmp eax, 1
jne 0x18004a6a8
mov rdx, qword [rbp - 0x20]
imul rax, rsi, 0x38
mov dword [rax + rdx + 0x14], 0
jmp 0x18004a6a8
mov rdx, qword [rbp - 0x20]
imul rax, rsi, 0x38
mov dword [rax + rdx + 0x10], 0x100
jmp 0x18004a6a8
lea rax, [rbp + 0x50]
mov dword [rbp + 0x88], 5
mov qword [rbp - 0x20], rax
mov esi, 1
mov qword [rbp + 0x90], rdx
mov rdx, qword [rsp + 0x78]
inc ecx
cmp ecx, 0x47
jb 0x18004a655
mov ecx, dword [rsp + 0x68]
mov r8, rdx
mov r9, qword [rbp - 0x50]
mov qword [rbp - 0x38], rsi
jmp 0x18004a80d
mov ecx, 0x100
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov ecx, dword [rsp + 0x68]
mov r8, rax
mov r9, qword [rbp - 0x50]
mov qword [rsp + 0x78], rax
jmp 0x18004a80d
mov ecx, 0x18
nop dword [rax]
cmp ecx, 0x18
je 0x18004a729
cmp ecx, 0x600
je 0x18004a717
cmp ecx, 0xbe8
jne 0x18004a746
mov rdx, qword [rbp - 0x18]
imul rax, r15, 0x38
mov dword [rax + rdx + 0x14], 0
jmp 0x18004a746
mov rdx, qword [rbp - 0x18]
imul rax, r15, 0x38
mov dword [rax + rdx + 0x10], 0x20
jmp 0x18004a746
lea rax, [rbp + 0x50]
mov dword [rbp + 0x50], 7
mov qword [rbp - 0x18], rax
xor r15d, r15d
lea rax, [rbp + 0x100]
mov qword [rbp + 0x58], rax
add ecx, 0x5e8
cmp ecx, 0x11b8
jbe 0x18004a6f0
mov eax, dword [r8]
lea r9, [rbp - 0x58]
mov dword [rbp - 0x58], eax
lea r8, [rbp + 0x50]
lea rax, [rbp - 0x80]
mov dword [rsp + 0x70], 1
mov qword [rsp + 0x30], rax
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x28], r10
xor edx, edx
mov dword [rsp + 0x20], 0x89
mov dword [rbp - 0x80], 1
call fcn.180009040
mov rdi, rax
test eax, eax
jne 0x18004ac98
mov eax, dword [rbp + 0x60]
lea r8, [rbp + 0x100]
lea rdx, [rsp + 0x70]
mov dword [rsp + 0x70], eax
mov ecx, 0x21
call fcn.180059ed0
mov dword [rbp - 0x58], eax
mov esi, 0xd4
mov dword [rbp - 0x80], eax
mov eax, esi
sub eax, 0x28
je 0x18004a834
sub eax, 0x3a
je 0x18004a859
cmp eax, 0x72
jne 0x18004a84a
movsxd rax, dword [rbp - 0x80]
cmp eax, 0x1f
ja 0x18004a85d
shl rax, 7
lea rcx, [0x180000000]
cmp qword [rax + rcx + 0xed600], 0
je 0x18004a85d
xor ebx, ebx
mov rsi, qword [rbp - 0x38]
mov ecx, dword [rsp + 0x68]
mov r9, qword [rbp - 0x50]
mov r8, qword [rsp + 0x78]
mov rdx, qword [rbp - 0x78]
mov r10, qword [rbp - 0x30]
lea eax, [rcx + rcx*8]
mov r11, qword [rbp - 0x28]
lea r14d, [r14 + rax*8]
cmp r14d, dword [rsp + 0x60]
ja 0x18004a98f
mov r8, qword [rbp - 0x10]
jmp 0x18004a372
mov r8d, dword [SHChangeNotifyDeregister]
lea rcx, [rbp - 0x80]
xor edx, edx
call qword [0x1800ee6a0]
mov ebx, eax
add esi, 0x3a
cmp esi, 0x182
jb 0x18004a7c6
test ebx, ebx
je 0x18004a7fc
mov eax, 7
jmp 0x18004ac98
mov rdx, qword [rbp + 8]
mov r9d, 0x5a
xor r8d, r8d
xor ecx, ecx
call fcn.18002e120
jmp 0x18004a800
test r11, r11
jne 0x18004a8c6
xor ecx, ecx
lea rax, [0x1800a9369]
mov qword [rsp + 0x48], rcx
lea r8, str.AsDataLocation
mov qword [rsp + 0x40], rcx
xor r9d, r9d
mov qword [rsp + 0x38], rax
mov edx, 0xcd
lea rax, [rsp + 0x70]
mov dword [rsp + 0x70], ecx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rcx
call fcn.180026490
mov rdx, qword [rbp - 0x78]
test rdx, rdx
jne 0x18004a917
xor ecx, ecx
lea rax, [0x1800a9369]
mov qword [rsp + 0x48], rcx
lea r8, str._s:_Exiting
mov qword [rsp + 0x40], rcx
xor r9d, r9d
mov qword [rsp + 0x38], rax
mov edx, 0xcd
lea rax, [rsp + 0x70]
mov dword [rsp + 0x70], ecx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rcx
call fcn.180026490
mov rdx, qword [rbp - 0x78]
cmp dword [rdx], 1
jne 0x18004a97c
mov ecx, dword [rsp + 0x68]
mov r9, qword [rbp - 0x50]
mov r8, qword [rsp + 0x78]
jmp 0x18004a811
mov rdx, qword [rbp - 0x78]
mov r8, qword [rsp + 0x78]
jmp 0x18004a811
mov byte [rbp - 0x60], 1
mov eax, dword [rbp - 0x60]
jmp 0x18004ac98
mov byte [rbp - 0x60], 0
mov eax, dword [rbp - 0x60]
jmp 0x18004ac98
xor r9d, r9d
lea rcx, [0x1800b3fe0]
xor r8d, r8d
mov edx, 0x9b
call fcn.180005df0
xor eax, eax
jmp 0x18004ac98
mov eax, 0xd
jmp 0x18004ac98
mov eax, 0xf
jmp 0x18004ac98
mov r8, qword [rbp - 0x68]
mov qword [rsp + 0x78], r8
mov eax, dword [rsp + 0x68]
lea r15d, [rax + 0xc]
cmp eax, r15d
jae 0x18004ac93
movsxd rsi, dword [rsp + 0x60]
mov ebx, dword [rbp - 0x60]
mov r14, qword [rbp - 0x68]
nop dword [rax]
add eax, 0xffffff7b
cmp eax, 0xb
ja case.default.0x18004a9d6
lea rcx, [0x180000000]
mov ecx, dword [rcx + rax*4 + 0x4acc4]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov rcx, r8
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, r13
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x18004ac69
mov eax, dword [rbp - 0x40]
cmp dword [rbp + 0xd0], eax
jbe 0x18004aa04
mov edi, 7
jmp case.0x18004a9d6.140
mov eax, dword [rbp + 0xd0]
cmp dword [r11], eax
jae 0x18004aa1c
mov dword [r11], eax
mov edi, 6
jmp case.0x18004a9d6.140
cmp dword [rbp + 0xd0], 0
mov dword [rbp - 0x70], 0
jbe case.default.0x18004a9d6
mov ecx, dword [rbp - 0x70]
movzx eax, byte [rcx + r12]
xor al, byte [rcx + r13]
mov byte [rcx + r9], al
mov eax, dword [rbp - 0x70]
inc eax
mov dword [rbp - 0x70], eax
cmp eax, dword [rbp + 0xd0]
jb 0x18004aa30
jmp case.default.0x18004a9d6
xor edi, edi
jmp case.default.0x18004a9d6
mov dword [rbp - 0x70], 0x100
jmp case.default.0x18004a9d6
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x18004ac69
mov eax, 0x48
nop dword [rax + rax]
cmp eax, 0x48
je 0x18004aa9b
cmp eax, 0x2250
jne 0x18004aab5
imul rcx, rsi, 0x38
mov qword [rcx + r14 + 0x10], 0x80
jmp 0x18004aab5
mov esi, 2
mov dword [rbp + 0xc0], 5
lea r14, [rbp + 0x50]
mov qword [rbp + 0xc8], r12
add eax, 0x2208
cmp eax, 0x4410
jbe 0x18004aa80
mov rax, qword [rbp - 0x10]
lea r9, [rsp + 0x70]
lea r8, [rbp + 0x50]
mov dword [rbp - 0x48], 1
xor edx, edx
mov dword [rsp + 0x60], 3
lea rcx, [rbp - 0x48]
mov eax, dword [rax]
mov dword [rsp + 0x70], eax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r10
mov dword [rsp + 0x20], 0x89
call fcn.180009040
mov edi, eax
test eax, eax
jne case.0x18004a9d6.140
jmp 0x18004ac69
mov eax, dword [rbp + 0x98]
lea rdx, [rbp + 0x18]
xor ecx, ecx
mov dword [rsp + 0x60], eax
mov rax, qword [rbp + 0x90]
xor r9d, r9d
mov qword [rsp + 0x48], rcx
mov r8d, 0x120
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea rcx, [rsp + 0x60]
call fcn.180018250
mov edi, eax
test eax, eax
jne case.0x18004a9d6.140
jmp 0x18004ac69
mov eax, dword [rbp - 0x70]
mov dword [r11], eax
jmp case.default.0x18004a9d6
mov ebx, edi
jmp case.default.0x18004a9d6
xor eax, eax
lea r9, [rbp - 0x70]
mov qword [rsp + 0x48], rax
lea rcx, [rbp + 0x18]
mov qword [rsp + 0x40], rax
mov r8d, 0xdb
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rdx
mov rdx, r13
mov qword [rsp + 0x20], rax
call fcn.180018250
xor edx, edx
lea r9, [rbp + 0x18]
xor ecx, ecx
mov edi, eax
mov r8d, 0xfe
test eax, eax
je 0x18004abce
call fcn.1800288c0
jmp case.0x18004a9d6.140
call fcn.1800288c0
mov eax, dword [rbp - 0x70]
lea r8, [rsp + 0x70]
mov dword [rsp + 0x60], eax
lea rcx, [rbp - 0x40]
mov eax, dword [rbp - 0x58]
mov r9d, 0x76
mov dword [rsp + 0x70], eax
mov rdx, r13
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rax
mov dword [rbp - 0x40], 0x80
call fcn.180044c80
mov edi, eax
test eax, eax
je 0x18004ac69
mov rdx, qword [rsp + 0x78]
lea r8, [rbp - 0x68]
mov ecx, 0x127
mov dword [rsp + 0x68], 0x8c
mov qword [rbp - 0x68], 0x100
call fcn.18005f5d0
lea r8, [rbp - 0x68]
mov qword [rbp - 0x68], 0x100
mov rdx, r13
mov ecx, 0x127
call fcn.18005f5d0
lea r8, [rbp - 0x68]
mov qword [rbp - 0x68], 0x80
mov rdx, r12
mov ecx, 0x127
call fcn.18005f5d0
mov r8, qword [rsp + 0x78]
mov eax, dword [rsp + 0x68]
mov r9, qword [rbp - 0x50]
inc eax
mov r10, qword [rbp - 0x30]
mov r11, qword [rbp - 0x28]
mov rdx, qword [rbp - 0x78]
mov dword [rsp + 0x68], eax
cmp eax, r15d
jb 0x18004a9b0
jmp case.0x18004a9d6.144
mov ebx, dword [rbp - 0x60]
mov eax, ebx
mov rcx, qword [rbp + 0x180]
xor rcx, rsp
call fcn.1800602e0
mov rbx, qword [rsp + 0x2d0]
add rsp, 0x290
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret