Function at 0x44f939
Capabilities:
Encode data using xor

Disassembly:
push 0x9c
mov eax, 0x470e18
call fcn.0046c47e
and dword [ebp - 0xa4], 0
mov edi, 0x478e64
mov esi, 0x485ba8
push edi
mov ecx, esi
call fcn.00452304
test al, al
jne 0x44f98d
lea ecx, [ebp - 0x68]
call fcn.00440faa
xor ecx, ecx
mov edx, 0x485c08
inc ecx
mov dword [ebp - 0xa4], ecx
mov ecx, eax
call fcn.00451699
mov byte [ebp - 0x99], 1
test al, al
je 0x44f994
mov byte [ebp - 0x99], 0
mov eax, dword [ebp - 0xa4]
test al, 1
je 0x44f9af
and eax, 0xfffffffe
lea ecx, [ebp - 0x68]
mov dword [ebp - 0xa4], eax
call fcn.00450a63
cmp byte [ebp - 0x99], 0
je 0x44fab8
mov eax, dword [0x485bb8]
mov edi, esi
cmp dword [0x485bbc], 0x10
movaps xmm0, xmmword [0x47e020]
cmovae edi, dword [0x485ba8]
mov dword [ebp - 0xa0], eax
push 0x16
pop eax
movsx ecx, al
mov byte [ebp - 0x50], al
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0x62386572
mov word [ebp - 0x14], 0x626e
mov byte [ebp - 0x12], 0
call fcn.0043e927
mov dword [ebp - 0xa8], eax
xor edx, edx
push edx
lea ecx, [ebp - 0xa8]
call fcn.0043e966
mov dword [ebp + edx*4 - 0x4c], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44fa09
push 0x16
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043ec83
movsx ecx, byte [ebp - 0x50]
mov dword [ebp - 0x2c], eax
call fcn.0043e927
mov dword [ebp - 0xa8], eax
xor edx, edx
push edx
lea ecx, [ebp - 0xa8]
call fcn.0043e966
mov dword [ebp + edx*4 - 0x4c], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44fa43
push dword [0x4874a0]
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x2c]
call fcn.0043ecf9
test eax, eax
je 0x44fa82
mov dl, byte [ebp - 0x50]
xor ecx, ecx
xor byte [ecx + eax], dl
inc ecx
cmp ecx, 0x16
jb 0x44fa75
mov byte [eax + 0x16], 0
mov ecx, dword [0x48726c]
mov edx, eax
push 3
push dword [ebp - 0xa0]
push edi
call fcn.0042dc39
add esp, 0xc
mov edi, 0x478e64
cmp dword [0x485bbc], 0x10
cmovae esi, dword [0x485ba8]
and dword [0x485bb8], 0
mov byte [esi], 0
mov esi, 0x485bc0
push edi
mov ecx, esi
call fcn.00452304
test al, al
jne 0x44faf7
lea ecx, [ebp - 0x68]
call fcn.00440faa
mov ecx, dword [ebp - 0xa4]
mov edx, 0x485b90
or ecx, 2
mov dword [ebp - 0xa4], ecx
mov ecx, eax
call fcn.00451699
mov byte [ebp - 0x99], 1
test al, al
je 0x44fafe
mov byte [ebp - 0x99], 0
mov eax, dword [ebp - 0xa4]
test al, 2
je 0x44fb19
and eax, 0xfffffffd
lea ecx, [ebp - 0x68]
mov dword [ebp - 0xa4], eax
call fcn.00450a63
cmp byte [ebp - 0x99], 0
je 0x44fc1d
mov eax, dword [0x485bd0]
mov edi, esi
cmp dword [0x485bd4], 0x10
movaps xmm0, xmmword [0x47df30]
cmovae edi, dword [0x485bc0]
mov dword [ebp - 0xa8], eax
mov al, 0x23
movsx ecx, al
mov byte [ebp - 0x50], al
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0x5b570d4f
mov word [ebp - 0x14], 0x57
call fcn.0043e927
mov dword [ebp - 0xa0], eax
xor edx, edx
push edx
lea ecx, [ebp - 0xa0]
call fcn.0043e966
mov dword [ebp + edx*4 - 0x4c], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44fb6e
push 0x15
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043ec83
movsx ecx, byte [ebp - 0x50]
mov dword [ebp - 0x2c], eax
call fcn.0043e927
mov dword [ebp - 0xa0], eax
xor edx, edx
push edx
lea ecx, [ebp - 0xa0]
call fcn.0043e966
mov dword [ebp + edx*4 - 0x4c], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44fba8
push dword [0x4874a0]
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x2c]
call fcn.0043ecf9
test eax, eax
je 0x44fbe7
mov dl, byte [ebp - 0x50]
xor ecx, ecx
xor byte [eax + ecx], dl
inc ecx
cmp ecx, 0x15
jb 0x44fbda
mov byte [eax + 0x15], 0
mov ecx, dword [0x48726c]
mov edx, eax
push 3
push dword [ebp - 0xa8]
push edi
call fcn.0042dc39
add esp, 0xc
mov edi, 0x478e64
cmp dword [0x485bd4], 0x10
cmovae esi, dword [0x485bc0]
and dword [0x485bd0], 0
mov byte [esi], 0
mov esi, 0x485bd8
push edi
mov ecx, esi
call fcn.00452304
test al, al
jne 0x44fc54
lea ecx, [ebp - 0x68]
call fcn.00440faa
or dword [ebp - 0xa4], 4
mov edx, 0x485bf0
mov ecx, eax
call fcn.00451699
mov byte [ebp - 0x99], 1
test al, al
je 0x44fc5b
mov byte [ebp - 0x99], 0
mov ecx, dword [ebp - 0xa4]
test cl, 4
je 0x44fc6e
lea ecx, [ebp - 0x68]
call fcn.00450a63
cmp byte [ebp - 0x99], 0
je 0x44fea0
push edi
mov edi, 0x485c20
mov ecx, edi
call fcn.00452304
test al, al
jne 0x44fdb1
movaps xmm0, xmmword [0x47de40]
add al, 0x3a
movsx ecx, al
mov byte [ebp - 0x4c], al
movups xmmword [ebp - 0x24], xmm0
mov byte [ebp - 0x14], 0
call fcn.0043e927
mov dword [ebp - 0xa0], eax
xor edx, edx
push edx
lea ecx, [ebp - 0xa0]
call fcn.0043e966
mov dword [ebp + edx*4 - 0x48], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44fcb4
push 0x10
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.0043ec83
movsx ecx, byte [ebp - 0x4c]
mov dword [ebp - 0x28], eax
call fcn.0043e927
mov dword [ebp - 0xa0], eax
xor edx, edx
push edx
lea ecx, [ebp - 0xa0]
call fcn.0043e966
mov dword [ebp + edx*4 - 0x48], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44fcee
push dword [0x4874a0]
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x28]
call fcn.0043ecf9
mov edx, eax
test edx, edx
je 0x44fd40
movsx eax, byte [ebp - 0x4c]
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
pshufd xmm1, xmm0, 0
movups xmm0, xmmword [edx]
pxor xmm1, xmm0
movups xmmword [edx], xmm1
mov byte [edx + 0x10], 0
push edi
lea ecx, [ebp - 0x98]
call fcn.00451257
and dword [ebp - 4], 0
lea ecx, [ebp - 0x80]
mov edx, eax
mov dword [esp], 0x47d804
call fcn.00451348
push esi
mov edx, eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x68]
call fcn.0045166b
pop ecx
pop ecx
push eax
mov ecx, esi
call fcn.00450a86
lea ecx, [ebp - 0x68]
call fcn.00450a63
lea ecx, [ebp - 0x80]
call fcn.00450a63
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x98]
call fcn.00450a63
cmp dword [0x485c34], 0x10
cmovae edi, dword [0x485c20]
and dword [0x485c30], 0
mov byte [edi], 0
mov eax, dword [0x485be8]
mov edi, esi
cmp dword [0x485bec], 0x10
movaps xmm0, xmmword [0x47dd00]
cmovae edi, dword [0x485bd8]
mov dword [ebp - 0xa8], eax
mov al, 0x66
movsx ecx, al
mov byte [ebp - 0x4c], al
movups xmmword [ebp - 0x24], xmm0
mov word [ebp - 0x14], 0x121e
mov byte [ebp - 0x12], 0
call fcn.0043e927
mov dword [ebp - 0xa0], eax
xor edx, edx
push edx
lea ecx, [ebp - 0xa0]
call fcn.0043e966
mov dword [ebp + edx*4 - 0x48], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44fdf6
push 0x12
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.0043ec83
movsx ecx, byte [ebp - 0x4c]
mov dword [ebp - 0x28], eax
call fcn.0043e927
mov dword [ebp - 0xa0], eax
xor edx, edx
push edx
lea ecx, [ebp - 0xa0]
call fcn.0043e966
mov dword [ebp + edx*4 - 0x48], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44fe30
push dword [0x4874a0]
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x28]
call fcn.0043ecf9
test eax, eax
je 0x44fe6f
mov dl, byte [ebp - 0x4c]
xor ecx, ecx
xor byte [ecx + eax], dl
inc ecx
cmp ecx, 0x12
jb 0x44fe62
mov byte [eax + 0x12], 0
mov ecx, dword [0x48726c]
mov edx, eax
push 3
push dword [ebp - 0xa8]
push edi
call fcn.0042dc39
add esp, 0xc
cmp dword [0x485bec], 0x10
cmovae esi, dword [0x485bd8]
and dword [0x485be8], 0
mov byte [esi], 0
call fcn.0046c428
ret