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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x58
mov eax, dword [0x1426ed0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
xor edi, edi
push 0x200
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x4c], edi
call fcn.0104309c
mov ebx, eax
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x48], ebx
call fcn.0104572b
cmp ebx, edi
jne 0x136e99d
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x4c], 0x8007000e
jmp 0x136edfc
lea eax, [ebx + 0x100]
mov byte [esi + 0x2228], 0xb
mov byte [esi + 0x2229], 0xd
mov byte [esi + 0x222a], 9
mov byte [esi + 0x222b], 0xe
mov byte [ebx], 0
mov dword [ebp - 0x50], ebx
lea ecx, [ebp - 0x3c]
mov byte [eax], 1
mov ebx, 0x1028234
mov eax, ecx
sub ebx, eax
lea eax, [ebp - 0x33]
cmp ecx, eax
jae 0x136e9fd
mov al, byte [ebx + ecx]
xor al, byte [edi + 0x1028228]
push 9
mov byte [ecx], al
lea eax, [edi + 1]
xor edx, edx
pop edi
div edi
inc ecx
lea eax, [ecx + ebx]
mov edi, edx
cmp eax, 0x102823d
jb 0x136e9d4
lea eax, [ebp - 0x3c]
push eax
mov byte [ecx], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [ebp - 0x40], eax
lea ecx, [ebp - 0x3c]
xor edx, edx
lea eax, [ebp - 0x38]
cmp ecx, eax
jae 0x136ea33
mov al, byte [edx + 0x1028228]
xor byte [ecx], al
lea eax, [edx + 1]
push 9
xor edx, edx
pop edi
div edi
inc ecx
lea eax, [ebp - 0x38]
cmp ecx, eax
jb 0x136ea12
cmp dword [ebp - 0x40], 0
mov byte [ecx], 0
mov dword [ebp - 0x44], 0xba1d
je 0x136eae2
lea ecx, [ebp - 0x20]
mov edi, 0x1028240
mov eax, ecx
xor edx, edx
sub edi, eax
lea eax, [ebp - 7]
cmp ecx, eax
jae 0x136ea7c
mov al, byte [edi + ecx]
xor al, byte [edx + 0x1028228]
push 9
mov byte [ecx], al
lea eax, [edx + 1]
xor edx, edx
inc ecx
pop ebx
div ebx
lea eax, [edi + ecx]
cmp eax, 0x1028259
jb 0x136ea55
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x40]
mov byte [ecx], 0
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
xor ebx, ebx
cmp edi, ebx
je 0x136eab9
push ebx
push 4
lea eax, [ebp - 0x40]
push eax
push 7
mov dword [ebp - 0x40], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call edi
test eax, eax
jne 0x136eab9
cmp dword [ebp - 0x40], ebx
je 0x136eab9
mov dword [ebp - 0x44], 0xba19
lea ecx, [ebp - 0x20]
xor edx, edx
lea eax, [ebp - 0x1c]
cmp ecx, eax
jae 0x136eadf
mov al, byte [edx + 0x1028228]
xor byte [ecx], al
lea eax, [edx + 1]
push 9
xor edx, edx
pop edi
div edi
inc ecx
lea eax, [ebp - 0x1c]
cmp ecx, eax
jb 0x136eabe
mov byte [ecx], 0
test byte [ebp - 0x44], 4
jne 0x136eaf3
mov eax, dword [ebp - 0x48]
add eax, 0x100
or byte [eax], 2
mov eax, dword [ebp - 0x48]
add eax, 0x100
lea edx, [eax - 1]
mov dword [ebp - 0x40], eax
sub dword [ebp - 0x40], edx
mov dword [ebp - 0x44], 1
lea ecx, [edx + 1]
mov dl, byte [ecx]
mov al, dl
and al, 0x80
neg al
sbb al, al
and al, 0x1b
mov bl, dl
add bl, bl
xor al, bl
xor al, dl
mov edx, dword [ebp - 0x40]
mov byte [edx + ecx], al
movzx eax, al
mov edi, 0x100
cmp eax, edi
jge 0x136ee3f
mov bl, byte [ebp - 0x44]
inc dword [ebp - 0x44]
mov edx, dword [ebp - 0x48]
inc ecx
mov byte [eax + edx], bl
cmp dword [ebp - 0x44], edi
jb 0x136eb0e
lea ecx, [ebp - 0x20]
mov edi, 0x1028234
mov eax, ecx
xor edx, edx
sub edi, eax
lea eax, [ebp - 0x17]
cmp ecx, eax
jae 0x136eb7f
mov al, byte [edi + ecx]
xor al, byte [edx + 0x1028228]
push 9
mov byte [ecx], al
lea eax, [edx + 1]
xor edx, edx
inc ecx
pop ebx
div ebx
lea eax, [edi + ecx]
cmp eax, 0x102823d
jb 0x136eb58
lea eax, [ebp - 0x20]
push eax
mov byte [ecx], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
xor ebx, ebx
mov dword [ebp - 0x40], eax
lea ecx, [ebp - 0x20]
xor edx, edx
lea eax, [ebp - 0x1c]
cmp ecx, eax
jae 0x136ebb7
mov al, byte [edx + 0x1028228]
xor byte [ecx], al
lea eax, [edx + 1]
push 9
xor edx, edx
pop edi
div edi
inc ecx
lea eax, [ebp - 0x1c]
cmp ecx, eax
jb 0x136eb96
mov byte [ecx], 0
mov dword [ebp - 0x44], 0xba1d
cmp dword [ebp - 0x40], ebx
je 0x136ec65
lea ecx, [ebp - 0x3c]
mov edi, 0x1028240
mov eax, ecx
xor edx, edx
sub edi, eax
lea eax, [ebp - 0x23]
cmp ecx, eax
jae 0x136ebff
mov al, byte [edi + ecx]
xor al, byte [edx + 0x1028228]
push 9
mov byte [ecx], al
lea eax, [edx + 1]
xor edx, edx
inc ecx
pop ebx
div ebx
lea eax, [edi + ecx]
cmp eax, 0x1028259
jb 0x136ebd8
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0x40]
mov byte [ecx], 0
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
xor ebx, ebx
cmp edi, ebx
je 0x136ec3c
push ebx
push 4
lea eax, [ebp - 0x40]
push eax
push 7
mov dword [ebp - 0x40], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call edi
test eax, eax
jne 0x136ec3c
cmp dword [ebp - 0x40], ebx
je 0x136ec3c
mov dword [ebp - 0x44], 0xba19
lea ecx, [ebp - 0x3c]
xor edx, edx
lea eax, [ebp - 0x38]
cmp ecx, eax
jae 0x136ec62
mov al, byte [edx + 0x1028228]
xor byte [ecx], al
lea eax, [edx + 1]
push 9
xor edx, edx
pop edi
div edi
inc ecx
lea eax, [ebp - 0x38]
cmp ecx, eax
jb 0x136ec41
mov byte [ecx], 0
test byte [ebp - 0x44], 4
jne 0x136ec72
mov dword [ebp - 0x4c], 0x8004d10b
mov byte [esi + 0x100], 0x63
mov dword [esi + 0x38c], ebx
mov ebx, dword [ebp - 0x48]
lea eax, [esi + 0x100]
inc ebx
sub eax, dword [ebp - 0x48]
mov dword [esi + 0x1200], 0xc66363a5
mov byte [esi + 0x63], 0
mov dword [ebp - 0x40], 1
lea edi, [esi + 0x1205]
mov dword [ebp - 0x54], eax
mov al, byte [ebx]
cmp al, 0xff
ja 0x136ee3f
movzx ecx, al
mov eax, dword [ebp - 0x48]
add eax, 0x100
sub eax, ecx
movzx eax, byte [eax + 0xff]
mov ecx, eax
mov dword [ebp - 0x44], 4
mov edx, eax
shr edx, 7
add eax, eax
or edx, eax
and edx, 0xff
mov eax, edx
xor ecx, eax
dec dword [ebp - 0x44]
jne 0x136ecd1
mov eax, dword [ebp - 0x54]
xor ecx, 0x63
mov byte [eax + ebx], cl
mov al, byte [ebp - 0x40]
mov byte [esi + ecx], al
mov eax, ecx
and al, 0x80
neg al
sbb al, al
and al, 0x1b
mov dl, cl
add dl, dl
xor al, dl
mov byte [edi + 2], al
xor al, cl
and dword [ebp - 0x44], 0
mov byte [edi - 1], al
lea eax, [esi + ecx*4 + 0x200]
mov byte [edi], cl
mov byte [edi + 1], cl
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x44]
movzx eax, byte [esi + eax + 0x2228]
mov ecx, dword [ebp - 0x48]
movzx eax, byte [eax + ecx]
movzx ecx, byte [ebx]
add eax, ecx
cdq
mov ecx, 0xff
idiv ecx
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x58]
add eax, 0x100
mov al, byte [edx + eax]
mov edx, dword [ebp - 0x44]
inc dword [ebp - 0x44]
cmp dword [ebp - 0x44], 4
mov byte [edx + ecx], al
jb 0x136ed23
inc dword [ebp - 0x40]
add edi, 4
mov ecx, 0x100
inc ebx
cmp dword [ebp - 0x40], ecx
jb 0x136ecaa
lea eax, [esi + 0x1600]
mov edx, ecx
mov ecx, dword [eax - 0x400]
mov edi, ecx
rol edi, 0x18
mov dword [eax], edi
mov edi, ecx
rol edi, 0x10
rol ecx, 8
mov dword [eax + 0x400], edi
mov dword [eax + 0x800], ecx
mov ecx, dword [eax - 0x1400]
mov edi, ecx
rol edi, 0x18
mov dword [eax - 0x1000], edi
mov edi, ecx
rol edi, 0x10
rol ecx, 8
mov dword [eax - 0xc00], edi
mov dword [eax - 0x800], ecx
add eax, 4
dec edx
jne 0x136ed7c
xor eax, eax
push 0xa
inc eax
add esi, 0x2200
pop ecx
mov edx, eax
shl edx, 0x18
mov dword [esi], edx
mov edx, eax
and dl, 0x80
movzx edx, dl
neg edx
sbb edx, edx
add al, al
movzx eax, al
and edx, 0x1b
xor eax, edx
add esi, 4
dec ecx
jne 0x136edd4
cmp dword [ebp - 0x4c], ecx
jge 0x136ee23
mov eax, dword [0x1426c54]
cmp eax, 0x1426c54
je 0x136ee23
test byte [eax + 0x1c], 2
je 0x136ee23
push dword [ebp - 0x4c]
push 0x1028218
push 0xa
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01043c41
lea ecx, [ebp - 0x50]
call fcn.0104572b
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x4c]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.01043035
leave
ret 4
mov dword [ebp - 0x4c], 0xc004d104
jmp 0x136edfc