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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x228
mov ecx, 0x3c00
mov dword [ebp - 0x70], 0x24
mov dword [ebp - 0x6c], 0x47
xor eax, eax
mov dword [ebp - 0x68], 0x4f
mov dword [ebp - 0x64], 0x11
mov dword [ebp - 0x60], 0x3735
sub ecx, dword [ebp + eax*4 - 0x70]
inc eax
cmp eax, 5
jl 0x42fa88
mov dword [ebp - 0x6c], 0x60
xorps xmm1, xmm1
mov dword [ebp - 0x68], 0xb
mov edx, 0x126c
mov dword [ebp - 0x64], 0x40
mov dword [ebp - 0x60], 0x2f55
movups xmm0, xmmword [ebp - 0x6c]
push esi
push edi
psubd xmm1, xmm0
mov dword [ebp - 0x74], ecx
movaps xmm0, xmm1
mov dword [ebp - 0x34], 0x8688b23c
psrldq xmm0, 8
lea edi, [ebp - 0x5c]
paddd xmm1, xmm0
mov dword [ebp - 0x30], 0x25c6a82b
movups xmm0, xmm1
mov word [ebp - 0x2c], 0x9ef9
psrldq xmm0, 4
mov esi, 0x4028bc
paddd xmm1, xmm0
mov dword [ebp - 0x29], 0xad79551a
movd eax, xmm1
push 0x16
mov dword [ebp - 0x25], 0x4ce7ec78
add eax, 0x3400
mov dword [ebp - 0x21], 0x6dc119de
mov dword [ebp - 0x78], eax
pop eax
push 5
pop ecx
rep movsd dword es:[edi], dword [esi]
push 0x63
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x2a], al
mov eax, 0x402d00
movsw word es:[edi], word [esi]
mov dword [ebp - 0x1d], 0xc3ca3369
mov dword [ebp - 0x19], 0x68148ed8
mov dword [ebp - 0x15], 0x6c8f4de3
mov dword [ebp - 0x11], 0x14556acf
mov dword [ebp - 0xd], 0x49dd0a4e
mov byte [ebp - 9], 0x81
movsb byte es:[edi], byte [esi]
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x18cb
ja 0x42fb73
movzx ecx, word [eax]
test ecx, ecx
jne 0x42fb58
mov eax, dword [0x44d924]
jmp 0x42fb82
call fcn.0042c70c
mov eax, dword [0x44d924]
sub eax, 0x45f68cac
or eax, 0x6a038ea
imul eax, eax, 0xb3b5c433
push 0x402690
mov dword [0x44d924], eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
xor esi, esi
mov eax, esi
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0x42fba1
mov edi, esi
xor edx, edx
mov cl, byte [ebp + edi - 0x190]
mov eax, edi
mov byte [ebp - 1], cl
div dword [ebp - 0x3c]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x5c]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x190]
mov byte [ebp + edi - 0x190], al
inc edi
mov al, byte [ebp - 1]
mov byte [ebp + esi - 0x190], al
cmp edi, 0x100
jb 0x42fbb2
xor esi, esi
mov dword [ebp - 8], esi
mov edi, esi
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x190]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x190]
mov byte [ebp + edi - 0x190], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x190], cl
movzx eax, byte [ebp + edi - 0x190]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + esi - 0x34]
mov byte [ebp + esi - 0x1f8], al
inc esi
cmp esi, 0x2c
jb 0x42fbfa
push 7
pop ecx
mov esi, 0x402914
mov dword [ebp - 0x5c], 0xdb6d0d5a
lea edi, [ebp - 0x28]
mov dword [ebp - 0x58], 0xa4d8b1ed
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov dword [ebp - 0x54], 0x557d1459
mov byte [ebp - 0x1cc], al
mov ecx, eax
mov dword [ebp - 0x50], 0x4f137cd1
movsw word es:[edi], word [esi]
mov dword [ebp - 0x4c], 0x8397bbeb
mov edi, eax
mov dword [ebp - 0x48], 0x11c9e44f
mov byte [ebp + ecx - 0x190], cl
inc ecx
cmp ecx, 0x100
jb 0x42fc97
mov esi, eax
xor edx, edx
mov dword [ebp - 0x38], 0x1d
mov eax, esi
mov cl, byte [ebp + esi - 0x190]
div dword [ebp - 0x38]
mov byte [ebp - 1], cl
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x28]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x190], al
cmp esi, 0x100
jb 0x42fca9
xor eax, eax
mov dword [ebp - 0x40], 0x18
mov dword [ebp - 8], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
push 0x18
mov cl, byte [ebp + edi - 0x190]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x190]
mov byte [ebp + edi - 0x190], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x190], cl
movzx eax, byte [ebp + edi - 0x190]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + esi - 0x5c]
mov byte [ebp + esi - 0x1ac], al
inc esi
pop eax
cmp esi, eax
jb 0x42fd01
mov esi, 0x401c20
mov dword [ebp - 0x20], 0xf4bcbf10
lea edi, [ebp - 0x54]
mov dword [ebp - 0x1c], 0x28ceeedd
push 0xb
pop eax
movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov byte [ebp - 0xa], al
mov eax, dword [0x44d924]
and eax, 0x335fe281
mov byte [ebp - 0x194], cl
movsd dword es:[edi], dword [esi]
imul eax, eax, 0xd62d914b
mov dword [ebp - 0x18], 0x8ced894c
mov dword [ebp - 0x14], 0x4ba162db
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x10], 0x52ab475f
mov dword [ebp - 8], eax
mov eax, ecx
mov word [ebp - 0xc], 0xca9d
movsd dword es:[edi], dword [esi]
mov byte [ebp - 9], 0xe
mov edi, ecx
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0x42fdb9
mov esi, ecx
mov dword [ebp - 0x38], 0xf
xor edx, edx
mov cl, byte [ebp + esi - 0x190]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x38]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x54]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x190], al
cmp esi, 0x100
jb 0x42fdd1
xor ecx, ecx
mov edx, ecx
mov edi, ecx
mov esi, ecx
lea eax, [edi + 1]
movzx edi, al
mov al, byte [ebp + edi - 0x190]
mov byte [ebp - 1], al
movzx eax, al
mov dword [ebp - 0x3c], eax
add eax, edx
movzx eax, al
mov edx, ecx
mov dword [ebp - 0x38], eax
mov eax, 0x402e80
inc edx
lea eax, [eax + 2]
cmp edx, 0xa5c
je 0x42fe55
cmp word [eax], cx
jne 0x42fe3f
mov eax, dword [ebp - 8]
jmp 0x42fe5c
imul eax, dword [ebp - 8], 0xc39f63a5
imul eax, eax, 0x3a41b7d0
mov ecx, 0xd973b0c
sub ecx, eax
mov dword [0x44d924], ecx
call fcn.0042c70c
mov edx, dword [ebp - 0x38]
push 0x18
mov al, byte [ebp + edx - 0x190]
mov byte [ebp + edi - 0x190], al
mov al, byte [ebp - 1]
mov byte [ebp + edx - 0x190], al
movzx eax, byte [ebp + edi - 0x190]
add eax, dword [ebp - 0x3c]
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + esi - 0x20]
mov byte [ebp + esi - 0x1c8], al
inc esi
pop eax
cmp esi, eax
jae 0x42fec6
mov eax, dword [0x44d924]
xor ecx, ecx
mov dword [ebp - 8], eax
jmp 0x42fe1a
push 6
pop ecx
mov esi, 0x401720
mov dword [ebp - 0x34], 0x819e39f6
lea edi, [ebp - 0x5c]
mov dword [ebp - 0x30], 0x8869885e
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov dword [ebp - 0x2c], 0x3b6dc9dd
mov byte [ebp - 0x1b0], al
mov ecx, eax
mov dword [ebp - 0x28], 0x72318837
movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x24], 0x340ca3fc
mov edi, eax
mov dword [ebp - 0x20], 0xaa6069f3
mov dword [ebp - 0x1c], 0x66fd40c8
mov dword [ebp - 0x18], 0x3438d33d
mov dword [ebp - 0x14], 0x28631c5b
mov dword [ebp - 0x10], 0xd637062b
mov dword [ebp - 0xc], 0x3482aea9
mov byte [ebp + ecx - 0x190], cl
inc ecx
cmp ecx, 0x100
jb 0x42ff2d
mov esi, eax
xor edx, edx
mov cl, byte [ebp + esi - 0x190]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x40]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x5c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x190], al
cmp esi, 0x100
jb 0x42ff3f
xor eax, eax
mov dword [ebp - 8], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x190]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x190]
mov byte [ebp + edi - 0x190], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x190], cl
movzx eax, byte [ebp + edi - 0x190]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + esi - 0x34]
mov byte [ebp + esi - 0x228], al
inc esi
cmp esi, 0x2c
jb 0x42ff89
mov esi, 0x402934
mov dword [ebp - 0x10], 0xcd020442
lea edi, [ebp - 0x50]
mov word [ebp - 0xc], 0xa3
xor eax, eax
mov byte [ebp - 0x1fc], al
mov ecx, eax
movsd dword es:[edi], dword [esi]
mov dword [ebp - 8], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov byte [ebp + ecx - 0x190], cl
inc ecx
cmp ecx, 0x100
jb 0x430006
mov esi, dword [0x44d924]
mov edi, eax
xor edx, edx
mov cl, byte [ebp + edi - 0x190]
mov eax, edi
mov byte [ebp - 1], cl
div dword [ebp - 0x68]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x50]
add eax, dword [ebp - 8]
add ecx, eax
movzx eax, cl
xor ecx, ecx
mov dword [ebp - 8], eax
mov edx, ecx
mov eax, 0x402d00
inc edx
lea eax, [eax + 2]
cmp edx, 0x1589
jg 0x43005e
cmp word [eax], cx
jne 0x43004b
jmp 0x430064
and esi, 0xe9140020
mov edx, dword [ebp - 8]
add esi, 0xf904ad61
or esi, 0x409aa3ab
mov al, byte [ebp + edx - 0x190]
mov byte [ebp + edi - 0x190], al
inc edi
mov al, byte [ebp - 1]
mov byte [ebp + edx - 0x190], al
cmp edi, 0x100
jb 0x43001e
mov dword [ebp - 0x40], esi
mov edi, ecx
mov dword [ebp - 8], ecx
mov esi, ecx
lea eax, [esi + 1]
movzx esi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + esi - 0x190]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x190]
mov byte [ebp + esi - 0x190], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x190], cl
movzx eax, byte [ebp + esi - 0x190]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + edi - 0x10]
mov byte [ebp + edi - 0x90], al
inc edi
cmp edi, 6
jb 0x43009e
mov esi, dword [ebp - 0x40]
xor eax, eax
push 0x2b
pop edx
push 0xf
pop ecx
mov dword [ebp - 0x10], ecx
mov ecx, eax
mov byte [ebp - 0x8a], al
mov dword [ebp - 0xc], 0x3c6
add edx, dword [ebp + ecx*4 - 0x10]
inc ecx
cmp ecx, 2
jl 0x430113
mov dword [ebp - 0x40], edx
mov ecx, eax
mov edx, eax
mov dword [ebp - 0x14], 0x46
mov dword [ebp - 0x10], 0x45
mov dword [ebp - 0xc], 0xffffff75
sub edx, dword [ebp + ecx*4 - 0x14]
inc ecx
cmp ecx, 3
jl 0x430139
push 0x38
mov dword [ebp - 0x80], edx
mov ecx, eax
mov dword [ebp - 0x14], 0x59
mov dword [ebp - 0x10], 0x43
mov dword [ebp - 0xc], 0x32c
pop edx
add edx, dword [ebp + ecx*4 - 0x14]
sub esi, 0x3503dd32
inc ecx
cmp ecx, 3
jl 0x430160
push 0x56
mov dword [ebp - 0x7c], edx
mov ecx, eax
mov dword [0x44d924], esi
pop edx
mov dword [ebp - 0x10], 0x37
mov dword [ebp - 0xc], 0xffffff73
add edx, dword [ebp + ecx*4 - 0x10]
inc ecx
cmp ecx, 2
jl 0x43018c
mov dword [ebp - 0x6c], 7
xorps xmm1, xmm1
mov dword [ebp - 0x68], 0x40
mov dword [ebp - 0x64], 0x12
mov dword [ebp - 0x60], 0xffffffa7
movups xmm0, xmmword [ebp - 0x6c]
push 0x27
mov dword [ebp - 0x84], edx
psubd xmm1, xmm0
mov dword [ebp - 0x14], 0x23
movaps xmm0, xmm1
mov dword [ebp - 0x10], 0x2b
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0xc], 0xffffff8b
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd dword [ebp - 0x88], xmm1
pop ecx
add ecx, dword [ebp + eax*4 - 0x14]
inc eax
cmp eax, 3
jl 0x4301fb
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x74]
add ecx, ecx
call fcn.0041e51b
mov ecx, dword [ebp - 0x78]
mov esi, eax
add ecx, ecx
call fcn.0041e51b
lea ecx, [ebp - 0x1f8]
mov dword [ebp - 0x38], eax
call fcn.004361ab
lea ecx, [ebp - 0x1ac]
mov dword [ebp - 8], eax
call fcn.004361ab
lea ecx, [ebp - 0x1c8]
mov dword [ebp - 0x3c], eax
call fcn.004361ab
mov edx, dword [ebp - 8]
mov ecx, esi
mov edi, eax
call fcn.00436f53
mov edx, dword [ebp - 0x3c]
mov ecx, esi
call fcn.00436f53
mov edx, edi
mov ecx, esi
call fcn.00436f53
push dword [ebp - 0x40]
lea ecx, [ebp - 0x90]
push dword [ebp - 0x38]
push esi
call fcn.0041e657
mov edx, eax
lea ecx, [ebp - 0x228]
call fcn.0041e636
call eax
mov eax, dword [ebp - 0x7c]
xor dword [0x44d924], 0x3e367b41
add eax, eax
push eax
push dword [ebp - 0x80]
push esi
call fcn.004360de
mov ecx, esi
call fcn.0041e600
mov esi, dword [ebp - 8]
mov ecx, esi
call fcn.004369fb
push eax
push dword [ebp - 0x84]
push esi
call fcn.004360de
imul eax, dword [0x44d924], 0x2cab35bc
mov esi, dword [ebp - 0x3c]
mov ecx, esi
mov dword [0x44d924], eax
call fcn.004369fb
push eax
push dword [ebp - 0x88]
push esi
call fcn.004360de
mov ecx, edi
call fcn.004369fb
push eax
push dword [ebp - 0xc]
push edi
call fcn.004360de
mov ecx, dword [ebp - 8]
add esp, 0x30
call fcn.0041e600
mov ecx, esi
call fcn.0041e600
mov ecx, edi
call fcn.0041e600
mov eax, dword [ebp - 0x38]
pop edi
pop esi
leave
ret