Function at 0x44046e
Capabilities:
Encrypt data using chaskey
Inspect section memory permissions

Disassembly:
sub esp, 0x134
mov eax, dword [0x5107c0]
xor eax, esp
mov dword [esp + 0x130], eax
push ebx
mov ebx, dword [esp + 0x13c]
lea eax, [esp + 0x34]
push ebp
push esi
push edi
mov ebp, 0x100
mov dword [esp + 0x14], ebx
push ebp
mov esi, ecx
mov byte [esp + 0x17], 0
push 0
push eax
mov dword [esp + 0x24], esi
call fcn.004b6030
add esp, 0xc
xor eax, eax
mov edi, ebx
push 8
pop ecx
rep stosd dword es:[edi], eax
push 1
push 0xfc
lea ecx, [esp + 0x28]
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x48]
push eax
push 0x5a
call fcn.00441144
mov ecx, eax
xor edi, edi
push edi
mov byte [ecx], 0x5a
mov al, byte [esi + 0x39]
shl al, 5
mov byte [ecx + 1], al
mov byte [ecx + 2], 0x2a
mov byte [ecx + 8], 0xfc
lea ecx, [esp + 0x24]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0xc]
cmp al, 1
jne 0x440505
mov al, byte [esp + 0x47]
add al, 8
jmp 0x44055c
push ebp
lea eax, [esp + 0x44]
push edi
push eax
call fcn.004b6030
add esp, 0xc
lea eax, [esp + 0x40]
lea ecx, [esp + 0x20]
push 1
push 0xfc
push eax
push 0x1a
call fcn.00441144
mov ecx, eax
push edi
mov byte [ecx], 0x1a
mov al, byte [esi + 0x39]
shl al, 5
mov byte [ecx + 1], al
mov byte [ecx + 2], 0x2a
mov byte [ecx + 4], 0xfc
lea ecx, [esp + 0x24]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0xc]
cmp al, 1
jne 0x44063b
mov al, byte [esp + 0x43]
add al, 4
movzx ebp, al
mov byte [esp + 0x13], 1
mov bl, byte [esp + ebp + 0x46]
movzx eax, byte [esp + ebp + 0x45]
movzx edx, byte [esp + ebp + 0x43]
movzx ecx, byte [esp + ebp + 0x44]
movzx edi, byte [esp + ebp + 0x42]
movzx esi, bl
and edi, 0x3f
shl esi, 8
or esi, eax
shr bl, 5
shl esi, 8
mov eax, edx
or esi, ecx
and eax, 7
shl esi, 5
and edx, 0x30
or esi, eax
mov eax, dword [esp + 0x14]
add esi, esi
or esi, edx
mov edx, 0x100
shl esi, 5
mov byte [eax + 4], bl
or esi, edi
mov ebx, dword [esp + 0x14]
add esi, esi
or esi, 1
mov dword [eax], esi
movzx eax, byte [esp + ebp + 0x47]
mov ecx, dword [ebx + 5]
xor ecx, eax
mov esi, dword [esp + 0x18]
movzx eax, byte [esp + ebp + 0x49]
and ecx, 0x3f
xor dword [ebx + 5], ecx
movzx ecx, byte [esp + ebp + 0x48]
imul cx, dx
add cx, ax
movzx eax, byte [esp + ebp + 0x4d]
mov word [ebx + 0xb], cx
movzx ecx, byte [esp + ebp + 0x4c]
imul cx, dx
add cx, ax
movzx eax, byte [esp + ebp + 0x4f]
mov word [ebx + 9], cx
movzx ecx, byte [esp + ebp + 0x4e]
imul cx, dx
add cx, ax
movzx eax, byte [esp + ebp + 0x53]
mov word [ebx + 0xf], cx
movzx ecx, byte [esp + ebp + 0x52]
imul cx, dx
add cx, ax
movzx eax, byte [esp + ebp + 0x54]
imul ax, dx
mov word [ebx + 0xd], cx
movzx ecx, byte [esp + ebp + 0x55]
add cx, ax
xor edi, edi
mov word [ebx + 0x11], cx
push 0x1003a
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
push 0xfffa
mov ebp, eax
mov ecx, esi
push ebp
push edi
push edi
mov dword [esp + 0x24], ebp
call fcn.00440a2e
push ebp
call fcn.00424b90
pop ecx
mov ecx, 0xfff6
lea edi, [ebp + 8]
cmp eax, ecx
cmova eax, ecx
cmp eax, 4
jb 0x4409ce
add eax, 0xfffffffc
mov dword [esp + 0x18], eax
cmp eax, 4
jl 0x4409ce
mov dh, byte [esp + 0x1a]
mov ebp, eax
movzx esi, byte [edi]
mov eax, 0x100
mov cl, byte [edi + 2]
and dh, 3
imul si, ax
movzx eax, byte [edi + 1]
mov dl, cl
and dl, 2
add si, ax
mov al, cl
shl al, 2
and cl, 0x3c
or dl, al
movzx eax, si
shl dl, 5
mov esi, 0x80
or dl, cl
or dh, dl
mov dl, byte [edi + 3]
cmp eax, esi
jg 0x440924
je 0x44091b
cmp eax, 0x3b
jg 0x4407fc
je 0x4407e7
sub eax, 0x1f
je 0x4407be
sub eax, 0xb
je 0x4407a3
dec eax
je 0x44078e
sub eax, 4
je 0x44073e
sub eax, 4
je 0x440732
sub eax, 7
jne case.0x440939.3
or dword [ebx + 0x13], 0x40
movzx eax, byte [edi + 4]
shl eax, 0x16
xor eax, dword [ebx + 0x13]
and eax, 0x400000
jmp 0x4407b6
or dword [ebx + 0x13], 0x40000000
jmp case.0x440939.3
movzx eax, byte [edi + 4]
shl eax, 0x10
xor eax, dword [ebx + 0x13]
and eax, 0x20000
xor dword [ebx + 0x13], eax
movzx ecx, byte [edi + 4]
shl ecx, 0xd
xor ecx, dword [ebx + 0x13]
and ecx, 0x10000
xor ecx, dword [ebx + 0x13]
mov dword [ebx + 0x13], ecx
movzx eax, byte [edi + 4]
shl eax, 0x11
xor eax, ecx
and eax, 0x40000
xor eax, ecx
mov dword [ebx + 0x13], eax
movzx eax, byte [edi + 4]
shl eax, 7
xor eax, dword [ebx]
and eax, 0x400
xor dword [ebx], eax
jmp case.0x440939.3
or dword [ebx + 0x13], 8
movzx eax, byte [edi + 4]
shl eax, 0x13
xor eax, dword [ebx + 0x13]
and eax, 0x80000
jmp 0x4407b6
or dword [ebx + 0x13], 0x20
movzx eax, byte [edi + 4]
shl eax, 0x15
xor eax, dword [ebx + 0x13]
and eax, 0x200000
xor dword [ebx + 0x13], eax
jmp case.0x440939.3
or dword [ebx + 0x13], 2
movzx ecx, byte [edi + 6]
xor ecx, dword [ebx + 0x13]
and ecx, 1
xor ecx, dword [ebx + 0x13]
mov dword [ebx + 0x13], ecx
movzx eax, byte [edi + 6]
add eax, eax
xor eax, ecx
and eax, 4
xor eax, ecx
mov dword [ebx + 0x13], eax
jmp case.0x440939.3
or dword [ebx + 0x13], 0x10
movzx eax, byte [edi + 4]
shl eax, 0x14
xor eax, dword [ebx + 0x13]
and eax, 0x100000
jmp 0x4407b6
sub eax, 0x40
je 0x4408d4
dec eax
je 0x4408a3
dec eax
je 0x440897
sub eax, 0xe
je 0x440857
dec eax
jne case.0x440939.3
movzx eax, byte [edi + 4]
shl eax, 0x17
xor eax, dword [ebx + 0x13]
and eax, 0x800000
xor dword [ebx + 0x13], eax
movzx ecx, byte [edi + 5]
shl ecx, 0x18
xor ecx, dword [ebx + 0x13]
and ecx, 0x1000000
xor ecx, dword [ebx + 0x13]
mov dword [ebx + 0x13], ecx
movzx eax, byte [edi + 6]
shl eax, 0x1b
xor eax, ecx
and eax, 0x8000000
jmp 0x4407dd
or dword [ebx + 0x13], 0x1000
movzx eax, byte [edi + 4]
shl eax, 7
xor eax, dword [ebx + 0x13]
and eax, esi
xor eax, dword [ebx + 0x13]
mov dword [ebx + 0x13], eax
movzx ecx, byte [edi + 5]
shl ecx, 8
xor ecx, eax
and ecx, 0x100
xor ecx, eax
mov dword [ebx + 0x13], ecx
movzx eax, byte [edi + 6]
shl eax, 0xb
xor eax, ecx
and eax, 0x800
jmp 0x4407dd
or dword [ebx + 0x13], 0x80000000
jmp case.0x440939.3
push 8
pop eax
cmp byte [eax + edi], 0
je 0x4408b3
or dword [ebx + 0x13], 0x20000000
inc eax
cmp eax, 0xf
jle 0x4408a6
push 0x10
pop eax
cmp byte [eax + edi], 0
je 0x4408c9
or dword [ebx + 0x13], 0x10000000
inc eax
cmp eax, 0x17
jle 0x4408bc
jmp case.0x440939.3
push 8
pop eax
cmp byte [eax + edi], 0
je 0x4408e4
or dword [ebx + 0x13], 0x2000
inc eax
cmp eax, 0xf
jle 0x4408d7
push 0x10
pop eax
cmp byte [eax + edi], 0
je 0x4408fa
or dword [ebx + 0x13], 0x4000
inc eax
cmp eax, 0x17
jle 0x4408ed
push 0x18
pop eax
cmp byte [eax + edi], 0
je 0x440910
or dword [ebx + 0x13], 0x8000
inc eax
cmp eax, 0x1f
jle 0x440903
jmp case.0x440939.3
or dword [ebx + 0x17], 1
jmp case.0x440939.3
mov ecx, 0x113
cmp eax, ecx
jg 0x4409a4
je 0x44099b
add ecx, 0xffffffed
sub eax, ecx
cmp eax, 0xd
ja case.0x440939.3
jmp dword [eax*4 + 0x4409f6]
or dword [ebx + 0x17], 2
jmp case.0x440939.3
or dword [ebx + 0x17], 4
jmp case.0x440939.3
or dword [ebx + 0x17], 8
jmp case.0x440939.3
or dword [ebx + 0x17], 0x10
jmp case.0x440939.3
or dword [ebx + 0x17], 0x20
jmp case.0x440939.3
or dword [ebx + 0x17], 0x40
jmp case.0x440939.3
or dword [ebx + 0x17], esi
jmp case.0x440939.3
or dword [ebx + 0x17], ecx
jmp case.0x440939.3
movzx eax, dh
shr eax, 7
inc eax
shl eax, 9
xor eax, dword [ebx + 0x17]
and eax, 0x600
xor dword [ebx + 0x17], eax
movzx eax, byte [edi + 4]
and eax, 1
mov dword [ebx + 0x1f], eax
movzx eax, byte [edi + 4]
shr eax, 1
and eax, 1
mov dword [ebx + 0x1b], eax
jmp case.0x440939.3
or dword [ebx + 0x17], 0x800
jmp case.0x440939.3
cmp eax, 0xff33
jne case.0x440939.3
or dword [ebx + 0x17], 0x2000
push 0xfffffffffffffffc
movzx eax, dl
add edi, 4
pop ecx
sub ecx, eax
add edi, eax
add ebp, ecx
cmp ebp, 4
jge 0x440697
mov ebp, dword [esp + 0x14]
push ebp
call fcn.0040746c
mov al, byte [esp + 0x17]
pop ecx
mov ecx, dword [esp + 0x140]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004b35e5
add esp, 0x134
ret 4