Function at 0x44a360
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c
mov eax, dword [0x475008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov esi, 0x475960
xor ebx, ebx
push 0x46ba28
mov ecx, esi
mov dword [ebp - 0x64], ebx
call fcn.0044bde4
mov dword [ebp - 0x6c], 1
test al, al
jne 0x44a3b1
lea ecx, [ebp - 0x5c]
call fcn.0043f50b
mov edx, 0x475978
mov ecx, eax
inc ebx
call fcn.0044b5ed
mov byte [ebp - 0x5d], 1
test al, al
je 0x44a3b5
mov byte [ebp - 0x5d], 0
test bl, 1
je 0x44a3c5
lea ecx, [ebp - 0x5c]
and ebx, 0xfffffffe
call fcn.0044adca
cmp byte [ebp - 0x5d], 0
je 0x44a4ac
mov eax, dword [0x475970]
mov edi, esi
cmp dword [0x475974], 0x10
movaps xmm0, xmmword [0x470530]
cmovae edi, dword [0x475960]
mov dword [ebp - 0x64], eax
mov al, 0x34
movsx ecx, al
mov byte [ebp - 0x40], al
movups xmmword [ebp - 0x18], xmm0
mov word [ebp - 8], 0x404c
mov byte [ebp - 6], 0
call fcn.0043cd89
mov dword [ebp - 0x68], eax
xor edx, edx
push edx
lea ecx, [ebp - 0x68]
call fcn.0043cdc8
mov dword [ebp + edx*4 - 0x3c], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44a40e
push 0x12
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.0043d0e5
movsx ecx, byte [ebp - 0x40]
mov dword [ebp - 0x1c], eax
call fcn.0043cd89
mov dword [ebp - 0x68], eax
xor edx, edx
push edx
lea ecx, [ebp - 0x68]
call fcn.0043cdc8
mov dword [ebp + edx*4 - 0x3c], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44a442
push dword [0x4769d8]
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0x1c]
call fcn.0043d15b
test eax, eax
je 0x44a47e
mov dl, byte [ebp - 0x40]
xor ecx, ecx
xor byte [ecx + eax], dl
inc ecx
cmp ecx, 0x12
jb 0x44a471
mov byte [eax + 0x12], 0
mov ecx, dword [0x476790]
mov edx, eax
push 3
push dword [ebp - 0x64]
push edi
call fcn.0042e104
add esp, 0xc
cmp dword [0x475974], 0x10
cmovae esi, dword [0x475960]
and dword [0x475970], 0
mov byte [esi], 0
mov esi, 0x475930
push 0x46ba28
mov ecx, esi
call fcn.0044bde4
test al, al
jne 0x44a4e0
lea ecx, [ebp - 0x5c]
call fcn.0043f50b
mov edx, 0x475990
mov ecx, eax
or ebx, 2
call fcn.0044b5ed
mov byte [ebp - 0x5d], 1
test al, al
je 0x44a4e4
mov byte [ebp - 0x5d], 0
test bl, 2
je 0x44a4f4
lea ecx, [ebp - 0x5c]
and ebx, 0xfffffffd
call fcn.0044adca
cmp byte [ebp - 0x5d], 0
je 0x44a5e2
mov eax, dword [0x475940]
mov edi, esi
cmp dword [0x475944], 0x10
movaps xmm0, xmmword [0x4704d0]
cmovae edi, dword [0x475930]
mov dword [ebp - 0x68], eax
mov al, 0x51
movsx ecx, al
mov byte [ebp - 0x44], al
movups xmmword [ebp - 0x1c], xmm0
mov dword [ebp - 0xc], 0x257f2235
mov word [ebp - 8], 0x2529
mov byte [ebp - 6], 0
call fcn.0043cd89
mov dword [ebp - 0x64], eax
xor edx, edx
push edx
lea ecx, [ebp - 0x64]
call fcn.0043cdc8
mov dword [ebp + edx*4 - 0x40], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44a544
push 0x16
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0043d0e5
movsx ecx, byte [ebp - 0x44]
mov dword [ebp - 0x20], eax
call fcn.0043cd89
mov dword [ebp - 0x64], eax
xor edx, edx
push edx
lea ecx, [ebp - 0x64]
call fcn.0043cdc8
mov dword [ebp + edx*4 - 0x40], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44a578
push dword [0x4769d8]
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0x20]
call fcn.0043d15b
test eax, eax
je 0x44a5b4
mov dl, byte [ebp - 0x44]
xor ecx, ecx
xor byte [ecx + eax], dl
inc ecx
cmp ecx, 0x16
jb 0x44a5a7
mov byte [eax + 0x16], 0
mov ecx, dword [0x476790]
mov edx, eax
push 3
push dword [ebp - 0x68]
push edi
call fcn.0042e104
add esp, 0xc
cmp dword [0x475944], 0x10
cmovae esi, dword [0x475930]
and dword [0x475940], 0
mov byte [esi], 0
mov esi, 0x475948
push 0x46ba28
mov ecx, esi
call fcn.0044bde4
test al, al
jne 0x44a612
lea ecx, [ebp - 0x5c]
call fcn.0043f50b
mov edx, 0x475918
mov ecx, eax
or ebx, 4
call fcn.0044b5ed
test al, al
je 0x44a616
mov byte [ebp - 0x6c], 0
test bl, 4
je 0x44a623
lea ecx, [ebp - 0x5c]
call fcn.0044adca
cmp byte [ebp - 0x6c], 0
je 0x44a709
cmp dword [0x47595c], 0x10
mov al, 0x54
movaps xmm0, xmmword [0x470520]
mov edi, esi
mov ebx, dword [0x475958]
cmovae edi, dword [0x475948]
movsx ecx, al
mov byte [ebp - 0x44], al
movups xmmword [ebp - 0x1c], xmm0
mov dword [ebp - 0xc], 0x2c207a38
mov word [ebp - 8], 0x20
call fcn.0043cd89
mov dword [ebp - 0x64], eax
xor edx, edx
push edx
lea ecx, [ebp - 0x64]
call fcn.0043cdc8
mov dword [ebp + edx*4 - 0x40], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44a66d
push 0x15
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0043d0e5
movsx ecx, byte [ebp - 0x44]
mov dword [ebp - 0x20], eax
call fcn.0043cd89
mov dword [ebp - 0x64], eax
xor edx, edx
push edx
lea ecx, [ebp - 0x64]
call fcn.0043cdc8
mov dword [ebp + edx*4 - 0x40], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44a6a1
push dword [0x4769d8]
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0x20]
call fcn.0043d15b
test eax, eax
je 0x44a6dd
mov dl, byte [ebp - 0x44]
xor ecx, ecx
xor byte [eax + ecx], dl
inc ecx
cmp ecx, 0x15
jb 0x44a6d0
mov byte [eax + 0x15], 0
mov ecx, dword [0x476790]
mov edx, eax
push 3
push ebx
push edi
call fcn.0042e104
add esp, 0xc
cmp dword [0x47595c], 0x10
cmovae esi, dword [0x475948]
and dword [0x475958], 0
mov byte [esi], 0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0044c4ac
leave
ret