Function at 0x103cbae9
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
xor bp, 0x63c3
mov ebp, esp
cmp si, 0x5fd7
cmp ebp, eax
clc
sub esp, 8
push ebx
mov bx, 0x5fd6
mov ebx, dword [ebp + 0x10]
push esi
push edi
cmovp esi, esp
mov edi, 0xfb35b71
mov edi, dword [ebx]
mov esi, eax
lahf
mov eax, dword [ebp + 8]
push eax
mov dword [ebp - 4], edi
mov dword [ebx], 0
call fcn.103cb2b6
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0
cmp bp, cx
clc
cmp dword [esi + 0x48], 0x112
je 0x1040a3f7
cmp dword [esi + 0x4c], 0
je 0x103cbc31
test edi, edi
jbe 0x103cbb8b
mov ecx, dword [esi + 0x58]
clc
cmp ecx, 5
jae 0x103cbb82
mov eax, dword [ebp + 0xc]
not dl
mov dl, byte [eax]
mov byte [ecx + esi + 0x5c], dl
inc dword [esi + 0x58]
inc dword [ebx]
inc eax
cmp sp, 0x4c95
stc
cmc
sub edi, 1
mov dword [ebp + 0xc], eax
jne 0x103cbb51
mov dword [ebp - 4], edi
stc
test bp, 0x1611
cmp dword [esi + 0x58], 5
jb 0x103f621f
cmp byte [esi + 0x5c], 0
jne 0x103ddf7a
movzx eax, byte [esi + 0x5d]
sbb cx, 0x6f32
cmp bp, 0x2f5e
rcl edx, cl
movzx ecx, byte [esi + 0x5e]
xchg dh, dl
bts edx, edi
shl dh, 0
movzx edx, byte [esi + 0x5f]
cmp ebp, 0x5bdd37c6
cmp di, cx
shl eax, 8
test dl, 0xf6
cmp edi, 0xfc57d85
or eax, ecx
xor cl, bh
setl cl
bswap cx
movzx ecx, byte [esi + 0x60]
cmp dx, si
shl eax, 8
stc
clc
or eax, edx
bt dx, 0x1b
shl eax, 8
adc dx, sp
inc dx
or eax, ecx
cmp ah, ah
btr edx, 0x2d
rcr dx, cl
mov dword [esi + 0x20], eax
xchg dx, dx
cdq
rcr dh, cl
mov dword [esi + 0x1c], 0xffffffff
mov dh, 0x81
inc edx
mov dword [esi + 0x4c], 0
rol dx, 0x24
setbe dh
sbb dx, di
mov dword [esi + 0x58], 0
mov edx, dword [ebp + 8]
cmp dword [esi + 0x24], edx
jae 0x103d7f7a
cmp dword [esi + 0x50], 0
je 0x103f59a2
mov ecx, dword [esi + 4]
add ecx, dword [esi]
add eax, ebp
mov edx, dword [esi + 0x10]
mov eax, 0x300
stc
cmp ebp, ebp
shl eax, cl
add eax, 0x736
je 0x103cbc92
mov ecx, eax
mov eax, 0x400
rcr di, 0xd4
shr edi, 0x5c
mov edi, edx
movzx edx, ax
sbb ax, dx
mov eax, edx
stc
shl edx, 0x10
cmp eax, ebp
or eax, edx
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
mov edi, dword [ebp - 4]
mov ecx, 1
cmc
sub eax, eax
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], ecx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], ecx
mov dword [esi + 0x34], eax
mov dword [esi + 0x50], eax
jmp 0x103f59b1
cmp dword [esi + 0x48], 0
jne 0x103d7f8e
cmp dword [esi + 0x20], 0
je 0x104053a8
mov edx, dword [ebp + 0x14]
pop edi
pop esi
sar bx, cl
mov dword [edx], 2
rol bl, cl
btr ebx, eax
sar bh, 0xbb
sub eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
sub edi, edi
mov dword [ebp - 8], edi
cmp esp, ebp
clc
test ebp, 0x15c4689f
cmp ebx, 0x14
jae 0x103db373
cmp edi, dword [ebp - 4]
jae 0x103db36f
mov eax, dword [ebp + 0xc]
neg dl
mov dl, byte [edi + eax]
clc
test dl, 0x7e
cmc
mov byte [ebx + esi + 0x5c], dl
test esp, 0x336905b1
lea ebx, [ebx + ecx]
test cx, di
add edi, ecx
cmp ebx, 0x14
jb 0x103db33e
mov dword [ebp - 8], edi
cmc
mov dword [esi + 0x58], ebx
cmp ebx, 0x14
jae 0x103db3ae
lea eax, [esi + 0x5c]
movzx ecx, cx
mov ecx, 0x6f663393
mov cl, ah
push eax
bswap ecx
cbw
mov eax, ebx
mov ecx, esi
call fcn.103f2482
add esp, 4
stc
cmp bx, 0x6041
cmp bp, cx
test eax, eax
je 0x103e1039
mov edi, dword [ebp + 8]
lahf
lea eax, [esi + 0x5c]
mov dword [esi + 0x18], eax
push eax
cwde
mov eax, esi
call fcn.103d8681
test eax, eax
jne 0x103ddf7a
mov ecx, dword [esi + 0x18]
mov edx, dword [ebp - 8]
stc
sub ecx, ebx
stc
add eax, ebp
sub ecx, esi
cwde
lea eax, [edx + ecx - 0x5c]
sar ch, cl
mov ecx, dword [ebp + 0x10]
cmp edi, eax
test cx, cx
add dword [ecx], eax
add dword [ebp + 0xc], eax
cmc
cmp ah, 0x66
mov dword [esi + 0x58], 0
sub dword [ebp - 4], eax
cmp dx, 0xe89
cmp dword [esi + 0x48], 0x112
je 0x1040a3f7
mov edi, dword [ebp - 4]
setne bh
mov ebx, dword [ebp + 0x10]
jmp 0x103cbb3f
pop edi
cwde
movsx eax, dx
pop esi
cmovge ebx, edi
movzx eax, bx
movsx eax, cx
mov eax, 1
movsx bx, ah
pop ebx
mov esp, ebp
mov ebp, 0x69060850
not ebp
pop ebp
ret
push ebx
lahf
xchg ecx, ecx
mov eax, edi
movsx cx, dl
movzx ecx, si
cmovne ecx, eax
mov ecx, esi
call fcn.103f2482
lea esp, [esp + 4]
clc
test eax, eax
movsx eax, di
xchg al, ah
mov ax, 0x5e16
mov eax, ebx
je 0x103f61e0
mov ebx, dword [ebp + 0xc]
movsx edi, ax
mov edi, dword [ebp + 8]
push eax
mov eax, esi
mov dword [esi + 0x18], ebx
call fcn.103d8681
test eax, eax
jne 0x103ddf7a
mov eax, dword [esi + 0x18]
rcr cl, 0x25
mov ecx, dword [ebp + 0x10]
sub eax, ebx
stc
add dword [ecx], eax
clc
add ebx, eax
mov dword [ebp + 0xc], ebx
jmp 0x103db3f6
mov eax, dword [ebp + 0x10]
add dword [eax], edi
mov ecx, dword [ebp + 0x14]
pop edi
pop esi
mov dword [ecx], 3
bt ebx, 0xa8
sub eax, eax
movzx bx, dh
bswap ebx
pop ebx
mov esp, ebp
movzx ebp, bx
mov bp, bp
mov ebp, 0x676454aa
pop ebp
ret
mov ecx, 1
adc ebx, 0x2b76d07
bt ebx, esp
cmc
mov ebx, dword [esi + 0x58]
test ebx, ebx
jne 0x103db327
mov ebx, dword [ebp + 0xc]
test si, 0x3934
cmp eax, ebp
cmc
cmp edi, 0x14
jb 0x103dff3c
lea eax, [edi + ebx - 0x14]
jmp 0x103dff71
lea ecx, [edi + ebx]
lea edx, [esi + 0x5c]
cmp ebx, ecx
je 0x103f6205
sub edx, ebx
xchg bl, bl
inc bl
mov bl, byte [eax]
mov byte [edx + eax], bl
inc eax
cmc
stc
clc
cmp eax, ecx
jne 0x103f61f4
mov eax, dword [ebp + 0x10]
xchg ebx, ebx
or bx, si
mov dword [esi + 0x58], edi
bt si, 0xe1
mov bh, 0x43
add dword [eax], edi
cmp bx, 0x724d
mov eax, dword [ebp + 0x14]
pop edi
cmc
rcr si, 0x6b
pop esi
mov dword [eax], 3
xor eax, eax
pop ebx
mov esp, ebp
cmovns bp, dx
pop ebp
ret
mov ecx, dword [ebp + 0x14]
rol edi, 0xe5
cmc
rol bl, cl
pop edi
pop esi
mov dword [ecx], 4
cmovno bx, di
shr ebx, cl
sub eax, eax
movsx bx, bh
pop ebx
mov esp, ebp
movsx ebp, si
pop ebp
ret
cmp dword [esi + 0x20], 0
jne 0x1040a414
mov edx, dword [ebp + 0x14]
cmovs di, bx
adc bl, 0x77
mov dword [edx], 1
sbb di, sp
xor eax, eax
btr bx, 0xa6
xchg ebx, edi
cmp dword [esi + 0x20], eax
mov di, 0x201d
xchg bl, al
bswap edi
pop edi
pop esi
sets bh
movsx bx, bh
setne al
setns bh
movzx ebx, sp
cmovl ebx, ebx
pop ebx
mov esp, ebp
pop ebp
ret