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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x21c
push ebx
push esi
push edi
mov esi, 0x42c670
mov dword [ebp - 0x7c], ecx
lea edi, [ebp - 0x90]
mov dword [ebp - 0x78], 0xe9e42b1c
push 0x50
pop eax
movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov byte [ebp - 0x5e], al
mov eax, ecx
mov dword [ebp - 0x74], 0xf9275eba
mov dword [ebp - 0x70], 0x5d134eb
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x6c], 0x1c678cf6
mov dword [ebp - 0x68], 0xc87f3aa1
mov dword [ebp - 0x64], 0x2ef6ae3a
movsd dword es:[edi], dword [esi]
mov word [ebp - 0x60], 0x5f34
mov dword [ebp - 0x5d], 0x3dd47ef8
mov dword [ebp - 0x59], 0x61cb55bc
movsw word es:[edi], word [esi]
mov dword [ebp - 0x55], 0x38af99dc
mov dword [ebp - 0x51], 0x22e04b30
mov byte [ebp - 0x4d], 0xaa
movsb byte es:[edi], byte [esi]
mov edi, ecx
mov byte [ebp + eax - 0x198], al
inc eax
cmp eax, 0x100
jb 0x4060a8
mov esi, ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x198]
push 0xe
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x90]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x198]
mov byte [ebp + esi - 0x198], al
inc esi
mov byte [ebp + edi - 0x198], bl
cmp esi, 0x100
jb 0x4060b9
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x198]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x198]
mov byte [ebp + edi - 0x198], al
mov byte [ebp + ebx - 0x198], cl
movzx eax, byte [ebp + edi - 0x198]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x198]
xor al, byte [ebp + esi - 0x78]
mov byte [ebp + esi - 0x21c], al
inc esi
cmp esi, 0x2c
jb 0x406101
push 6
pop ecx
mov esi, 0x42cf2c
mov dword [ebp - 0x48], 0xf38907f3
lea edi, [ebp - 0x18]
mov dword [ebp - 0x44], 0xea03cc63
xor ebx, ebx
mov dword [ebp - 0x40], 0x889d095a
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov byte [ebp - 0x1f0], bl
mov dword [ebp - 0x3c], 0x94681cc8
mov eax, ecx
mov dword [ebp - 0x38], 0x6f705390
mov dword [ebp - 0x34], 0xd3877dad
mov dword [ebp - 0x28], ecx
mov byte [ebp + eax - 0x198], al
inc eax
cmp eax, 0x100
jb 0x406197
mov esi, 0x42c100
lea edi, [ebp - 0x88]
mov edx, ecx
push 0x49
mov dword [ebp - 0x24], edx
movsd dword es:[edi], dword [esi]
pop eax
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov bh, byte [ebp - 0x88]
mov esi, dword [0x4340a8]
mov edi, dword [0x4340b8]
cmp bh, 0x49
jne 0x4061f1
test al, al
je 0x4061f1
cmp byte [ebp + ecx - 0x88], 0
je 0x4061f1
mov al, byte [ecx + 0x42d2d9]
inc ecx
cmp al, byte [ebp + ecx - 0x88]
je 0x4061d3
movzx eax, byte [ebp + ecx - 0x88]
movzx ecx, byte [ecx + 0x42d2d8]
sub ecx, eax
cmp ecx, 0x17c1
jae 0x406212
or esi, 0x647b1a86
jmp 0x406218
lea esi, [edi - 0x7e38f661]
mov bl, byte [ebp + edx - 0x198]
mov eax, edx
push 0x17
pop ecx
xor edx, edx
imul edi, esi, 0x7593e8c6
div ecx
movzx ecx, bl
push 0x49
mov dword [0x4340a8], esi
movzx eax, byte [ebp + edx - 0x18]
add eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x28], ecx
mov al, byte [ebp + ecx - 0x198]
mov byte [ebp + edx - 0x198], al
inc edx
mov byte [ebp + ecx - 0x198], bl
mov dword [ebp - 0x24], edx
pop eax
push 0
pop ecx
cmp edx, 0x100
jb 0x4061ce
mov ebx, dword [0x4340f0]
xor eax, eax
and ebx, 0x6947987c
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x24], ebx
mov edi, eax
mov esi, eax
mov ebx, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x198]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x198]
mov byte [ebp + edi - 0x198], al
mov byte [ebp + ebx - 0x198], cl
movzx eax, byte [ebp + edi - 0x198]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x198]
xor al, byte [ebp + esi - 0x48]
mov byte [ebp + esi - 0x1b4], al
inc esi
cmp esi, 0x18
jb 0x40628f
mov ebx, dword [ebp - 0x24]
lea edi, [ebp - 0x8c]
mov esi, str.SrchDSSLogin
mov dword [ebp - 0x18], 0xdaea602c
xor ebx, 0xf0f11af9
mov dword [ebp - 0x14], 0x5f5c6e01
xor eax, eax
mov dword [ebp - 0x4c], ebx
mov ebx, eax
mov byte [ebp - 0x19c], al
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x10], 0x92a1a5f7
mov dword [ebp - 0xc], 0xd6e39b33
mov dword [ebp - 8], 0xea3e64a1
movsd dword es:[edi], dword [esi]
mov dword [ebp - 4], 0xc606120b
mov dword [ebp - 0x1c], ebx
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
push 5
pop ecx
mov esi, 0x42cf00
mov dword [ebp - 0x28], eax
lea edi, [ebp - 0x48]
rep movsd dword es:[edi], dword [esi]
push 0x50
pop eax
movsw word es:[edi], word [esi]
cmp ax, word [ebp - 0x48]
jne 0x40637e
xor ebx, ebx
mov ecx, eax
mov eax, ebx
test cx, cx
je 0x40637b
cmp word [ebp + eax - 0x48], bx
je 0x40637b
call fcn.0040488c
mov edx, dword [ebp - 0x28]
inc edx
mov dword [ebp - 0x28], edx
lea eax, [edx + edx]
movzx ecx, word [eax + 0x42d0b0]
cmp cx, word [ebp + eax - 0x48]
je 0x406352
mov ebx, dword [ebp - 0x1c]
call fcn.0040488c
mov ecx, dword [ebp - 0x28]
movzx eax, byte [ebp + ecx*2 - 0x48]
movzx ecx, byte [ecx*2 + 0x42d0b0]
sub ecx, eax
cmp ecx, 0x2c7
jae 0x4063ab
add dword [ebp - 0x4c], 0x35aa2053
call fcn.0040488c
jmp 0x4063b7
mov edi, dword [ebp - 0x2c]
and edi, 0x4578d6df
mov dword [ebp - 0x24], edi
mov byte [ebp + ebx - 0x198], bl
inc ebx
mov dword [ebp - 0x1c], ebx
push 0
pop eax
cmp ebx, 0x100
jb 0x406331
xor ebx, ebx
push 0xc
mov esi, ebx
mov edi, ebx
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x198]
mov eax, esi
div ecx
movzx ecx, bl
push 0xc
movzx eax, byte [ebp + edx - 0x8c]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x198]
mov byte [ebp + esi - 0x198], al
inc esi
mov byte [ebp + edi - 0x198], bl
cmp esi, 0x100
jb 0x4063da
mov edi, dword [ebp - 0x24]
xor eax, eax
mov esi, eax
lea ebx, [edi + 0xd005fc6]
mov dword [ebp - 0x2c], ebx
inc esi
cmp word [esi*2 + 0x42d0b0], ax
jne 0x40642a
call fcn.004048d1
cmp esi, 0x1538
jbe 0x406457
imul ecx, ebx, 0x8ca5290f
mov edx, ecx
mov dword [0x4340b8], ecx
call fcn.004047d2
jmp 0x406467
imul eax, edi, 0xe667f73b
mov dword [0x4340b8], eax
call fcn.004048d1
xor ebx, ebx
mov esi, ebx
mov edi, ebx
lea eax, [ebx + 1]
movzx ebx, al
mov cl, byte [ebp + ebx - 0x198]
movzx edx, cl
lea eax, [edi + edx]
movzx edi, al
mov al, byte [ebp + edi - 0x198]
mov byte [ebp + ebx - 0x198], al
mov byte [ebp + edi - 0x198], cl
movzx eax, byte [ebp + ebx - 0x198]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x198]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x1d0], al
inc esi
cmp esi, 0x18
jb 0x40646d
push 5
pop ecx
mov esi, str.argument_out_of_domain
mov dword [ebp - 0x18], 0xfe81a85c
lea edi, [ebp - 0x48]
mov dword [ebp - 0x14], 0xfffed3be
rep movsd dword es:[edi], dword [esi]
xor edx, edx
mov dword [ebp - 0x10], 0xb96a840c
mov byte [ebp - 0x1b8], dl
mov eax, edx
mov dword [ebp - 0xc], 0x5c05b866
movsw word es:[edi], word [esi]
mov dword [ebp - 8], 0xbc74632
mov dword [ebp - 4], 0x96f06363
movsb byte es:[edi], byte [esi]
mov edi, edx
mov byte [ebp + eax - 0x198], al
inc eax
cmp eax, 0x100
jb 0x406503
push 0x16
mov esi, edx
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x198]
mov eax, esi
div ecx
movzx ecx, bl
push 0x16
movzx eax, byte [ebp + edx - 0x48]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x198]
mov byte [ebp + esi - 0x198], al
inc esi
mov byte [ebp + edi - 0x198], bl
cmp esi, 0x100
jb 0x406517
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x198]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x198]
mov byte [ebp + edi - 0x198], al
mov byte [ebp + ebx - 0x198], cl
movzx eax, byte [ebp + edi - 0x198]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x198]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x1ec], al
inc esi
cmp esi, 0x18
jb 0x40655c
mov eax, dword [ebp - 0x2c]
lea edx, [ebp - 0x21c]
and eax, 0x6cd2a491
xor ebx, ebx
push 2
pop ecx
mov dword [0x4340f0], eax
mov byte [ebp - 0x1d4], bl
call fcn.0040a2e6
call eax
test eax, eax
jne 0x4067b9
push 0xa
pop ecx
mov esi, 0x42cf54
mov dword [ebp - 0x18], 0x9d16933f
lea edi, [ebp - 0x78]
mov dword [ebp - 0x14], 0xf0cf98e
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x10], 0x44c6e3da
mov dword [ebp - 0xc], 0xc965206a
mov dword [ebp - 8], 0x8fe6350a
movsw word es:[edi], word [esi]
mov esi, 0x42cf80
mov dword [ebp - 4], 0x4ec9b599
lea edi, [ebp - 0x8c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
cmp byte [ebp - 0x8c], 0x49
jne 0x406651
push 0x49
mov esi, ebx
pop eax
test al, al
je 0x406651
cmp byte [ebp + esi - 0x8c], bl
je 0x406651
call fcn.004048d1
mov al, byte [esi + 0x42d2d9]
inc esi
cmp al, byte [ebp + esi - 0x8c]
je 0x40662f
mov edi, ebx
mov eax, ebx
mov byte [ebp + eax - 0x198], al
inc eax
cmp eax, 0x100
jb 0x406655
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + esi - 0x198]
push 0x29
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x78]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x198]
mov byte [ebp + esi - 0x198], al
inc esi
mov byte [ebp + edi - 0x198], bl
cmp esi, 0x100
jb 0x406666
mov esi, dword [0x4340b8]
xor ebx, ebx
or esi, 0x1d4b6340
mov edx, ebx
mov ecx, ebx
mov dword [0x4340b8], esi
mov edi, ebx
lea eax, [ecx + 1]
movzx eax, al
mov dword [ebp - 0x2c], eax
mov al, byte [ebp + eax - 0x198]
mov byte [ebp - 0x1d], al
movzx eax, al
mov dword [ebp - 0x4c], eax
add eax, edx
movzx eax, al
mov dword [ebp - 0x1c], eax
call fcn.004048d1
mov eax, esi
and eax, 0x2f589843
mov dword [ebp - 0x30], eax
mov dword [0x4340f0], eax
call fcn.004045e1
inc ebx
cmp byte [ebx + 0x42d2d8], 0
jne 0x4066f2
cmp ebx, 0x123c
jbe 0x406716
xor esi, 0x5fb04c6d
call fcn.004048d1
jmp 0x406731
mov ecx, dword [ebp - 0x30]
push 0x42d0b0
push ecx
lea eax, [ecx - 0x67c859a9]
mov dword [0x4340a8], eax
call fcn.00404591
pop ecx
pop ecx
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x2c]
push 0
pop ebx
mov al, byte [ebp + edx - 0x198]
mov byte [ebp + ecx - 0x198], al
mov al, byte [ebp - 0x1d]
mov byte [ebp + edx - 0x198], al
movzx eax, byte [ebp + ecx - 0x198]
add eax, dword [ebp - 0x4c]
movzx eax, al
mov al, byte [ebp + eax - 0x198]
xor al, byte [ebp + edi - 0x18]
mov byte [ebp + edi - 0x98], al
inc edi
cmp edi, 0x18
jb 0x4066bd
lea ecx, [ebp - 0x98]
mov dword [0x4340b8], esi
mov byte [ebp - 0x80], bl
call fcn.0040b628
mov esi, eax
mov ecx, esi
call fcn.0040b8f4
add eax, eax
push eax
push esi
push dword [ebp - 0x7c]
call fcn.0040b543
mov ecx, esi
call fcn.0040b8f4
push eax
push ebx
push esi
call fcn.0040b587
add esp, 0x18
jmp 0x406816
lea ecx, [ebp - 0x40]
push ecx
push eax
push 2
lea edx, [ebp - 0x1b4]
pop ecx
call fcn.0040a2e6
call eax
lea ecx, [ebp - 0x1d0]
call fcn.0040b628
push dword [ebp - 0x34]
mov esi, eax
lea edx, [ebp - 0x1ec]
push dword [ebp - 0x38]
push esi
push dword [ebp - 0x7c]
push 2
pop ecx
call fcn.0040a2e6
call eax
mov eax, dword [0x4340f0]
mov ecx, esi
add eax, 0xac9cc501
mov dword [0x4340b8], eax
call fcn.0040b8f4
push eax
push ebx
push esi
call fcn.0040b587
add esp, 0x1c
mov ecx, esi
call fcn.0040a2d2
pop edi
pop esi
pop ebx
leave
ret