Function at 0x44abab
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x74
mov eax, dword [0x48500c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov esi, 0x485b40
xor ebx, ebx
push 0x47a7c4
mov ecx, esi
mov dword [ebp - 0x68], ebx
call fcn.0044cae0
mov dword [ebp - 0x70], 1
test al, al
jne 0x44abfc
lea ecx, [ebp - 0x60]
call fcn.0043fc9d
mov edx, 0x485b58
mov ecx, eax
inc ebx
call fcn.0044c05c
mov byte [ebp - 0x61], 1
test al, al
je 0x44ac00
mov byte [ebp - 0x61], 0
test bl, 1
je 0x44ac10
lea ecx, [ebp - 0x60]
and ebx, 0xfffffffe
call fcn.0044b89e
cmp byte [ebp - 0x61], 0
je 0x44acf7
mov eax, dword [0x485b50]
mov edi, esi
cmp dword [0x485b54], 0x10
movaps xmm0, xmmword [0x47f520]
cmovae edi, dword [0x485b40]
mov dword [ebp - 0x68], eax
mov al, 0x19
movsx ecx, al
mov byte [ebp - 0x44], al
movups xmmword [ebp - 0x1c], xmm0
mov word [ebp - 0xc], 0x6d61
mov byte [ebp - 0xa], 0
call fcn.0043cfd7
mov dword [ebp - 0x6c], eax
xor edx, edx
push edx
lea ecx, [ebp - 0x6c]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x40], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44ac59
push 0x12
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0043d333
movsx ecx, byte [ebp - 0x44]
mov dword [ebp - 0x20], eax
call fcn.0043cfd7
mov dword [ebp - 0x6c], eax
xor edx, edx
push edx
lea ecx, [ebp - 0x6c]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x40], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44ac8d
push dword [0x487200]
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0x20]
call fcn.0043d3a9
test eax, eax
je 0x44acc9
mov dl, byte [ebp - 0x44]
xor ecx, ecx
xor byte [ecx + eax], dl
inc ecx
cmp ecx, 0x12
jb 0x44acbc
mov byte [eax + 0x12], 0
mov ecx, dword [0x486fbc]
mov edx, eax
push 3
push dword [ebp - 0x68]
push edi
call fcn.0042e156
add esp, 0xc
cmp dword [0x485b54], 0x10
cmovae esi, dword [0x485b40]
and dword [0x485b50], 0
mov byte [esi], 0
mov esi, 0x485b10
push 0x47a7c4
mov ecx, esi
call fcn.0044cae0
test al, al
jne 0x44ad2b
lea ecx, [ebp - 0x60]
call fcn.0043fc9d
mov edx, 0x485b70
mov ecx, eax
or ebx, 2
call fcn.0044c05c
mov byte [ebp - 0x61], 1
test al, al
je 0x44ad2f
mov byte [ebp - 0x61], 0
test bl, 2
je 0x44ad3f
lea ecx, [ebp - 0x60]
and ebx, 0xfffffffd
call fcn.0044b89e
cmp byte [ebp - 0x61], 0
je 0x44ae2d
mov eax, dword [0x485b20]
mov edi, esi
cmp dword [0x485b24], 0x10
movaps xmm0, xmmword [0x47f450]
cmovae edi, dword [0x485b10]
mov dword [ebp - 0x6c], eax
mov al, 0x24
movsx ecx, al
mov byte [ebp - 0x48], al
movups xmmword [ebp - 0x20], xmm0
mov dword [ebp - 0x10], 0x500a5740
mov word [ebp - 0xc], 0x505c
mov byte [ebp - 0xa], 0
call fcn.0043cfd7
mov dword [ebp - 0x68], eax
xor edx, edx
push edx
lea ecx, [ebp - 0x68]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x44], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44ad8f
push 0x16
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0043d333
movsx ecx, byte [ebp - 0x48]
mov dword [ebp - 0x24], eax
call fcn.0043cfd7
mov dword [ebp - 0x68], eax
xor edx, edx
push edx
lea ecx, [ebp - 0x68]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x44], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44adc3
push dword [0x487200]
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x24]
call fcn.0043d3a9
test eax, eax
je 0x44adff
mov dl, byte [ebp - 0x48]
xor ecx, ecx
xor byte [ecx + eax], dl
inc ecx
cmp ecx, 0x16
jb 0x44adf2
mov byte [eax + 0x16], 0
mov ecx, dword [0x486fbc]
mov edx, eax
push 3
push dword [ebp - 0x6c]
push edi
call fcn.0042e156
add esp, 0xc
cmp dword [0x485b24], 0x10
cmovae esi, dword [0x485b10]
and dword [0x485b20], 0
mov byte [esi], 0
mov esi, 0x485b28
push 0x47a7c4
mov ecx, esi
call fcn.0044cae0
test al, al
jne 0x44ae5d
lea ecx, [ebp - 0x60]
call fcn.0043fc9d
mov edx, 0x485af8
mov ecx, eax
or ebx, 4
call fcn.0044c05c
test al, al
je 0x44ae61
mov byte [ebp - 0x70], 0
test bl, 4
je 0x44ae6e
lea ecx, [ebp - 0x60]
call fcn.0044b89e
cmp byte [ebp - 0x70], 0
je 0x44af54
cmp dword [0x485b3c], 0x10
mov al, 0x2b
movaps xmm0, xmmword [0x47f3e0]
mov edi, esi
mov ebx, dword [0x485b38]
cmovae edi, dword [0x485b28]
movsx ecx, al
mov byte [ebp - 0x48], al
movups xmmword [ebp - 0x20], xmm0
mov dword [ebp - 0x10], 0x535f0547
mov word [ebp - 0xc], 0x5f
call fcn.0043cfd7
mov dword [ebp - 0x68], eax
xor edx, edx
push edx
lea ecx, [ebp - 0x68]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x44], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44aeb8
push 0x15
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0043d333
movsx ecx, byte [ebp - 0x48]
mov dword [ebp - 0x24], eax
call fcn.0043cfd7
mov dword [ebp - 0x68], eax
xor edx, edx
push edx
lea ecx, [ebp - 0x68]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x44], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44aeec
push dword [0x487200]
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x24]
call fcn.0043d3a9
test eax, eax
je 0x44af28
mov dl, byte [ebp - 0x48]
xor ecx, ecx
xor byte [eax + ecx], dl
inc ecx
cmp ecx, 0x15
jb 0x44af1b
mov byte [eax + 0x15], 0
mov ecx, dword [0x486fbc]
mov edx, eax
push 3
push ebx
push edi
call fcn.0042e156
add esp, 0xc
cmp dword [0x485b3c], 0x10
cmovae esi, dword [0x485b28]
and dword [0x485b38], 0
mov byte [esi], 0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0044d024
leave
ret