Function at 0x449df8
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff8
mov esi, 0x4b2298
mov ebp, 0x4b2294
xor eax, eax
mov dword [esp + 4], eax
mov ebx, 2
cmp dword [0x462a94], 3
jg 0x44a04b
call fcn.00449c44
jmp 0x44a09a
mov eax, dword [esi]
mov edx, dword [0x4b2290]
shl edx, 5
xor ecx, ecx
mov cl, byte [eax + 0x482286]
and eax, 0x7fff
xor edx, ecx
and edx, 0x7fff
mov dword [0x4b2290], edx
mov edx, dword [0x4b2290]
movzx edi, word [edx*2 + 0x4a2284]
mov word [eax*2 + 0x492284], di
test edi, edi
mov dx, word [esi]
mov eax, dword [0x4b2290]
mov word [eax*2 + 0x4a2284], dx
mov dword [ebp], ebx
mov ecx, dword [0x4b229c]
mov ebx, 2
mov dword [esp], ecx
je 0x449ecf
mov eax, dword [ebp]
cmp eax, dword [0x4b22ac]
jae 0x449ecf
mov edx, dword [esi]
sub edx, edi
cmp edx, 0x7efa
ja 0x449ecf
push edi
call fcn.004499dc
mov ebx, eax
mov eax, dword [0x4b22a4]
cmp ebx, eax
jbe 0x449eb6
mov ebx, eax
cmp ebx, 3
jne 0x449ecf
mov eax, dword [esi]
sub eax, dword [0x4b229c]
cmp eax, 0x1000
jbe 0x449ecf
mov ebx, 2
cmp dword [ebp], 3
jb 0x449fd3
cmp ebx, dword [ebp]
jbe 0x449f15
mov eax, ebx
sub eax, dword [ebp]
cmp eax, 1
jne 0x449fd3
mov edx, dword [esi]
sub edx, dword [0x4b229c]
cmp edx, 0x4000
jbe 0x449fd3
mov ecx, dword [0x4b229c]
add ecx, 0x5dc
cmp ecx, dword [esp]
jae 0x449fd3
mov eax, dword [ebp]
sub eax, 3
push eax
mov edx, dword [esi]
dec edx
sub edx, dword [esp + 4]
push edx
call fcn.0044bb38
mov ecx, dword [ebp]
dec ecx
sub dword [0x4b22a4], ecx
sub dword [ebp], 2
inc dword [esi]
xor ebx, ebx
mov edx, dword [esi]
mov ecx, dword [0x4b2290]
shl ecx, 5
mov bl, byte [edx + 0x482286]
xor ecx, ebx
and edx, 0x7fff
and ecx, 0x7fff
mov dword [0x4b2290], ecx
mov ecx, dword [0x4b2290]
movzx edi, word [ecx*2 + 0x4a2284]
mov word [edx*2 + 0x492284], di
mov cx, word [esi]
mov edx, dword [0x4b2290]
mov word [edx*2 + 0x4a2284], cx
dec dword [ebp]
jne 0x449f37
xor edx, edx
mov dword [esp + 4], edx
mov ebx, 2
inc dword [esi]
test eax, eax
je 0x44a03a
push 0
mov eax, dword [esi]
sub eax, dword [0x4b2288]
cmp dword [0x4b2288], 0
push eax
jl 0x449fc2
mov edx, 0x482284
add edx, dword [0x4b2288]
jmp 0x449fc4
xor edx, edx
push edx
call fcn.0044b95c
mov eax, dword [esi]
mov dword [0x4b2288], eax
jmp 0x44a03a
cmp dword [esp + 4], 0
je 0x44a02a
mov ecx, dword [esi]
xor eax, eax
mov al, byte [ecx + 0x482283]
push eax
push 0
call fcn.0044bb38
test eax, eax
je 0x44a020
push 0
mov edx, dword [esi]
sub edx, dword [0x4b2288]
cmp dword [0x4b2288], 0
push edx
jl 0x44a011
mov ecx, 0x482284
add ecx, dword [0x4b2288]
jmp 0x44a013
xor ecx, ecx
push ecx
call fcn.0044b95c
mov eax, dword [esi]
mov dword [0x4b2288], eax
inc dword [esi]
dec dword [0x4b22a4]
jmp 0x44a03a
mov dword [esp + 4], 1
inc dword [esi]
dec dword [0x4b22a4]
cmp dword [0x4b22a4], 0x106
jae 0x44a04b
call fcn.00449b24
cmp dword [0x4b22a4], 0
jne 0x449e2b
cmp dword [esp + 4], 0
je 0x44a071
mov edx, dword [esi]
xor eax, eax
mov al, byte [edx + 0x482283]
push eax
push 0
call fcn.0044bb38
push 1
mov edx, dword [esi]
sub edx, dword [0x4b2288]
cmp dword [0x4b2288], 0
push edx
jl 0x44a092
mov ecx, 0x482284
add ecx, dword [0x4b2288]
jmp 0x44a094
xor ecx, ecx
push ecx
call fcn.0044b95c
pop ecx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret