Function at 0x3be9850
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6b8
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x4b0]
push eax
push 0x104
mov eax, dword [edi + 0x758]
call eax
lea eax, [ebp - 0x90]
push eax
mov eax, dword [edi + 0x75c]
call eax
xor eax, eax
mov word [ebp - 0x2a8], ax
lea eax, [ebp - 0x2a8]
push 0x104
push eax
push dword [edi + 0x704]
mov eax, dword [edi + 0x67c]
call eax
test eax, eax
je 0x3be98ce
push 0x5c
lea eax, [ebp - 0x2a8]
push 0x104
push eax
call fcn.03be9d80
mov edx, eax
add esp, 0xc
test edx, edx
je 0x3be98ce
add edx, 2
jne 0x3be9958
xor eax, eax
mov ecx, 0x320
mov word [ebp - 0x2a8], ax
mov eax, 0x321
mov dword [ebp - 0x18], 0x36e
mov word [ebp - 0x14], cx
mov word [ebp - 0x12], ax
mov eax, 0x32f
mov word [ebp - 0x10], cx
mov word [ebp - 0xe], ax
mov eax, 0x323
mov word [ebp - 0xc], ax
mov eax, 0x32b
mov word [ebp - 0xa], ax
xor eax, eax
mov word [ebp - 8], ax
mov ax, word [ebp - 0x14]
xor eax, eax
nop dword [eax + eax]
mov cx, word [ebp + eax*2 - 0x14]
movzx edx, cx
movzx ecx, word [ebp - 0x18]
xor edx, ecx
mov word [ebp + eax*2 - 0x14], dx
inc eax
cmp eax, 6
jb 0x3be9920
xor eax, eax
mov word [ebp - 8], ax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x2a8]
push eax
call fcn.03be9e10
add esp, 8
lea edx, [ebp - 0x2a8]
mov eax, 0x31
mov ebx, 0x78
mov word [ebp - 0x7e], ax
mov esi, 0x7f
mov word [ebp - 0x7c], bx
mov eax, 0x68
mov word [ebp - 0x7a], si
mov ecx, 0x40
mov word [ebp - 0x78], ax
mov edi, 0x31
mov eax, 0x4d
mov word [ebp - 0x76], ax
mov eax, 0x7c
mov word [ebp - 0x74], ax
mov word [ebp - 0x72], ax
mov eax, 0x5f
mov word [ebp - 0x70], ax
mov eax, 0x75
mov word [ebp - 0x6e], ax
mov eax, 0x73
mov word [ebp - 0x6c], ax
mov eax, 0x7a
mov word [ebp - 0x6a], ax
mov eax, 0x83
mov word [ebp - 0x68], cx
mov word [ebp - 0x66], ax
mov eax, 0x6b
mov word [ebp - 0x64], ax
mov word [ebp - 0x62], di
mov word [ebp - 0x60], bx
mov ebx, edi
mov word [ebp - 0x5e], si
mov esi, 0x3c
mov word [ebp - 0x5c], ax
mov eax, 0x3e
mov word [ebp - 0x5a], bx
mov word [ebp - 0x58], si
mov word [ebp - 0x56], cx
mov ecx, 0x70
mov word [ebp - 0x54], cx
mov word [ebp - 0x52], bx
mov word [ebp - 0x50], si
mov word [ebp - 0x4e], ax
mov word [ebp - 0x4c], cx
mov word [ebp - 0x4a], bx
mov ebx, 0x6b
mov word [ebp - 0x48], si
mov word [ebp - 0x46], ax
mov word [ebp - 0x44], cx
mov word [ebp - 0x42], bx
mov word [ebp - 0x40], di
mov word [ebp - 0x3e], si
mov word [ebp - 0x3c], ax
mov word [ebp - 0x3a], cx
mov word [ebp - 0x38], di
mov word [ebp - 0x36], si
mov word [ebp - 0x34], ax
mov word [ebp - 0x32], cx
mov word [ebp - 0x30], di
mov word [ebp - 0x2e], si
mov word [ebp - 0x2c], ax
mov eax, edi
mov edi, dword [ebp + 8]
mov word [ebp - 0x2a], cx
mov word [ebp - 0x28], bx
mov word [ebp - 0x26], ax
mov eax, 0x3a
mov word [ebp - 0x24], cx
mov word [ebp - 0x22], ax
mov eax, 0x79
mov word [ebp - 0x20], cx
mov word [ebp - 0x1e], ax
mov eax, 0x7c
mov word [ebp - 0x1c], ax
xor eax, eax
mov word [ebp - 0x1a], ax
xor ecx, ecx
mov ax, word [ebp - 0x7e]
nop dword [eax]
mov ax, word [ebp + ecx*2 - 0x7e]
movzx eax, ax
add eax, 0xfffffff4
mov word [ebp + ecx*2 - 0x7e], ax
inc ecx
cmp ecx, 0x32
jb 0x3be9aa0
movzx eax, word [ebp - 0x82]
push eax
movzx eax, word [ebp - 0x84]
push eax
movzx eax, word [ebp - 0x86]
push eax
movzx eax, word [ebp - 0x88]
push eax
movzx eax, word [ebp - 0x8a]
push eax
movzx eax, word [ebp - 0x8e]
push eax
movzx eax, word [ebp - 0x90]
push eax
push edx
lea eax, [ebp - 0x4b0]
push eax
lea eax, [ebp - 0x7e]
push eax
lea eax, [ebp - 0x6b8]
push eax
mov eax, dword [edi + 0x768]
call eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 0
push eax
lea eax, [ebp - 0xa0]
push eax
push edi
call fcn.03be9bd0
add esp, 0x38
test eax, eax
js 0x3be9bbc
push 0
push 0x80
push 2
push 0
push 0
push 0xc0000000
lea eax, [ebp - 0x6b8]
push eax
mov eax, dword [edi + 0x688]
call eax
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x3be9b60
pop edi
pop esi
mov eax, 0xe0d00751
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x740]
call eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dword [ebp - 0x9c], eax
test ecx, ecx
push 0
push 0
lea eax, [ebp - 0x9c]
mov dword [ebp - 0x98], ecx
cmove eax, edx
mov dword [ebp - 0x94], 1
push eax
push dword [ebp + 0x10]
mov eax, dword [edi + 0x754]
push ebx
call eax
push eax
push 0xffffffffffffffff
call dword [ebp - 4]
mov ecx, dword [edi + 0x694]
mov esi, eax
push ebx
call ecx
xor ecx, ecx
mov eax, 0xe0d00770
test esi, esi
cmovne eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret