Function at 0x62e318
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0xb
push 0
push 0
dec ecx
jne 0x62e321
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov esi, ecx
lea edi, [ebp - 0x29]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov word [ebp - 2], dx
mov ebx, eax
mov esi, dword [ebp + 8]
xor eax, eax
push ebp
push 0x62e8c3
push dword fs:[eax]
mov dword fs:[eax], esp
mov edi, 1
xor eax, eax
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x10]
sub eax, 1
jb 0x62e367
je 0x62e37d
dec eax
je 0x62e393
jmp 0x62e3a7
mov eax, 0x62e8e0
call fcn.004e6660
mov edx, eax
lea eax, [ebp - 0xc]
call fcn.0040477c
jmp 0x62e3a7
mov eax, 0x62e920
call fcn.004e6660
mov edx, eax
lea eax, [ebp - 0xc]
call fcn.0040477c
jmp 0x62e3a7
mov eax, 0x62e964
call fcn.004e6660
mov edx, eax
lea eax, [ebp - 0xc]
call fcn.0040477c
cmp byte [ebx + 0x7f], 0
je 0x62e3b8
mov eax, ebx
call fcn.0062f118
cmp al, 3
je 0x62e3bc
xor eax, eax
jmp 0x62e3be
mov al, 1
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x62e3eb
lea eax, [ebp - 0x10]
push eax
lea edx, [ebp - 0x19]
mov ecx, 0x62e998
mov eax, dword [ebp - 0xc]
call fcn.005d27e8
cmp byte [ebp - 0x19], 0
je 0x62e454
mov edi, 4
jmp 0x62e89b
lea edx, [ebp - 0x40]
mov eax, ebx
call fcn.0062f444
cmp dword [ebp - 0x40], 0
je 0x62e417
lea edx, [ebp - 0x44]
mov eax, ebx
call fcn.0062f444
mov edx, dword [ebp - 0x44]
lea eax, [ebp - 0x14]
mov ecx, 0x62e9a8
call fcn.00404890
jmp 0x62e424
lea eax, [ebp - 0x14]
mov edx, 0x62e998
call fcn.0040460c
cmp dword [ebp - 8], 0
jne 0x62e435
mov eax, ebx
call fcn.0062f08c
test al, al
jne 0x62e439
xor eax, eax
jmp 0x62e43b
mov al, 1
push eax
lea eax, [ebp - 0x10]
push eax
mov eax, ebx
call fcn.0062b8f4
mov ecx, eax
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.005d28e4
cmp dword [ebp - 0x10], 0
jne 0x62e464
mov edi, 2
jmp 0x62e89b
lea eax, [ebp - 0x39]
push eax
lea eax, [ebp - 0x48]
lea edx, [ebx + 0xe8]
mov ecx, 8
call fcn.004047f4
mov eax, dword [ebp - 0x48]
call fcn.0062e1e4
cmp eax, 0xd
setle cl
mov dx, word [ebp + 0xc]
mov eax, dword [ebp - 0x10]
call fcn.0062b374
cmp esi, 0x10
jge 0x62e4ab
mov ecx, esi
lea edx, [ebp - 0x39]
lea eax, [ebp - 0x29]
call fcn.0062e154
test al, al
jne 0x62e4bf
cmp esi, 0x10
jne 0x62e4c1
lea edx, [ebp - 0x29]
lea eax, [ebp - 0x39]
call fcn.004f3e6c
test al, al
je 0x62e4c1
xor edi, edi
test byte [ebx + 0x18b], 2
je 0x62e4de
xor eax, eax
mov al, byte [ebx + 0x1e7]
inc eax
mov word [ebp - 2], ax
mov dword [ebp - 8], 1
test edi, edi
je 0x62e822
cmp word [ebp - 2], 0
jbe 0x62e741
movzx eax, word [ebp - 2]
cmp eax, dword [ebp - 8]
jg 0x62e741
test byte [ebx + 0x18b], 1
je 0x62e696
mov edi, 3
mov eax, ebx
call fcn.0062f118
dec eax
sub al, 2
jb 0x62e528
sub al, 1
je 0x62e528
sub al, 0xfb
jne 0x62e5f1
mov byte [ebx + 0xee], 0x39
mov byte [ebx + 0xef], 0x39
lea eax, [ebx + 0x166]
mov ecx, 0xff
mov edx, 0x10
call fcn.00402f1c
mov byte [ebx + 0x18b], 0
mov byte [ebx + 0x18a], 1
lea eax, [ebx + 0x1e8]
mov ecx, 0xff
mov edx, 0x80
call fcn.00402f1c
lea eax, [ebx + 0x2e8]
mov dword [ebp - 0x18], eax
call fcn.00402c04
mov eax, 0x10000
call fcn.00402f3c
mov word [ebx + 0x1cf], ax
xor esi, esi
mov eax, pe_nt_image_headers32
call fcn.00402f3c
mov edx, dword [ebp - 0x18]
mov byte [edx + esi], al
inc esi
cmp esi, 0x200
jne 0x62e58f
lea eax, [ebx + 0x268]
mov dword [ebp - 0x18], eax
xor esi, esi
mov eax, pe_nt_image_headers32
call fcn.00402f3c
mov edx, dword [ebp - 0x18]
mov byte [edx + esi], al
inc esi
cmp esi, 0x80
jne 0x62e5b3
lea eax, [ebx + 0xe8]
push eax
mov ecx, dword [ebx + 0x60]
movzx eax, word [ecx + 0x12]
push eax
mov eax, 0x400
pop edx
mov esi, edx
xor edx, edx
div esi
xor edx, edx
xchg ecx, eax
call fcn.004f5950
jmp 0x62e64b
lea eax, [ebx + 0xe8]
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 8], eax
call fcn.00402c04
xor esi, esi
mov eax, pe_nt_image_headers32
call fcn.00402f3c
mov edx, dword [ebp - 0x18]
mov byte [edx + esi], al
inc esi
cmp esi, 0x400
jne 0x62e606
lea eax, [ebx + 0xe8]
push eax
mov ecx, dword [ebx + 0x60]
movzx eax, word [ecx + 0x12]
push eax
mov eax, 0x400
pop edx
mov esi, edx
xor edx, edx
div esi
xor edx, edx
xchg ecx, eax
call fcn.004f5950
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x62e5ff
mov eax, ebx
call fcn.0062ee00
test al, al
je 0x62e677
push 0x30
mov eax, 0x62e9bc
call fcn.004e6660
mov edx, eax
mov ecx, 0x62ea24
mov eax, dword [0x655d48]
mov eax, dword [eax]
call fcn.00474a1c
jmp 0x62e696
push 0x30
mov eax, 0x62ea3c
call fcn.004e6660
mov edx, eax
mov ecx, 0x62ea24
mov eax, dword [0x655d48]
mov eax, dword [eax]
call fcn.00474a1c
test byte [ebx + 0x18b], 2
je 0x62e89b
mov edi, 5
lea eax, [ebp - 0x4c]
lea edx, [ebx + 0xe8]
mov ecx, 8
call fcn.004047f4
mov eax, dword [ebp - 0x4c]
call fcn.0062e1e4
mov byte [ebx + 0x1e7], al
mov byte [ebx + 0xee], 0x39
mov byte [ebx + 0xef], 0x38
lea eax, [ebx + 0xe8]
push eax
mov ecx, dword [ebx + 0x60]
movzx eax, word [ecx + 0x12]
push eax
mov eax, 0x400
pop edx
mov esi, edx
xor edx, edx
div esi
xor edx, edx
xchg ecx, eax
call fcn.004f5950
lea eax, [ebx + 0xe8]
push eax
mov ecx, dword [ebx + 0x60]
movzx eax, word [ecx + 0x12]
push eax
mov eax, 0x400
pop edx
mov esi, edx
xor edx, edx
div esi
xor edx, edx
xchg ecx, eax
call fcn.004f5950
push 0x30
mov eax, 0x62ea9c
call fcn.004e6660
mov edx, eax
mov ecx, 0x62ea24
mov eax, dword [0x655d48]
mov eax, dword [eax]
call fcn.00474a1c
jmp 0x62e89b
mov eax, 0x62eae4
call fcn.004e6660
mov edx, eax
lea eax, [ebp - 0xc]
call fcn.0040477c
mov al, byte [ebx + 0x18b]
test al, 2
je 0x62e7d4
dec byte [ebx + 0x1e7]
lea eax, [ebx + 0xe8]
push eax
mov ecx, dword [ebx + 0x60]
movzx eax, word [ecx + 0x12]
push eax
mov eax, 0x400
pop edx
push ecx
mov ecx, edx
xor edx, edx
div ecx
pop ecx
xor edx, edx
xchg ecx, eax
call fcn.004f5950
push 0x30
push 0x62eb20
lea edx, [ebp - 0x54]
xor eax, eax
mov al, byte [ebx + 0x1e7]
inc eax
call fcn.0040993c
push dword [ebp - 0x54]
push 0x62eb40
lea eax, [ebp - 0x50]
mov edx, 3
call fcn.00404904
mov eax, dword [ebp - 0x50]
call fcn.00404a44
mov edx, eax
mov ecx, 0x62ea24
mov eax, dword [0x655d48]
mov eax, dword [eax]
call fcn.00474a1c
jmp 0x62e822
test al, 1
je 0x62e822
inc dword [ebp - 8]
push 0x30
push 0x62eb20
lea edx, [ebp - 0x5c]
movzx eax, word [ebp - 2]
sub eax, dword [ebp - 8]
inc eax
call fcn.0040993c
push dword [ebp - 0x5c]
push 0x62eb58
lea eax, [ebp - 0x58]
mov edx, 3
call fcn.00404904
mov eax, dword [ebp - 0x58]
call fcn.00404a44
mov edx, eax
mov ecx, 0x62ea24
mov eax, dword [0x655d48]
mov eax, dword [eax]
call fcn.00474a1c
test edi, edi
jne 0x62e3a7
test edi, edi
jne 0x62e89b
test byte [ebx + 0x18b], 2
je 0x62e874
mov al, byte [ebx + 0x1e7]
cmp al, byte [ebx + 0x18a]
je 0x62e874
mov al, byte [ebx + 0x18a]
mov byte [ebx + 0x1e7], al
lea eax, [ebx + 0xe8]
push eax
mov ecx, dword [ebx + 0x60]
movzx eax, word [ecx + 0x12]
push eax
mov eax, 0x400
pop edx
mov esi, edx
xor edx, edx
div esi
xor edx, edx
xchg ecx, eax
call fcn.004f5950
lea eax, [ebx + 0x5c0]
xor ecx, ecx
mov edx, 0x20
call fcn.00402f1c
mov eax, dword [ebp - 0x10]
call fcn.00404a44
mov edx, eax
lea eax, [ebx + 0x5c0]
call fcn.0040a574
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x62e8ca
lea eax, [ebp - 0x5c]
mov edx, 8
call fcn.00404598
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.00404598
ret