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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x244
and dword [ebp - 0x20], 0
push ebx
push esi
push edi
push 5
pop ecx
mov esi, str.LocalSM0:_d:_d:_hs
mov dword [ebp - 0x18], 0x1c0f41fe
lea edi, [ebp - 0x68]
mov dword [ebp - 0x14], 0xfa2072a
rep movsd dword es:[edi], dword [esi]
mov edi, dword [0x435658]
or edi, 0x89a683c
mov dword [ebp - 0x10], 0x5d953eb4
mov dword [ebp - 0xc], 0x25846e7d
xor eax, eax
mov dword [ebp - 8], 0x6b873390
mov dword [ebp - 4], 0x24915c24
mov byte [ebp + eax - 0x168], al
inc eax
cmp eax, 0x100
jb 0x41607e
push 0x13
xor esi, esi
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x168]
mov eax, esi
imul edi, edi, 0x785fe6d0
div ecx
movzx ecx, bl
push 0x13
movzx eax, byte [ebp + edx - 0x68]
add eax, dword [ebp - 0x20]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x20], ecx
mov al, byte [ebp + ecx - 0x168]
mov byte [ebp + esi - 0x168], al
inc esi
mov byte [ebp + ecx - 0x168], bl
pop ecx
cmp esi, 0x100
jb 0x416092
and dword [ebp - 0x24], 0
xor ebx, ebx
xor esi, esi
add edi, 0xc5b2daf8
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0x24]
lea eax, [ebx + 1]
movzx ebx, al
mov cl, byte [ebp + ebx - 0x168]
movzx edx, cl
lea eax, [edx + edi]
movzx edi, al
mov al, byte [ebp + edi - 0x168]
mov byte [ebp + ebx - 0x168], al
mov byte [ebp + edi - 0x168], cl
movzx eax, byte [ebp + ebx - 0x168]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x168]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x184], al
inc esi
cmp esi, 0x18
jb 0x4160ed
mov esi, str.cross_device_link
mov byte [ebp - 0x16c], 0
lea edi, [ebp - 0x68]
mov dword [ebp - 0x54], 0x15d4e6aa
mov dword [ebp - 0x50], 0x26a760da
mov dword [ebp - 0x4c], 0x4deeba98
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x48], 0xbf8d1bf1
mov dword [ebp - 0x44], 0x31eddbaf
mov dword [ebp - 0x40], 0xa87048bb
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x3c], 0x2b00030b
mov dword [ebp - 0x38], 0x9f7d136d
mov dword [ebp - 0x34], 0x3435e678
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x30], 0x1622862
mov dword [ebp - 0x2c], 0x9e8e722c
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
xor edi, edi
xor eax, eax
mov byte [ebp + eax - 0x168], al
inc eax
cmp eax, 0x100
jb 0x4161a3
sub dword [ebp - 0x1c], 0x4f7f2b6e
xor esi, esi
push 0x11
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x168]
mov eax, esi
div ecx
movzx ecx, bl
push 0x11
movzx eax, byte [ebp + edx - 0x68]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x168]
mov byte [ebp + esi - 0x168], al
inc esi
mov byte [ebp + edi - 0x168], bl
cmp esi, 0x100
jb 0x4161be
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x168]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x168]
mov byte [ebp + edi - 0x168], al
mov byte [ebp + ebx - 0x168], cl
movzx eax, byte [ebp + edi - 0x168]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x168]
xor al, byte [ebp + esi - 0x54]
mov byte [ebp + esi - 0x244], al
inc esi
cmp esi, 0x2c
jb 0x416201
and dword [ebp - 0x24], 0
lea edi, [ebp - 0x64]
mov esi, 0x42c544
mov byte [ebp - 0x218], 0
push 9
pop eax
mov byte [ebp - 0x12], al
xor eax, eax
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x18], 0x744ee438
mov word [ebp - 0x14], 0xb14a
mov dword [ebp - 0x11], 0x6ac35862
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xd], 0x2c65e671
mov dword [ebp - 9], 0x9fccdd04
mov dword [ebp - 5], 0xb4c554c0
movsd dword es:[edi], dword [esi]
mov byte [ebp - 1], 0x78
movsw word es:[edi], word [esi]
mov esi, dword [ebp - 0x1c]
add esi, 0x529051a4
add esi, 0xe4c96f48
mov byte [ebp + eax - 0x168], al
inc eax
cmp eax, 0x100
jb 0x4162a7
or esi, 0x4a830873
xor edi, edi
push 0xd
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x24]
pop ecx
xor edx, edx
mov bl, byte [ebp + edi - 0x168]
mov eax, edi
div ecx
movzx ecx, bl
push 0xd
movzx eax, byte [ebp + edx - 0x64]
add eax, esi
add ecx, eax
movzx esi, cl
pop ecx
mov al, byte [ebp + esi - 0x168]
mov byte [ebp + edi - 0x168], al
inc edi
mov byte [ebp + esi - 0x168], bl
cmp edi, 0x100
jb 0x4162cd
and dword [ebp - 0x24], 0
xor ebx, ebx
mov esi, dword [ebp - 0x24]
xor edi, edi
add dword [ebp - 0x1c], 0x421a4890
lea eax, [ebx + 1]
movzx ebx, al
mov cl, byte [ebp + ebx - 0x168]
movzx edx, cl
lea eax, [edx + esi]
movzx esi, al
mov al, byte [ebp + esi - 0x168]
mov byte [ebp + ebx - 0x168], al
mov byte [ebp + esi - 0x168], cl
movzx eax, byte [ebp + ebx - 0x168]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x168]
xor al, byte [ebp + edi - 0x18]
mov byte [ebp + edi - 0x1a0], al
inc edi
cmp edi, 0x18
jb 0x41631c
mov eax, dword [ebp - 0x1c]
lea edi, [ebp - 0x60]
mov esi, str.Interface
mov byte [ebp - 0x188], 0
and eax, 0xdcdffde4
mov dword [ebp - 0x18], 0xbc12c5
push 9
or eax, 0x10d788c4
mov dword [ebp - 0x14], 0x6550e70d
movsd dword es:[edi], dword [esi]
pop ecx
mov dword [ebp - 0x1c], eax
mov word [ebp - 0x10], 0xda5a
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0xe], cl
mov dword [ebp - 0xd], 0x492fadc8
mov dword [ebp - 9], 0x66ea8da8
movsw word es:[edi], word [esi]
xor edi, edi
mov dword [ebp - 5], 0x5296ddac
mov byte [ebp - 1], 0x3d
xor eax, eax
mov byte [ebp + eax - 0x168], al
inc eax
cmp eax, 0x100
jb 0x4163c6
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x168]
mov eax, esi
div ecx
movzx ecx, bl
push 9
movzx eax, byte [ebp + edx - 0x60]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x168]
mov byte [ebp + esi - 0x168], al
inc esi
mov byte [ebp + edi - 0x168], bl
cmp esi, 0x100
jb 0x4163d7
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x168]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x168]
mov byte [ebp + edi - 0x168], al
mov byte [ebp + ebx - 0x168], cl
movzx eax, byte [ebp + edi - 0x168]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x168]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x1bc], al
inc esi
cmp esi, 0x18
jb 0x41641a
and dword [ebp - 0x24], 0
lea edi, [ebp - 0x64]
mov esi, str.SrchSamplePI
mov byte [ebp - 0x1a4], 0
xor edx, edx
mov dword [ebp - 0x18], 0x1d04df5b
mov dword [ebp - 0x14], 0x6eb8d6fb
mov dword [ebp - 0x10], 0x5adc6dd7
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xc], 0xdc187b0f
mov dword [ebp - 8], 0xf5d20922
mov dword [ebp - 4], 0x894f6ca5
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x20], edx
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
push 6
pop ecx
mov esi, 0x42c51c
lea edi, [ebp - 0x44]
rep movsd dword es:[edi], dword [esi]
xor ebx, ebx
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
cmp byte [ebp - 0x44], 0x46
jne 0x4164f4
mov esi, dword [ebp - 0x1c]
mov al, 0x46
test al, al
je 0x4164f1
cmp byte [ebp + ebx - 0x44], 0
je 0x4164f1
push esi
mov edx, 0x42c0f0
call fcn.00414ef8
mov al, byte [ebx + 0x430cc9]
inc ebx
pop ecx
cmp al, byte [ebp + ebx - 0x44]
je 0x4164cd
mov edx, dword [ebp - 0x20]
movzx eax, byte [ebp + ebx - 0x44]
movzx ecx, byte [ebx + 0x430cc8]
sub ecx, eax
cmp ecx, 0x1981
jbe 0x416526
mov edx, 0x4356d4
mov ecx, 0x4305d4
call fcn.004151f9
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
or eax, 0x647f7fa9
jmp 0x41652e
mov eax, dword [ebp - 0x1c]
add eax, 0xfa33b924
mov byte [ebp + edx - 0x168], dl
mov edi, 0x100
inc edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], edx
cmp edx, edi
jb 0x4164b0
xor esi, esi
add eax, 0x57a99c00
mov dword [ebp - 0x20], eax
xor edx, edx
mov bl, byte [ebp + esi - 0x168]
push 0xc
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x64]
add eax, dword [ebp - 0x24]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x24], ecx
mov al, byte [ebp + ecx - 0x168]
mov byte [ebp + esi - 0x168], al
inc esi
mov byte [ebp + ecx - 0x168], bl
cmp esi, edi
jb 0x416553
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x168]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x168]
mov byte [ebp + edi - 0x168], al
mov byte [ebp + ebx - 0x168], cl
movzx eax, byte [ebp + edi - 0x168]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x168]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x1d8], al
inc esi
cmp esi, 0x18
jb 0x416596
mov ebx, dword [ebp - 0x20]
lea edi, [ebp - 0x60]
mov esi, 0x42c100
mov byte [ebp - 0x1c0], 0
add ebx, 0xa6328f9
mov dword [ebp - 0x18], 0xee9fc9f6
mov dword [ebp - 0x14], 0xed9811da
mov dword [ebp - 0x10], 0xe081e144
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xc], 0x62681ae
mov dword [ebp - 8], 0x9a552634
mov dword [ebp - 4], 0x28caff8f
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor edi, edi
xor eax, eax
mov byte [ebp + eax - 0x168], al
inc eax
cmp eax, 0x100
jb 0x41662f
xor esi, esi
mov dl, byte [ebp + esi - 0x168]
mov eax, esi
and eax, 7
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x60]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x168]
mov byte [ebp + esi - 0x168], al
inc esi
mov byte [ebp + edi - 0x168], dl
cmp esi, 0x100
jb 0x416640
and dword [ebp - 0x20], 0
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
and ebx, 0x8036dbec
movzx edi, al
mov eax, dword [ebp - 0x20]
mov cl, byte [ebp + edi - 0x168]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x20], eax
mov al, byte [ebp + eax - 0x168]
mov byte [ebp + edi - 0x168], al
mov eax, dword [ebp - 0x20]
mov byte [ebp + eax - 0x168], cl
movzx eax, byte [ebp + edi - 0x168]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x168]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x44], al
inc esi
cmp esi, 0x18
jb 0x416681
mov dword [0x435658], ebx
lea ecx, [ebp - 0x184]
xor ebx, ebx
mov byte [ebp - 0x2c], bl
mov dword [ebp - 0x1c], ebx
call fcn.0040b628
push ebx
push ebx
push ebx
mov esi, eax
lea edx, [ebp - 0x244]
push ebx
lea eax, [ebp - 0x1c]
xor ecx, ecx
push eax
push ebx
push ebx
push esi
inc ecx
call fcn.0040a2e6
call eax
mov ecx, esi
call fcn.0040b8f4
push eax
push ebx
push esi
call fcn.0040b587
add esp, 0xc
mov ecx, esi
call fcn.0040a2d2
mov esi, 0x800
mov ecx, esi
call fcn.0040a2a8
mov ecx, esi
mov dword [ebp - 0x20], eax
call fcn.0040a2a8
mov edi, 0x208
mov dword [ebp - 0x28], eax
mov ecx, edi
call fcn.0040a2a8
mov esi, eax
mov ecx, edi
mov dword [ebp - 0x24], esi
call fcn.0040a2a8
mov ecx, edi
mov ebx, eax
call fcn.0040a2a8
mov ecx, esi
mov edi, eax
call fcn.004051e9
mov ecx, ebx
call fcn.00404fa0
mov ecx, edi
call fcn.00404b87
lea ecx, [ebp - 0x1a0]
call fcn.0040b628
push edi
push ebx
push dword [ebp - 0x24]
mov esi, eax
lea edx, [ebp - 0x1bc]
push esi
push dword [ebp - 0x20]
push 2
pop ecx
call fcn.0040a2e6
call eax
mov ecx, esi
call fcn.0040b8f4
push eax
push 0
push esi
call fcn.0040b587
mov ecx, esi
call fcn.0040a2d2
mov ecx, dword [ebp - 0x20]
call fcn.0040b8f4
mov esi, dword [ebp - 0x28]
mov edx, ecx
push eax
mov ecx, esi
call fcn.0040b6ac
add esp, 0x24
mov ecx, esi
push dword [ebp - 0x1c]
call fcn.0040b8e6
mov edx, eax
call fcn.00415fdb
pop ecx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
call fcn.0040a2d2
mov ecx, esi
call fcn.0040a2d2
mov ecx, dword [ebp - 0x24]
call fcn.0040a2d2
mov ecx, ebx
call fcn.0040a2d2
mov ecx, edi
call fcn.0040a2d2
lea ecx, [ebp - 0x28]
call fcn.00415fcf
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x64], eax
call fcn.00415fcf
call fcn.00415fcf
mov word [ebp - 0x5e], ax
xor edx, edx
lea ecx, [ebp - 0x1c]
call fcn.00415fcf
mov byte [ebp + edx - 0x5c], al
inc edx
cmp edx, 8
jl 0x416829
mov ecx, 0x208
call fcn.0040a2a8
mov ebx, eax
mov dword [ebp - 0x24], ebx
test ebx, ebx
je 0x41690b
lea ecx, [ebp - 0x1d8]
call fcn.0040b628
push dword [ebp - 0x58]
movzx edx, word [ebp - 0x5e]
push edx
push dword [ebp - 0x64]
lea edx, [ebp - 0x44]
mov dword [ebp - 0x28], eax
push eax
push ebx
push 2
pop ecx
call fcn.0040a2e6
call eax
add esp, 0x14
lea edi, [ebp - 0x214]
mov esi, 0x42ff40
xor ebx, ebx
push 0xe
pop ecx
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
cmp byte [ebp - 0x214], 0x69
jne 0x4168b9
mov al, 0x69
test al, al
je 0x4168b9
cmp byte [ebp + ebx - 0x214], 0
je 0x4168b9
mov al, byte [ebx + 0x430b31]
inc ebx
cmp al, byte [ebp + ebx - 0x214]
je 0x41689b
mov ecx, 0x42cb70
call fcn.00414da4
mov ecx, dword [ebp - 0x28]
cmp ecx, ebx
jae 0x4168eb
mov eax, dword [0x435658]
cmp ecx, 0x9b
jne 0x4168dc
sub eax, 0x633ce21a
sub eax, 0x73603b14
inc ecx
cmp ecx, ebx
jb 0x4168cf
mov dword [0x435658], eax
mov esi, dword [ebp - 0x28]
mov ecx, esi
call fcn.0040b8f4
push eax
push 0
push esi
call fcn.0040b587
add esp, 0xc
mov ecx, esi
call fcn.0040a2d2
mov eax, dword [ebp - 0x24]
pop edi
pop esi
pop ebx
leave
ret