Function at 0x433990
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xdc
mov eax, dword [0x5f300c]
xor eax, esp
mov dword [esp + 0xd8], eax
mov eax, dword [ebp + 0x20]
push ebx
mov ebx, ecx
mov dword [esp + 0x74], eax
push esi
push edi
mov dword [esp + 0x98], ebx
mov dword [ebx], eax
mov eax, dword [ebp + 0x24]
mov dword [ebx + 4], eax
mov dword [esp + 0x80], eax
mov eax, dword [ebp + 0x28]
mov dword [ebx + 8], eax
mov dword [esp + 0x84], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp + 0x30]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp + 0x34]
mov word [ebx + 0x14], ax
shr eax, 0x10
mov word [ebx + 0x16], ax
mov eax, dword [ebp + 0x68]
test eax, 0x100
je 0x433b38
sub esp, 0x18
mov ecx, esp
sub esp, 0x18
mov dword [ecx + 0x14], 0
mov eax, dword [ebp + 0x50]
mov dword [ecx], eax
mov eax, dword [ebp + 0x54]
mov dword [ecx + 4], eax
mov eax, dword [ebp + 0x58]
mov dword [ecx + 8], eax
mov eax, dword [ebp + 0x5c]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp + 0x60]
mov dword [ecx + 0x10], eax
mov ax, word [ebp + 0x64]
mov word [ecx + 0x14], ax
mov eax, dword [ebp + 0x64]
shr eax, 0x10
mov word [ecx + 0x16], ax
mov ecx, esp
sub esp, 0x18
mov dword [ecx + 0x14], 0
mov eax, dword [ebp + 0x38]
mov dword [ecx], eax
mov eax, dword [ebp + 0x3c]
mov dword [ecx + 4], eax
mov eax, dword [ebp + 0x40]
mov dword [ecx + 8], eax
mov eax, dword [ebp + 0x44]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp + 0x48]
mov dword [ecx + 0x10], eax
mov ax, word [ebp + 0x4c]
mov word [ecx + 0x14], ax
mov eax, dword [ebp + 0x4c]
shr eax, 0x10
mov word [ecx + 0x16], ax
mov ecx, esp
sub esp, 0x18
mov dword [ecx + 0x14], 0
mov eax, dword [ebp + 0x20]
mov dword [ecx], eax
mov eax, dword [ebp + 0x24]
mov dword [ecx + 4], eax
mov eax, dword [ebp + 0x28]
mov dword [ecx + 8], eax
mov eax, dword [ebp + 0x2c]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp + 0x30]
mov dword [ecx + 0x10], eax
mov ax, word [ebp + 0x34]
mov word [ecx + 0x14], ax
mov eax, dword [ebp + 0x34]
shr eax, 0x10
mov word [ecx + 0x16], ax
mov ecx, esp
push edx
mov dword [ecx + 0x14], 0
mov eax, dword [ebp + 8]
mov dword [ecx], eax
mov eax, dword [ebp + 0xc]
mov dword [ecx + 4], eax
mov eax, dword [ebp + 0x10]
mov dword [ecx + 8], eax
mov eax, dword [ebp + 0x14]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp + 0x18]
mov dword [ecx + 0x10], eax
mov ax, word [ebp + 0x1c]
mov word [ecx + 0x14], ax
mov eax, dword [ebp + 0x1c]
shr eax, 0x10
mov word [ecx + 0x16], ax
lea ecx, [esp + 0x118]
call fcn.00435e90
mov edx, eax
add esp, 0x64
mov eax, dword [edx]
mov dword [ebx], eax
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov ecx, dword [edx + 8]
mov eax, ebx
mov dword [ebx + 8], ecx
mov ecx, dword [edx + 0xc]
mov dword [ebx + 0xc], ecx
mov ecx, dword [edx + 0x10]
mov dword [ebx + 0x10], ecx
mov ecx, dword [edx + 0x14]
mov dword [ebx + 0x14], ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.0059df64
mov esp, ebp
pop ebp
ret
test eax, 0x800
je 0x433c70
sub esp, 0x18
mov ecx, esp
sub esp, 0x18
mov dword [ecx + 0x14], 0
mov eax, dword [ebp + 0x50]
mov dword [ecx], eax
mov eax, dword [ebp + 0x54]
mov dword [ecx + 4], eax
mov eax, dword [ebp + 0x58]
mov dword [ecx + 8], eax
mov eax, dword [ebp + 0x5c]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp + 0x60]
mov dword [ecx + 0x10], eax
mov ax, word [ebp + 0x64]
mov word [ecx + 0x14], ax
mov ax, word [ebp + 0x66]
mov word [ecx + 0x16], ax
mov ecx, esp
sub esp, 0x18
mov dword [ecx + 0x14], 0
mov eax, dword [ebp + 0x38]
mov dword [ecx], eax
mov eax, dword [ebp + 0x3c]
mov dword [ecx + 4], eax
mov eax, dword [ebp + 0x40]
mov dword [ecx + 8], eax
mov eax, dword [ebp + 0x44]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp + 0x48]
mov dword [ecx + 0x10], eax
mov ax, word [ebp + 0x4c]
mov word [ecx + 0x14], ax
mov ax, word [ebp + 0x4e]
mov word [ecx + 0x16], ax
mov ecx, esp
sub esp, 0x18
mov dword [ecx + 0x14], 0
mov eax, dword [ebp + 0x20]
mov dword [ecx], eax
mov eax, dword [ebp + 0x24]
mov dword [ecx + 4], eax
mov eax, dword [ebp + 0x28]
mov dword [ecx + 8], eax
mov eax, dword [ebp + 0x2c]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp + 0x30]
mov dword [ecx + 0x10], eax
mov ax, word [ebp + 0x34]
mov word [ecx + 0x14], ax
mov ax, word [ebp + 0x36]
mov word [ecx + 0x16], ax
mov ecx, esp
push edx
mov dword [ecx + 0x14], 0
mov eax, dword [ebp + 8]
mov dword [ecx], eax
mov eax, dword [ebp + 0xc]
mov dword [ecx + 4], eax
mov eax, dword [ebp + 0x10]
mov dword [ecx + 8], eax
mov eax, dword [ebp + 0x14]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp + 0x18]
mov dword [ecx + 0x10], eax
mov ax, word [ebp + 0x1c]
mov word [ecx + 0x14], ax
mov ax, word [ebp + 0x1e]
mov word [ecx + 0x16], ax
lea ecx, [esp + 0x118]
call fcn.004360a0
add esp, 0x64
mov ecx, dword [eax]
mov dword [ebx], ecx
mov ecx, dword [eax + 4]
mov dword [ebx + 4], ecx
mov ecx, dword [eax + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [eax + 0xc]
mov dword [ebx + 0xc], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebx + 0x10], ecx
mov eax, dword [eax + 0x14]
mov dword [ebx + 0x14], eax
mov eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.0059df64
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x38]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 0x54]
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x58]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0x44]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x6c], eax
mov eax, dword [ebp + 0x48]
mov esi, dword [ebp + 0x40]
mov ebx, dword [ebp + 0x3c]
mov dword [esp + 0x48], eax
mov dword [esp + 0x70], eax
mov ax, word [ebp + 0x4c]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x60], edx
mov edx, dword [ebp + 0x14]
mov word [esp + 0x12], ax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 0x74], 0
mov word [esp + 0x74], ax
mov ax, word [ebp + 0x4e]
mov dword [esp + 0x44], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x3c], edx
mov edx, dword [ebp + 0x18]
mov word [esp + 0x44], cx
mov cx, word [ebp + 0x1e]
mov word [esp + 0x10], ax
mov word [esp + 0x76], ax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x24], edx
mov dword [esp + 0x40], edx
mov word [esp + 0xe], cx
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], eax
mov word [esp + 0x46], cx
mov ecx, dword [esp + 0x18]
mov eax, ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x28]
mov edx, eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0xb8], edx
mov edx, edi
mov dword [esp + 0x8c], edx
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x90], edx
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x94], edx
mov dword [esp + 0xc4], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0xc8], 0
mov word [esp + 0xc8], dx
mov dx, word [esp + 0xe]
mov word [esp + 0xca], dx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x68], esi
mov dword [esp + 0x38], edi
cmp ecx, dword [esp + 0x7c]
jne 0x433dc3
cmp eax, dword [esp + 0x80]
jne 0x433dc3
cmp edi, dword [esp + 0x84]
je 0x433f8f
cmp edx, dword [esp + 0x4c]
jne 0x433dd9
cmp ebx, dword [esp + 0x50]
jne 0x433dd9
cmp esi, dword [esp + 0x54]
jne 0x433dd9
xor cl, cl
jmp 0x433ddb
mov cl, 1
test cl, cl
je 0x433f8f
mov ecx, esi
mov dword [esp + 0xe0], 0
mov dword [esp + 0xd4], ecx
inc esi
mov cx, word [esp + 0x12]
mov dword [esp + 0xcc], edx
mov edx, dword [esp + 0x1c]
mov word [esp + 0xe0], cx
mov cx, word [esp + 0x10]
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0x48]
mov word [esp + 0xe2], cx
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xdc], edx
cmp esi, edx
jb 0x433e8f
add ebx, dword [esp + 0x1c]
lea ecx, [esp + 0x60]
mov dword [esp + 0x64], ebx
call fcn.004282a0
mov ax, word [esp + 0x76]
xor esi, esi
mov ebx, dword [esp + 0x64]
mov ecx, dword [esp + 0xd4]
mov word [esp + 0x10], ax
mov ax, word [esp + 0x74]
mov word [esp + 0x12], ax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
movzx ecx, word [esp + ecx*2 + 0xe0]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x9c], ecx
mov ecx, edi
mov dword [esp + 0xa4], ecx
inc edi
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xb0], 0
mov word [esp + 0xb0], cx
mov cx, word [esp + 0xe]
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0x24]
mov word [esp + 0xb2], cx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x68], esi
mov dword [esp + 0xa0], eax
mov dword [esp + 0xac], edx
cmp edi, edx
jb 0x433f50
add eax, dword [esp + 0x14]
lea ecx, [esp + 0x30]
mov dword [esp + 0x34], eax
call fcn.004282a0
mov ax, word [esp + 0x46]
xor edi, edi
mov ecx, dword [esp + 0x30]
mov word [esp + 0xe], ax
movzx eax, word [esp + 0x44]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x88]
cmp word [esp + ecx*2 + 0xb0], dx
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], edi
je 0x433da7
mov ecx, dword [esp + 0xc8]
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x90]
mov ebx, dword [esp + 0x94]
jmp 0x433fec
cmp edx, dword [esp + 0x4c]
jne 0x433fa5
cmp ebx, dword [esp + 0x50]
jne 0x433fa5
lea ecx, [esp + 0x30]
cmp esi, dword [esp + 0x54]
je 0x433fac
lea ecx, [esp + 0xb4]
mov eax, dword [ecx]
mov esi, dword [ecx + 8]
mov edi, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0x58], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x5c], eax
movzx eax, word [ecx + 0x14]
mov dword [esp + 0xb0], 0
mov word [esp + 0xb0], ax
movzx eax, word [ecx + 0x16]
mov word [esp + 0xb2], ax
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x58]
mov dword [eax], edx
mov edx, dword [esp + 0x5c]
mov dword [eax + 4], edx
mov dword [eax + 8], esi
mov dword [eax + 0xc], edi
pop edi
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0xe0]
pop esi
pop ebx
xor ecx, esp
call fcn.0059df64
mov esp, ebp
pop ebp