Function at 0x4404b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x320
mov eax, dword [0x9f9d14]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
push ebx
mov dword [ebp - 0x2fc], eax
mov ebx, 0x40
mov eax, dword [ebp + 0x14]
push esi
mov dword [ebp - 0x2e0], eax
mov esi, 8
mov eax, dword [ebp + 0x18]
push edi
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x2d4], eax
mov eax, dword [ebp + 0x24]
push ecx
mov dword [ebp - 0x2f8], ecx
mov dword [ebp - 0x304], edi
mov dword [ebp - 0x2d0], eax
mov dword [ebp - 0x2dc], ebx
mov dword [ebp - 0x2c4], esi
call fcn.0043b500
add esp, 4
sub eax, ebx
je 0x4405ac
sub eax, 0x260
je 0x440585
sub eax, 1
je 0x440548
mov dword [edi], 0
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.007059ee
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x2ac]
push eax
call fcn.00461fa0
mov ebx, 0x80
mov dword [ebp - 0x2d8], 0x440d80
mov esi, 0x10
mov dword [ebp - 0x2b4], 0x4626a0
mov ecx, 0x30
mov dword [ebp - 0x2dc], ebx
mov dword [ebp - 0x2c4], esi
jmp 0x4405d1
lea eax, [ebp - 0x2ac]
push eax
call fcn.00460e90
mov dword [ebp - 0x2d8], 0x440c80
mov ecx, 0x20
mov dword [ebp - 0x2b4], 0x460ef0
jmp 0x4405d1
lea eax, [ebp - 0x2ac]
push eax
call fcn.0045e460
mov dword [ebp - 0x2d8], 0x440be0
mov ecx, 0x14
mov dword [ebp - 0x2b4], 0x45e4a0
mov dword [ebp - 0x2c0], ecx
mov eax, esi
sub eax, ecx
xor edx, edx
mov ecx, dword [ebp + 0x20]
add eax, ebx
add ecx, 0xc
xor edi, edi
add eax, ecx
mov dword [ebp - 0x2cc], edi
div ebx
mov ecx, dword [ebp + 0x1c]
xor edx, edx
sub ecx, dword [ebp - 0x2c0]
add esp, 4
mov dword [ebp - 0x2bc], eax
add ecx, 0xd
mov eax, ecx
mov dword [ebp - 0x2b8], edi
div ebx
mov dword [ebp - 0x30c], eax
lea eax, [ecx + esi]
mov dword [ebp - 0x2c8], edx
xor edx, edx
div ebx
mov dword [ebp - 0x308], eax
mov eax, dword [ebp - 0x2bc]
cmp eax, 6
jbe 0x440648
lea edi, [eax - 6]
mov dword [ebp - 0x2cc], edi
imul edi, ebx
mov dword [ebp - 0x2b8], edi
lea eax, [ecx + ebx]
shl eax, 3
push ebx
mov dword [ebp - 0x2bc], eax
lea eax, [ebp - 0x94]
push 0
push eax
call fcn.007074c0
push dword [ebp + 0x28]
lea eax, [ebp - 0x94]
push dword [ebp - 0x2d0]
push eax
call fcn.007079f0
movaps xmm1, xmmword [str.6666666666666666jjjjjjjjjjjjjjjj]
add esp, 0x18
xor eax, eax
movups xmm0, xmmword [ebp + eax - 0x94]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0x94], xmm0
movups xmm0, xmmword [ebp + eax - 0x84]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0x84], xmm0
movups xmm0, xmmword [ebp + eax - 0x74]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0x74], xmm0
movups xmm0, xmmword [ebp + eax - 0x64]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0x64], xmm0
add eax, 0x40
cmp eax, ebx
jb 0x440684
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0x2ac]
push eax
call dword [ebp - 0x2b4]
lea eax, [esi - 4]
push eax
lea eax, [ebp - 0x14]
push 0
push eax
call fcn.007074c0
mov ecx, dword [ebp - 0x2bc]
add esp, 0x14
mov eax, ecx
mov byte [ebp + esi - 0x15], cl
shr eax, 0x18
mov byte [ebp + esi - 0x18], al
mov eax, ecx
shr eax, 0x10
mov byte [ebp + esi - 0x17], al
mov eax, ecx
shr eax, 8
mov byte [ebp + esi - 0x16], al
test edi, edi
je 0x4407b4
mov ecx, dword [ebp - 0x2e0]
mov eax, dword [ecx + 8]
movq xmm0, qword [ecx]
mov dword [ebp - 0x14c], eax
mov al, byte [ecx + 0xc]
mov byte [ebp - 0x148], al
lea eax, [ebx - 0xd]
push eax
push dword [ebp - 0x2d4]
lea eax, [ebp - 0x147]
movq qword [ebp - 0x154], xmm0
push eax
call fcn.007079f0
lea eax, [ebp - 0x154]
push eax
lea eax, [ebp - 0x2ac]
push eax
call dword [ebp - 0x2b4]
xor edx, edx
mov eax, edi
div ebx
add esp, 0x14
cmp eax, 1
jbe 0x4407b4
mov esi, dword [ebp - 0x2d4]
lea edi, [eax - 1]
add esi, 0xfffffff3
add esi, ebx
nop dword [eax]
lea eax, [ebp - 0x2ac]
push esi
push eax
call dword [ebp - 0x2b4]
add esp, 8
add esi, ebx
sub edi, 1
jne 0x440790
mov edi, dword [ebp - 0x2b8]
mov esi, dword [ebp - 0x2c4]
push 0x40
lea eax, [ebp - 0xd4]
push 0
push eax
call fcn.007074c0
mov ecx, dword [ebp - 0x2cc]
add esp, 0xc
lea eax, [ecx + 6]
mov dword [ebp - 0x2f4], eax
cmp ecx, eax
ja 0x4409d4
mov eax, dword [ebp - 0x2c8]
neg dword [ebp - 0x2c8]
lea edx, [eax + 1]
sar eax, 0x1f
mov dword [ebp - 0x2e4], eax
mov eax, edx
sar eax, 0x1f
mov dword [ebp - 0x2ec], eax
mov eax, ebx
sub eax, esi
mov dword [ebp - 0x2e8], edx
mov dword [ebp - 0x2f0], eax
sub esi, ebx
lea eax, [ebp - 0x14]
add eax, esi
mov dword [ebp - 0x310], eax
nop
mov eax, ecx
xor esi, esi
xor eax, dword [ebp - 0x30c]
lea edx, [eax - 1]
not eax
sar eax, 0x1f
sar edx, 0x1f
and dl, al
mov eax, ecx
xor eax, dword [ebp - 0x308]
mov dword [ebp - 0x2c4], edx
lea ecx, [eax - 1]
not eax
sar ecx, 0x1f
sar eax, 0x1f
and cl, al
mov eax, dword [ebp - 0x310]
mov dword [ebp - 0x2bc], ecx
not cl
or cl, dl
mov dword [ebp - 0x2b8], eax
mov byte [ebp - 0x2ae], cl
mov ecx, dword [ebp - 0x2c8]
mov dword [ebp - 0x2d0], ecx
nop word [eax + eax]
mov byte [ebp - 0x2ad], 0
cmp edi, 0xd
jae 0x440897
mov eax, dword [ebp - 0x2e0]
mov al, byte [eax + edi]
jmp 0x4408ab
mov eax, dword [ebp + 0x20]
add eax, 0xd
cmp edi, eax
jae 0x4408b1
mov eax, dword [ebp - 0x2d4]
mov al, byte [eax + edi - 0xd]
mov byte [ebp - 0x2ad], al
mov al, byte [ebp - 0x2e4]
mov ebx, esi
sar ecx, 0x1f
inc edi
sar ebx, 0x1f
xor al, bl
xor cl, bl
or cl, al
mov eax, dword [ebp - 0x2c4]
xor cl, bl
movzx eax, al
not cl
movzx edx, cl
mov cl, byte [ebp - 0x2ec]
and edx, eax
mov eax, esi
xor cl, bl
sub eax, dword [ebp - 0x2e8]
sar eax, 0x1f
xor al, bl
or al, cl
mov cl, dl
xor al, bl
not cl
and cl, byte [ebp - 0x2ad]
not al
and al, byte [ebp - 0x2c4]
and dl, 0x80
not al
or cl, dl
and al, cl
and al, byte [ebp - 0x2ae]
cmp esi, dword [ebp - 0x2f0]
jb 0x440935
mov ecx, dword [ebp - 0x2bc]
movzx ecx, cl
mov dl, cl
not dl
and dl, al
mov eax, dword [ebp - 0x2b8]
mov al, byte [eax]
and al, cl
or al, dl
mov ecx, dword [ebp - 0x2d0]
inc dword [ebp - 0x2b8]
inc ecx
mov ebx, dword [ebp - 0x2dc]
mov byte [ebp + esi - 0x1d4], al
inc esi
mov dword [ebp - 0x2d0], ecx
cmp esi, ebx
jb 0x440880
lea eax, [ebp - 0x1d4]
push eax
lea eax, [ebp - 0x2ac]
push eax
call dword [ebp - 0x2b4]
lea eax, [ebp - 0x1d4]
push eax
lea eax, [ebp - 0x2ac]
push eax
call dword [ebp - 0x2d8]
add esp, 0x10
xor ecx, ecx
xor al, al
jne 0x4409bb
mov edx, dword [ebp - 0x2bc]
mov ebx, dword [ebp - 0x2c0]
nop dword [eax + eax]
mov al, byte [ebp + ecx - 0x1d4]
and al, dl
or byte [ebp + ecx - 0xd4], al
inc ecx
cmp ecx, ebx
jb 0x4409a0
mov ebx, dword [ebp - 0x2dc]
mov ecx, dword [ebp - 0x2cc]
inc ecx
mov dword [ebp - 0x2cc], ecx
cmp ecx, dword [ebp - 0x2f4]
jbe 0x440820
lea eax, [ebp - 0x320]
push eax
call fcn.00447970
push 0
push dword [ebp - 0x2f8]
lea eax, [ebp - 0x320]
push eax
call fcn.00447790
add esp, 0x10
test eax, eax
jne 0x440a1d
lea eax, [ebp - 0x320]
push eax
call fcn.00447830
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.007059ee
mov esp, ebp
pop ebp
ret
movaps xmm1, xmmword [0x746450]
xor eax, eax
nop word [eax + eax]
movups xmm0, xmmword [ebp + eax - 0x94]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0x94], xmm0
movups xmm0, xmmword [ebp + eax - 0x84]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0x84], xmm0
movups xmm0, xmmword [ebp + eax - 0x74]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0x74], xmm0
movups xmm0, xmmword [ebp + eax - 0x64]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0x64], xmm0
add eax, 0x40
cmp eax, ebx
jb 0x440a30
push ebx
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0x320]
push eax
call fcn.00447810
push dword [ebp - 0x2c0]
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0x320]
push eax
call fcn.00447810
lea eax, [ebp - 0x300]
push eax
push dword [ebp - 0x2fc]
lea eax, [ebp - 0x320]
push eax
call fcn.004476d0
mov ecx, dword [ebp - 0x304]
mov eax, dword [ebp - 0x300]
mov dword [ecx], eax
lea eax, [ebp - 0x320]
push eax
call fcn.00447830
mov ecx, dword [ebp - 4]
add esp, 0x28
xor ecx, ebp
mov eax, 1
pop edi
pop esi
pop ebx
call fcn.007059ee
mov esp, ebp
pop ebp
ret