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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x87c
push edi
push esi
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x804], 0
cmp dword [ebp + 0x10], 0x10
jne 0x462d7c
cmp dword [ebp + 0x14], 1
jne 0x462b4c
mov eax, dword [ebp + 0xc]
push eax
push 1
mov eax, dword [ebp + 0x18]
add eax, eax
push eax
mov edx, dword [ebp + 0x1c]
push dword [edx]
call fcn.0040d2f8
add esp, 0x10
cmp eax, 1
jne 0x4631a4
test bl, 1
je 0x46319b
mov ecx, dword [ebp + 0x18]
cmp dword [ebp - 0x804], ecx
jge 0x46319b
nop
mov ebx, dword [ebp + 0x1c]
mov eax, dword [ebx]
mov esi, dword [ebp - 0x804]
rol word [eax + esi*2], 8
inc esi
mov dword [ebp - 0x804], esi
mov edi, dword [ebp + 0x18]
cmp esi, edi
jl 0x462b28
jmp 0x46319b
test bl, 1
je 0x462c6c
mov eax, 0x400
xor edx, edx
div dword [ebp + 0x14]
mov dword [ebp - 0x808], eax
test eax, eax
je 0x46319b
lea esi, [esi]
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x830], eax
mov edx, dword [ebp - 0x808]
sub dword [ebp - 0x830], edx
mov ecx, dword [ebp - 0x830]
cmp dword [ebp - 0x804], ecx
jg 0x462c59
mov ebx, edx
imul ebx, dword [ebp + 0x14]
mov dword [ebp - 0x834], ebx
mov dword [ebp - 0x80c], ebx
lea esi, [ebp - 0x800]
mov dword [ebp - 0x838], esi
lea esi, [esi]
mov edi, dword [ebp + 0xc]
push edi
push 1
mov eax, dword [ebp - 0x80c]
add eax, eax
push eax
lea eax, [ebp - 0x800]
push eax
call fcn.0040d2f8
add esp, 0x10
cmp eax, 1
jne 0x4631a4
xor ebx, ebx
cmp ebx, dword [ebp - 0x80c]
jge 0x462c47
mov eax, dword [ebp - 0x834]
mov dword [ebp - 0x844], eax
lea esi, [esi]
xor edx, edx
mov edi, dword [ebp - 0x804]
inc edi
cmp edx, dword [ebp + 0x14]
jge 0x462c39
mov ecx, dword [ebp - 0x838]
mov dword [ebp - 0x848], ecx
mov esi, esi
mov esi, dword [ebp + 0x1c]
mov eax, dword [esi + edx*4]
mov ecx, dword [ebp - 0x848]
movzx esi, word [ecx + ebx*2]
rol si, 8
mov ecx, dword [ebp - 0x804]
mov word [eax + ecx*2], si
inc edx
inc ebx
cmp edx, dword [ebp + 0x14]
jl 0x462c14
mov dword [ebp - 0x804], edi
cmp ebx, dword [ebp - 0x844]
jl 0x462bf8
mov edi, dword [ebp - 0x830]
cmp dword [ebp - 0x804], edi
jle 0x462bb8
sar dword [ebp - 0x808], 1
jne 0x462b70
jmp 0x46319b
mov eax, 0x400
xor edx, edx
div dword [ebp + 0x14]
mov dword [ebp - 0x808], eax
test eax, eax
je 0x46319b
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x830], eax
mov edx, dword [ebp - 0x808]
sub dword [ebp - 0x830], edx
mov ecx, dword [ebp - 0x830]
cmp dword [ebp - 0x804], ecx
jg 0x462d69
mov ebx, edx
imul ebx, dword [ebp + 0x14]
mov dword [ebp - 0x834], ebx
mov dword [ebp - 0x810], ebx
lea esi, [ebp - 0x800]
mov dword [ebp - 0x838], esi
lea esi, [esi]
mov edi, dword [ebp + 0xc]
push edi
push 1
mov eax, dword [ebp - 0x810]
add eax, eax
push eax
lea eax, [ebp - 0x800]
push eax
call fcn.0040d2f8
add esp, 0x10
cmp eax, 1
jne 0x4631a4
xor esi, esi
cmp esi, dword [ebp - 0x810]
jge 0x462d57
mov eax, dword [ebp - 0x834]
mov dword [ebp - 0x814], eax
lea esi, [esi]
xor ecx, ecx
mov edi, dword [ebp - 0x804]
inc edi
cmp ecx, dword [ebp + 0x14]
jge 0x462d49
mov edx, dword [ebp - 0x838]
mov dword [ebp - 0x84c], edx
mov esi, esi
mov ebx, dword [ebp + 0x1c]
mov edx, dword [ebx + ecx*4]
mov ebx, dword [ebp - 0x84c]
movzx eax, word [ebx + esi*2]
mov ebx, dword [ebp - 0x804]
mov word [edx + ebx*2], ax
inc ecx
inc esi
cmp ecx, dword [ebp + 0x14]
jl 0x462d28
mov dword [ebp - 0x804], edi
cmp esi, dword [ebp - 0x814]
jl 0x462d0c
mov esi, dword [ebp - 0x830]
cmp dword [ebp - 0x804], esi
jle 0x462ccc
sar dword [ebp - 0x808], 1
jne 0x462c84
jmp 0x46319b
cmp dword [ebp + 0x14], 1
jne 0x462f2c
test bl, 2
je 0x462e5c
mov dword [ebp - 0x808], 0x800
lea esi, [esi]
mov edi, dword [ebp + 0x18]
mov dword [ebp - 0x830], edi
mov eax, dword [ebp - 0x808]
sub dword [ebp - 0x830], eax
mov edx, dword [ebp - 0x830]
cmp dword [ebp - 0x804], edx
jg 0x462e4a
lea ecx, [ebp - 0x800]
mov dword [ebp - 0x838], ecx
nop
mov ebx, dword [ebp + 0xc]
push ebx
push 1
mov eax, dword [ebp - 0x808]
imul eax, dword [ebp + 0x14]
push eax
lea eax, [ebp - 0x800]
push eax
call fcn.0040d2f8
add esp, 0x10
cmp eax, 1
jne 0x4631a4
xor ebx, ebx
cmp ebx, dword [ebp - 0x808]
jge 0x462e3c
mov esi, dword [ebp - 0x838]
lea esi, [esi]
mov edi, dword [ebp + 0x1c]
mov ecx, dword [edi]
mov al, byte [ebx + esi]
xor al, 0x80
mov edx, eax
shl edx, 8
movzx ax, byte [ebx + esi]
or edx, eax
mov edi, dword [ebp - 0x804]
mov word [ecx + edi*2], dx
inc ebx
inc edi
mov dword [ebp - 0x804], edi
cmp ebx, dword [ebp - 0x808]
jl 0x462e0c
mov eax, dword [ebp - 0x830]
cmp dword [ebp - 0x804], eax
jle 0x462dd0
sar dword [ebp - 0x808], 1
jne 0x462d9c
jmp 0x46319b
mov dword [ebp - 0x808], 0x800
mov esi, esi
mov edx, dword [ebp + 0x18]
mov dword [ebp - 0x830], edx
mov ecx, dword [ebp - 0x808]
sub dword [ebp - 0x830], ecx
mov ebx, dword [ebp - 0x830]
cmp dword [ebp - 0x804], ebx
jg 0x462f19
lea esi, [ebp - 0x800]
mov dword [ebp - 0x838], esi
nop
mov edi, dword [ebp + 0xc]
push edi
push 1
mov eax, dword [ebp - 0x808]
imul eax, dword [ebp + 0x14]
push eax
lea eax, [ebp - 0x800]
push eax
call fcn.0040d2f8
add esp, 0x10
cmp eax, 1
jne 0x4631a4
xor ebx, ebx
cmp ebx, dword [ebp - 0x808]
jge 0x462f0b
mov esi, dword [ebp - 0x838]
lea esi, [esi]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax]
movzx dx, byte [ebx + esi]
shl edx, 8
mov al, byte [ebx + esi]
xor al, 0x80
and eax, 0xff
or edx, eax
mov edi, dword [ebp - 0x804]
mov word [ecx + edi*2], dx
inc ebx
inc edi
mov dword [ebp - 0x804], edi
cmp ebx, dword [ebp - 0x808]
jl 0x462ed8
mov eax, dword [ebp - 0x830]
cmp dword [ebp - 0x804], eax
jle 0x462e9c
sar dword [ebp - 0x808], 1
jne 0x462e68
jmp 0x46319b
test bl, 2
je 0x463070
mov eax, 0x800
xor edx, edx
div dword [ebp + 0x14]
mov dword [ebp - 0x808], eax
test eax, eax
je 0x46319b
lea esi, [esi]
mov edx, dword [ebp + 0x18]
mov dword [ebp - 0x830], edx
mov ecx, dword [ebp - 0x808]
sub dword [ebp - 0x830], ecx
mov ebx, dword [ebp - 0x830]
cmp dword [ebp - 0x804], ebx
jg 0x46305d
mov esi, ecx
imul esi, dword [ebp + 0x14]
mov dword [ebp - 0x834], esi
mov dword [ebp - 0x81c], esi
lea edi, [ebp - 0x800]
mov dword [ebp - 0x838], edi
lea esi, [esi]
mov eax, dword [ebp + 0xc]
push eax
push 1
mov edx, dword [ebp - 0x81c]
push edx
lea eax, [ebp - 0x800]
push eax
call fcn.0040d2f8
add esp, 0x10
cmp eax, 1
jne 0x4631a4
mov dword [ebp - 0x818], 0
mov ecx, dword [ebp - 0x81c]
cmp dword [ebp - 0x818], ecx
jge 0x46304b
mov ebx, dword [ebp - 0x834]
mov dword [ebp - 0x820], ebx
lea esi, [esi]
xor esi, esi
mov edi, dword [ebp - 0x804]
inc edi
cmp esi, dword [ebp + 0x14]
jge 0x463037
mov ebx, dword [ebp - 0x838]
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + esi*4]
mov dword [ebp - 0x854], eax
mov edx, dword [ebp - 0x818]
mov al, byte [edx + ebx]
xor al, 0x80
mov ecx, eax
shl ecx, 8
movzx ax, byte [edx + ebx]
or eax, ecx
mov edx, dword [ebp - 0x804]
mov ecx, dword [ebp - 0x854]
mov word [ecx + edx*2], ax
inc esi
inc dword [ebp - 0x818]
cmp esi, dword [ebp + 0x14]
jl 0x462ff8
mov dword [ebp - 0x804], edi
mov ebx, dword [ebp - 0x820]
cmp dword [ebp - 0x818], ebx
jl 0x462fe4
mov esi, dword [ebp - 0x830]
cmp dword [ebp - 0x804], esi
jle 0x462f98
sar dword [ebp - 0x808], 1
jne 0x462f50
jmp 0x46319b
mov eax, 0x800
xor edx, edx
div dword [ebp + 0x14]
mov dword [ebp - 0x808], eax
test eax, eax
je 0x46319b
mov edi, dword [ebp + 0x18]
mov dword [ebp - 0x830], edi
mov eax, dword [ebp - 0x808]
sub dword [ebp - 0x830], eax
mov edx, dword [ebp - 0x830]
cmp dword [ebp - 0x804], edx
jg 0x46318f
mov ecx, eax
imul ecx, dword [ebp + 0x14]
mov dword [ebp - 0x834], ecx
mov dword [ebp - 0x828], ecx
lea ebx, [ebp - 0x800]
mov dword [ebp - 0x838], ebx
lea esi, [esi]
mov esi, dword [ebp + 0xc]
push esi
push 1
mov edi, dword [ebp - 0x828]
push edi
lea eax, [ebp - 0x800]
push eax
call fcn.0040d2f8
add esp, 0x10
cmp eax, 1
jne 0x4631a4
mov dword [ebp - 0x824], 0
cmp dword [ebp - 0x824], edi
jge 0x46317d
mov eax, dword [ebp - 0x834]
mov dword [ebp - 0x82c], eax
nop
xor esi, esi
mov edi, dword [ebp - 0x804]
inc edi
cmp esi, dword [ebp + 0x14]
jge 0x463169
mov ebx, dword [ebp - 0x838]
mov edx, dword [ebp + 0x1c]
mov edx, dword [edx + esi*4]
mov dword [ebp - 0x858], edx
mov ecx, dword [ebp - 0x824]
movzx dx, byte [ecx + ebx]
shl edx, 8
mov al, byte [ecx + ebx]
xor al, 0x80
movzx cx, al
or edx, ecx
mov eax, dword [ebp - 0x804]
mov ecx, dword [ebp - 0x858]
mov word [ecx + eax*2], dx
inc esi
inc dword [ebp - 0x824]
cmp esi, dword [ebp + 0x14]
jl 0x463128
mov dword [ebp - 0x804], edi
mov ebx, dword [ebp - 0x82c]
cmp dword [ebp - 0x824], ebx
jl 0x463114
mov esi, dword [ebp - 0x830]
cmp dword [ebp - 0x804], esi
jle 0x4630d0
sar dword [ebp - 0x808], 1
jne 0x463088
mov eax, 1
jmp 0x4631bc
add esp, 0xfffffffc
mov eax, dword [0x4c523c]
push 0x462aa9
push 1
push 1
mov eax, dword [eax + 0x28]
call eax
xor eax, eax
lea esp, [ebp - 0x888]
pop ebx
pop esi
pop edi
leave
ret