Function at 0x1001c740
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x100645e1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb0
cmp byte [ebp + 0x18], 0
push ebx
push esi
mov esi, edx
mov byte [esp + 0x20], cl
push edi
mov dword [esp + 0x1c], esi
je 0x1001c7c4
cmp byte [ebp + 0x14], 0
je 0x1001c78a
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov dword [eax], 0xcd4fe930
jmp 0x1001cc24
mov esi, dword [ebp + 0xc]
xor ebx, ebx
mov dword [esi], 1
jmp 0x1001c7bb
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], bl
je 0x1001c7b9
push ebx
push 0x420
push ebx
push ebx
push 0x5fb
push 0xc55
call dword [sym.imp.USER32.dll_ToAsciiEx]
dec dword [esi]
cmp dword [esi], ebx
jge 0x1001c797
jmp 0x1001cc24
test cl, cl
je 0x1001cc00
mov dword [esp + 0x30], esi
mov dword [esp + 0x18], 0x3a9b
cmp dword [esp + 0x18], 0x3bf7
push 0
pop ebx
jle 0x1001c857
mov esi, ebx
mov dword [esp + 0x18], ebx
mov edi, ebx
mov dword [esp + 0xc], ebx
mov ecx, edi
mov dword [esp + 0x48], esi
mov dword [esp + 0x10], ebx
shl esi, cl
mov edi, ebx
mov ebx, dword [esp + 0x10]
mov ecx, edi
mov eax, ebx
sar eax, cl
mov ecx, 0x10080d98
xor eax, esi
cdq
push edx
push eax
call fcn.10001b47
inc edi
cmp edi, 0x1dd7
jl 0x1001c803
inc ebx
push 0
mov dword [esp + 0x14], ebx
cmp ebx, 0x2a2f
pop ebx
jl 0x1001c7fd
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x18]
inc edi
mov dword [esp + 0xc], edi
cmp edi, 0x6e28
jl 0x1001c7f1
inc esi
mov dword [esp + 0x18], esi
cmp esi, 0x159d
jl 0x1001c7eb
mov esi, dword [esp + 0x1c]
push dword [esp + 0x28]
movdqa xmm0, xmmword [0x10072eb0]
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x88]
mov dword [esp + 0x44], ebx
push eax
push ebx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x50], ebx
movdqu xmmword [esp + 0x90], xmm0
mov dword [esp + 0x54], ebx
call fcn.100043b1
push 3
pop edi
push edi
lea ecx, [esp + 0x68]
mov dword [esp + 0xc8], ebx
call fcn.10001cd1
mov byte [esp + 0xc4], 1
mov dword [esp + 0x4c], 0x4b0ad8ea
mov dword [esp + 0x54], 0xfffffff9
mov dword [esp + 0xc], ebx
jmp 0x1001c8d7
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x64]
mov dword [eax + ecx*4], 1
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x1001c8c4
mov eax, dword [esp + 0x64]
mov dword [eax], ebx
push dword [esp + 0x28]
movdqa xmm0, xmmword [0x10072ea0]
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0x98]
mov dword [esp + 0x60], ebx
push eax
push ebx
lea ecx, [esp + 0x68]
mov dword [esp + 0x6c], ebx
movdqu xmmword [esp + 0xa0], xmm0
mov dword [esp + 0x70], ebx
call fcn.100043b1
push ecx
push 0x7f23
lea eax, [esp + 0x54]
mov byte [esp + 0xcc], 2
push eax
push ebx
push ecx
lea eax, [esp + 0x50]
mov ecx, 0x577c
push eax
lea edx, [esp + 0x6c]
call fcn.1001c5b3
add esp, 0x18
mov byte [esp + 0xc4], 1
lea ecx, [esp + 0x58]
call fcn.10001d54
mov eax, dword [esp + 0x64]
inc dword [eax]
cmp dword [eax], edi
jle 0x1001c8e3
lea ecx, [esp + 0x64]
call fcn.10001d54
or dword [esp + 0xc4], 0xffffffff
lea ecx, [esp + 0x3c]
call fcn.10001d54
movzx eax, word [esi]
push ecx
push ecx
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x3c]
push eax
push ecx
lea eax, [esp + 0x40]
push eax
push ecx
push ecx
call fcn.1001c552
mov dword [esp + 0x3c], 0xa2cb51db
add esp, 0x1c
mov dword [esp + 0x50], 0xa13b2885
mov dword [esp + 0xc], ebx
jmp 0x1001c9c6
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x2c], 0x47df
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 1
jl 0x1001c9b6
dec dword [esp + 0x2c]
mov dword [esp + 0x20], ebx
cmp dword [esp + 0x20], ebx
jl 0x1001ca86
mov dword [esp + 0xc], 0x43c4ab27
mov dword [esp + 0xc], ebx
cmp dword [esp + 0xc], ebx
jl 0x1001ca04
mov byte [esp + 0x15], bl
lea edx, [esp + 0x15]
call fcn.1001c540
dec dword [esp + 0xc]
jns 0x1001c9f1
mov dword [esp + 0xc], ebx
jmp 0x1001ca76
lea eax, [esp + 0x16]
mov dword [esp + 0x10], 0x7d2703d9
push eax
push ecx
mov byte [esp + 0x1e], bl
mov edx, 0x2aa4
mov ecx, 0x61cb
call fcn.1001c61e
mov dword [esp + 0x18], ebx
pop ecx
pop ecx
cmp dword [esp + 0x10], ebx
jl 0x1001ca72
mov dword [esp + 0x1c], 0x7e2f9d44
mov eax, dword [esp + 0x10]
cmp dword [esp + eax*4 + 0x2c], ebx
je 0x1001ca54
cmp dword [esp + 0xc], ebx
je 0x1001ca54
xor eax, eax
inc eax
jmp 0x1001ca56
mov eax, ebx
sub esp, 0x14
mov dword [esp + 0x30], eax
lea eax, [esp + 0x64]
push eax
push ecx
push ecx
call fcn.1001d62b
add esp, 0x20
dec dword [esp + 0x10]
jns 0x1001ca37
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jle 0x1001ca0a
dec dword [esp + 0x20]
jns 0x1001c9df
mov edi, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x10], 0xffffffff
jmp 0x1001caad
mov dword [esp + 0x38], 9
lea edx, [esp + 0x38]
push ecx
call fcn.1001dd85
inc dword [esp + 0x14]
pop ecx
cmp dword [esp + 0x10], 0x1c
jl 0x1001ca96
mov esi, dword [esp + 0x30]
mov dl, 0x2d
mov cl, byte [edi + esi]
call fcn.100261a7
mov byte [edi + esi], al
inc edi
cmp edi, 2
jb 0x1001ca88
mov dword [esp + 0xc], 0x19c6
cmp dword [esp + 0xc], 0x1b45
push 3
pop edi
jle 0x1001cb4d
mov esi, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], 0x4ad1
mov edi, ebx
mov ecx, edi
mov eax, esi
shl eax, cl
lea ecx, [esp + 0xa0]
cdq
push edx
push eax
call fcn.10001a65
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1001cb13
mov eax, dword [eax]
push eax
call fcn.1004b9e4
pop ecx
push ebx
push 1
lea ecx, [esp + 0xa8]
call fcn.10002062
inc edi
cmp edi, 0x440e
jl 0x1001caf4
dec esi
dec dword [esp + 0x18]
jne 0x1001caf2
mov esi, dword [esp + 0x10]
inc esi
mov dword [esp + 0x10], esi
cmp esi, 0x3b7d
jl 0x1001cae6
push 3
pop edi
push edi
lea ecx, [esp + 0x74]
call fcn.10001cd1
cmp dword [esp + 0xc], 0x176e
jge 0x1001cb6c
push str.wvncl_rjd_bzhe_lirc_vrjdegbme_ibzxr_nzqxc
call fcn.1004b9e4
pop ecx
push 0x358a
lea eax, [esp + 0x80]
mov dword [esp + 0xc8], edi
push eax
push ebx
push 1
lea eax, [esp + 0x80]
mov dword [esp + 0x38], 0xf57a7c20
push eax
push 0x7f41
push 0x79c3
mov edx, 0x6bf6
xor cl, cl
call fcn.1001c740
add esp, 0x1c
mov byte [esp + 0x14], bl
xor dl, dl
lea ecx, [esp + 0x14]
call fcn.10020cd7
push 0x6343
push ebx
push 0x3969
push 0x5be0
lea eax, [esp + 0x38]
mov edx, 0x4ee1
push eax
lea eax, [esp + 0x84]
mov ecx, 0x7889
push eax
call fcn.1001d48e
add esp, 0x18
lea ecx, [esp + 0x70]
call fcn.10001d54
mov ecx, dword [ebp + 8]
mov ax, word [esp + 0x34]
mov word [ecx], ax
jmp 0x1001cc24
mov edx, dword [ebp + 0x1c]
push 3
pop edi
mov dword [edx], 0
cmp dword [edx], edi
jge 0x1001cc24
mov esi, dword [ebp + 0x10]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0x77862fd4
inc dword [edx]
cmp dword [edx], edi
jl 0x1001cc13
mov ecx, dword [esp + 0xbc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret