Function at 0x43b9b0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ecx
push ebp
xor ebp, ebp
cmp dword [esp + 0x14], ebp
jne 0x43b9c0
lea eax, [ebp + 1]
pop ebp
pop ecx
ret
push ebx
push esi
mov esi, dword [esp + 0x14]
push edi
mov ebx, dword [esi + 0x14]
mov edi, dword [esi + 0x10]
lea ecx, [ecx]
cmp edi, dword [esi + 8]
jae 0x43b9ff
mov eax, dword [esi]
mov ecx, ebx
mov edx, dword [eax + edi*4]
mov eax, edx
shl eax, cl
test eax, eax
jne 0x43ba57
mov eax, 0x20
push edx
sub eax, ebx
push esi
add ebp, eax
call fcn.0043c370
inc edi
add esp, 8
xor ebx, ebx
cmp edi, dword [esi + 8]
jb 0x43b9d5
mov eax, dword [esi + 0xc]
test eax, eax
je 0x43ba38
shl eax, 3
mov ecx, 0x20
sub ecx, eax
or edx, 0xffffffff
mov eax, dword [esi]
shl edx, cl
mov ecx, ebx
and edx, dword [eax + edi*4]
shl edx, cl
test edx, edx
jne 0x43babd
mov eax, dword [esi + 0xc]
lea ecx, [eax*8]
mov eax, ecx
sub eax, ebx
add ebp, eax
add ebx, ecx
push esi
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], edi
call fcn.0043c260
add esp, 4
test eax, eax
jne 0x43b9ca
pop edi
pop esi
pop ebx
xor eax, eax
pop ebp
pop ecx
ret
cmp eax, 0xffff
ja 0x43ba80
cmp eax, 0xff
ja 0x43ba71
movzx eax, byte [eax + 0x45e638]
add eax, 0x18
jmp 0x43baa0
shr eax, 8
movzx eax, byte [eax + 0x45e638]
add eax, 0x10
jmp 0x43baa0
cmp eax, 0xffffff
ja 0x43ba96
shr eax, 0x10
movzx eax, byte [eax + 0x45e638]
add eax, 8
jmp 0x43baa0
shr eax, 0x18
movzx eax, byte [eax + 0x45e638]
inc ebx
add ebp, eax
add ebx, eax
cmp ebx, 0x20
jne 0x43bb0e
mov eax, dword [esi]
push dword [eax + edi*4]
push esi
call fcn.0043c370
add esp, 8
inc edi
xor ebx, ebx
jmp 0x43bb0e
cmp edx, 0xffff
ja 0x43bae8
cmp edx, 0xff
ja 0x43bad9
movzx eax, byte [edx + 0x45e638]
add eax, 0x18
jmp 0x43bb09
shr edx, 8
movzx eax, byte [edx + 0x45e638]
add eax, 0x10
jmp 0x43bb09
cmp edx, 0xffffff
ja 0x43baff
shr edx, 0x10
movzx eax, byte [edx + 0x45e638]
add eax, 8
jmp 0x43bb09
shr edx, 0x18
movzx eax, byte [edx + 0x45e638]
inc ebx
add ebp, eax
add ebx, eax
mov edx, dword [esp + 0x24]
test edx, edx
je 0x43bc28
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
sub ecx, edi
lea eax, [eax + ecx*4]
shl eax, 3
sub eax, ebx
cmp eax, edx
jae 0x43bb62
mov edi, edi
push esi
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], edi
call fcn.0043c260
add esp, 4
test eax, eax
je 0x43ba4f
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0x10]
sub ecx, edi
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x24]
lea eax, [eax + ecx*4]
shl eax, 3
sub eax, ebx
cmp eax, edx
jb 0x43bb30
mov eax, dword [esi]
mov eax, dword [eax + edi*4]
cmp edi, dword [esi + 8]
jae 0x43bbf5
test ebx, ebx
je 0x43bbe6
mov dword [esp + 0x10], eax
mov edx, 0x20
or eax, 0xffffffff
mov ecx, ebx
sub edx, ebx
shr eax, cl
cmp dword [esp + 0x24], edx
jae 0x43bba7
sub edx, dword [esp + 0x24]
and eax, dword [esp + 0x10]
mov ecx, edx
shr eax, cl
mov ecx, dword [esp + 0x24]
shl ebp, cl
or ebp, eax
add ebx, ecx
jmp 0x43bc28
mov ebx, dword [esp + 0x10]
mov ecx, edx
and eax, ebx
shl ebp, cl
or ebp, eax
mov eax, dword [esp + 0x24]
sub eax, edx
push ebx
push esi
mov dword [esp + 0x18], eax
call fcn.0043c370
mov edx, dword [esp + 0x18]
add esp, 8
inc edi
xor ebx, ebx
test edx, edx
je 0x43bc28
mov eax, dword [esi]
mov ecx, 0x20
sub ecx, edx
mov eax, dword [eax + edi*4]
shr eax, cl
mov ecx, edx
shl ebp, cl
jmp 0x43bc24
mov ecx, 0x20
sub ecx, edx
shr eax, cl
mov ecx, edx
shl ebp, cl
jmp 0x43bc24
mov ecx, edx
shl ebp, cl
test ebx, ebx
je 0x43bc1b
mov ecx, ebx
or edx, 0xffffffff
shr edx, cl
mov ecx, 0x20
sub ecx, ebx
and eax, edx
sub ecx, dword [esp + 0x24]
shr eax, cl
or ebp, eax
add ebx, dword [esp + 0x24]
jmp 0x43bc28
mov ecx, 0x20
sub ecx, edx
shr eax, cl
or ebp, eax
mov ebx, edx
mov ecx, dword [esp + 0x1c]
mov eax, ebp
and ebp, 1
shr eax, 1
neg ebp
xor eax, ebp
dec dword [esp + 0x20]
mov dword [ecx], eax
je 0x43bc4d
xor ebp, ebp
add ecx, 4
mov dword [esp + 0x1c], ecx
jmp 0x43b9d0
mov dword [esi + 0x10], edi
mov eax, 1
pop edi
mov dword [esi + 0x14], ebx
pop esi
pop ebx
pop ebp
pop ecx
ret