Function at 0x140021921
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2e8
mov rbx, rdx
mov rdi, rcx
xor esi, esi
lea rcx, [rsp + 0x148]
mov r8d, 0x88
xor edx, edx
call sub.msvcrt.dll_memset
lea rax, [rsp + 0x1e0]
mov qword [rsp + 0x130], rax
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x138], rdi
mov rcx, qword [rsp + 0x138]
mov qword [rsp + 0x88], rbx
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x68], rax
lea rax, [0x1400e70c0]
movsxd rcx, dword [rsi + rax]
xor dword [rsp + rcx*4 + 0x148], 0x78c104ba
add rsi, 4
cmp rsi, 0x84
jne 0x140021996
mov eax, 0x2745755d
lea r10, [0x1400e7348]
lea rbp, [0x1400e7040]
lea r11, [0x1400e73d0]
lea r9, [0x1400e73a0]
lea rdx, [0x1400e73ec]
lea rcx, [0x1400e7310]
mov ebx, 0
mov qword [rsp + 0x90], rbx
mov r8d, 0
mov r12d, 0
mov ebx, 0
mov qword [rsp + 0x100], rbx
mov ebx, 0
mov qword [rsp + 0xf0], rbx
mov ebx, 0
mov qword [rsp + 0xe0], rbx
mov ebx, 0
mov qword [rsp + 0xd0], rbx
mov ebx, 0
mov qword [rsp + 0xd8], rbx
mov ebx, 0
mov qword [rsp + 0xc8], rbx
mov ebx, 0
mov qword [rsp + 0xc0], rbx
mov ebx, 0
mov qword [rsp + 0xb8], rbx
mov ebx, 0
mov qword [rsp + 0xb0], rbx
mov ebx, 0
mov qword [rsp + 0xa8], rbx
mov ebx, 0
mov qword [rsp + 0xf8], rbx
mov ebx, 0
mov qword [rsp + 0xa0], rbx
mov ebx, 0
mov qword [rsp + 0xe8], rbx
mov ebx, 0
mov qword [rsp + 0x98], rbx
cmp eax, 0x411603ed
jle 0x140021b1a
cmp eax, 0x648bcbe2
jg 0x140021ba6
cmp eax, 0x5473af88
jg 0x140021c66
cmp eax, 0x490510eb
jg 0x140021dc5
cmp eax, 0x411603ee
je 0x1400221ab
cmp eax, 0x46794484
jne 0x140021ab0
mov eax, dword [rsp + 0x168]
mov ecx, 0x2caf3d04
xor eax, ecx
lea rcx, [0x1400e7310]
mov edi, 0xb
mov qword [rsp + 0x30], r14
mov rsi, qword [rsp + 0x38]
mov qword [rsp + 0x40], rsi
mov r15, qword [rsp + 0x60]
jmp 0x140021ab0
cmp eax, 0x2745755c
jg 0x140021bf4
cmp eax, 0x1bcad33c
jg 0x140021ca0
cmp eax, 0x1236ecd9
jg 0x140021dfa
cmp eax, 0x1c8405e
je 0x140022217
cmp eax, 0x549b891
jne 0x140022692
mov rax, qword [rsp + 0x78]
add rax, 9
cmp byte [rsp + 0xd0], 0
jne 0x140021b7f
xor ecx, ecx
movsxd rdx, dword [rcx + r10]
xor dword [rsp + rdx*4 + 0x148], 0x2f7d4ef2
add rcx, 4
cmp rcx, 8
jne 0x140021b66
cmp rax, 0x13
mov eax, 0x3abff121
mov ecx, 0x26f2c225
cmovb eax, ecx
xor eax, dword [rsp + 0x170]
mov cl, 1
mov qword [rsp + 0xd0], rcx
jmp 0x1400224cd
cmp eax, 0x6ff39070
jg 0x140021ceb
cmp eax, 0x6ecc484d
jg 0x140021e8c
cmp eax, 0x648bcbe3
je 0x140022239
cmp eax, 0x6c461500
jne 0x140021ab0
mov eax, dword [rsp + 0x1b4]
mov ecx, 0x332250a4
xor eax, ecx
lea rcx, [0x1400e7310]
mov dword [rsp + 0x28], 0
jmp 0x140021ab0
cmp eax, 0x3736e2f5
jle 0x140021d60
cmp eax, 0x40a872dc
jg 0x140021f76
cmp eax, 0x3736e2f6
je 0x14002228d
cmp eax, 0x37fa3594
jne 0x140021ab0
cmp byte [rsp + 0xf8], 0
jne 0x140021c35
xor dword [rsp + 0x1b4], 0xd5cdd11
cmp edi, 0xb
mov eax, 0x3e7e8db5
mov ecx, 0x223a1ad5
cmove eax, ecx
xor eax, dword [rsp + 0x1ac]
mov cl, 1
mov qword [rsp + 0xf8], rcx
mov dword [rsp + 0x28], edi
lea rcx, [0x1400e7310]
jmp 0x140021ab0
cmp eax, 0x5818fbf2
jg 0x140021fc6
cmp eax, 0x5473af89
je 0x1400222af
cmp eax, 0x56259861
jne 0x140021ab0
mov rax, qword [rsp + 0x38]
inc rax
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x174]
jmp 0x140021df0
cmp eax, 0x25f10877
jg 0x14002202e
cmp eax, 0x1bcad33d
je 0x1400222e5
cmp eax, 0x2092dc34
jne 0x140021ab0
mov eax, dword [rsp + 0x1c8]
mov ecx, 0x2808a9ab
xor eax, ecx
lea rcx, [0x1400e7310]
mov rbx, qword [rsp + 0x110]
mov qword [rsp + 0x1d0], rbx
jmp 0x140021ab0
cmp eax, 0x70897d9a
jg 0x14002209e
cmp eax, 0x6ff39071
je 0x14002233e
cmp eax, 0x70028260
jne 0x140021ab0
cmp byte [rsp + 0xa0], 0
jne 0x140021d31
xor eax, eax
movsxd rcx, dword [rax + rdx]
xor dword [rsp + rcx*4 + 0x148], 0x7d360d45
add rax, 4
cmp rax, 0xc
jne 0x140021d18
cmp dword [rsp + 0x28], 3
mov eax, 0x3ef5724e
mov ecx, 0x7f356167
cmovl eax, ecx
xor eax, dword [rsp + 0x1b8]
mov cl, 1
mov qword [rsp + 0xa0], rcx
lea rcx, [0x1400e7310]
jmp 0x140021ab0
cmp eax, 0x303dc6fc
jle 0x140022140
cmp eax, 0x303dc6fd
je 0x1400223a2
cmp eax, 0x31496eb2
jne 0x140021ab0
cmp byte [rsp + 0xe8], 0
jne 0x140021d96
xor dword [rsp + 0x1c4], 0x520aa150
cmp dword [rsp + 0x28], 0
mov eax, 0x19a26afe
mov ecx, 0x311bc82b
cmove eax, ecx
xor eax, dword [rsp + 0x1c0]
mov cl, 1
mov qword [rsp + 0xe8], rcx
lea rcx, [0x1400e7310]
jmp 0x140021ab0
cmp eax, 0x490510ec
je 0x1400223f3
cmp eax, 0x4a68ab65
jne 0x140021ab0
mov rax, qword [rsp + 0x38]
add rax, 2
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x178]
mov ecx, 0x46eadcd4
jmp 0x140022613
cmp eax, 0x1236ecda
je 0x140022413
cmp eax, 0x1940c862
jne 0x140021ab0
lea rax, [rsp + 0x1e0]
mov rcx, qword [rsp + 0x58]
mov byte [rcx + rax + 1], 0
cmp byte [rsp + 0xd8], 0
jne 0x140021e4e
xor eax, eax
lea rcx, [0x1400e7350]
movsxd rcx, dword [rax + rcx]
xor dword [rsp + rcx*4 + 0x148], 0x13cd7de5
add rax, 4
cmp rax, 0x24
jne 0x140021e2e
mov eax, dword [rsp + 0x180]
mov ecx, 0x62e1b69e
xor eax, ecx
mov cl, 1
mov qword [rsp + 0xd8], rcx
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x118], rcx
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x108], rcx
lea rcx, [0x1400e7310]
jmp 0x140021ab0
cmp eax, 0x6ecc484e
mov dword [rsp + 0x54], edi
mov qword [rsp + 0x128], r14
mov qword [rsp + 0x120], r15
je 0x1400224e0
cmp eax, 0x6fb1eea3
jne 0x140021ab0
mov r13, r8
mov r15, r12
lea rax, [rsp + 0x1e0]
mov qword [rsp + 0x70], rax
mov rcx, qword [rsp + 0x70]
mov r8d, 0xfa
xor edx, edx
call sub.msvcrt.dll_memset
mov rax, qword [rsp + 0x70]
mov byte [rax], 0x5f
cmp byte [rsp + 0x90], 0
lea rdx, [0x1400e7150]
jne 0x140021f0f
xor eax, eax
movsxd rcx, dword [rax + rdx]
xor dword [rsp + rcx*4 + 0x148], 0x53e92626
add rax, 4
cmp rax, 0x74
jne 0x140021ef6
mov eax, dword [rsp + 0x150]
mov ecx, 0x32dd0738
xor eax, ecx
mov cl, 1
mov qword [rsp + 0x90], rcx
lea r10, [0x1400e7348]
lea rbp, [0x1400e7040]
lea r11, [0x1400e73d0]
lea r9, [0x1400e73a0]
lea rdx, [0x1400e73ec]
lea rcx, [0x1400e7310]
mov r12, r15
mov edi, dword [rsp + 0x54]
mov r14, qword [rsp + 0x128]
mov r15, qword [rsp + 0x120]
mov r8, r13
mov r13d, 1
jmp 0x140021ab0
cmp eax, 0x40a872dd
je 0x1400225af
cmp eax, 0x40c73208
jne 0x140021ab0
test edi, edi
mov eax, 0x3e7e8db5
mov ecx, 0x68e99d90
cmove eax, ecx
lea rcx, [0x1400e7310]
xor eax, dword [rsp + 0x1b0]
mov dword [rsp + 0x28], edi
mov r14, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x60], r15
jmp 0x140021ab0
cmp eax, 0x5818fbf3
je 0x1400225f9
cmp eax, 0x61ef7259
jne 0x140021ab0
cmp byte [rsp + 0xa8], 0
jne 0x140022001
xor eax, eax
movsxd rcx, dword [rax + r11]
xor dword [rsp + rcx*4 + 0x148], 0x33c4088
add rax, 4
cmp rax, 0x1c
jne 0x140021fe8
cmp edi, 0xb
mov eax, 0x7aba7ac9
mov ecx, 0xd877d55
cmovl eax, ecx
xor eax, dword [rsp + 0x1a8]
mov cl, 1
mov qword [rsp + 0xa8], rcx
lea rcx, [0x1400e7310]
jmp 0x140021ab0
cmp eax, 0x25f10878
je 0x140022621
cmp eax, 0x26959245
jne 0x140021ab0
cmp byte [rsp + 0xf0], 0
lea rsi, [0x1400e72b0]
jne 0x140022070
xor eax, eax
movsxd rcx, dword [rax + rsi]
xor dword [rsp + rcx*4 + 0x148], 0xe97711d
add rax, 4
cmp rax, 0x60
jne 0x140022057
cmp r14, 0x33
mov eax, 0x5ae7ac4
mov ecx, 0x346ff45c
cmovl eax, ecx
xor eax, dword [rsp + 0x164]
mov cl, 1
mov qword [rsp + 0xf0], rcx
lea rcx, [0x1400e7310]
jmp 0x140021ab0
cmp eax, 0x70897d9b
je 0x140022658
cmp eax, 0x77b8ca1c
jne 0x140021ab0
mov rsi, r13
mov r13, rbp
mov rax, r14
mov r14, r12
mov rbp, rax
lea rax, [rax*4]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x78]
add rax, 0x63
cmp byte [rsp + 0xe0], 0
mov r12, rcx
jne 0x140022101
xor ecx, ecx
movsxd rdx, dword [rcx + r12]
xor dword [rsp + rdx*4 + 0x148], 0x3d971519
add rcx, 4
cmp rcx, 0x38
jne 0x1400220e8
cmp rax, 0xc7
mov eax, 0x1558b4ae
mov ecx, 0x4809f7cc
cmovb eax, ecx
xor eax, dword [rsp + 0x16c]
mov cl, 1
mov qword [rsp + 0xe0], rcx
lea rdx, [0x1400e73ec]
mov rcx, r12
mov r12, r14
mov r14, rbp
mov rbp, r13
mov r13, rsi
jmp 0x140021ab0
cmp eax, 0x2745755d
jne 0x140022685
mov rax, qword [rsp + 0x68]
cmp byte [rsp + 0x98], 0
jne 0x140022178
xor ecx, ecx
movsxd rdx, dword [rcx + rbp]
xor dword [rsp + rdx*4 + 0x148], 0x7a21c57f
add rcx, 4
cmp rcx, 0x80
jne 0x14002215c
test rax, rax
mov eax, 0x5853d88e
mov ecx, 0x1770ea19
cmove eax, ecx
xor eax, dword [rsp + 0x148]
mov cl, 1
mov qword [rsp + 0x98], rcx
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x110], rcx
jmp 0x1400224cd
cmp byte [rsp + 0xb8], 0
lea rdx, [0x1400e73b4]
jne 0x1400221d7
xor eax, eax
movsxd rcx, dword [rax + rdx]
xor dword [rsp + rcx*4 + 0x148], 0x771e161b
add rax, 4
cmp rax, 0xc
jne 0x1400221be
mov edx, dword [rsp + 0x2c]
cmp edx, 0x13
mov eax, 0x65d24a64
mov ecx, 0x6af17073
cmove eax, ecx
xor eax, dword [rsp + 0x194]
mov cl, 1
mov qword [rsp + 0xb8], rcx
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x40], rcx
mov edi, edx
mov qword [rsp + 0x30], r14
mov r15, qword [rsp + 0x60]
jmp 0x1400224cd
mov eax, dword [rsp + 0x18c]
mov ecx, 0x7b2e0572
xor eax, ecx
mov dword [rsp + 0x2c], 0
lea rcx, [0x1400e7310]
jmp 0x140021ab0
cmp byte [rsp + 0xc0], 0
jne 0x14002225e
xor eax, eax
movsxd rcx, dword [rax + r9]
xor dword [rsp + rcx*4 + 0x148], 0x1b98f6ac
add rax, 4
cmp rax, 0x14
jne 0x140022245
cmp dword [rsp + 0x2c], 0x13
mov eax, 0x5eb3cd7f
mov ecx, 0x46f1dac
cmovl eax, ecx
xor eax, dword [rsp + 0x190]
mov cl, 1
mov qword [rsp + 0xc0], rcx
lea rcx, [0x1400e7310]
jmp 0x140021ab0
mov eax, dword [rsp + 0x188]
mov ecx, 0x7b2e0572
xor eax, ecx
lea rcx, [0x1400e7310]
mov dword [rsp + 0x2c], 0x13
jmp 0x140021ab0
mov eax, dword [rsp + 0x1a0]
mov ecx, 0x37e5a329
xor eax, ecx
lea rcx, [0x1400e7310]
mov r15, qword [rsp + 0x80]
mov edi, 3
mov rsi, qword [rsp + 0x48]
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x30], r14
jmp 0x140021ab0
mov ebx, dword [rsp + 0x2c]
test ebx, ebx
mov eax, 0x65d24a64
mov ecx, 0x160bd4e7
cmove eax, ecx
lea rcx, [0x1400e7310]
xor eax, dword [rsp + 0x198]
mov rsi, qword [rsp + 0x48]
mov qword [rsp + 0x108], rsi
mov rsi, qword [rsp + 0x140]
mov qword [rsp + 0x118], rsi
mov rsi, qword [rsp + 0x48]
mov qword [rsp + 0x40], rsi
mov edi, ebx
mov qword [rsp + 0x30], r14
mov r15, qword [rsp + 0x60]
jmp 0x140021ab0
mov byte [rsp + r13 + 0x1e0], 0x40
cmp byte [rsp + 0x100], 0
lea rdx, [0x1400e7240]
jne 0x140022373
xor eax, eax
movsxd rcx, dword [rax + rdx]
xor dword [rsp + rcx*4 + 0x148], 0x23b3651a
add rax, 4
cmp rax, 0x64
jne 0x14002235a
mov eax, dword [rsp + 0x160]
mov ecx, 0x46f1c91f
xor eax, ecx
mov cl, 1
mov qword [rsp + 0x100], rcx
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x60], rcx
xor r14d, r14d
mov qword [rsp + 0x38], r13
jmp 0x1400224cd
test r8b, r8b
lea rbx, [0x1400e71d0]
jne 0x1400223c9
xor eax, eax
movsxd rcx, dword [rax + rbx]
xor dword [rsp + rcx*4 + 0x148], 0x316dbcb9
add rax, 4
cmp rax, 0x70
jne 0x1400223b0
cmp r13, 0xf5
mov eax, 0x3efa7792
mov ecx, 0x11a1953e
cmovl eax, ecx
xor eax, dword [rsp + 0x154]
mov r8b, 1
lea rcx, [0x1400e7310]
jmp 0x140021ab0
mov al, byte [rsp + 0x27]
mov byte [rsp + r13 + 0x1e0], al
inc r13
mov eax, dword [rsp + 0x15c]
mov ecx, 0x9a1f201
jmp 0x140022613
mov rbx, qword [rsp + 0x118]
mov rax, rbx
movabs rcx, 0xcccccccccccccccd
mul rcx
shr edx, 2
and edx, 0xfffffffe
lea eax, [rdx + rdx*4]
mov ecx, ebx
sub ecx, eax
or cl, 0x30
mov rax, qword [rsp + 0x108]
mov byte [rsp + rax + 0x1e0], cl
dec rax
mov qword [rsp + 0x48], rax
mov rax, rbx
movabs rcx, 0x6666666666666667
imul rcx
mov rax, rdx
shr rax, 0x3f
sar rdx, 2
add rdx, rax
mov qword [rsp + 0x140], rdx
mov rax, qword [rsp + 0x140]
cmp byte [rsp + 0xc8], 0
lea rsi, [0x1400e7380]
jne 0x1400224ac
xor ecx, ecx
movsxd rdx, dword [rcx + rsi]
xor dword [rsp + rdx*4 + 0x148], 0x7cbfe930
add rcx, 4
cmp rcx, 0x20
jne 0x140022493
test rax, rax
mov eax, 0x62d267ff
mov ecx, 0x542cc557
cmove eax, ecx
xor eax, dword [rsp + 0x184]
mov cl, 1
mov qword [rsp + 0xc8], rcx
lea rdx, [0x1400e73ec]
lea rcx, [0x1400e7310]
jmp 0x140021ab0
mov qword [rsp + 0x1d8], r8
mov r15, r13
mov r13, r12
mov rcx, qword [rsp + 0x138]
mov rdx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x80]
cmp byte [rsp + 0xb0], 0
lea rbp, [0x1400e73c0]
jne 0x14002253d
xor ecx, ecx
movsxd rdx, dword [rcx + rbp]
xor dword [rsp + rdx*4 + 0x148], 0x2529ff56
add rcx, 4
cmp rcx, 8
jne 0x140022524
test rax, rax
mov eax, 0x275081af
mov ecx, 0x56d2265e
cmove eax, ecx
xor eax, dword [rsp + 0x19c]
mov cl, 1
mov qword [rsp + 0xb0], rcx
lea r10, [0x1400e7348]
lea rbp, [0x1400e7040]
lea r11, [0x1400e73d0]
lea r9, [0x1400e73a0]
lea rdx, [0x1400e73ec]
lea rcx, [0x1400e7310]
mov r12, r13
mov r13, r15
mov r8, qword [rsp + 0x1d8]
mov edi, dword [rsp + 0x54]
mov r14, qword [rsp + 0x128]
mov r15, qword [rsp + 0x120]
jmp 0x140021ab0
mov rax, qword [rsp + 0x88]
mov al, byte [r13 + rax - 1]
mov byte [rsp + 0x27], al
mov al, byte [rsp + 0x27]
test r12b, r12b
jne 0x1400225d4
xor dword [rsp + 0x15c], 0x59f86fa6
test al, al
mov eax, 0x29614bb6
mov ecx, 0xf97cb2b
cmove eax, ecx
xor eax, dword [rsp + 0x158]
mov r12b, 1
lea rcx, [0x1400e7310]
jmp 0x140021ab0
mov rax, qword [rsp + 0x38]
add rax, 3
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x17c]
mov ecx, 0x69979226
xor eax, ecx
lea rcx, [0x1400e7310]
jmp 0x140021ab0
lea rax, [r14 + 1]
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x1a4]
mov ecx, 0x37e5a329
xor eax, ecx
lea rcx, [0x1400e7310]
mov r15, qword [rsp + 0x80]
xor edi, edi
mov rsi, qword [rsp + 0x48]
mov qword [rsp + 0x40], rsi
jmp 0x140021ab0
cmp dword [rsp + 0x28], 3
mov eax, 0x19a26afe
mov ecx, 0x13d8dea4
cmove eax, ecx
lea rcx, [0x1400e7310]
xor eax, dword [rsp + 0x1bc]
mov qword [rsp + 0x110], r15
jmp 0x140021ab0
cmp eax, 0x2ae8686e
jne 0x140021ab0
jmp 0x1400226b1
cmp eax, 0x251cabb
lea rcx, [0x1400e7310]
jne 0x140021ab0
mov rcx, qword [rsp + 0x88]
call fcn.1400218c8
mov rax, qword [rsp + 0x130]
mov rax, qword [rsp + 0x1d0]
add rsp, 0x2e8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret