Function at 0x44b320
Capabilities:
Encode data using xor

Disassembly:
push ebx
push ebp
mov ebp, dword [0x5f1880]
xor ebx, ebx
push esi
mov esi, dword [0x643658]
mov dword [0x643648], 2
test ebp, ebp
je 0x44b2e1
push edi
mov edi, dword [0x5f1888]
lea ebx, [ebx]
movzx eax, byte [esi + 0x60ecc2]
shl edi, 5
xor eax, edi
and eax, 0x7fff
mov edi, eax
movzx eax, word [edi*2 + 0x633520]
mov ecx, esi
and ecx, 0x7fff
mov word [ecx*2 + 0x623520], ax
mov dword [0x5f1888], edi
mov word [edi*2 + 0x633520], si
test eax, eax
je 0x44b1ba
mov edx, esi
sub edx, eax
cmp edx, 0x7efa
ja 0x44b1ba
push eax
call fcn.0044aed0
mov ebx, eax
add esp, 4
cmp ebx, ebp
jbe 0x44b1ba
mov ebx, ebp
cmp ebx, 3
jb 0x44b24d
mov ecx, esi
sub ecx, dword [0x643650]
lea edx, [ebx - 3]
call fcn.0044c1e0
sub ebp, ebx
mov dword [0x5f1880], ebp
cmp ebx, dword [0x5f1884]
ja 0x44b226
dec ebx
movzx ecx, byte [esi + 0x60ecc3]
inc esi
shl edi, 5
xor ecx, edi
and ecx, 0x7fff
mov edi, ecx
mov cx, word [edi*2 + 0x633520]
mov edx, esi
and edx, 0x7fff
sub ebx, 1
mov word [edx*2 + 0x623520], cx
mov word [edi*2 + 0x633520], si
jne 0x44b1e4
mov dword [0x5f1888], edi
jmp 0x44b262
movzx edi, byte [esi + ebx + 0x60ecc0]
movzx edx, byte [esi + ebx + 0x60ecc1]
add esi, ebx
shl edi, 5
xor edi, edx
xor ebx, ebx
and edi, 0x7fff
mov dword [0x5f1888], edi
jmp 0x44b263
movzx edx, byte [esi + 0x60ecc0]
xor ecx, ecx
call fcn.0044c1e0
dec ebp
mov dword [0x5f1880], ebp
inc esi
mov dword [0x643658], esi
test eax, eax
je 0x44b2a6
mov ecx, dword [0x643654]
test ecx, ecx
jl 0x44b27f
lea eax, [ecx + 0x60ecc0]
jmp 0x44b281
xor eax, eax
push 0
sub esi, ecx
push eax
call fcn.0044c080
mov esi, dword [0x643658]
mov ebp, dword [0x5f1880]
mov edi, dword [0x5f1888]
add esp, 8
mov dword [0x643654], esi
cmp ebp, 0x106
jae 0x44b2d8
mov edi, edi
cmp dword [0x5f1878], 0
jne 0x44b2cc
call fcn.0044b020
mov ebp, dword [0x5f1880]
cmp ebp, 0x106
jb 0x44b2b0
mov esi, dword [0x643658]
mov edi, dword [0x5f1888]
test ebp, ebp
jne 0x44b160
pop edi
mov ecx, dword [0x643654]
test ecx, ecx
jl 0x44b302
lea eax, [ecx + 0x60ecc0]
push 1
sub esi, ecx
push eax
call fcn.0044c080
add esp, 8
pop esi
pop ebp
pop ebx
ret
xor eax, eax
push 1
sub esi, ecx
push eax
call fcn.0044c080
add esp, 8
pop esi
pop ebp
pop ebx
ret
sub esp, 0xc
cmp dword [0x5f187c], 3
push ebx
mov dword [esp + 8], 0
mov ebx, 2
jg 0x44b343
pop ebx
add esp, 0xc
jmp 0x44b130
cmp dword [0x5f1880], 0
push ebp
mov ebp, dword [0x643654]
push esi
mov esi, dword [0x643658]
je 0x44b5a2
push edi
mov edi, dword [0x5f1888]
jmp 0x44b374
mov ebx, dword [esp + 0x10]
movzx eax, byte [esi + 0x60ecc2]
mov edx, dword [0x643650]
shl edi, 5
xor eax, edi
and eax, 0x7fff
mov edi, eax
movzx eax, word [edi*2 + 0x633520]
mov ecx, esi
and ecx, 0x7fff
mov word [ecx*2 + 0x623520], ax
mov dword [0x5f1888], edi
mov word [edi*2 + 0x633520], si
mov dword [0x643648], ebx
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], 2
test eax, eax
je 0x44b417
cmp ebx, dword [0x5f1884]
jae 0x44b417
mov ecx, esi
sub ecx, eax
cmp ecx, 0x7efa
ja 0x44b417
push eax
call fcn.0044aed0
mov ecx, dword [0x5f1880]
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ecx
jbe 0x44b3fa
mov dword [esp + 0x10], ecx
mov eax, ecx
cmp eax, 3
jne 0x44b417
mov edx, esi
sub edx, dword [0x643650]
cmp edx, 0x1000
jbe 0x44b417
mov dword [esp + 0x10], 2
cmp ebx, 3
jb 0x44b4e2
cmp dword [esp + 0x10], ebx
ja 0x44b4e2
mov ecx, esi
sub ecx, dword [esp + 0x18]
lea edx, [ebx - 3]
dec ecx
call fcn.0044c1e0
mov ecx, 1
sub ecx, ebx
add dword [0x5f1880], ecx
sub ebx, 2
lea esp, [esp]
movzx edx, byte [esi + 0x60ecc3]
inc esi
shl edi, 5
xor edx, edi
and edx, 0x7fff
mov edi, edx
mov dx, word [edi*2 + 0x633520]
mov ecx, esi
and ecx, 0x7fff
sub ebx, 1
mov word [ecx*2 + 0x623520], dx
mov word [edi*2 + 0x633520], si
jne 0x44b450
inc esi
mov dword [0x643648], ebx
mov dword [0x5f1888], edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], 2
mov dword [0x643658], esi
test eax, eax
je 0x44b54a
test ebp, ebp
jl 0x44b4bd
lea eax, [ebp + 0x60ecc0]
jmp 0x44b4bf
xor eax, eax
push 0
sub esi, ebp
push eax
call fcn.0044c080
mov esi, dword [0x643658]
mov edi, dword [0x5f1888]
mov ebp, esi
add esp, 8
mov dword [0x643654], ebp
jmp 0x44b54a
cmp dword [esp + 0x14], 0
je 0x44b533
movzx edx, byte [esi + 0x60ecbf]
xor ecx, ecx
call fcn.0044c1e0
test eax, eax
je 0x44b52a
test ebp, ebp
jl 0x44b507
lea eax, [ebp + 0x60ecc0]
jmp 0x44b509
xor eax, eax
push 0
sub esi, ebp
push eax
call fcn.0044c080
mov esi, dword [0x643658]
mov edi, dword [0x5f1888]
mov ebp, esi
add esp, 8
mov dword [0x643654], ebp
inc esi
dec dword [0x5f1880]
jmp 0x44b544
mov eax, 1
add esi, eax
sub dword [0x5f1880], eax
mov dword [esp + 0x14], eax
mov dword [0x643658], esi
mov ebx, 0x106
cmp dword [0x5f1880], ebx
jae 0x44b57f
cmp dword [0x5f1878], 0
jne 0x44b56d
call fcn.0044b020
cmp dword [0x5f1880], ebx
jb 0x44b557
mov ebp, dword [0x643654]
mov esi, dword [0x643658]
mov edi, dword [0x5f1888]
cmp dword [0x5f1880], 0
jne 0x44b370
cmp dword [esp + 0x14], 0
pop edi
je 0x44b5a2
movzx edx, byte [esi + 0x60ecbf]
xor ecx, ecx
call fcn.0044c1e0
test ebp, ebp
jl 0x44b5c0
lea eax, [ebp + 0x60ecc0]
push 1
sub esi, ebp
push eax
call fcn.0044c080
add esp, 8
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
xor eax, eax
push 1
sub esi, ebp
push eax
call fcn.0044c080
add esp, 8
pop esi
pop ebp
pop ebx
add esp, 0xc
ret