Function at 0x10014037
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x13c
push esi
mov esi, dword [0x10029af0]
mov eax, esi
push edi
xor eax, 0x5abb3b4b
mov dword [ebp - 0x28], ecx
imul ecx, dword [0x10029aa0], 0xb5df6385
push 0x18
mov dword [ebp - 0x10], eax
xor eax, eax
pop edi
inc eax
cmp eax, 0x1f2e
jg 0x10014077
cmp byte [eax + str._tstyle:dott], 0
jne 0x10014064
jmp 0x10014080
push ecx
call fcn.10013c9e
add esp, 4
sub esi, 0xd7b816c
mov dword [ebp - 8], esi
push ecx
call fcn.10013928
xor edx, edx
mov dword [ebp - 0x38], 0x26
pop ecx
mov dword [ebp - 0x34], edi
mov eax, edx
mov dword [ebp - 0x30], 0xffffffab
add edi, dword [ebp + eax*4 - 0x38]
inc eax
cmp eax, 3
jl 0x100140a5
mov dword [ebp - 0x3c], edi
mov esi, str.ASN1_BOOLEAN
lea edi, [ebp - 0x38]
mov dword [ebp - 0x1c], 0x49b2dbb0
push 9
mov dword [ebp - 0x18], 0x3c0d5921
mov ecx, str._tstyle:dott
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x14], 0xa1
mov dword [ebp - 0xc], edx
pop eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
sub al, 0x30
cmp al, 9
ja 0x100140ed
inc ecx
mov al, byte [ecx]
test al, al
jne 0x100140db
mov esi, dword [ebp - 8]
jmp 0x100140f6
mov esi, dword [ebp - 8]
xor esi, 0xbd614116
call fcn.10013b1d
xor ecx, ecx
mov eax, ecx
mov byte [ebp + eax - 0x13c], al
inc eax
cmp eax, 0x100
jb 0x100140ff
mov eax, ecx
cmp byte [str.RegKey5HKCUSoftwaregrigsoft.comCompare_It_optionsRecent2], al
je 0x10014133
inc eax
cmp eax, 0x1ec5
jl 0x1001412a
cmp byte [eax + str.RegKey5HKCUSoftwaregrigsoft.comCompare_It_optionsRecent2], cl
jne 0x10014118
jmp 0x10014133
mov esi, dword [ebp - 0x10]
and esi, 0x2e36ac5b
lea edi, [esi + 0x594f1456]
mov dword [ebp - 8], ecx
xor edi, 0x9a871ba6
mov dword [ebp - 0x24], edi
mov edi, dword [ebp - 0x10]
mov al, byte [ebp + ecx - 0x13c]
xor edx, edx
mov byte [ebp - 1], al
mov eax, ecx
push 0xc
pop ecx
div ecx
movzx ecx, byte [ebp - 1]
push 0x69
movzx eax, byte [ebp + edx - 0x38]
add eax, dword [ebp - 0xc]
add ecx, eax
movzx eax, cl
mov ecx, str.invalid_string_table_value
mov dword [ebp - 0xc], eax
pop edx
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x10014191
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x10014177
jmp 0x10014199
mov esi, edi
and esi, 0xafdcff63
and edi, 0x4078dedc
call fcn.10013f2f
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov al, byte [ebp + edx - 0x13c]
mov byte [ebp + ecx - 0x13c], al
inc ecx
mov al, byte [ebp - 1]
mov byte [ebp + edx - 0x13c], al
mov dword [ebp - 8], ecx
cmp ecx, 0x100
jb 0x10014148
mov edi, dword [ebp - 0x24]
and esi, 0xe570e4cd
xor ecx, ecx
mov dword [ebp - 0xc], ecx
mov eax, ecx
mov dword [ebp - 0x10], ecx
inc eax
movzx eax, al
mov dword [ebp - 8], eax
mov cl, byte [ebp + eax - 0x13c]
mov eax, dword [ebp - 0xc]
movzx edx, cl
add eax, edx
mov dword [ebp - 0x24], edx
mov edx, dword [ebp - 8]
movzx eax, al
mov dword [ebp - 0xc], eax
mov al, byte [ebp + eax - 0x13c]
mov byte [ebp + edx - 0x13c], al
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 0x13c], cl
mov eax, edx
mov ecx, str.RegKey5HKCUSoftwaregrigsoft.comCompare_It_optionsRecent2
movzx eax, byte [ebp + eax - 0x13c]
add eax, dword [ebp - 0x24]
movzx eax, al
mov al, byte [ebp + eax - 0x13c]
mov byte [ebp - 1], al
mov al, byte [str.RegKey5HKCUSoftwaregrigsoft.comCompare_It_optionsRecent2]
jmp 0x1001424e
sub al, 0x30
cmp al, 9
ja 0x10014254
inc ecx
mov al, byte [ecx]
test al, al
jne 0x10014245
jmp 0x1001425c
mov edi, esi
and edi, 0x6c77850
mov esi, edi
mov edx, 0x109f
xor esi, 0xd7b1e600
mov eax, str.invalid_string_table_value
push 0x69
mov dword [0x10029af0], esi
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x8be
ja 0x1001428d
movzx ecx, word [eax]
test ecx, ecx
jne 0x10014277
jmp 0x100142a3
call fcn.10013871
add esi, 0x43010639
mov dword [0x10029af0], esi
call fcn.10013a68
mov eax, edi
and eax, 0x3b27c06a
mov dword [0x10029b48], eax
call fcn.10013cc2
mov ecx, dword [ebp - 0x10]
push 9
mov al, byte [ebp + ecx - 0x1c]
xor al, byte [ebp - 1]
mov byte [ebp + ecx - 0x38], al
inc ecx
pop eax
cmp ecx, eax
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 8]
jb 0x100141e5
mov dword [ebp - 0x1c], 0x35
xorps xmm1, xmm1
mov dword [ebp - 0x18], 0x62
xor eax, eax
mov dword [ebp - 0x14], 0xffffff42
mov esi, eax
mov dword [ebp - 0x20], 0x27
movups xmm0, xmmword [ebp - 0x20]
mov byte [ebp - 0x2f], al
mov dword [ebp - 0x1c], 0x38
psubd xmm1, xmm0
mov dword [ebp - 0x18], 0x3d
movaps xmm0, xmm1
mov dword [ebp - 0x14], 0xffffff8b
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
sub esi, dword [ebp + eax*4 - 0x1c]
imul edi, edi, 0x3843d2bd
inc eax
cmp eax, 3
jl 0x10014333
push dword [ebp - 0x28]
mov dword [0x10029aa0], edi
push ecx
call fcn.1001402d
mov ecx, dword [ebp - 0x3c]
lea edx, [ebp - 0x38]
push eax
call fcn.1001bfc3
call eax
mov edi, eax
cmp edi, esi
je 0x100143ea
push 0x22
xor edx, edx
mov dword [ebp - 0x1c], 0x5a
pop esi
mov dword [ebp - 0x18], 0x5f
mov ecx, edx
mov dword [ebp - 0x14], 0xffffff25
add esi, dword [ebp + ecx*4 - 0x1c]
inc ecx
cmp ecx, 3
jl 0x10014386
mov eax, edx
mov ecx, str.tyfD9_tsH
inc eax
lea ecx, [ecx + 2]
cmp eax, 0x2113
je 0x100143b0
cmp word [ecx], dx
jne 0x10014397
cmp eax, 0x60c
jg 0x100143c4
jmp 0x100143c9
call fcn.10013f2f
mov eax, dword [0x10029af0]
or eax, 0xb37334d2
mov dword [0x10029aa0], eax
call fcn.10013b1d
mov eax, dword [0x10029aa0]
xor eax, 0xad1946b5
mov dword [0x10029af0], eax
call fcn.10013ea8
push dword [ebp - 0x28]
push esi
push edi
call fcn.1001466e
add esp, 0xc
mov eax, edi
pop edi
pop esi
leave
ret