Function at 0x4b3b30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov ecx, dword [ebp + 0x1c]
mov dword [ebp - 4], 0
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
cmp ecx, 0x3000
je 0x4b3b5a
cmp ecx, 0x4000
je 0x4b3b5a
xor bl, bl
jmp 0x4b3b5c
mov bl, 1
push 0
push 0
mov edx, 0x201
mov byte [ebp + 8], bl
test bl, bl
mov eax, 0x60
cmovne eax, edx
push eax
mov eax, dword [ebp + 0x20]
push dword [eax]
lea eax, [ebp - 0x2c]
push esi
push ecx
push eax
call fcn.004b2c50
mov edi, eax
add esp, 0x1c
test edi, edi
jne 0x4b3df2
push 0xbc
push eax
push esi
call fcn.004f21c0
add esp, 0xc
mov dword [esi + 0x20], 0xff9c0000
test bl, bl
mov dword [esi + 0x24], 0x320000
mov eax, 0x30
mov dword [esi + 0x2c], 2
mov ecx, 0x201
mov dword [esi + 0x30], 0x10000
cmovne eax, ecx
mov dword [esi + 0x3c], 0x10000
mov dword [esi + 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x9c], 0x2210
mov dword [esi], 0xffff
mov dword [esi + 4], 0xffff
mov dword [esi + 8], 0xffff
mov dword [esi + 0xc], 0xffff
mov dword [esi + 0x10], 0xffff
mov dword [esi + 0x14], 0xffff
mov dword [esi + 0x80], 0xffff
mov dword [esi + 0x84], 0xffff
mov dword [esi + 0x88], 0xffff
mov dword [esi + 0xac], 0xffff
cmp dword [eax + 0xc], edi
je 0x4b3c59
lea ecx, [ebp + 0x1c]
push ecx
lea ecx, [ebp - 4]
push ecx
push dword [ebp + 0x10]
push eax
call fcn.004b1c30
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x4b3cab
mov eax, dword [ebp + 0x1c]
jmp 0x4b3c96
push dword [eax + 0x14]
push dword [ebp + 0x14]
call fcn.004b86b0
mov edi, eax
add esp, 8
test edi, edi
jne 0x4b3df2
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp + 0xc]
push dword [eax + 0x18]
push dword [ebp + 0x14]
call fcn.004b7e00
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x4b3df2
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 4]
add eax, ecx
push eax
push ecx
lea eax, [ebp - 0x2c]
push eax
call fcn.004b2ce0
add esp, 0xc
mov edi, eax
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0xc], 0
je 0x4b3cc2
cmp dword [eax + 0x20], 0
jne 0x4b3cd1
lea ecx, [ebp - 4]
push ecx
push dword [eax]
jmp 0x4b3cc9
lea eax, [ebp - 4]
push eax
push dword [ebp + 0x14]
call fcn.004b8660
add esp, 8
test edi, edi
jne 0x4b3df2
cmp dword [esi + 0x84], 0xffff
jne 0x4b3df2
push edi
push edi
push esi
push dword [ebp + 0x20]
call fcn.004b2350
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x4b3df2
test bl, bl
jne 0x4b3d9d
mov ebx, dword [ebp + 0x24]
mov eax, dword [ebx + 0x80]
mov eax, dword [eax + 0x3c]
cmp eax, 0xffffffff
jne 0x4b3d4c
mov edx, dword [ebx + 0x60]
mov eax, dword [edx + 0x44]
mov dword [esi + 0x288], eax
mov eax, dword [edx + 0x44]
test eax, eax
je 0x4b3d88
nop dword [eax]
mov ecx, eax
shl ecx, 0xd
xor ecx, eax
mov eax, ecx
shr eax, 0x11
xor ecx, eax
mov eax, ecx
shl eax, 5
xor eax, ecx
jl 0x4b3d30
mov dword [edx + 0x44], eax
jmp 0x4b3d88
mov dword [esi + 0x288], eax
mov edx, dword [ebx + 0x80]
add edx, 0x3c
cmp dword [edx], 0
je 0x4b3d88
mov ecx, dword [edx]
mov eax, ecx
shl eax, 0xd
xor ecx, eax
mov eax, ecx
shr eax, 0x11
xor ecx, eax
mov eax, ecx
shl eax, 5
xor eax, ecx
mov dword [edx], eax
mov edx, dword [ebx + 0x80]
add edx, 0x3c
mov ecx, dword [edx]
test ecx, ecx
js 0x4b3d62
cmp dword [esi + 0x288], 0
jne 0x4b3d9d
mov eax, dword [esi + 0x214]
mov dword [esi + 0x288], eax
mov ecx, dword [esi + 0x218]
test ecx, ecx
je 0x4b3df2
mov eax, dword [esi + 0x74]
add eax, ecx
add eax, dword [ebp + 0x18]
push eax
push dword [ebp + 0x14]
call fcn.004b86b0
mov edi, eax
add esp, 8
test edi, edi
jne 0x4b3df2
push dword [ebp + 8]
lea ebx, [esi + 0x260]
push 1
push dword [ebp + 0x14]
push ebx
call fcn.004b2010
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x4b3df2
push eax
push eax
lea eax, [esi + 0x284]
push eax
push ebx
call fcn.004b1e60
add esp, 0x10
mov edi, eax
mov eax, dword [ebp - 0x2c]
push dword [ebp - 0x1c]
push dword [eax]
call fcn.004ba030
add esp, 8
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret